首先你需要登录阿里云的短信服务平台,https://www.aliyun.com/product/sms?spm=5176.12825654.1kquk9v2l.1.1f7e2c4avOrZhx&aly_as=5IHIf3uYw 注册,登录,申请开通短信服务。然后点击管理控制平台,点击右边的accesskey。

点击开始使用子账户的accesskey,

自己管理自己的登录名称,显示名称,然后下面两个打勾。然后你就有自己的AccessKey ID 和AccessKeySecret, 复制保存好。然后点击用户,添加权限。系统策略里面搜索dys,两个都添加上吧。


然后找到这个页面签名管理和模板管理里面申请签名名称和模板CODE。下面开始代码阶段。。
首先你要自己引入阿里云的短信jar包
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.1.0</version>
</dependency>
写好自己的配置文件,signName就是你ide签名名称模板CODE就是下面那个verifyCodeTemplate。然后你自己的keyid和keysecret输进去就好了。
leyou:
sms:
accessKeyId: xxxxxxxxxxxxx
accessKeySecret: xxxxxxxxxxxx
signName: xxxx
verifyCodeTemplate: xxxxxxxxxx通过下面这个方法读取配置文件中的参数。
/*
* 读取配置文件
*
* */
@ConfigurationProperties(prefix = "leyou.sms")
public class SmsProperties {
String accessKeyId;
String accessKeySecret;
String signName;
String verifyCodeTemplate;
public String getAccessKeyId() {
return accessKeyId;
}
public void setAccessKeyId(String accessKeyId) {
this.accessKeyId = accessKeyId;
}
public String getAccessKeySecret() {
return accessKeySecret;
}
public void setAccessKeySecret(String accessKeySecret) {
this.accessKeySecret = accessKeySecret;
}
public String getSignName() {
return signName;
}
public void setSignName(String signName) {
this.signName = signName;
}
public String getVerifyCodeTemplate() {
return verifyCodeTemplate;
}
public void setVerifyCodeTemplate(String verifyCodeTemplate) {
this.verifyCodeTemplate = verifyCodeTemplate;
}
}最后就是我们的发送短信的代码了
@Component
@EnableConfigurationProperties(SmsProperties.class) //开启自动配置,读取配置文件中的参数
public class SmsUtils {
@Autowired
private SmsProperties prop;
public void sendSms(String phone, String code, String signName, String verifyCodeTemplate) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", prop.getAccessKeyId(), prop.getAccessKeySecret());
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setMethod(MethodType.POST);//默认post提交
request.setDomain("dysmsapi.aliyuncs.com");//阿里默认的domain
request.setVersion("2017-05-25"); //版本号
request.setAction("SendSms");//这个参数作用未知
request.putQueryParameter("RegionId", "cn-hangzhou");
request.putQueryParameter("PhoneNumbers", phone);
request.putQueryParameter("SignName", signName);
request.putQueryParameter("TemplateCode", verifyCodeTemplate);
//短信验证码 我一开始不知道,老是报错,说我json格式有问题,后来才反应过来必须这样拼接成json格式的字符串
request.putQueryParameter("TemplateParam", "{\"code\":\"" + code + "\"}");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}水平有限,不知道有没有其他BUG。。。
版权声明:本文为u010740881原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。