当前位置:首页 > PHP教程 > php高级应用 > 列表

php天翼开放平台短信发送接口实现

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-22 10:59:50 浏览: 评论:0 

临时性需求,研究了一下天翼开发平台的东西,用来发送验证码还是不错的,但是每日限额不多,所以很鸡肋,但是保证100%到达 买的话还是蛮贵的,代码没有做任何优化处理,只是测试是否可以实现接口,用的同学记得完善代码,刚写完老大又说是鸡肋的东西,不用了,代码放在博客记录下,代码如下:

  1. <?php 
  2. // 
  3. date_default_timezone_set('PRC'); 
  4. //获取access_token 
  5. $data = "app_id=x&app_secret=x&grant_type=client_credentials"
  6. $ch = curl_init("https://oauth.api.189.cn/emp/oauth2/v2/access_token"); 
  7. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
  8. curl_setopt($ch,CURLOPT_POST,1);//使用post提交数据 
  9. curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//设置 post提交的数据 
  10. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
  11. // 从证书中检查SSL加密算法是否存在 
  12.  
  13. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
  14. $access_token = curl_exec($ch); 
  15. curl_close($ch); 
  16. $access_token = json_decode($access_token,true); 
  17. //获取短信信任码 www.phpfensi.com 
  18. $timestamp = date('Y-m-d H:i:s'); 
  19.  
  20. $param['app_id'] = "app_id=x"
  21. $param['access_token'] = "access_token=".$access_token['access_token']; 
  22. $param['timestamp'] = "timestamp=".$timestamp
  23. ksort($param); 
  24. $plaintext = implode("&",$param); 
  25. $sign = rawurlencode(base64_encode(hash_hmac('sha1',$plaintext,app_secret,true))); 
  26. //echo $sign;exit; 
  27. $code = file_get_contents("http://api.189.cn/v2/dm/randcode/token?app_id=x&access_token={$access_token['access_token']}&timestamp=".$timestamp."&sign=".$sign); 
  28. $code = json_decode($code,true); 
  29. $code = $code['token']; 
  30. echo $code
  31. //下发验证码 
  32. unset($param,$plaintext,$sign); 
  33. $param['app_id'] = "app_id=x"
  34. $param['access_token'] = "access_token=".$access_token['access_token']; 
  35. $param['token'] = "token=".$code
  36. $param['phone'] = "phone=15091421612"
  37. $param['url'] = "url=http://wx.podapi.com/test.php"
  38. $param['exp_time'] = "exp_time=2"
  39. $param['timestamp'] = "timestamp=".$timestamp
  40. ksort($param); 
  41. $plaintext = implode("&",$param); 
  42. $sign = rawurlencode(base64_encode(hash_hmac('sha1',$plaintext,'xx',true))); 
  43.  
  44. $data = "app_id=x&access_token={$access_token['access_token']}&token={$code}&phone=15091421612&url=http://wx.podapi.com/test.php&exp_time=2&timestamp={$timestamp}&sign=".$sign
  45. $ch = curl_init("http://api.189.cn/v2/dm/randcode/send"); 
  46. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
  47. curl_setopt($ch,CURLOPT_POST,1);//使用post提交数据 
  48. curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//设置 post提交的数据 
  49. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
  50. // 从证书中检查SSL www.phpfensi.com 加密算法是否存在 
  51. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
  52. $state = curl_exec($ch); 
  53. //var_dump(curl_getinfo($ch)); 
  54. curl_close($ch); 
  55. //echo $state; 
  56. ?>

Tags: php短信发送 php接口平台

分享到: