php实现短信发送代码

 更新时间:2015年07月05日 15:36:46   投稿:hebedich  
这篇文章主要介绍了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, $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实现三种不同的抽奖算法:随机抽奖、概率抽奖和内定抽奖,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-06-06
  • PHP排序算法的复习和总结

    PHP排序算法的复习和总结

    对于PHP中对数组的元素进行排序,这个是很经常用到的,之前的项目中也有,而且对于几种排序我们都是用的是asort arsort 等PHP原生函数,没有自己去实现,所以就对一下的几个函数进行总结,这个会不断的进行补充,自己也可以好好的复习和总结
    2012-02-02
  • php模拟登陆的实现方法分析

    php模拟登陆的实现方法分析

    这篇文章主要介绍了php模拟登陆的实现方法,实例分析了snoopy与curl两种实现方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • thinkphp如何获取客户端IP

    thinkphp如何获取客户端IP

    这篇文章主要介绍了thinkphp如何正确获取客户端IP,除了使用内置get_client_ip函数,还有没有其他方法?请阅读下文揭晓答案。
    2015-11-11
  • PHP与C#分别格式化文件大小的代码

    PHP与C#分别格式化文件大小的代码

    发现了一个格式化文件大小的方法, 很帅, 很简洁, 尤其是 PHP 版的, 只需要 2 行代码
    2011-05-05
  • PHP自定义错误处理的方法分析

    PHP自定义错误处理的方法分析

    这篇文章主要介绍了PHP自定义错误处理的方法,结合实例形式分析了php错误处理机制及php自定义错误处理相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • PHP设计模式之适配器模式定义与用法详解

    PHP设计模式之适配器模式定义与用法详解

    这篇文章主要介绍了PHP设计模式之适配器模式,结合实例形式较为详细的分析了php适配器模式的概念、原理、定义、用法及相关注意事项,需要的朋友可以参考下
    2018-04-04
  • PHP把MSSQL数据导入到MYSQL的方法

    PHP把MSSQL数据导入到MYSQL的方法

    这篇文章主要介绍了PHP把MSSQL数据导入到MYSQL的方法,分别列举了两个实例实现将MSSQL数据导入到MYSQL的功能,是非常实用的技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • php实现的微信红包算法分析(非官方)

    php实现的微信红包算法分析(非官方)

    这篇文章主要介绍了php实现的微信红包算法,以实例形式分析了拼手气红包的相关随机算法技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • 简单实用的网站PHP缓存类实例

    简单实用的网站PHP缓存类实例

    这篇文章主要介绍了简单实用的网站PHP缓存类,对于大家学习及理解缓存的机制与运行原理大有好处,需要的朋友可以参考下
    2014-07-07

最新评论