php實現sms簡訊發送

來源:互聯網
上載者:User
本篇文章主要介紹php實現sms簡訊發送,感興趣的朋友參考下,希望對大家有所協助。

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;  } }

總結:以上就是本篇文的全部內容,希望能對大家的學習有所協助。

相關推薦:

php執行個體分析了php中類常量的概念

php實現針對html標籤中結束標籤的檢測與補全功能

PHP實現針對指定尾碼檔案的批量上傳功能

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.