由于工作需要,特此记录一下
一、阿里云设置签名和模板
阿里云登陆注册我就不说了,登陆之后 首页搜索 短信服务
点击 短信服务 控制台
点击 国内消息 我们需要添加一个签名和模板
签名和模板需要审核,一般两小时内审核。
模板管理
上图的签名名称和模板CODE待会会使用到。
二、云账号 AccessKey
添加一个AccessKey 也就是待会对接阿里云API所需的秘钥
点击 创建AccessKey 它会生成一个 AccessKey ID 和 AccessKey Secret
复制保存这两个生成的字符串,待会对接会使用到
三、Springboot 集成阿里云短信
阿里云其实提供了完整的详细对接文档,如果有需要的朋友可以去查看官网文档,博主也是按照官方文档来进行配置
- 导入依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>2.0.7</version>
</dependency>
-
application.yml配置
-
对应配置类
-
编写工具类 我直接贴代码了
public class SMSUtil {
private static final Log log = LogFactory.get();
//发送短信
public static boolean send(String mobile){
Client client = createClient();
JSONObject param = randomCode();
SendSmsRequest request = createRequest(mobile,JSONObject.toJSONString(param));
JSONObject jsonObject = null;
try {
SendSmsResponse response = client.sendSms(request);
jsonObject = (JSONObject) JSONObject.parseObject(JSONObject.toJSONString(response)).get("body");
System.out.println(jsonObject);
if(jsonObject.get("code").equals(Constant.SMS.SUCCESS_CODE)){
log.info("阿里云短信发送成功!手机号:【{}】 -- 验证码:【{}】 -- {}",mobile,param.get("code"),DateUtil.now());
return true;
}
} catch (Exception e) {
log.error("阿里云短信发送出现异常:{}",e.getMessage());
return false;
}
log.info("阿里云短信发送失败!手机号:【{}】 -- 验证码:【{}】 -- {}",mobile,param.get("code"), DateUtil.now());
return false;
}
/**
* 创建请求客户端
* @return Client
*/
private static Client createClient(){
Client client = null;
Config config = new Config()
// 您的AccessKey ID
.setAccessKeyId(AliSMSConfig.id)
// 您的AccessKey Secret
.setAccessKeySecret(AliSMSConfig.key);
config.endpoint = AliSMSConfig.endPoint;
try {
client = new Client(config);
} catch (Exception e) {
e.printStackTrace();
}
return client;
}
/**
* 创建请求
* @param mobile 接受手机号
* @return SendSmsRequest
*/
private static SendSmsRequest createRequest(String mobile,String param){
return new SendSmsRequest()
.setPhoneNumbers(mobile)
.setSignName(Constant.SMS.COMMON_SIGN_NAME)//此填写签名名称
.setTemplateCode(Constant.SMS.TEMPLATE_CODE_TWO)//此填写模板CODE
.setTemplateParam(param);//验证码参数为json字符串格式 {"code":"xxxxxx"}
}
/**
* 随机6位验证码
* @return code
*/
private static JSONObject randomCode(){
StringBuilder code = new StringBuilder();
Random random = new Random();
for (int i = 0; i < 6; i++) {
int r = random.nextInt(10);
code.append(r);
}
JSONObject param = new JSONObject();
param.put("code",code.toString());
return param;
}
}
- 测试
测试没问题,手机成功接收到短信,大功告成哈哈哈!!!
代码其实并不多,只要按照官方文档来进行配置还是很轻松的。