认证服务:整合短信验证码
前提提示
视频对应的阿里云短信服务需要企业验证,下面换一种阿里云的产品也是大同小异的
【三网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¶m=**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
认证服务:整合短信验证码相关推荐
- 若依RuoYi整合短信验证码登录
背景:若依默认使用账号密码进行登录,但是咱们客户需要增加一个短信登录功能,即在不更改原有账号密码登录的基础上,整合短信验证码登录. 一.自定义短信登录 token 验证 仿照 UsernamePass ...
- 谷粒商城11——认证服务、短信验证、Gitee-OAuth 社交登录、分布式session
文章目录 九.认证服务 1.短信验证码功能 2.短信验证模仿 3.验证码生成远程调用发送短信 4.验证码防刷检验 4.1 验证码的校验 4.2.4.3 验证码防刷 5.注册功能 5.1 封装表单vo ...
- 邮件、短信验证码和邮箱认证服务方案选型全指南
目录 背景 1. SendGrid 2. Mailgun 3.SendCloud 4.Kewail 5. Amazon SES 6. 阿里企业邮.腾讯企业邮.华为WeLink.新浪企业邮 7.总结 8 ...
- 短信验证码整合项目中 含消息服务器(分布式项目、activeMQ
分析 黑线:短信发送验证码的实现 红线:用户填写用户信息以及验证验证码是否正确完成注册 基本步骤(下面有详细实现: 前端controller 前端service 使用到web-user(war).se ...
- springboot整合redis实现发送短信验证码
我用的短信平台是阿里云的,需要付费购买服务,购买地址:https://common-buy.aliyun.com/?spm=5176.8195934.907839.sms6.312c4183mzE9Y ...
- SpringBoot整合手机短信验证码
手机短信验证码技术 1.流程图 前端点击发送手机验证码 后端判断恶意请求拦截[手机号码限制次数 - redis设置过期时间,自增 - 大于10次直接抛异常 - 没有做] 验证图形验证码是否正确,不正确 ...
- java实现发送短信验证码、短信验证码防刷校验-49
一:认证服务环境搭建 1.新建gulimail-auth-server 2.整合相关依赖 <!--引入commom依赖--><dependency><groupId> ...
- 还在开发短信验证码登录?试试(本机号码一键登录)
点击上方蓝字关注我们 技术总监面试,提问:Redis热点key解决方案 一. 关于秒验(一键登录)基本原理 秒验(一键登录)产品整合了三大运营商特有的数据网关认证能力,升级短信验证码体验,应用于用户注 ...
- API发送短信验证码
由于 阿里大于 的短信签名一直申请不通过,没办法只好用别的短信. 这次用的是朋友推荐的 haoservice ,价格和阿里云差不多,好处是: 1.第一次买的话可以买10块钱的,300条,也就是3分钱一 ...
最新文章
- 虚拟机linux 8.04汉化,在虚拟机中快速安装 Ubuntu 18.04
- SQL server的with的用法(一)
- myeclipse 重新关联项目和svn
- 腾讯牛逼,我酸了!!
- 十大经典排序算法(上)
- DoraemonKit一款功能齐全的Android研发助手
- c语言中ab代表什么,有些基金名称中含有AB或者C是什么意思,有什么区别的呢?...
- HDU2063-过山车[Hopcroft-Carp]二分图匹配
- alios下载_AliOS Studio下载
- 北邮 离散数学 期末必考题总结(含重点英文单词)
- 防止电子元器件烧坏那些要避的坑
- tensorflow tf.tile 使用教程·
- 微信小程序之头部选项卡和左侧选项卡
- 关于数加服装ERP软件/系统的功能模块与应用的介绍
- 就读体验丨香港科技大学工学院科技领导及创业(TLE)理学硕士学位课程(上)
- 基于联发科(MTK)MT8735平台的安卓4G全网通核心板
- 自然语言处理(NLP)编程实战-1.2 使用朴素贝叶斯实现情感分类
- 诺基亚:成也塞班 败也塞班
- java快速开发平台zcurd
- 简单的’网页留言板‘案列
热门文章
- vue 路由重定向_使用Vue和Vue路由器进行高级路由:重定向和Nav Guard
- tcp拥塞算法分析四(bbr)
- Codeforces Round #655 (Div. 2) A
- 大学毕业后转行软件测试我后悔了
- 全球与中国市场植物(HPMC)胶囊前景展望与十四五趋势预测报告2022年版
- 植物蛋白食品的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 建群网培PMP每日一练2020-7-29
- 【外设1】超声波传感器的驱动
- 构造方法可以被private修饰么?
- LOJ#538. 「LibreOJ NOIP Round #1」数列递推