发送短信验证码(天翼开放平台)
此文章使用天翼开发平台(模板短信)接口
API请求地址:
http://api.189.cn/v2/emp/templateSms/sendSms
响应格式:
POST
请求参数:
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
app_id | true | string | 应用ID,开发者创建应用时,天翼开放平台会为应用自动分配此ID,开发者进入”管理中心”,在“应用详情”中可查看app_id。 |
access_token | true | string | 访问令牌,是调用平台能力接口的通行证,可通过调用”令牌接口”获得。 |
acceptor_tel | true | string | 接收方号码,不支持0打头的号码 |
template_id | true | string | 短信模板ID,到短信模板申请页面查看 |
template_param | true | obejct | 模板匹配参数,参数格式为(json对象字符串): {参数名:参数值,参数名:参数值} |
timestamp | true | string | 时间戳,格式为:yyyy-MM-dd HH:mm:ss |
sign | true | string |
请求参数示例:
POST http://api.189.cn/v2/emp/templateSms/sendSms
POST data:
acceptor_tel=13123185312&template_id=91000001&template_param={"日报":"nihao","晚报":"nidao","url":"www.baidu.com"}&app_id=418839000000031xxx&access_token=c49fabf158e25985ed1284a75716a9b9137067210xxxx×tamp=2013-09-06+16%3A07%3A42
响应结果:
参数名 | 类型及范围 | 说明 |
---|---|---|
res_code | string | 同步结果代码,返回0表示成功,其它值标识失败,后续在定义 |
res_message | string | 成功返回:Success;错误返回:错误信息 |
identifier | string | 成功返回:短信唯一标识;错误返回:返回空 |
响应参数说明:
res_code:同步结果代码,返回0表示成功,其它值标识失败,后续在定义
res_message:成功返回:Success;错误返回:错误信息
identifier:成功返回:短信唯一标识;错误返回:返回空
响应结果示例:
JSON
{"res_code": "0","res_message": "Success","identifier": "000000001"
}
令牌接口:
请求地址:
https://oauth.api.189.cn/emp/oauth2/v3/access_token
承载协议:
HTTPS
请求方式:
POST
参数名 | 必选 | 类型 | 说 明 |
---|---|---|---|
grant_type | true | string | 此值必须为“client_credentials” |
app_id | true | string | 应用注册时分配的应用ID |
app_secret | true | string | 申请应用时分配的应用密钥 |
state | false | string | 用于跟踪调用状态。在响应消息中将会原封不动的返回该值 |
scope | false | string | 权限列表,保留字段,默认为空 |
请求范例:CC授权模式下的UIAT访问令牌获取
https://oauth.api.189.cn/emp/oauth2/v3/access_token
使用POST方法传参:
grant_type=client_credentials&
app_id=1234567890&
app_secret=abcdefghijk
成功应答范例:返回UIAT访问令牌
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"USER_INDEPENDENT_ACCESS_TOKEN",
"expires_in":9999,
“res_code”:0,
“res_message”:”Success”
}
失败应答范例:
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{“res_code”:10009,“res_message”:”Access denied”
}
以上都是天翼开发平台的一些文档帮助说明
下面是令牌接口与短信发送接口代码
令牌接口
public class AccessToken {//接口private static final String ACCESSTOKEN_URL = "https://oauth.api.189.cn/emp/oauth2/v3/access_token";//此值必须为“client_credentials”private static final String GRANT_TYPE="client_credentials";//应用注册时分配的应用IDprivate static final String APP_ID="这里是你申请的APPID";//申请应用时分配的应用密钥private static final String APP_SECRET="这里是你申请的应用ID";// 用于跟踪调用状态。在响应消息中将会原封不动的返回该值private static String state = "";// 权限列表,保留字段,默认为空private static String scope = "";public static String getAccessToken() {String accessToken = "";try {URL postURL = new URL(ACCESSTOKEN_URL);HttpURLConnection httpURLConnection = (HttpURLConnection) postURL.openConnection();httpURLConnection.setDoOutput(true);httpURLConnection.setDoInput(true);httpURLConnection.setRequestMethod("POST");httpURLConnection.setUseCaches(false);httpURLConnection.setInstanceFollowRedirects(true);httpURLConnection.setRequestProperty(" Content-Type ", " application/x-www-form-urlencoded ");String postEntity = "grant_type=" + GRANT_TYPE + "&app_id=" + APP_ID + "&app_secret=" + APP_SECRET;DataOutputStream out = new DataOutputStream(httpURLConnection.getOutputStream());out.writeBytes(postEntity);out.flush();out.close(); // flush and close
// connection.connect();BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));StringBuilder sbStr = new StringBuilder();String line;while ((line = bufferedReader.readLine()) != null) {sbStr.append(line);}bufferedReader.close();httpURLConnection.disconnect();//获取返回结果转成json 解析获取accesstoken值JSONObject resultJson =JSONObject.parseObject(new String(sbStr.toString().getBytes(), "utf-8"));String code=resultJson.get("res_code").toString();//成功 返回 Oif("0".equals(code)) {accessToken = resultJson.get("access_token").toString();}} catch (IOException e) {e.printStackTrace();}return accessToken;}// public static void main(String[] agrs) {// AccessToken accessToken=new AccessToken();
// System.out.println(accessToken.getAccessToken());
// }
}
短信发送
public class SendSms {//发送验证信息请求地址private static final String SMS_URL = "http://api.189.cn/v2/emp/templateSms/sendSms";//应用ID,开发者创建应用时,天翼开放平台会为应用自动分配此ID,开发者进入"管理中心",在“应用详情”中可查看app_id。private static final String APP_ID = "这里是你申请的APPID";//短信模板ID,到短信模板申请页面查看private static final String TEMPLATE_ID="这里是你申请的短信模板ID";//截至时间格式private static final String DATEFORMAT="yyyy-MM-dd HH:mm:ss";//访问令牌,是调用平台能力接口的通行证,可通过调用"令牌接口"获得。private static String access_token = "";//接收方号码,不支持0打头的号码private static String acceptor_tel = "";//模板匹配参数,参数格式为(json对象字符串): {参数名:参数值,参数名:参数值}private static String template_param;//时间戳,格式为:yyyy-MM-dd HH:mm:ssprivate static String timestamp="";//参数签名private static String sign="";/*** 发送验证码,验证码有效时间3分钟* @param nickName* @param tel* @return*/public static String sendSMS(String nickName,String tel,int timeout) {JSONObject json=null;//令牌access_token = AccessToken.getAccessToken();//截至时间timestamp =getTimesTamp(timeout);//参数String code=createCode();template_param =setTemplateParam(nickName,code, timeout);//发送手机号acceptor_tel =tel;StringBuffer sb = new StringBuffer();sb.append("acceptor_tel="+acceptor_tel);sb.append("&template_id=" + TEMPLATE_ID);sb.append("&template_param=" + template_param);sb.append("&app_id=" + APP_ID);sb.append("&access_token=" + access_token);sb.append("×tamp=" + timestamp);try {URL postURL = new URL(SMS_URL);HttpURLConnection httpURLConnection = (HttpURLConnection) postURL.openConnection();httpURLConnection.setDoOutput(true);httpURLConnection.setDoInput(true);httpURLConnection.setRequestMethod("POST");httpURLConnection.setUseCaches(false);httpURLConnection.setInstanceFollowRedirects(true);httpURLConnection.setRequestProperty(" Content-Type ", " application/x-www-form-urlencoded ");DataOutputStream out = new DataOutputStream(httpURLConnection.getOutputStream());out.writeBytes(sb.toString());out.flush();out.close(); // flush and close
// connection.connect();BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));StringBuilder sbStr = new StringBuilder();String line;while ((line = bufferedReader.readLine()) != null) {sbStr.append(line);}bufferedReader.close();httpURLConnection.disconnect();json=JSONObject.parseObject(new String(sbStr.toString().getBytes(), "utf-8"));json.put("code",code);} catch (IOException e) {e.printStackTrace();}return json.toJSONString();}//设置参数//这里参数是你申请短信模板时候可以定义的参数//参数1 参数2 参数3 是我定义的参数//这里分别是 用户名 ,验证码,过期分钟数private static String setTemplateParam(String nickName,String code,int timeOut){JSONObject param=new JSONObject();param.put("参数1",nickName);param.put("参数2",code);param.put("参数3",timeOut);return param.toJSONString();}//获取截至时间private static String getTimesTamp(int timeout){Calendar nowTime = Calendar.getInstance();nowTime.add(Calendar.MINUTE, timeout);return new SimpleDateFormat(DATEFORMAT).format(nowTime.getTime());}//生成4位验证码private static String createCode() {int code=(int)(Math.random()*9000+1000);return code + "";}// public static void main(String [] args){// System.out.println(sendSMS("用户名", "手机号码", 过期时间数));
// }
这就OK了
就写这么多吧,有什么问题可以留言,下班了,今天要搬家.苦逼啊…….~.~!!
发送短信验证码(天翼开放平台)相关推荐
- JAVA实现利用第三方平台发送短信验证码
前段时间自己做的一个小项目中,涉及到用短信验证码登录.注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来. 本文以注册为例, ...
- JAVA利用第三方平台发送短信验证码
本文以注册为例,在SpringMVC+Spring+Mybatis框架的基础上完成该短信验证码功能. 发送短信验证码的原理是:随机生成一个6位数字,将该6位数字保存到session当中,客户端通过se ...
- 发送短信验证码到手机(阿里大于平台) java
使用Eclipse通过阿里大于发送短信验证码至手机 第一次撰写博客,如有不足望提出且多多见谅! 最近项目当中需要用到手机验证码功能.所以一直都在找一家比较不错的短信平台,然而现在短信平台鱼龙混杂,还真 ...
- JAVA利用第三方平台发送短信验证码。
前段时间自己做的一个小项目中,涉及到用短信验证码登录.注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来. 本文以注册为例, ...
- java短信验证平台_JAVA实现利用第三方平台发送短信验证码
前段时间自己做的一个小项目中,涉及到用短信验证码登录.注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来. 本文以注册为例, ...
- java + maven 实现发送短信验证码功能
如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenzikj.com/doc/sdk.html ...
- 使用腾讯云模板发送短信验证码
目录 学习目标: 学习内容: 学习时间: 学习过程: demo结构图: 效果图: 配置准备: 依赖pom.xml application.properties: application.yml 腾讯云 ...
- 使用极光推送发送短信验证码
发送短信验证码 1.获取AppKey和Master Secret 2.设置短信模板和短信签名 3.开始服务端接口的实现 1.获取AppKey和Master Secret 首先应有一个极光推送官网的账号 ...
- Java用户注册服务器发送短信验证码功能实现
<–start–> 当客户端发送了http的请求给服务器之后,服务器获取手机号然后调用短信平台给该手机号发送短信验证码. 给服务器发送请求的js代码: <script type=&q ...
最新文章
- gprs发送信号对方如何接收_和接收缓冲区比较:Netty发送缓冲区是如何设计的,why?...
- 在 Windows 内核上运行 Docker 靠谱吗?专家六问六答帮你解惑!
- Java 8的6个问题
- 【杂谈】梦想与饼干,AI是你的谁?
- 先驱者? 革新者? 再谈《超级马力欧64》的设计魅力
- 解决xp登陆域很慢的方法
- java eclipse oxygen_Eclipse Java Oxygen配置Tomcat
- linux系统平均价格,简单认识Linux系统平均负载
- 100层楼扔2个鸡蛋、3个鸡蛋……
- WSL : llvm、clang 和XTP
- ajax里的data的用法,Jquery中ajax方法data参数的用法
- 移动网络安装测试软件,adsl网速测试(中国移动宽带专用测速软件)
- 网页无插件播放RTSP流媒体
- Python相关分析—一个金融场景的案例实操
- 我的世界做计算机运算原理,我的世界加法计算器原理解说及BCD全加器教程
- AtCode ABC069 C-4-adjacent
- dva开发框架简介和演示
- PMP每日一题(集锦)
- 生产环境RedisCPU飙高怎么办
- Hyperledger Fabric2中文文档-修改通道配置
热门文章
- Android-jni(10)-jni调用java父类方法
- 计算机组装实训写总结,计算机组装维护实训总结.doc
- ENGLISH资料收集(3)-英语日期的正确表达
- 第五人格显示连接服务器失败怎么办,第五人格提示重新连接服务器怎么办 连接服务器失败解决方法...
- 7个实用的Python自动化代码,别再重复造轮子了!
- shiro 集成swagger,anon不生效问题
- Swift-Tips之rounded(_:)
- xmind下载安装电脑版教程
- 《操作系统真象还原》第十三章 ---- 编写硬盘驱动软件 行百里者半九十终成时喜悦溢于言表
- Widget Extention开发笔记