首先,我们要先进入阿里云的官网开通产品和短信服务拿到accesskeyid和accesskeysecret
以及签名名称和模板id
具体获取阿里云id等方式参考官网
链接:阿里云-上云就上阿里云
导入maven依赖:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>2.0.4</version>
</dependency>
把拿到的accesskeyid和accesskeysecret以及从官网拿到写入的签名名称和模板id设为私有常量
//密钥accesskeyid
private static String ACCESSKEYID = "**************************";
//密钥accesskeysecret
private static String ACCESSKEYSECRET = "*************************";
//短信签名名称
private static String SIGN_NAME="***";
//短信模板ID
private static String TEMPLATE_CODE="***";
下面开始正文:
第一步:封装生成随机六位数的方法,下面附上生成随机六位数工具类
//传入几就会生成几位验证码
public static String getAuthCode(int number){
StringBuffer sb = new StringBuffer();
for (int i = 0; i < number; i++) {
int random = (int) (Math.random() * 9);
sb.append(random);
}
return sb.toString();
}
//调用上面方法生成6位验证码放入实体类对象并转成json格式进行返回
//实体类转json工具类类可以在网上搜一下,有很多
public static String getAuthCode(){
//生成六位随机验证码,并把验证码转成json,存入缓存
String authCode = EncryptUtil.getAuthCode(6);
AutoCode autoCode = new AutoCode();
autoCode.setCode(authCode);
String s = JacksonUtil.toJsonStr(autoCode);
return s;
}
第二步:把拿到的accesskeyid和accesskeysecret放入阿里的连接中
public static Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
Config config = new Config()
.setAccessKeyId(accessKeyId)
.setAccessKeySecret(accessKeySecret);
// 访问的域名
config.endpoint = "dysmsapi.aliyuncs.com";
return new Client(config);
}
第三步:发送短信具体逻辑
//传入要发送的手机号进行发送短信
public static String sendSms(String phone) throws Exception {
//生成jsonCode随机数字符串
String authCode = getAuthCode();
//调用短信
Client client = SmsUtil.createClient(ACCESSKEYID, ACCESSKEYSECRET);
SendSmsRequest sendSmsRequest = new SendSmsRequest()
.setPhoneNumbers(phone)
//短信签名名称
.setSignName(SIGN_NAME)
//短信模板ID
.setTemplateCode(TEMPLATE_CODE)
//json验证码
.setTemplateParam(authCode);
//运行
SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);
//拿到返回的基本数据并打印
SendSmsResponseBody body = sendSmsResponse.body;
SmsUtil.gethash(null,body);
return authCode;
}
第四步:发送短信
public static void main(String[] args_) throws Exception {
//单条短信发送方法
sendSms("***********");
}
这样最简单的发送短信就完成了
官网里还有批量发短信还有短信回调
如果各位小伙伴在发送出现问题或者想要批量发短信或短信回调及时评论,小编会不定时查看并回复,愿各位码农都能成为公司仰慕的大佬~