加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php实现短信发送代码

发布时间:2020-12-13 02:43:58 所属栏目:PHP教程 来源:网络整理
导读:《PHP实例:php实现短信发送代码》要点: 本文介绍了PHP实例:php实现短信发送代码,希望对您有用。如果有疑问,可以联系我们。 卓望的短信发送.PHP格式.都要不习惯用xml传输数据格式了 标签: 无 1. [代码][PHP]代码???? ?php class Sms{ private $userId =

《PHP实例:php实现短信发送代码》要点:
本文介绍了PHP实例: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,$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,$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,CURLOPT_HEADER,0);
    $res = curl_exec($ch);
    curl_close($ch);
    //header('Content-Type:text/html; charset=utf-8');
    return $res;
  }
 
}

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

《PHP实例:php实现短信发送代码》是否对您有启发,欢迎查看更多与《PHP实例:php实现短信发送代码》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读