Springboot实现Java阿里短信发送代码实例

Springboot实现Java阿里短信发送代码实例

简介

阿里云短信服务提供了短信发送、查询等功能,便于企业进行验证码、营销等短信业务。本文将以Springboot为基础,讲解如何使用Java SDK来实现阿里短信服务。

准备工作

在使用阿里短信服务之前,需要先进行以下准备工作:

  • 在阿里云控制台中开通短信服务并获取Access Key ID和Access Key Secret。
  • 引入aliyun-java-sdk-core和aliyun-java-sdk-dysmsapi依赖,可以通过Maven中央仓库获取。
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.5.3</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
    <version>1.0.0</version>
</dependency>

发送短信

在发送短信的代码中,需要构造初始化的DefaultAcsClient对象,设置Access Key ID和Access Key Secret。然后通过CreateSmsRequest对象设置短信模板、签名、手机号等参数,最后调用sendSms方法发送短信。

以下是使用阿里云大于短信模板发送短信的示例代码:

import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.CreateSmsRequest;
import com.aliyun.teaopenapi.models.Config;
import java.util.*;


public class SmsUtil{
    public static void sendSms(String phone,String templateCode,String signName,String param){
        Config config = new Config()
                .setAccessKeyId("your-access-key-id")
                .setAccessKeySecret("your-access-key-secret");
        config.endpoint = "dysmsapi.aliyuncs.com";
        Client client = new Client(config);
        CreateSmsRequest createSmsRequest = new CreateSmsRequest()
                .setPhoneNumbers(phone)
                .setSignName(signName)
                .setTemplateCode(templateCode)
                .setTemplateParam("{'code':'" + param + "'}");
        client.createSms(createSmsRequest);
    }
}

多条示例说明

示例一:发送短信验证码

在发送短信验证码的代码中,需要使用阿里云短信服务提供的模板,设置验证码等参数。以下是使用Springboot实现发送短信验证码的示例代码:

import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Random;

@Service
public class SmsService {
    @Resource
    private SmsConfig smsConfig;

    public void sendVerificationCodeSms(String phone) {
        DefaultProfile profile = DefaultProfile.getProfile(
                smsConfig.getRegionId(),
                smsConfig.getAccessKeyId(),
                smsConfig.getAccessKeySecret());
        IAcsClient client = new DefaultAcsClient(profile);
        String code = String.valueOf(new Random().nextInt(899999) + 100000);
        CommonRequest request = new CommonRequest();
        request.setMethod(MethodType.POST);
        // 需要填写阿里云短信模板编码和短信签名
        request.setDomain(smsConfig.getDomain());
        request.setVersion(smsConfig.getVersion());
        request.setAction(smsConfig.getActionSendSms());
        request.putQueryParameter("RegionId", smsConfig.getRegionId());
        request.putQueryParameter("PhoneNumbers", phone);
        request.putQueryParameter("SignName", smsConfig.getSignName());
        request.putQueryParameter("TemplateCode", smsConfig.getTemplateCode());
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("code", code);
        request.putQueryParameter("TemplateParam", jsonObject.toJSONString());
        try {
            // 发送短信
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在以上示例代码中,需要在配置文件中设置以下参数:

aliyun.sms.access-key-id=your-access-key-id
aliyun.sms.access-key-secret=your-access-key-secret
aliyun.sms.region-id=cn-hangzhou
aliyun.sms.sign-name=your-sign-name
aliyun.sms.template-code=your-template-code
aliyun.sms.version=2017-05-25
aliyun.sms.domain=dysmsapi.aliyuncs.com
aliyun.sms.action-send-sms=SendSms

示例二:发送营销短信

在发送营销短信的代码中,需要使用营销短信模板,设置营销短信参数。以下是使用Springboot实现发送营销短信的示例代码:

import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;

@Service
public class SmsService {
    @Resource
    private SmsConfig smsConfig;

    public void sendMarketingSms() {
        DefaultProfile profile = DefaultProfile.getProfile(
                smsConfig.getRegionId(),
                smsConfig.getAccessKeyId(),
                smsConfig.getAccessKeySecret());
        IAcsClient client = new DefaultAcsClient(profile);
        CommonRequest request = new CommonRequest();
        request.setMethod(MethodType.POST);
        // 需要填写阿里云短信模板编码和短信签名
        request.setDomain(smsConfig.getDomain());
        request.setVersion(smsConfig.getVersion());
        request.setAction(smsConfig.getActionSendBatchSms());
        request.putQueryParameter("RegionId", smsConfig.getRegionId());
        request.putQueryParameter("PhoneNumbers", smsConfig.getPhoneNumbers());
        request.putQueryParameter("SignName", smsConfig.getSignName());
        request.putQueryParameter("TemplateCode", smsConfig.getTemplateCode());
        request.putQueryParameter("SmsUpExtendCode", "");
        ArrayList<CommonRequest.SmsParams> list = new ArrayList<>();
        CommonRequest.SmsParams smsParams = new CommonRequest.SmsParams();
        smsParams.setParam("product", "你好世界");
        smsParams.setParam("price", "9999");
        list.add(smsParams);
        request.putQueryParameter("TemplateParam", JSONObject.toJSONString(list));
        try {
            // 发送短信
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在以上示例代码中,需要在配置文件中设置以下参数:

aliyun.sms.access-key-id=your-access-key-id
aliyun.sms.access-key-secret=your-access-key-secret
aliyun.sms.region-id=cn-hangzhou
aliyun.sms.sign-name=your-sign-name
aliyun.sms.template-code=your-template-code
aliyun.sms.phone-numbers=your-phone-numbers
aliyun.sms.version=2017-05-25
aliyun.sms.domain=dysmsapi.aliyuncs.com
aliyun.sms.action-send-batch-sms=SendBatchSms

总结

本文以Springboot为基础,以阿里云短信服务为例,介绍了如何使用Java SDK来发送短信的代码实现。通过本文的示例代码,相信读者能够更加方便地使用阿里云短信服务。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot实现Java阿里短信发送代码实例 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 11行JS代码制作二维码生成功能

    当我们想要在网页上制作二维码时,可以使用JavaScript编写11行代码来实现,下面是详细步骤: 1. 引入Qrcode.js库 我们需要使用Qrcode.js库来生成二维码,因此首先需要将该库引入网页中。 <script src="https://cdn.bootcdn.net/ajax/libs/qrcodejs/1.0.0/qrcod…

    Vue 2023年5月27日
    00
  • Vue实现表格中对数据进行转换、处理的方法

    Vue实现表格中对数据进行转换和处理的方法有很多种,下面我将介绍其中两种常用的方法并提供示例说明。 方法一:使用计算属性 使用计算属性对表格中的数据进行转换和处理,只需要在Vue组件中定义一个带有get和set方法的计算属性。例如,我们可以在模板中绑定一个计算属性,这个计算属性会自动更新数据,并最终渲染到表格中。 <template> <t…

    Vue 2023年5月27日
    00
  • element如何初始化组件功能详解

    在使用Vue.js开发应用时,我们通常会使用Element UI这样的第三方UI组件库来快速搭建和设计我们的应用。Element UI提供了很多常用的UI组件和工具,如表单、按钮、弹窗、分页、图表等,以及主题定制等功能,方便了我们进行快速开发。但在使用之前,需要了解Element组件的初始化。 首先,我们需要安装Element UI,使用npm安装命令: n…

    Vue 2023年5月28日
    00
  • Vue.js项目前端多语言方案的思路与实践

    Vue.js是一款非常受欢迎的JavaScript框架,当我们在开发多语言网站时,很容易出现诸如语言统一、变量替换、复数、日期、货币、读取语言包等问题。本文旨在介绍一些有效的解决方案来简化多语言网站的管理和维护。 思路与实践 国际化插件 vue-i18n vue-i18n是一个用于Vue.js的国际化解决方案,它易于使用和维护,并且能够自动地将各种语言翻译成…

    Vue 2023年5月28日
    00
  • 关于element ui的菜单default-active默认选中的问题

    关于element ui的菜单default-active默认选中的问题: 1. 理解 default-active 属性 default-active 属性是 Element UI 中菜单组件 el-menu 的一个选项,作用是设置菜单默认选中的项。使用该属性时,只需将需要默认选中的菜单项的 index 值设置给 default-active 即可。 例如…

    Vue 2023年5月28日
    00
  • vue-cli3访问public文件夹静态资源报错的解决方式

    当我们使用Vue.js进行项目开发时,通常需要访问public文件夹中存放的一些静态资源,例如图片、音视频等。但是,有时我们在进行开发时可能会遇到访问public文件夹静态资源时报错的情况,如何解决呢?本文将为你详细讲解。 问题分析 在vue-cli3中,开发环境下引用相对路径的静态资源是没有问题的,但是当我们使用build之后的代码时,引用相对路径的静态资…

    Vue 2023年5月28日
    00
  • 在vue中如何使用Mock.js模拟数据

    在vue中使用Mock.js模拟数据,需要安装mockjs库,然后在vue组件中引入mockjs并编写mock数据接口。下面是具体的步骤: 安装mockjs 可以使用npm或者yarn进行安装: npm install mockjs –save-dev 引入mockjs 在vue组件引入mockjs,并编写mock数据接口,例如: import Mock …

    Vue 2023年5月27日
    00
  • 详解用webpack2.0构建vue2.0超详细精简版

    下面是详解“用webpack2.0构建vue2.0超详细精简版”的完整攻略。 一、安装依赖 在开始构建项目前,我们需要先安装相关依赖,执行以下命令: npm i webpack webpack-dev-server vue vue-loader vue-template-compiler css-loader style-loader file-loader…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部