php實現簡訊發送代碼_php技巧

來源:互聯網
上載者:User

卓望的簡訊發送。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;  } }

以上所述就是本文的全部內容了,希望大家能夠喜歡。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.