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 相关文章推荐
php生成静态文件的多种方法分享
Jul 17 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
Jun 30 PHP
php实现的常见排序算法汇总
Sep 08 PHP
PHP实现HTML生成PDF文件的方法
Nov 07 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
PHP数据对象PDO操作技巧小结
Sep 27 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
Nov 25 PHP
php实现用户注册密码的crypt加密
Jun 08 PHP
PHP 二维array转换json的实例讲解
Aug 21 PHP
PHP使用Redis实现Session共享的实现示例
May 12 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
Jun 19 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
Apr 06 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 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
jQuery入门基础知识学习指南
2015/08/14 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
Python devel安装失败问题解决方案
2020/06/09 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
2020/10/19 Python
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
波兰购物网站:MALL.PL
2019/05/01 全球购物
德国足球商店:OUTFITTER
2019/05/06 全球购物
介绍下Lucene建立索引的过程
2016/03/02 面试题
高中微机老师自我鉴定
2014/02/16 职场文书
2015年教师节活动总结
2015/03/20 职场文书
JavaScript 防篡改对象的用法示例
2021/04/24 Javascript