Java实现短信验证码功能(利用容联云,个人测试,不需要项目上线)
前提:
开发环境:jdk1.8 + idea2020
准备工作:
1.登录容联云官网https://www.yuntongxun.com
2. 按照提示注册一个容联云账号
3. 注册完成点击控制台如下页面
需要记住:ACCOUNT SID,AUTH TOKEN,AppID,后面的程序中会用到
4.点击左侧应用管理,点击创建应用
5,点击编辑,勾选短信验证码,短信通知即可
6,点击测试号码,填写自己的手机号即可,到此容联云工作基本完成
Java代码:
可以参考容联云主页 ➡️ 开发文档 ➡️ 短信开发手册 里面有关于java开发的代码
我的java程序如下:
1. 利用maven导入依赖
<dependencies><dependency><groupId>com.cloopen</groupId><artifactId>java-sms-sdk</artifactId><version>1.0.4</version></dependency></dependencies>
2.
package com.amazon.platform.common.utils;
import com.cloopen.rest.sdk.BodyType;
import com.cloopen.rest.sdk.CCPRestSmsSDK;
import java.util.HashMap;
import java.util.Set;public class AuthCodeUtil {public static void main(String[] args) {authCode("前端输入的手机号");}public static void authCode(String phoneNumber){//生产环境请求地址:app.cloopen.comString serverIp = "app.cloopen.com";//请求端口String serverPort = "8883";//主账号,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKENString accountSId = "输入你账户里面的ACCOUNT SId";String accountToken = "主账号令牌AUTH TOKEN";//请使用管理控制台中已创建应用的APPIDString appId = "管理控制台中已创建应用的APPID";CCPRestSmsSDK sdk = new CCPRestSmsSDK();sdk.init(serverIp, serverPort);sdk.setAccount(accountSId, accountToken);sdk.setAppId(appId);sdk.setBodyType(BodyType.Type_JSON);//随机生成6位数字验证码String code = String.valueOf(Math.random()).substring(2, 8);System.out.println("随机生成的6位验证码是: " + code);String to = phoneNumber;String templateId= "1";String[] datas = {code,"10"};
// String subAppend="1234"; //可选 扩展码,四位数字 0~9999
// String reqId="fadfafas"; //可选 第三方自定义消息id,最大支持32位英文数字,同账号下同一自然天内不允许重复//HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas);HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas);if("000000".equals(result.get("statusCode"))){//正常返回输出data包体信息(map)HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");Set<String> keySet = data.keySet();for(String key:keySet){Object object = data.get(key);System.out.println(key +" = "+object);}}else{//异常返回输出错误码和错误信息System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+result.get("statusMsg"));}}
}
3.注意:这里的String templateId= "1";是我使用的模版是1,你可以根据自己的需要进行更改,里面的code随机验证码,10代表,有效期10分钟
String templateId= "1";
String[] datas = {code,"10"};
4.这段代码代表随机生成6位验证码,自己可以根据需要进行更改
//随机生成6位数字验证码String code = String.valueOf(Math.random()).substring(2, 8);System.out.println("随机生成的6位验证码是: " + code);
总结:
个人理解:第三方短信验证码逻辑:
java程序生成验证码(4位,6位等等)-> 第三方平台 -> 发送短信给手机 -> 然后前段用户输入验证码 -> java程序进行校验
java程序还需要根据我们设置的过期时间进行比较校验
Java实现短信验证码功能(利用容联云,个人测试,不需要项目上线)相关推荐
- Java配置短信验证码功能实现录
Java配置短信验证码功能实现录 1.准备: 1.注册登录腾讯云(搜索短信,进入相应控制页面) 2.有一个对应的Spring项目 2.腾讯云相关操作: 1.进入腾讯云→国内短信→签名管理 2.创建签名 ...
- python控制手机发短信_python-在python3中使用容联云通讯发送短信验证码
2020-08-15更新 今天进容联云官网发现其已经更新了最新版的Python SDK,可以直接 pip install ronglian_sms_sdk 即可安装使用,具体新的使用方法可以查看官网案 ...
- go 服务接入短信验证码功能(对接阿里云平台)
简介 短信验证码还是比较常用的功能,已经有了很成熟的方案,本篇介绍的是对接阿里云的短信服务,一条短信大概两分钱. 基本的流程是: 到对应的云平台申请权限,大致费用都差不多 照着官方文档进行对接,并集成 ...
- Django验证码*短信验证码之2-容联云通讯短信平台(联云通讯短信平台介绍、容联云通讯Python SDK、封装发送短信单例类)
容联云通讯短信平台介绍 容联云通讯网址:https://www.yuntongxun.com/ 容联云管理控制台 容联云创建应用 容联云通讯Python SDK https://doc.yuntong ...
- java短信验证码功能发送的验证码如何校验_java 实现发送短信验证码功能
原标题:java 实现发送短信验证码功能 如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenz ...
- java短信验证码功能发送的验证码如何校验_Java实现发送短信验证码功能
一个发送短信验证码的功能,使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口( ...
- 阿里云——Java实现手机短信验证码功能
目录 如何实现短信验证码功能 1.准备工作 1.1 注册 阿里云 账号,并完成实名认证.找到短信服务功能. 1.2 开通短信服务 1.3 签名与模板 1.4 获取AccessKey 1.5 打开短信控 ...
- java短信内容加链接_Java加腾讯云实现短信验证码功能
准备工作 1.选择服务 2.添加应用:我已经添加完了 3.点击应用名称 4.出现ID和Key 5.编辑短信创建签名 6.在第5步后 使用到的jar包: qcloudsms-1.0.2.jar com. ...
- Java实现短信验证码--(完整教程)
原 Java实现短信验证码--(完整教程) 2018年04月24日 13:03:12 北山_ 阅读数 19189更多 分类专栏: Java 阿里云 版权声明:本文为博主原创文章,遵循 CC 4.0 B ...
- Mob实现短信验证码功能
1.各类第三方短信功能对比 1.一直想做一个Android短信验证码功能,但是由于业务上没有需求,还有就是短信验证码原来一直以为是收费的,就没做过,今天上网查了一下,好多第三方SDK. 网易云短信验证 ...
最新文章
- 对软连接进行cp,rm
- 肝!精心整理了 50 个数据源网站!
- fpu测试_I510400性能及温度测试详解
- linux 进程开始与终止
- javascript乘法和加法_js 大整数加法、乘法、除法
- Linux学习之基本介绍
- python-main
- OpenVDB:梦工厂的有效存储和处理离散在三维网格上的稀疏体积数据C++库
- 【转】Qt中的QString,QByteArray,Qchar, char*
- 华科计算机系研究生遗书,看完华中科大研究生遗书《狗血的研究生生涯》,泪目了!有话要说...
- 基于visual Studio2013解决C语言竞赛题之0203格式化输出
- Golang闭包的典型应用
- CCF201909-5 城市规划【树形DP】(100分题解链接)
- 数据预处理—4.为什么要趋近于正态分布?详解
- 互联网金融业务中的风控
- Matlab深度学习工具箱的使用
- setImageResource导致的ANR
- 文件共享服务器热备,两台云服务器如何实现双机热备
- android ip查看工具,安卓手机查看IP地址的两种方法
- 人工智能之知识图谱概述(一)
热门文章
- 最新苹果商务管理ABM注册及使用
- 计算机启动时检测硬盘,电脑总是启动检测硬盘怎么办
- jquery 基础教程[温故而知新二]
- 单片机开发,推荐开源跨平台的SDCC编译器
- Python-个人笔记-Tensorflow-PINN-Plotting
- ai画面怎么调大小_Adobe Illustrator(Ai)里怎么改变图像大小,快捷键是什么?
- 关于printf的输出——进制转换
- 论文阅读 -- unsupervised triplet hashing for fast image retrieval笔记
- Python对excel合并单元格
- 2021智能零售领域最具商业合作价值企业盘点