php天翼开放平台短信发送接口实现方法
本文实例讲述了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-dH: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程序设计有所帮助。