php天翼开放平台短信发送接口实现方法


Posted in PHP onDecember 22, 2014

本文实例讲述了php天翼开放平台短信发送接口实现方法。分享给大家供大家参考。具体分析如下:

临时性需求,研究了一下天翼开发平台的东西,用来发送验证码还是不错的,但是每日限额不多,所以很鸡肋,但是保证100%到达 买的话还是蛮贵的,代码没有做任何优化处理,只是测试是否可以实现接口,用的同学记得完善代码,刚写完老大又说是鸡肋的东西,不用了,代码放在博客记录下,代码如下:

<?php 

// 

date_default_timezone_set('PRC'); 

//获取access_token 

$data = "app_id=x&app_secret=x&grant_type=client_credentials"; 

$ch = curl_init("https://oauth.api.189.cn/emp/oauth2/v2/access_token"); 

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 

curl_setopt($ch,CURLOPT_POST,1);//使用post提交数据 

curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//设置 post提交的数据 

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

// 从证书中检查SSL加密算法是否存在 

 

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 

$access_token = curl_exec($ch); 

curl_close($ch); 

$access_token = json_decode($access_token,true); 

//获取短信信任码  

$timestamp = date('Y-m-d H:i:s'); 

 

$param['app_id'] = "app_id=x"; 

$param['access_token'] = "access_token=".$access_token['access_token']; 

$param['timestamp'] = "timestamp=".$timestamp; 

ksort($param); 

$plaintext = implode("&",$param); 

$sign = rawurlencode(base64_encode(hash_hmac('sha1',$plaintext,app_secret,true))); 

//echo $sign;exit; 

$code = file_get_contents("http://api.189.cn/v2/dm/randcode/token?app_id=x&access_token={$access_token['access_token']}×tamp=".$timestamp."&sign=".$sign); 

$code = json_decode($code,true); 

$code = $code['token']; 

echo $code; 

//下发验证码 

unset($param,$plaintext,$sign); 

$param['app_id'] = "app_id=x"; 

$param['access_token'] = "access_token=".$access_token['access_token']; 

$param['token'] = "token=".$code; 

$param['phone'] = "phone=15091421612"; 

$param['url'] = "url=http://wx.podapi.com/test.php"; 

$param['exp_time'] = "exp_time=2"; 

$param['timestamp'] = "timestamp=".$timestamp; 

ksort($param); 

$plaintext = implode("&",$param); 

$sign = rawurlencode(base64_encode(hash_hmac('sha1',$plaintext,'xx',true))); 

 

$data = "app_id=x&access_token={$access_token['access_token']}&token={$code}&phone=15091421612&url=http://wx.podapi.com/test.php&exp_time=2×tamp={$timestamp}&sign=".$sign; 

$ch = curl_init("http://api.189.cn/v2/dm/randcode/send"); 

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 

curl_setopt($ch,CURLOPT_POST,1);//使用post提交数据 

curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//设置 post提交的数据 

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

// 从证书中检查SSL  加密算法是否存在 

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 

$state = curl_exec($ch); 

//var_dump(curl_getinfo($ch)); 

curl_close($ch); 

//echo $state; 

?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
php cc攻击代码与防范方法
Oct 18 PHP
浅析php中jsonp的跨域实例
Jun 21 PHP
destoon实现调用热门关键字的方法
Jul 15 PHP
自定义session存储机制避免会话保持问题
Oct 08 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
Mar 19 PHP
fckeditor上传文件按日期存放及重命名方法
May 22 PHP
如何使用php实现评委评分器
Jul 31 PHP
CI(Codeigniter)的Setting增强配置类实例
Jan 06 PHP
PHP实现文件上传功能实例代码
May 18 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
Laravel框架实现超简单的分页效果示例
Feb 08 PHP
php进行支付宝开发中return_url和notify_url的区别分析
Dec 22 #PHP
WebQQ最新登陆协议的用法
Dec 22 #PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 #PHP
php有道翻译api调用方法实例
Dec 22 #PHP
php匹配字符中链接地址的方法
Dec 22 #PHP
php用户注册时常用的检验函数实例总结
Dec 22 #PHP
CentOS6.5 编译安装lnmp环境
Dec 21 #PHP
You might like
目录,文件操作详谈―PHP
2006/11/25 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
初始Nodejs
2014/11/08 NodeJs
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
2020/04/16 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
Python中的CURL PycURL使用例子
2014/06/01 Python
Python fileinput模块使用介绍
2014/11/30 Python
python多线程用法实例详解
2015/01/15 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
什么是servlet
2012/05/08 面试题
中学校庆方案
2014/03/17 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书