天翼短信发送三方接口对接

由于最近家里有些事情,推迟了一些时间编写,还请各位博友见谅,最近工作上碰到一个新的需求就是,天翼短信验证码发送,以及模板短信的功能。为了让大家今后遇到了,少走弯路今天我们就先来谈谈天翼短信验证码功能。

首先我们需要进入天翼开发平台查看文档,一下就是链接地址http://open.189.cn/index.php?m=api&c=index&a=show&id=667#1。

然后下载demo,这是demo链接地址http://open.189.cn/index.php?m=api&c=index&a=show&id=498

通过这个地址我们可以看到短信验证码下发分为三步:

1.获取令牌参数

2.获取信任码

3.就是重中之重了获取短信验证码

当然完成这三步,你一定会很开心,我完成这个功能了,手机能收到短信了,也返回成功信息了,当然我这里说的是成功获取成功的返回值的情况,如果连返回值都不正确,那么不好意思可能是你前面还没写对。再去检查检查,这里我的建议是一步一步来做。每个都获取正确以后,应该是没有问题的。如果出来了不要高兴的太早你只完成了一半。

“什么才一半,你在逗我?我验证码都接收到了,json返回的也是正确的,你居然说我才完成了一半,骗人的吧?”没骗你哦,

你一定没看到这句话,这是回调url,即当你对天翼发送请求后,天翼会对你请求的手机号发送验证码。并且,记住是并且,我这里是对第一次弄这个,而且语文不是很好的同学说的,大家不要计较,因为我第一次弄就在这栽了好久。天翼会对你请求的手机号发送验证码,然后对你之前填的url传参数 即为 短信验证码中的验证码和验证码对应的 序列号。这里的序列号与成功后获取的序列号是同一个,也就是你要通过序列号去查询验证码 并与手机验证码相比对。至于怎么比对同学们开发你们的思维吧。

下面是我获取令牌和信任码的代码 有需要的可以看一看

/**
* 发送手机验证码

* @param phone
* @return
* @throws Exception
*/
public static String SendMobilePhoneVerificationCode(String phone) {
String _captchas = "";
try {
Properties _properties = PropertiesUtil.getProperties("/parms.properties");
String _appid = _properties.getProperty("APPID").toString(); // 应用编号
String _appsecret = _properties.getProperty("APPSECRET").toString(); // 应用密匙
String _url = _properties.getProperty("URL").toString(); // 应用密匙
String _postUrl = _properties.getProperty("POSTURL").toString(); // 提交地址
String _postEntity = _properties.getProperty("POSTENTITY").toString(); // 提交参数

/*String _postEntity =
"grant_type=" + "client_credentials"
+ "&app_id=" + _appid
+ "&app_secret=" + _appsecret;*/

Date _date = new Date();
SimpleDateFormat _sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String _timestamp = _sdf.format(_date);
System.err.println(_timestamp);


// 获取通行证令牌
String _access_token = new JSONObject(HttpInvoker.httpPost(_postUrl, null, _postEntity)).get("access_token").toString();

// 获取验证信任码
TreeMap<String, String> _tokenparamsmap = new TreeMap<String, String>();
_tokenparamsmap.put("app_id", _appid);
_tokenparamsmap.put("access_token", _access_token);
_tokenparamsmap.put("timestamp", _timestamp);

String getUrl =
"http://api.189.cn/v2/dm/randcode/token?app_id=" + _appid
+ "&access_token=" + _access_token
+ "&timestamp=" + _timestamp
+ "&sign=" + ParamsSign.value(_tokenparamsmap, _appsecret);

String _token = new JSONObject(HttpInvoker.httpGet(getUrl)).get("token").toString();


// 获取手机验证码
TreeMap<String, String> _captchasparamsmap = new TreeMap<String, String>();
_captchasparamsmap.put("app_id", _appid);
_captchasparamsmap.put("access_token", _access_token);
_captchasparamsmap.put("token", _token);
_captchasparamsmap.put("phone", phone);
_captchasparamsmap.put("url", _url + "?phone=" + phone); // 由开发者实现的验证码通知接口
_captchasparamsmap.put("exp_time", "2");
_captchasparamsmap.put("timestamp", _timestamp);

_postUrl = "http://api.189.cn/v2/dm/randcode/send";
_postEntity =
"app_id=" + _appid
+ "&access_token=" + _access_token
+ "&token=" + _token
+ "&phone=" + phone
+ "&url=" + _url + "?phone=" + phone // 由开发者实现的验证码通知接口
+ "&exp_time=" + "2"
+ "&timestamp=" + _timestamp
+ "&sign=" + ParamsSign.value(_captchasparamsmap, _appsecret);

_captchas = HttpInvoker.httpPost(_postUrl, null, _postEntity);
} catch (Exception e) {
// TODO: handle exception
_captchas = "Self Application Verification Exception..."; //自应用验证异常...
}
return _captchas;
}

本文为作者亲身经历。拿出与同学们共同分享,希望大家珍惜,如有需要转载,请注明作者和出处谢谢。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
天翼网是中国联通旗下的一个网络平台,可以提供多种服务,包括在线购物、游戏、音乐等。要登陆天翼网,首先需要拥有一个有效的天翼网账号。对于初次登陆的用户,需要先在天翼网注册一个账号。注册过程可以通过访问天翼网的官方网站,在注册页面填写个人信息并选择一个用户名和密码来完成。注册成功后,用户就可以使用该账号来登陆天翼网。 在使用Python进行天翼网登陆的过程中,我们可以借助第三方库来帮助我们完成。一个常用的库是`requests`库,可以方便地发送HTTP请求。首先,我们需要使用`requests`库发送一个GET请求,来获取天翼网的登陆页面。然后,我们从响应中获取到页面的HTML内容,并使用解析库(如`Beautiful Soup`)来解析HTML,找到表单的相关信息,例如表单的action地址、表单输入框的name等。接下来,我们使用`requests`库发送一个POST请求,将表单的相关信息和用户输入的用户名和密码作为请求参数发送天翼网的登陆接口。如果登陆成功,我们会得到一个响应,可以通过判断响应的内容或者状态码来确定是否成功登陆。 需要注意的是,天翼网的登陆接口可能会有一些保护措施,例如使用验证码或者防止机器人登陆的验证机制。在使用Python进行天翼网登陆时,我们需要根据实际情况来应对这些验证机制,可能需要通过手动输入验证码或者模拟与验证机制的交互来完成登陆过程。 总之,使用Python登陆天翼网需要先注册账号,然后使用第三方库`requests`发送GET和POST请求来模拟登陆过程,同时需要注意处理验证机制的问题。希望这个回答能对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值