卓望的短信发送。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;
}
}
以上所述就是本文的全部内容了,希望大家能够喜欢。
评论列表:
发布于 3天前回复该评论
发布于 3天前回复该评论
发布于 3天前回复该评论
发布于 3天前回复该评论
发布于 2天前回复该评论
发布于 2天前回复该评论
发布于 2天前回复该评论
发布于 2天前回复该评论