首页 > 开发 > PHP > 正文

php实现短信发送代码

2024-05-04 23:37:17
字体:
来源:转载
供稿:网友

这篇文章主要介绍了php实现短信发送代码的相关资料,需要的朋友可以参考下

卓望的短信发送。PHP格式。都要不习惯用xml传输数据格式了

标签: <无>

1. [代码][PHP]代码

 

 
  1. <?php 
  2.  
  3. class Sms 
  4. private $userId = 'XXXXX'
  5.  
  6. private $password = 'XXXXXX'
  7.  
  8. private $templateId = 'XXXXXX'
  9.  
  10. /** 
  11. * @var string 短信服务器地址 
  12. */ 
  13. private $server_uri = 'XXXXXX'
  14.  
  15. private $port = 'XXXXXX'
  16.  
  17.  
  18. /** 
  19. * 发送短信 
  20. * @param $message 信息内容 
  21. * @param $mobile 手机号码 
  22. * @param string $signature 签名 
  23. * @return bool 成功返回true, 网络请求失败返回false, 其他返回失败编码 
  24. */ 
  25. public function sendOneMsg($message$mobile$signature='demo'
  26.  
  27. $xml_content = $this->createXmlContent($message$mobile$signature); 
  28.  
  29. $xml = $this->sendHttpRequest(trim($xml_content)); 
  30.  
  31.  
  32. if(! $xml) { 
  33. return false; // 网络请求失败 
  34.  
  35. // 解析返回的编码 
  36. $res = simplexml_load_string($xml); 
  37. if($res->retCode == 1000) { 
  38. return true; 
  39.  
  40. return $res->retCode; 
  41.  
  42.  
  43. /** 
  44. * 创建 xml内容 
  45. * @param $message 信息 
  46. * @param $mobile 要发送的手机号码 
  47. * @param $signature 签名 
  48. * @return string 
  49. */ 
  50. private function createXmlContent($message$mobile$signature
  51. $data = array
  52. 'userId' => $this->userId, // 账号 
  53. 'password' => $this->password, // 小写的md5后的用户密码 
  54. 'templateId' => $this->templateId, // 模板id 
  55. 'phone' => $mobile
  56. 'port' => $this->port, 
  57. 'data' => $message
  58. 'signature' => $signature
  59. ); 
  60.  
  61. // 设置xml版本和编码 
  62. $dom = new /DOMDocument('1.0''UTF-8'); 
  63.  
  64. // 创建根节点 
  65. $request = $dom->createElement('request'); 
  66. $dom->appendChild($request); 
  67.  
  68. foreach($data as $key => $val) { 
  69. // 创建元素 
  70. $key = $dom->createElement($key); 
  71. $request->appendChild($key); 
  72.  
  73. // 创建元素值 
  74. $text = $dom->createTextNode($val); 
  75. $key->appendChild($text); 
  76.  
  77. return $dom->saveXML(); 
  78.  
  79. /** 
  80. * 发送http请求 
  81. * @param $xml_content 
  82. * @return mixed 
  83. */ 
  84. private function sendHttpRequest($xml_content
  85. $now = time(); 
  86. $headers[] = 'Content-Type:text/xml'
  87. $headers[] = 'Content-Length:' . strlen($xml_content); 
  88. $headers[] = 'Cmd:mt'
  89. $headers[] = 'TS:'$now
  90. $headers[] = 'Authorization:' . strtoupper(md5($xml_content$now . $this->password)); 
  91.  
  92. $ch = curl_init(); 
  93. curl_setopt($ch, CURLOPT_URL, $this->server_uri); 
  94. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
  95. curl_setopt($ch, CURLOPT_POST, 1); 
  96. curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_content); 
  97. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  98. curl_setopt($ch, CURLOPT_HEADER, 0); 
  99. $res = curl_exec($ch); 
  100. curl_close($ch); 
  101. //header('Content-Type:text/html; charset=utf-8'); 
  102. return $res
  103.  

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表