這篇文章主要介紹了php實現短信發送代碼的相關資料,需要的朋友可以參考下
卓望的短信發送。PHP格式。都要不習慣用xml傳輸數據格式了
標簽: <無>
1. [代碼][PHP]代碼
- <?php
- class Sms
- {
- private $userId = 'XXXXX';
- private $password = 'XXXXXX';
- private $templateId = 'XXXXXX';
- /**
- * @var string 短信服務器地址
- */
- private $server_uri = 'XXXXXX';
- private $port = 'XXXXXX';
- /**
- * 發送短信
- * @param $message 信息內容
- * @param $mobile 手機號碼
- * @param string $signature 簽名
- * @return bool 成功返回true, 網絡請求失敗返回false, 其他返回失敗編碼
- */
- public function sendOneMsg($message, $mobile, $signature='demo')
- {
- $xml_content = $this->createXmlContent($message, $mobile, $signature);
- $xml = $this->sendHttpRequest(trim($xml_content));
- if(! $xml) {
- return false; // 網絡請求失敗
- }
- // 解析返回的編碼
- $res = simplexml_load_string($xml);
- if($res->retCode == 1000) {
- return true;
- }
- return $res->retCode;
- }
- /**
- * 創建 xml內容
- * @param $message 信息
- * @param $mobile 要發送的手機號碼
- * @param $signature 簽名
- * @return string
- */
- private function createXmlContent($message, $mobile, $signature)
- {
- $data = array(
- 'userId' => $this->userId, // 賬號
- 'password' => $this->password, // 小寫的md5后的用戶密碼
- 'templateId' => $this->templateId, // 模板id
- 'phone' => $mobile,
- 'port' => $this->port,
- 'data' => $message,
- 'signature' => $signature,
- );
- // 設置xml版本和編碼
- $dom = new /DOMDocument('1.0', 'UTF-8');
- // 創建根節點
- $request = $dom->createElement('request');
- $dom->appendChild($request);
- foreach($data as $key => $val) {
- // 創建元素
- $key = $dom->createElement($key);
- $request->appendChild($key);
- // 創建元素值
- $text = $dom->createTextNode($val);
- $key->appendChild($text);
- }
- return $dom->saveXML();
- }
- /**
- * 發送http請求
- * @param $xml_content
- * @return mixed
- */
- private function sendHttpRequest($xml_content)
- {
- $now = time();
- $headers[] = 'Content-Type:text/xml';
- $headers[] = 'Content-Length:' . strlen($xml_content);
- $headers[] = 'Cmd:mt';
- $headers[] = 'TS:'. $now;
- $headers[] = 'Authorization:' . strtoupper(md5($xml_content. $now . $this->password));
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $this->server_uri);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_content);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- $res = curl_exec($ch);
- curl_close($ch);
- //header('Content-Type:text/html; charset=utf-8');
- return $res;
- }
- }
以上所述就是本文的全部內容了,希望大家能夠喜歡。
新聞熱點
疑難解答