微信关注自动回复
// 接收微信服务器推送的原始数据
$rawData = file_get_contents("php://input");
// 解析 XML 数据(含 CDATA 处理)
$xml = simplexml_load_string($rawData, 'SimpleXMLElement', LIBXML_NOCDATA);
// 验证解析结果
if ($xml === false) {
file_put_contents('error.log', 'XML解析失败: ' . date('Y-m-d H:i:s') . "\n", FILE_APPEND);
echo 'success'; // 必须返回响应防止微信重试
exit;
}
// 处理事件类型
if (isset($xml->MsgType) && $xml->MsgType == 'event') {
$event = (string)$xml->Event;
// 关注事件处理
if ($event == 'subscribe') {
$toUser = (string)$xml->FromUserName; // 接收者(用户OpenID)
$fromUser = (string)$xml->ToUserName; // 发送者(公众号ID)
// 构建回复的 XML 消息(文本类型)
$response = "<xml>
<ToUserName><![CDATA[{$toUser}]]></ToUserName>
<FromUserName><![CDATA[{$fromUser}]]></FromUserName>
<CreateTime>" . time() . "</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[欢迎关注!\n回复【帮助】获取使用指南]]></Content>
</xml>";
echo $response;
exit;
}
}
// 其他事件或消息类型统一返回 success
echo 'success';
最近访问时间:2025-04-28 12:22:27