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获取当前网址url并替换参数或网址的方法
Jun 06 PHP
PHP编码规范的深入探讨
Jun 06 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
PHP实现原比例生成缩略图的方法
Feb 03 PHP
Laravel实现自定义错误输出内容的方法
Oct 10 PHP
PHP递归实现快速排序的方法示例
Dec 18 PHP
PHP的PDO预定义常量讲解
Jan 24 PHP
PHP设计模式之组合模式定义与应用示例
Feb 01 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 PHP
php提高脚本性能的4个技巧
Aug 18 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+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
PHP通过API获取手机号码归属地
2015/05/28 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
Python学习小技巧总结
2018/06/10 Python
对python:print打印时加u的含义详解
2018/12/15 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
Python如何执行系统命令
2020/09/23 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
最新党员的自我评价分享
2013/11/04 职场文书
银行门卫岗位职责
2013/12/29 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
交通事故案件代理词
2015/05/23 职场文书
国情备忘录观后感
2015/06/04 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
vue实现Toast组件轻提示
2022/04/10 Vue.js