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;

}

}

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

原文链接:https://www.f2er.com/php/21590.html

猜你在找的PHP相关文章