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 相关文章推荐
snoopy PHP版的网络客户端提供本地下载
Apr 15 PHP
php后台程序与Javascript的两种交互方式
Oct 25 PHP
PHP的preg_match匹配字符串长度问题解决方法
May 03 PHP
PHP中array_map与array_column之间的关系分析
Aug 19 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
php采集内容中带有图片地址的远程图片并保存的方法
Jan 03 PHP
php中switch语句用法详解
Aug 17 PHP
PHP读书笔记_运算符详解
Jul 01 PHP
php递归函数怎么用才有效
Feb 24 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
Aug 03 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 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
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
JS 数组随机洗牌的实例代码
2018/09/12 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
js实现打字小游戏
2019/12/17 Javascript
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
用Python生成器实现微线程编程的教程
2015/04/13 Python
Python的组合模式与责任链模式编程示例
2016/02/02 Python
python 自动去除空行的实例
2018/07/24 Python
详解Python中is和==的区别
2019/03/21 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
成教毕业生自我鉴定
2013/10/23 职场文书
数控机械专业个人的自我评价
2014/01/02 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
机关职员工作检讨书
2014/10/23 职场文书
介绍信怎么写
2015/01/30 职场文书
财务总监岗位职责
2015/02/03 职场文书
入团介绍人意见范文
2015/06/04 职场文书
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
以下牛机,你有几个
2022/04/05 无线电