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 相关文章推荐
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
PHP OPCode缓存 APC详细介绍
Oct 12 PHP
PHP学习之字符串比较和查找
Apr 17 PHP
基于header的一些常用指令详解
Jun 06 PHP
php防止恶意刷新与刷票的方法
Nov 21 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
Jan 04 PHP
php使用MySQL保存session会话的方法
Jun 26 PHP
PHP封装的Twitter访问类实例
Jul 18 PHP
YII Framework框架教程之日志用法详解
Mar 14 PHP
Windows2003下php5.4安装配置教程(IIS)
Jun 30 PHP
利用Laravel事件系统如何实现登录日志的记录详解
May 20 PHP
php微信公众号开发之微信企业付款给个人
Oct 04 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时间格式控制符对照表分享
2013/07/23 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
PHP获取当前日期及本周一是几月几号的方法
2017/03/28 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jQuery Password Validation密码验证
2016/12/30 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
vue2.0实现前端星星评分功能组件实例代码
2018/02/12 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
vue 实现websocket发送消息并实时接收消息
2019/12/09 Javascript
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python Django批量导入不重复数据
2016/03/25 Python
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
django session完成状态保持的方法
2018/11/27 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
Python 创建TCP服务器的方法
2020/07/28 Python
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
方法名是否可以与构造器的名字相同
2012/06/04 面试题
私有程序集与共享程序集有什么区别
2013/04/05 面试题
上班睡觉检讨书
2014/01/09 职场文书
校庆口号
2014/06/20 职场文书
低碳环保演讲稿
2014/08/28 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
汽车4S店前台接待岗位职责
2015/04/03 职场文书
党员反腐倡廉学习心得体会
2015/08/15 职场文书