微信易信公众平台大全

二次开发营销推广平台!

微信商户  微信平台开发  公众账号运营  精品微信号  加500粉丝  微信公众号申请收录

PHP如何获取到POST过来的xml消息

温馨提示:欲查看和探讨更多关于公众平台开发技术,请访问【微信易信●开发者论坛中心】

PHP如何获取到POST过来的xml消息啊,刚接触php不会获取


你可以借鉴一下:

   /*
 * 响应易信平台推送消息
 * 可以根据消息类型处理不同的消息
 * 除了验证开发者、创建推广二维码等,其余基本需要该函数来统一调度;
 */
public function listen()
{
    // 接收易信post方式推送来的消息;
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
    //  写入日志;
    $this->log('收到易信平台推送的消息:' . $postStr);
    if (!empty($postStr))
    {       
        // 将推送的XML消息解析为对象;
        $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        // MsgType类型为:text(文本消息)image(图片消息)audio(语音消息)video(视频消息)
        // event location(地理位置消息)
        // event(事件消息):subscribe(订阅) unsubscribe(取消订阅)YIXINSCAN(扫描推广二维码)CLICK(自定义菜单点击)  
        $msgType = trim($postObj->MsgType); // 消息类型;文本、菜单点击等
        // 可以直接调用 handleMessage()函数,switch一下是为了清晰明了;
        switch($msgType)
        {
            case 'text': // 文本消息类型;
                $this->handleMessage($postObj, $msgType);
                break;
            case 'event': // 事件消息类型 包括关注、取消关注、自定义菜单点击等;
                $this->handleMessage($postObj, $msgType);
                break;
            case 'image': // 图片消息类型;
                $this->handleMessage($postObj, $msgType);
                break;
            case 'location': // 地理位置信息(用户主动);
                $this->handleMessage($postObj, $msgType);
                break;
            default:
                $resultStr = "未处理事件: " . $msgType;
                $this->log($resultStr);
                break;
        }
    }
    else
    {
        echo ''; // 收到的推送内容为空,直接响应空值给微信平台;
    }
}



评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
上一篇:易信API开发文档中存在的问题 下一篇:接收到了易信的事件消息,并且按照规定格式返回了xml数据,但是没有弹出消息