php实现短信发送代码
程序员文章站
2022-05-20 09:34:43
卓望的短信发送。php格式。都要不习惯用xml传输数据格式了
标签: <无>
1. [代码][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; } }
以上所述就是本文的全部内容了,希望大家能够喜欢。
上一篇: 借古笑今,毁三观的囧冷萌
下一篇: Cygwin中安装PHP方法步骤