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







