1.引入对应的阿里云短信依赖

 <!--阿里云短信--><dependency><groupId>com.aliyun</groupId><artifactId>dysmsapi20170525</artifactId><version>2.0.8</version></dependency>

2.实现案例

map.put("code",ValidateCodeUtils.generateValidateCode4String(4));

ValidateCodeUtils.generateValidateCode4String(4):这是代码生成器,如果你想自定义验证码也可以选择更改。例如:“你是好人”

package com.hp.ssmr.util;import com.alibaba.fastjson.JSONObject;
import com.aliyun.dysmsapi20170525.models.*;
import com.aliyun.teaopenapi.models.*;import java.util.HashMap;
import java.util.Map;public class SMSUtils {private static String [] SMS_TEMPLATE ={"短信模板id","短信模板id"};/*** 使用AK&SK初始化账号Client* @return Client* @throws Exception*/public static com.aliyun.dysmsapi20170525.Client createClient() throws Exception {Config config = new Config()// 您的AccessKey ID.setAccessKeyId("AK")// 您的AccessKey Secret.setAccessKeySecret("AKS");// 访问的域名config.endpoint = "dysmsapi.aliyuncs.com";return new com.aliyun.dysmsapi20170525.Client(config);}/*** @param map   手机号和需要填写内容map* @param smsIndex  短信模板的下标 0验证码 1 预约成功通知* @throws Exception*/public static SendSmsResponseBody smsCode(Map<String,Object> map,int smsIndex) throws Exception {com.aliyun.dysmsapi20170525.Client client = SMSUtils.createClient();SendSmsRequest sendSmsRequest = new SendSmsRequest().setPhoneNumbers(map.get("phone").toString())//接收人手机号.setSignName("点鲜")//签名.setTemplateCode(SMS_TEMPLATE[smsIndex])//短信模板id.setTemplateParam(JSONObject.toJSONString(map));//短信模板中的参数以json字符串的格式传递// 复制代码运行请自行打印 API 的返回值SendSmsResponse response = client.sendSms(sendSmsRequest);SendSmsResponseBody body = response.getBody();System.out.println(body.getBizId());//BizIdSystem.out.println(body.getCode());//状态码System.out.println(body.getMessage());//说明System.out.println(body.getRequestId());//return body;}//调用的案例public static void main(String[] args_) throws Exception {Map<String,Object> map = new HashMap<>();map.put("code",ValidateCodeUtils.generateValidateCode4String(4));com.aliyun.dysmsapi20170525.Client client = SMSUtils.createClient();SendSmsRequest sendSmsRequest = new SendSmsRequest().setPhoneNumbers("15039939677").setSignName("点鲜").setTemplateCode("SMS_102660011").setTemplateParam(JSONObject.toJSONString(map));// 复制代码运行请自行打印 API 的返回值SendSmsResponse response = client.sendSms(sendSmsRequest);SendSmsResponseBody body = response.getBody();System.out.println(body.getBizId());System.out.println(body.getCode());System.out.println(body.getMessage());System.out.println(body.getRequestId());System.out.println(body.toString());}
}

验证码生成器:


/*** 随机生成验证码工具类*/
public class ValidateCodeUtils {/*** 随机生成验证码* @param length 长度为4位或者6位* @return*/public static Integer generateValidateCode(int length){Integer code =null;if(length == 4){code = new Random().nextInt(9999);//生成随机数,最大为9999if(code < 1000){code = code + 1000;//保证随机数为4位数字}}else if(length == 6){code = new Random().nextInt(999999);//生成随机数,最大为999999if(code < 100000){code = code + 100000;//保证随机数为6位数字}}else{throw new RuntimeException("只能生成4位或6位数字验证码");}return code;}/*** 随机生成指定长度字符串验证码* @param length 长度* @return*/public static String generateValidateCode4String(int length){Random rdm = new Random();String hash1 = Integer.toHexString(rdm.nextInt());String capstr = hash1.substring(0, length);return capstr;}
}

阿里云短信(必须有备案的域名)相关推荐

  1. springboot整合阿里云短信验证(无需签名和模板,通过阿里云api测试实现短信验证)

    一.开通阿里云短信服务 开通步骤如下图所示 开通完成后,进入阿里云短信验证首页,点击国内消息 一般来说,在短信验证时需要签名管理和模板管理,但是签名管理需要备案或者上线服务,所以对于没有备案和上线应用 ...

  2. 阿里云短信服务(申请与代码)

    目前阿里云短信签名审核更加严格了,如果不通过请转至<腾讯云短信申请与代码>,腾讯云简单易通过 记录申请短信服务签名的坑 短信服务签名申请注意事项: 自2020年12月17日开始,阿里云短信 ...

  3. 单点登录常见解决方式和阿里云短信服务

    1 单点登录(SSO) 三种常见方式: 1.1 第一种:session广播机制实现(已淘汰) 概念:就是session复制,一个模块登录后,该模块session存放用户登录信息,再把该session复 ...

  4. [风一样的创作]二次封装阿里云短信 验证码 发送短信 查询短信 编辑短信

    1.首先要注册阿里云,购买阿里云短信服务,拿到AccessKey ID和AccessKey Secret 链接: https://usercenter.console.aliyun.com/#/man ...

  5. 2022如何使用个人阿里云短信服务?

    点击登录阿里云短信服务控制台--->点击  添加签名  这里需要注意的时,因为现在阿里云管控的比较严格!!!要求申请之前必须有已经注册备案过的域名网站在使用!!!如果没有,就没必要往下面看了. ...

  6. 微信小程序云开发,使用阿里云短信服务,搜索员工生日定期发送短信。

    相关API文档地址: 阿里云短信服务API文档地址 小程序云开发云函数正则匹配API文档地址 小程序云开发云函数定时触发器 1.登录阿里云,购买短信服务并添加签名和模板 2., 登录阿里云,鼠标放在右 ...

  7. 阿里云短信验证解决方案(java版)(redis存储)

    阿里云短信验证解决方案(java版)(redis存储) 参考文章: (1)阿里云短信验证解决方案(java版)(redis存储) (2)https://www.cnblogs.com/Amos-Tur ...

  8. 阿里云短信发送触发天级流量及解决办法

    前言 今天小项目里引入了阿里云短信.调试过程中,突然不发短信了.发现接口返回信息,触发天级流量限制.以下是原因和解决办法. 原因 短信发送有默认的频率限制 限制如下: 短信验证码 :使用同一个签名,对 ...

  9. legend3---PHP使用阿里云短信服务

    legend3---PHP使用阿里云短信服务 一.总结 一句话总结: 使用步骤照官方文档,代码拷贝即可 1.php使用阿里云短信服务的步骤? 入驻阿里云->开通短信服务->获取Access ...

最新文章

  1. 【神经网络】(16) MobileNetV3 代码复现,网络解析,附Tensorflow完整代码
  2. 基于Tkinter利用python实现颜色空间转换程序
  3. win7下安装docker
  4. ssl双向认证_SSL握手协议不清楚?vTrus为你讲解其详细流程
  5. 北京理工大学计算机学院 王亮,王 亮
  6. 解决Qt创建项目后只有.pro文件问题
  7. 微信和Python之间,还能这样玩,你所不知道的骚操作!
  8. Feature Tools:可自动构造机器学习特征的Python库
  9. 我的邮局系统,欢迎大家注册!hotxf.com
  10. 同一交换机的不同VLAN如何隔离?
  11. Android 手把手带你玩转自己定义相机
  12. 盘点2018:数据和云最受欢迎的十大精品文章
  13. 力扣904,水果成篮(JavaScript)
  14. 位置度标注方法图解_追踪主力-散户操盘实战图解:操盘手法分析
  15. GCC Spec Files
  16. 微软面试智力题 (附答案)
  17. 阿里云网络和安全配置实验(云计算)
  18. ubuntu——sudo权限问题(sudo:/etc/sudoers is world writable sudo:no valid sudoers sources found,quitting..)
  19. i5 13500怎么样相当于什么水平级别
  20. 怎么删除批注mysql_如何去掉 Word 文档修订和批注和不显示已删除内容

热门文章

  1. 由建站学linux第2课 --- 阿里云的使用
  2. 聪明的女人不吸烟不喝酒
  3. Threejs之粒子动画/点击交互
  4. 知衣科技应用 TensorFlow 建立服装搜索系统
  5. OM1、OM2、OM3、OM4、OM5 和 OS1、OS2 光纤
  6. unity3d学习笔记(五)--结合Mecanim实现怪物AI
  7. Matlab 画颜色不同的 分段折线图
  8. 关于tiktok参数msToken,X-Bogus,_signature生成
  9. js前端根据链接生成二维码并转成图片下载
  10. 冬天论、拐点论都是扯淡