微信公众号

<?php

$wechat = new Wechat();
//$wechat->Verification();  //第一次打开,验证签名
$data = $wechat->news();
class Wechat
{
    /**
     * @Content 验证微信签名
     * @time    2018/8/31
     * @author  童立京
     */
    public function Verification()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce     = $_GET["nonce"];
        $echostr   = $_GET['echostr'];
        $tmpArr = array('wechat',$timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
        if( $signature == $tmpStr ){
            echo $echostr;
        } else {
            return false;
        }
    }


    /**
     * @Content 接收微信消息
     * @time    2018/8/31
     * @author  童立京
     */
    public function news()
    {
        $dataObj = $GLOBALS["HTTP_RAW_POST_DATA"];
        $data = simplexml_load_string($dataObj, 'SimpleXMLElement', LIBXML_NOCDATA);
        $data = json_decode(json_encode($data),true);
        $type = $data['MsgType'];
        file_put_contents('1.log',$data);
        switch ($type)
        {
            case 'text':
                switch ($data['Content'])
                {
                    case '图片':
                            echo $this->replyImg($data);
                        break;

                    case '武动乾坤':
                            echo $this->imgText($data);
                        break;

                    case '爱情':
                            echo $this->gaoBai($data);
                        break;
                }
                echo $this->reply($data);
                break;

            case 'event':
                    if ($data['EventKey'] == 'item1'){
                        echo $this->replyImg($data);die;
                    } else if ($data['EventKey'] == 'songs') {
                        echo $this->replyMusic($data);die;
                    }
                    echo $this->replyVoice($data);
                break;

            default:
                echo $this->uncultivated($data);
        }
    }


    /**
     * @Content 关注推送消息
     * @time    2018/8/31
     * @author  童立京
     */
    public function subscribe($data)
    {
        $text = '<xml>
                 <ToUserName><![CDATA[%s]]></ToUserName>
                 <FromUserName><![CDATA[%s]]></FromUserName>
                 <CreateTime>%s</CreateTime>
                 <MsgType><![CDATA[text]]></MsgType>
                 <Content><![CDATA[%s]]></Content>
                 <FuncFlag>0</FuncFlag>
              </xml>';
        $content = '您的关注就是我们前进的动力';
        $result = sprintf($text,$data['FromUserName'],$data['ToUserName'],time(),$content);
        return $result;
    }


    /**
     * @Content 回复普通消息
     * @time    2018/8/31
     * @author  童立京
     */
    public function reply($data)
    {
        $text = '<xml>
                 <ToUserName><![CDATA[%s]]></ToUserName>
                 <FromUserName><![CDATA[%s]]></FromUserName>
                 <CreateTime>%s</CreateTime>
                 <MsgType><![CDATA[text]]></MsgType>
                 <Content><![CDATA[%s]]></Content>
                 <FuncFlag>0</FuncFlag>
              </xml>';
        $content = '你好';
        $result = sprintf($text,$data['FromUserName'],$data['ToUserName'],time(),$content);
        return $result;
    }

    /**
     * @Content 关键字回复图片
     * @time    2018/9/1
     * @author  童立京
     */
    public function replyImg($data)
    {
        $xml = '<xml>
                    <ToUserName><![CDATA[%s]]></ToUserName>
                    <FromUserName><![CDATA[%s]]></FromUserName>
                    <CreateTime>%s</CreateTime>
                    <MsgType><![CDATA[image]]></MsgType>
                        <Image>
                            <MediaId><![CDATA[%s]]></MediaId>
                        </Image>
                        <FuncFlag>0</FuncFlag>
                </xml>';
        $MediaId = 'z8qKlyRS1tOCSC6p7PsXhhxjZ_lA4-GGM3rTSRL5Mlj5YUWkmARHKilmpOqapsb0';
        $result = sprintf($xml,$data['FromUserName'],$data['ToUserName'],time(),$MediaId);
        //file_put_contents('1.log',$result);
        return $result;
    }


    /**
     * @Content 关键字回复图文消息
     * @time    2018/9/1
     * @author  童立京
     */
    public function imgText($data)
    {
        $arr = array(
            array(
                'Title'       => '武动乾坤',
                'Description' => '武祖林动',
                'PicUrl'      => 'http://ww2.sinaimg.cn/wap720/0069Mkz5jw1fa4r2sqcrfj30ub0hstbf.jpg',
                'Url'         => 'https://www.baidu.com/'
            ),
            array(
                'Title'       => '凌青竹',
                'Description' => '武祖林动',
                'PicUrl'      => 'http://imgup01.myra2.com/2017-05/19/00/1495123992037_0.jpg',
                'Url'         => 'https://www.baidu.com/'
            ),
        );

        $item = '<item>
                     <Title><![CDATA[%s]]></Title>
                     <Description><![CDATA[%s]]></Description>
                     <PicUrl><![CDATA[%s]]></PicUrl>
                     <Url><![CDATA[%s]]></Url>
                 </item>';

        $str = '';
        foreach ($arr as $k => $v){
            $str .= sprintf($item, $v['Title'], $v['Description'], $v['PicUrl'], $v['Url']);
        }

        $xml = '<xml>
                     <ToUserName><![CDATA[%s]]></ToUserName>
                     <FromUserName><![CDATA[%s]]></FromUserName>
                     <CreateTime>%s</CreateTime>
                     <MsgType><![CDATA[news]]></MsgType>
                     <ArticleCount>2</ArticleCount>
                     <Articles>'.$str.'</Articles>
                   </xml>';

        $result = sprintf($xml, $data['FromUserName'], $data['ToUserName'], time());
        return $result;
    }


    /**
     * @Content 关键字回复短视频
     * @author  童立京
     * @time    2018/9/4
     */
    public function gaoBai($data)
    {
        $xml = '<xml>
                    <ToUserName><![CDATA[%s]]></ToUserName>
                    <FromUserName><![CDATA[%s]]></FromUserName>
                    <CreateTime>%s</CreateTime>
                    <MsgType><![CDATA[video]]></MsgType>
                    <Video>
                        <MediaId><![CDATA[%s]]></MediaId>
                        <Title><![CDATA[%s]]></Title>
                        <Description><![CDATA[%s]]></Description>
                    </Video>
                </xml>';
        $MediaId = 'ty-mRGBqQqL5JeEX24bGQmW62SWiv9P3SAEjTG_icwN7Y5GXslZF8tkBXNNfw7Sd';
        $title   = '最美告白';
        $Description = '爱对了叫爱情,爱错了叫青春';
        $result = sprintf($xml, $data['FromUserName'], $data['ToUserName'], time(),$MediaId,$title,$Description);
        return $result;
    }


    /**
     * @Content 未涉及到技术
     * @author  童立京
     * @time    2018/9/4
     */
    public function uncultivated($data)
    {
        $text = '<xml>
                 <ToUserName><![CDATA[%s]]></ToUserName>
                 <FromUserName><![CDATA[%s]]></FromUserName>
                 <CreateTime>%s</CreateTime>
                 <MsgType><![CDATA[text]]></MsgType>
                 <Content><![CDATA[%s]]></Content>
                 <FuncFlag>0</FuncFlag>
              </xml>';
        $content = '钱不够,开发人员未定,设计人员暂无';
        $result = sprintf($text,$data['FromUserName'],$data['ToUserName'],time(),$content);
        return $result;
    }


    /**
     * @Content 用户点击菜单回复一首音乐
     * @author  童立京
     * @time    2018/9/4
     */
    public function replyMusic($data)
    {
        $xml = '<xml>
                    <ToUserName><![CDATA[%s]]></ToUserName>
                    <FromUserName><![CDATA[%s]]></FromUserName>
                    <CreateTime>%s</CreateTime>
                    <MsgType><![CDATA[music]]></MsgType>
                    <Music>
                        <Title><![CDATA[%s]]></Title>
                        <Description><![CDATA[%s]]></Description>
                        <MusicUrl><![CDATA[%s]]></MusicUrl>
                        <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
                        <ThumbMediaId><![CDATA[%s]]></ThumbMediaId>
                    </Music>
                </xml>';
        $Title = '我已经爱上你';
        $Description = '这首歌是杨二郎的成名曲,我已经爱上你';
        $MusicUrl = 'https://music.163.com/#/outchain/2/1296183607/';
        $HQMusicUrl = 'https://music.163.com/#/outchain/2/1296183607/';
        $ThumbMediaId = 'z8qKlyRS1tOCSC6p7PsXhhxjZ_lA4-GGM3rTSRL5Mlj5YUWkmARHKilmpOqapsb0';
        $result = sprintf($xml,$data['FromUserName'],$data['ToUserName'],time(),$Title,$Description,$MusicUrl,$HQMusicUrl,$ThumbMediaId);
        return $result;
    }


    /**
     * @Content 回复语音消息
     * @author  童立京
     * @time    2018/9/4
     */
    public function replyVoice($data)
    {
        $xml = '<xml>
                    <ToUserName><![CDATA[%s]]></ToUserName>
                    <FromUserName><![CDATA[%s]]></FromUserName>
                    <CreateTime>%s</CreateTime>
                    <MsgType><![CDATA[voice]]></MsgType>
                    <Voice>
                        <MediaId><![CDATA[%s]]></MediaId>
                    </Voice>
               </xml>';
        $MediaId = 'PAah_89pXsF0dsf-zn3mm70hBjcep4q4z3yTfC06WlBRhNoRkAa_8fSl-TFuKTPT';
        $result = sprintf($xml,$data['FromUserName'],$data['ToUserName'],time(),$MediaId);
        return $result;
    }


}

?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值