阿里大于短信接口,实现发送验证码
第一次写博客,希望大家多多支持,不对之处还请多多谅解
准备工作:
注册账户
首先我们先进入“阿里大于” www.alidayu.com (https://dayu.aliyun.com/)
注册账号后,再在手机下载“阿里云”应用,登录,然后进行在线实名认证。
登录系统
使用刚才注册的账号进行登录。
点击进入控制台:
申请签名
申请模板
创建accesskeys
下载SDK及DEMO
下载地址:https://help.aliyun.com/document_detail/55359.html
用idea搭建一个maven的SpringBoot项目,这个非常简单。不太清除小伙伴可以百度一下,这里不做展示。
首先在pom文件中导入阿里大于短信接口的相关依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>3.2.8</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.1.0</version>
</dependency>
短信发送代码
/** 短信发送工具类 */
public class SmsSendUtil {
/** 产品名称:云通信短信API产品,开发者无需替换 */
private static final String PRODUCT = "Dysmsapi";
/** 产品域名,开发者无需替换 */
private static final String DOMAIN = "dysmsapi.aliyuncs.com";
// 签名KEY
private static final String ACCESS_KEY_ID = "签名KEY";
// 签名密钥
private static final String ACCESS_KEY_SECRET = "签名密钥";
// 短信模板ID: SMS_********
private static final String TEMPLATE_CODE = "SMS_****";
// 短信签名
private static final String SIGN_NAME = "****";
/**
* 发送短信验证码方法
* @param phoneNum 手机号码
* @param verify 验证码
* @return true: 成功 false: 失败
*/
public static boolean send(String phoneNum, String verify){
try {
/** 可自助调整超时时间 */
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
/** 初始化acsClient,暂不支持region化 */
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou",
ACCESS_KEY_ID,ACCESS_KEY_SECRET);
/** cn-hangzhou: 中国.杭州 */
DefaultProfile.addEndpoint("cn-hangzhou","cn-hangzhou",
PRODUCT, DOMAIN);
IAcsClient acsClient = new DefaultAcsClient(profile);
/** 组装请求对象*/
SendSmsRequest request = new SendSmsRequest();
// 必填: 待发送手机号
request.setPhoneNumbers(phoneNum);
// 必填: 短信签名-可在短信控制台中找到
request.setSignName(SIGN_NAME);
// 必填: 短信模板-可在短信控制台中找到
request.setTemplateCode(TEMPLATE_CODE);
/**
* 可选: 模板中的变量替换JSON串,
* 如模板内容为",您的验证码为${code}"
*/
request.setTemplateParam("{\"number\":\"" + verify + "\"}");
// hint 此处可能会抛出异常,注意catch
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
/** 判断短信是否发送成功 */
return sendSmsResponse.getCode() != null &&
sendSmsResponse.getCode().equals("OK");
}catch (Exception ex){
throw new RuntimeException(ex);
}
}
public static void main(String[] args) {
System.out.println(send("159********", "879657"));
}
执行main方法我们就可以在手机上收到短信啦
今天第一次写博客,明天继续写,加油。各位程序员,有什么不懂的,可以联系我1025499205@qq.com。
明天补充验证码存放与校验。