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 20 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
php函数之子字符串替换&amp;#65279; str_replace
Mar 23 PHP
使用php get_headers 判断URL是否有效的解决办法
Apr 27 PHP
php记录代码执行时间(实现代码)
Jul 05 PHP
php检测useragent版本示例
Mar 24 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
Dec 05 PHP
php 使用array函数实现分页
Feb 13 PHP
PHP编写daemon process详解及实例代码
Sep 30 PHP
为你的 Laravel 验证器加上多验证场景的实现
Apr 07 PHP
PHP+Mysql分布式事务与解决方案深入理解
Feb 27 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/10/09 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
php判断正常访问和外部访问的示例
2014/02/10 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
js left,right,mid函数
2008/06/10 Javascript
javascript onmouseout 解决办法
2010/07/17 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
js强制把网址设为默认首页
2015/09/29 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
vue如何从接口请求数据
2017/06/22 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
[05:24]TI9采访——教练
2019/08/24 DOTA
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
Python创建数字列表的示例
2019/11/28 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
Python模块相关知识点小结
2020/03/09 Python
python如何保存文本文件
2020/06/07 Python
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
化工工艺设计求职信
2014/06/25 职场文书
单位委托书怎么写
2014/08/02 职场文书
5.12护士节活动总结
2015/02/10 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
2022/04/06 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js