Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert das Versenden von SMS-Textnachrichten

PHP implementiert das Versenden von SMS-Textnachrichten

墨辰丷
墨辰丷Original
2018-06-09 09:50:342440Durchsuche

Dieser Artikel stellt hauptsächlich die Implementierung von SMS-Textnachrichten in PHP vor. Ich hoffe, dass er für alle hilfreich ist.

1.PHP-Code

<?php
 
class Sms
{
  private $userId = &#39;XXXXX&#39;;
 
  private $password = &#39;XXXXXX&#39;;
 
  private $templateId = &#39;XXXXXX&#39;;
 
  /**
   * @var string 短信服务器地址
   */
  private $server_uri = &#39;XXXXXX&#39;;
 
  private $port = &#39;XXXXXX&#39;;
 
 
  /**
   * 发送短信
   * @param $message 信息内容
   * @param $mobile 手机号码
   * @param string $signature 签名
   * @return bool 成功返回true, 网络请求失败返回false, 其他返回失败编码
   */
  public function sendOneMsg($message, $mobile, $signature=&#39;demo&#39;)
  {
 
    $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(
      &#39;userId&#39; => $this->userId, // 账号
      &#39;password&#39; => $this->password, // 小写的md5后的用户密码
      &#39;templateId&#39; => $this->templateId, // 模板id
      &#39;phone&#39; => $mobile,
      &#39;port&#39; => $this->port,
      &#39;data&#39; => $message,
      &#39;signature&#39; => $signature,
    );
 
    // 设置xml版本和编码
    $dom = new \DOMDocument(&#39;1.0&#39;, &#39;UTF-8&#39;);
 
    // 创建根节点
    $request = $dom->createElement(&#39;request&#39;);
    $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[] = &#39;Content-Type:text/xml&#39;;
    $headers[] = &#39;Content-Length:&#39; . strlen($xml_content);
    $headers[] = &#39;Cmd:mt&#39;;
    $headers[] = &#39;TS:&#39;. $now;
    $headers[] = &#39;Authorization:&#39; . 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(&#39;Content-Type:text/html; charset=utf-8&#39;);
    return $res;
  }
 
}

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

php-Beispiel analysiert das Konzept von Klassenkonstanten in PHP

php-Implementierung für HTML Erkennungs- und Vervollständigungsfunktion von End-Tags in Tags

PHP implementiert die Batch-Upload-Funktion für angegebene Suffixdateien

Das obige ist der detaillierte Inhalt vonPHP implementiert das Versenden von SMS-Textnachrichten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn