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