微信头像图片大全 > 微信易信二次开发

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 ''; // 收到的推送内容为空,直接响应空值给微信平台;
    }
}


相关微信公众账号推荐: