首页 > 开发 > PHP > 正文

php实现短信发送代码

2024-05-04 22:36:05
字体:
来源:转载
供稿:网友

卓望的短信发送。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;  } }

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

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