目前阿里云短信签名审核更加严格了,如果不通过请转至《腾讯云短信申请与代码》,腾讯云简单易通过

记录申请短信服务签名的坑

短信服务签名申请注意事项:

自2020年12月17日开始,阿里云短信服务签名不能随便申请了,必须要有真实的网站名称、App、公众号、小程序主体,基本不对个人测试学习开放。本人这两天被拒绝了很多次,还好通过。我是有一个主体为本人的已经上线小程序,在提工单告诉售后工程师,提供证明小程序主体是本人的截图,先和售后工程师沟通好,然后再提交以上线小程序名字为短信签名。这样的话就可以申请通过。不然不提供任何证明是申请不通过的。这是最简单的学习方法,如果有自己备案的网站就更简单了。这个方法是给什么都没有的提供的。

短信模板就用系统默认的,随便选择一个,秒通过的

短信条数可以免费领取100条(三个月),做测试学习完全够用

编写代码

调用阿里云短信,返回成功将生成的验证码存入redis缓存中

pom.xml

       <!-- redis 缓存操作 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- pool 对象池 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency><!--短信功能需要的jar包依赖--><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>

application.yml

server:port: 9090#设置超时时间-可自行调整
sms:default:connect:timeout: sun.net.client.defaultConnectTimeoutread:timeout: sun.net.client.defaultReadTimeouttimeout: 10000##初始化ascClient需要的几个参数##短信API产品名称(短信产品名固定,无需修改)product: Dysmsapi#短信API产品域名(接口地址固定,无需修改)domain: dysmsapi.aliyuncs.com#accessKeyId accessKeySecretaccess:key:id: xxxxxxxxxxxxsecret: xxxxxxxxxx#模版CODEtemplate:code: xxxxxxxxsignname: "xxxxx"# redis 配置
spring:redis:# 地址host: localhost# 端口,默认为6379port: 6379# 数据库索引database: 0# 密码password: 123456# 连接超时时间timeout: 10slettuce:pool:# 连接池中的最小空闲连接min-idle: 0# 连接池中的最大空闲连接max-idle: 8# 连接池的最大数据库连接数max-active: 8# #连接池最大阻塞等待时间(使用负值表示没有限制)max-wait: -1ms

MessageUtils.java

/*** @author zqing* @description: TODO* @date: 2020/12/23 14:29*/
@Component
public class MessageUtils {@AutowiredRedisCacheUtils redis;@Value("${sms.default.connect.timeout}")private String DEFAULT_CONNECT_TIMEOUT;@Value("${sms.default.read.timeout}")private String DEFAULT_READ_TIMEOUT;@Value("${sms.timeout}")private String SMS_TIMEOUT;@Value("${sms.product}")private String SMS_PRODUCT;@Value("${sms.domain}")private String SMS_DOMAIN;@Value("${sms.access.key.id}")private String SMS_ACCESSKEYID;@Value("${sms.access.key.secret}")private String SMS_ACCESSKEYSECRET;@Value("${sms.template.code}")private String TEMPLATE_CODE;@Value("${sms.signname}")private String SMS_SIGNNAME;//短信模板中的验证码的变量codeprivate static String code;public AjaxResult getPhoneMsg(String phone) {if (phone == null || phone == "") {System.out.println("手机号为空");return null;}// 设置超时时间-可自行调整System.setProperty(DEFAULT_CONNECT_TIMEOUT, SMS_TIMEOUT);System.setProperty(DEFAULT_READ_TIMEOUT, SMS_TIMEOUT);// 初始化ascClient需要的几个参数final String product = SMS_PRODUCT;final String domain = SMS_DOMAIN;// 替换成你的AKfinal String accessKeyId = SMS_ACCESSKEYID;final String accessKeySecret = SMS_ACCESSKEYSECRET;// 初始化ascClient,暂时不支持多regionIClientProfile profile = DefaultProfile.getProfile("cn-hangzhou",accessKeyId, accessKeySecret);try {DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product,domain);//获取验证码code = vcode();IAcsClient acsClient = new DefaultAcsClient(profile);// 组装请求对象SendSmsRequest request = new SendSmsRequest();// 使用post提交request.setMethod(MethodType.POST);// 必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式request.setPhoneNumbers(phone);// 必填:短信签名-可在短信控制台中找到request.setSignName(SMS_SIGNNAME);// 必填:短信模板-可在短信控制台中找到request.setTemplateCode(TEMPLATE_CODE);// 可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为// 友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败request.setTemplateParam("{ \"code\":\"" + code + "\"}");// 可选-上行短信扩展码(无特殊需求用户请忽略此字段)// request.setSmsUpExtendCode("90997");// 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者//request.setOutId("yourOutId");// 请求失败这里会抛ClientException异常SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);if (sendSmsResponse.getCode() != null&& sendSmsResponse.getCode().equals("OK")) {// 请求成功//请求成功将验证码存入redisredis.setCacheObject("code",code,1, TimeUnit.MINUTES);return   AjaxResult.success("发送短信验证码成功");} else {return   AjaxResult.error(sendSmsResponse.getMessage());}} catch (Exception e) {e.printStackTrace();AjaxResult.error("获取短信验证码失败");}return null;}/*** 生成6位随机数验证码** @return*/public static String vcode() {String vcode = "";for (int i = 0; i < 6; i++) {vcode = vcode + (int) (Math.random() * 9);}return vcode;}}

源码: 下载

阿里云短信服务(申请与代码)相关推荐

  1. 阿里云短信服务实现免密登陆

    使用阿里云的短信服务,实现免密登陆. 一. 阿里云短信服务申请. 1.首先,得有个阿里云账号,在控制台找到短信服务. 2. 在签名管理中根据步骤添加签名,这个之后就是你验证码短信中最开始的[]中的内容 ...

  2. 如何通过阿里云短信服务来发送验证码短信(超详细)

    通过阿里云来创建自己产品的验证码 目录 通过阿里云来创建自己产品的验证码 前言: 一:注册阿里云账号 二:开通阿里云短信服务 三:测试类文件的编写 四:测试 后续:动态验证码的生成 前言: 短信验证码 ...

  3. SpringBoot-短信验证码-快速入门Demo(含redis)(手把手教你开通阿里云短信服务到写出个最终代码来)

    B站小狂神-此博客的内容就是看了这个视频的总结(博主自己写的哦~并非转载) 视频链接-[狂神说]通俗易懂的阿里云短信业务实战教程(露脸) 您是否还在为别人的项目有短信功能自己的却没有? 您是否还在为自 ...

  4. 阿里云短信服务详细说明与实战开发后端代码

    文章目录 1.短信服务背景 2.短信发送流程 3.阿里云短信服务基本说明 3.1 开通阿里云短信服务与购买短信套餐包 3.2 短信服务帮助文档 3.3 手机短信模板介绍 3.3.1 基本说明 3.3. ...

  5. 阿里云短信服务Java实现

    文章目录 1.阿里云用户权限 2.开通阿里云短信服务 3.帮助文档 4.编写测试代码 真实项目应用 1.阿里云用户权限 阿里云平台有很多业务,用户登录阿里云之后,要想使用业务,必须开通该业务的权限 登 ...

  6. vue+springboot+阿里云短信服务(集成redis实现验证码登录业务)

    阿里云短信服务-介绍 阿里云短信服务(Short Message Service)是广大企业客户快速触达手机用户所优选使用的通信能力.调用API或用群发助手,即可发送验证码.通知类和营销类短信:国内验 ...

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

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

  8. 阿里云短信服务初次试用

    阿里云短信服务简单使用 提前声明,本人只是简单的试用了一下,终究还是止步于阿里复杂的业务逻辑(与开发无关,api还是很简单的),不仅又想起当年试用阿里的服务器时的场景,以及前几天阿里云出问题的新闻.. ...

  9. 阿里云短信服务的使用方法

    本人个人博客地址https://www.lightingsui.com 介绍 最近由于项目的业务需要,想使用验证码登录系统,所以要找一个短信平台,第一目标就是阿里云的短信服务平台,说实话,之前在阿里云 ...

最新文章

  1. asp.net学习笔记·get与post区别
  2. CF 8D Two Friends (三分+二分)
  3. Azure正式对外发布容器服务,支持Swarm和Mesos
  4. 经验模式分解EMD算法原理
  5. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)
  6. 如何查看CO凭证号码及明细
  7. 为什么空格拷贝到linux 会变成两个
  8. kettle 内存设置_【转】kettle 的内存设置及输出日志的时间类型
  9. hibernate实战第二版 蒲成带目录_太NB了! 阿里程序员带你玩转Spring:脑图+实战五+面试百问+知识总结...
  10. 解构控制反转(IoC)和依赖注入(DI)
  11. “37岁,年薪50万,一夜被裁”:伪上班,毁掉了多少中国年轻人
  12. UIAlertController中TextField的用法
  13. 使用servlet技术与前端进行交互,出现乱码的解决方案,创建一个类,如下:
  14. 【Windows】多显示器亮度调节工具 - Monitorian
  15. 价值函数与贝尔曼方程
  16. linux怎么样用终端打开百度,linux下用终端访问百度网站.doc
  17. 花千骨歌曲大全 附简谱
  18. Cesium之地形(1)
  19. android手机分辨率适配,Android屏幕适配(一)
  20. 240Hz 1ms 电竞屏看起来怎么样 — ZOWIE XL2540 评测

热门文章

  1. 基于 python 的语音识别 API 调用
  2. Facebook账号被封了怎么办?这份账号申诉指南请收好
  3. 开始撸lodash源码
  4. Wireline SerDes,高速信号的均衡技术
  5. 用TinySpider进行网页抓取实例
  6. Windows10/11登录免密码
  7. PointCloudLibrary点云库介绍
  8. 头条php,基于PHP的免费新闻头条接口查询
  9. 在轮询系统如何将A站订单在B站自动建立,并调用B站产品
  10. mysql 5.7.11 安装教程,MySQL数据库之mysql 5.7.11 安装配置教程