前提提示

视频对应的阿里云短信服务需要企业验证,下面换一种阿里云的产品也是大同小异的

【三网106短信】短信接口-短信验证码-短信通知-会员短信群发-短信平台API接口-行业短信_支持携号转网_自定义签名和模板【最新版】_实名认证接口/API_身份证接口/API_银行卡认证-云市场-阿里云 (aliyun.com)

分析讲解

名称

类型

是否必须

描述

mobile

STRING

必选

需要发送的手机号。(同一手机号码,同一签名验证码,一分钟一次,频率过快可能会导致运营商系统屏蔽,用户无法正常接收。)

param

STRING

可选

短信模板变量替换。(字符串格式:**key**:value,**key**:value。例如:**code**:12345,**minute**:5。如模板中有多个变量请使用英文逗号隔开。建议对参数进行URLEncode编码,以免出现乱码等异常情况)

smsSignId

STRING

必选

短信前缀ID(签名ID),可在控制台申请。——【1】测试前缀ID:2e65b1bb3d054466b82f0c9d125465e2;【2】测试签名限流规则,同一个号码,1分钟1次,1小时5次,24小时10次,不支持大量商用;【3】控制台&签名和模板申请教程:http://help.guoyangyun.com/Problem/Qm.html

templateId

STRING

必选

短信正文ID(模板ID),可在控制台申请。—— 测试ID请用:908e94ccf08b4476ba6c876d13f084ad,对应短信正文为 {验证码:**code**,**minute**分钟内有效,请勿泄漏于他人!}

错误码

错误信息

描述

1204

签名未报备

可在控制台申请 —— 【控制台&签名和模板申请教程】http://help.guoyangyun.com/Problem/Qm.html

1205

签名不可用

签名一般为:公司名简称、产品名、商城名称、网站名称、APP名称、系统名称、公众号、小程序名称等等。不可以是纯数字、电话号码或者无意义的签名,如:【温馨提示】【测试】【你好】等;

1302

短信内容包含敏感词

短信内容包含敏感词

1304

短信内容过长

短信内容实际长度=短信签名+短信内容。(短信计费方式:70字内按1条计费,超出按67字每条计费;一个汉字、数字、字母、符号都算一个字;带变量短信按实际替换后的长度计费)

1320

模板ID不存在

可在控制台申请 —— 【控制台&签名和模板申请教程】http://help.guoyangyun.com/Problem/Qm.html

1403

手机号码不正确

手机号码不正确

1905

验证未通过

验证未通过

curl -i -k -X POST 'https://gyytz.market.alicloudapi.com/sms/smsSend?mobile=mobile&param=**code**%3A12345%2C**minute**%3A5&smsSignId=2e65b1bb3d054466b82f0c9d125465e2&templateId=908e94ccf08b4476ba6c876d13f084ad'  -H 'Authorization:APPCODE 你自己的AppCode'//smsSignId(短信前缀)和templateId(短信模板),可登录国阳云控制台自助申请。参考文档:http://help.guoyangyun.com/Problem/Qm.html

正常返回示例

{"msg": "成功", "smsid": "16565614329364584123421",  //批次号。可通过该ID查询发送状态或者回复短信。API接口可联系客服获取。"code": "0","balance": "1234"  //账户剩余次数
}

失败返回示例

{"code":"XXXX","msg":"错误提示内容","ILLEGAL_WORDS":["XX","XX"]    // 如有则显示// 1、http响应状态码对照表请参考:https://help.aliyun.com/document_detail/43906.html;// 2、如果次数用完会返回 403,Quota Exhausted,此时继续购买就可以;// 3、如果appCode输入不正确会返回 403,Unauthorized;
}

java代码落地

SmsComponent类

@Data
@ConfigurationProperties(prefix = "spring.alicloud.sms")
@Component
public class SmsComponent {private  String host;private  String path;private  String templateId;private  String smsSignId;private  String appcode;public void sendSmsCode(String phone,String code){String host = "https://gyytz.market.alicloudapi.com";String path = "/sms/smsSend";String method = "POST";String appcode = "9a0f9ce1ac154e108d00aade73e1bd3b";Map<String, String> headers = new HashMap<String, String>();//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105headers.put("Authorization", "APPCODE " + appcode);Map<String, String> querys = new HashMap<String, String>();querys.put("mobile", phone);querys.put("param", "**code**:+"+code+",**minute**:666");//smsSignId(短信前缀)和templateId(短信模板),可登录国阳云控制台自助申请。参考文档:http://help.guoyangyun.com/Problem/Qm.htmlquerys.put("smsSignId", "2e65b1bb3d054466b82f0c9d125465e2");querys.put("templateId", "ea66d14c664649a69a19a6b47ba028db");Map<String, String> bodys = new HashMap<String, String>();try {HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);System.out.println(response.toString());//获取response的body//System.out.println(EntityUtils.toString(response.getEntity()));} catch (Exception e) {e.printStackTrace();}}}

 //smsSignId(短信前缀)和templateId(短信模板),可登录国阳云控制台自助申请。参考文档:http://help.guoyangyun.com/Problem/Qm.html 

配置类相关代码

 spring.cloud.alicloud.sms.host=https://gyytz.market.alicloudapi.com
spring.cloud.alicloud.sms.path=/sms/smsSend
spring.cloud.alicloud.sms.templateId=ea66d14c664649a69a19a6b47ba028db
spring.cloud.alicloud.sms.smsSignId=2e65b1bb3d054466b82f0c9d125465e2
spring.cloud.alicloud.sms.appcode=9a0f9ce1ac154e108d00aade73e1bd3b

认证服务:整合短信验证码相关推荐

  1. 若依RuoYi整合短信验证码登录

    背景:若依默认使用账号密码进行登录,但是咱们客户需要增加一个短信登录功能,即在不更改原有账号密码登录的基础上,整合短信验证码登录. 一.自定义短信登录 token 验证 仿照 UsernamePass ...

  2. 谷粒商城11——认证服务、短信验证、Gitee-OAuth 社交登录、分布式session

    文章目录 九.认证服务 1.短信验证码功能 2.短信验证模仿 3.验证码生成远程调用发送短信 4.验证码防刷检验 4.1 验证码的校验 4.2.4.3 验证码防刷 5.注册功能 5.1 封装表单vo ...

  3. 邮件、短信验证码和邮箱认证服务方案选型全指南

    目录 背景 1. SendGrid 2. Mailgun 3.SendCloud 4.Kewail 5. Amazon SES 6. 阿里企业邮.腾讯企业邮.华为WeLink.新浪企业邮 7.总结 8 ...

  4. 短信验证码整合项目中 含消息服务器(分布式项目、activeMQ

    分析 黑线:短信发送验证码的实现 红线:用户填写用户信息以及验证验证码是否正确完成注册 基本步骤(下面有详细实现: 前端controller 前端service 使用到web-user(war).se ...

  5. springboot整合redis实现发送短信验证码

    我用的短信平台是阿里云的,需要付费购买服务,购买地址:https://common-buy.aliyun.com/?spm=5176.8195934.907839.sms6.312c4183mzE9Y ...

  6. SpringBoot整合手机短信验证码

    手机短信验证码技术 1.流程图 前端点击发送手机验证码 后端判断恶意请求拦截[手机号码限制次数 - redis设置过期时间,自增 - 大于10次直接抛异常 - 没有做] 验证图形验证码是否正确,不正确 ...

  7. java实现发送短信验证码、短信验证码防刷校验-49

    一:认证服务环境搭建 1.新建gulimail-auth-server 2.整合相关依赖 <!--引入commom依赖--><dependency><groupId> ...

  8. 还在开发短信验证码登录?试试(本机号码一键登录)

    点击上方蓝字关注我们 技术总监面试,提问:Redis热点key解决方案 一. 关于秒验(一键登录)基本原理 秒验(一键登录)产品整合了三大运营商特有的数据网关认证能力,升级短信验证码体验,应用于用户注 ...

  9. API发送短信验证码

    由于 阿里大于 的短信签名一直申请不通过,没办法只好用别的短信. 这次用的是朋友推荐的 haoservice ,价格和阿里云差不多,好处是: 1.第一次买的话可以买10块钱的,300条,也就是3分钱一 ...

最新文章

  1. 虚拟机linux 8.04汉化,在虚拟机中快速安装 Ubuntu 18.04
  2. SQL server的with的用法(一)
  3. myeclipse 重新关联项目和svn
  4. 腾讯牛逼,我酸了!!
  5. 十大经典排序算法(上)
  6. DoraemonKit一款功能齐全的Android研发助手
  7. c语言中ab代表什么,有些基金名称中含有AB或者C是什么意思,有什么区别的呢?...
  8. HDU2063-过山车[Hopcroft-Carp]二分图匹配
  9. alios下载_AliOS Studio下载
  10. 北邮 离散数学 期末必考题总结(含重点英文单词)
  11. 防止电子元器件烧坏那些要避的坑
  12. tensorflow tf.tile 使用教程·
  13. 微信小程序之头部选项卡和左侧选项卡
  14. 关于数加服装ERP软件/系统的功能模块与应用的介绍
  15. 就读体验丨香港科技大学工学院科技领导及创业(TLE)理学硕士学位课程(上)
  16. 基于联发科(MTK)MT8735平台的安卓4G全网通核心板
  17. 自然语言处理(NLP)编程实战-1.2 使用朴素贝叶斯实现情感分类
  18. 诺基亚:成也塞班 败也塞班
  19. java快速开发平台zcurd
  20. 简单的’网页留言板‘案列

热门文章

  1. vue 路由重定向_使用Vue和Vue路由器进行高级路由:重定向和Nav Guard
  2. tcp拥塞算法分析四(bbr)
  3. Codeforces Round #655 (Div. 2) A
  4. 大学毕业后转行软件测试我后悔了
  5. 全球与中国市场植物(HPMC)胶囊前景展望与十四五趋势预测报告2022年版
  6. 植物蛋白食品的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  7. 建群网培PMP每日一练2020-7-29
  8. 【外设1】超声波传感器的驱动
  9. 构造方法可以被private修饰么?
  10. LOJ#538. 「LibreOJ NOIP Round #1」数列递推