码迷,mamicode.com
首页 > Web开发 > 详细

php短信发送

时间:2015-07-20 18:44:11      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

<?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.0UTF-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;
    }
 
}

php短信发送

标签:

原文地址:http://www.cnblogs.com/qhorse/p/4661818.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!