【消息管理接口】接收普通消息接口、接收事件推送接口

1.接受消息前需要配置“服务器配置(未启用)”,在“微信公众平台”后台-》“开发”-》“基本配置”
点击“修改配置”开始配置你的消息接受接口信息。

1.1.URL:你网站的接受微信消息的url
例如:http://weixin.demo.qq1121.com/api.php

1.2.Token:首次验证服务器数据加密使用,随便输入 3-32 个数字即可
例如:171617171818

1.3.EncodingAESKey:消息传送过程中数据加密使用,随机生成即可
例如:sARPJwky3zDwvkBVM34YPYWFnUsPzBL1wX8spa3ytqf

1.4 http://weixin.demo.qq1121.com/api.php 通过微信服务器验证的的方法

代码:

require "init.php";
$WXAPI = new WXAPI();

 

2.开始接受用户消息
为方便演示,此代码会自动回复给消息发送者,发送的消息。
代码:

require "init.php";
$WXAPI = new WXAPI();
pr($WXAPI->get_msg());

 

底层核心代码:

    /**
     * 对话服务 接收消息 接收普通消息    
     * @author yanxuefa
     * @date2018-01-04
     * @return         [type] [description]
     */
    public function get_msg(){

        $xml = file_get_contents('php://input');
        $xmlObj = $this->xmlToObj($xml);
        if(empty($xmlObj)){
            return '';
        }
        // 处理普通消息
        $this->send_msg($xmlObj);

        // 处理事件消息
        if($xmlObj->MsgType=='event'){
            $this->get_msg_event($xmlObj);
            exit();
        }

        // 处理普通消息
        $this->get_msg_base($xmlObj);
    }
    /**
     * 对话服务 接收消息 被动回复用户消息    
     * @author yanxuefa
     * @date2018-01-04
     * @return         [type] [description]
     */
    private function send_msg($xmlObj){
        $xml  = '<ToUserName><![CDATA['.$xmlObj->FromUserName.']]></ToUserName>';
        $xml .= '<FromUserName><![CDATA['.$xmlObj->ToUserName.']]></FromUserName>';
        $xml .= '<CreateTime>'.$xmlObj->CreateTime.'</CreateTime>';
        $xml .= '<MsgType><![CDATA[text]]></MsgType>';
        $xml .= '<Content><![CDATA['.json_encode($xmlObj).']]></Content>';
        exit('<xml>'.$xml.'</xml>');
    }
    /**
     * 对话服务 接收消息 接收事件消息    
     * @author yanxuefa
     * @date2018-01-04
     * @return         [type] [description]
     */
    private function get_msg_event($xmlObj){

        /**
         * Event:
         *      subscribe(订阅)、unsubscribe(取消订阅)
         *      LOCATION 上报地理位置事件
         *      CLICK 自定义菜单事件
         */
        
        if($xmlObj->Event=='subscribe'){
        }

        $xmlObj->ToUserName;//开发者微信号
        $xmlObj->FromUserName;//发送方帐号(一个OpenID)
        $xmlObj->CreateTime;//消息创建时间 (整型)
        $xmlObj->MsgType;//消息类型(text、image、、、、、、、、、、)
    }

 

发表评论

电子邮件地址不会被公开。