这篇文章主要介绍了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;
- }
- }
以上所述就是本文的全部内容了,希望大家能够喜欢。
新闻热点
疑难解答