php实现短信发送代码

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php实现短信发送代码脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

卓望的短信发送。@L_406_0@格式。都要不习惯用XMl传输数据格式标签: <无>

1. [代码][PHP]代码

<PRe class="brush: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;

}

}

@H_403_7@

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

脚本宝典总结

以上是脚本宝典为你收集整理的php实现短信发送代码全部内容,希望文章能够帮你解决php实现短信发送代码所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。