要实现微信公众号消息回复,需完成接入验证并处理文本、图文消息。1. 接入验证:收到含signature、timestamp、nonce、echostr的GET请求后,将token、timestamp、nonce排序后SHA1加密,与signature比对,一致则返回echostr。2. 接收消息:通过php://input获取POST的XML数据,解析FromUserName、ToUserName、MsgType等字段。3. 回复文本:构造包含ToUserName、FromUserName、CreateTime、MsgType为text、Content的XML返回。4. 回复图文:设置MsgType为news,ArticleCount为图文数量,Articles下用item节点包含Title、Description、PicUrl、Url,最多8条。确保URL可访问、token一致即可完成对接。
要让 PHP 实现微信公众号的消息回复,包括接入验证和处理文本、图文消息,核心在于理解微信服务器的通信机制。微信通过一个唯一的 URL 接收和响应消息,这个 URL 需要由你的 PHP 程序提供支持。
微信在配置服务器 URL 时会发送 GET 请求进行验证,你需要正确响应 echostr 参数。
验证流程如下:
$token = 'your_token'; // 自定义 token
$signature = $_GET['signature'];
$timestamp = $_GET['timestamp'];
$nonce = $_GET['nonce'];
$echostr = $_GET['echostr'];
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if ($tmpStr == $signature) {
echo $echostr;
exit;
}
验证通过后,微信会将用户发送的消息以 POST 方式推送给你。你需要解析 XML 数据,并根据消息类型返回对应内容。
关键点:
$postData = file_get_contents("php://input");
if (!empty($postData)) {
$msg = simplexml_load_string($postData, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUser = $msg->FromUserName;
$toUser = $msg->ToUserName;
$msgType = $msg->MsgType;
if ($msgType == 'text') {
$content = '你发送的是:' . $msg->Content;
$reply = "
" . time() . "
";
echo $reply;
}
}
当需要回复图文消息时,MsgType 设为 news,并按微信规范组织 ArticleCount 和 Articles 节点。
注意限制:
$articles = [
['title' => '欢迎关注', 'desc' => '这是第一条图文', 'pic' => 'https://example.com/1.jpg', 'url' => 'https://example.com'],
['title' => 'PHP 教程', 'desc' => '学习 PHP 开发微信应用', 'pic' => 'https://example.com/2.jpg', 'url' => 'https://example.com/php']
];
$itemTpl = "
-
";
$itemStr = '';
foreach ($articles as $item) {
$itemStr .= sprintf($itemTpl, $item['title'], $item['desc'], $item['pic'], $item['url']);
}
$reply = "
" . time() . "
" . count($articles) . "
{$itemStr}
";
echo $reply;
基本上就这些。确保服务器可访问、URL 正确配置、token 一致,就能完成接入和自动回复。不复杂但容易忽略细节。
# php
# 微信公众号
# 微信
# curl
# timestamp
# xml
# Token
# 字符串
# input
# 最多
# 自定义
# 的是
# 这是
# 自动回复
# 给你
# 就能
# 设为
# 要让
# 第一条
相关文章:
南平网站制作公司,2025年南平市事业单位报名时间?
建站之星安装后如何自定义网站颜色与字体?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
淘宝制作网站有哪些,淘宝网官网主页?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
如何快速搭建个人网站并优化SEO?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
如何在腾讯云服务器快速搭建个人网站?
建站之星如何通过成品分离优化网站效率?
如何选购建站域名与空间?自助平台全解析
如何通过虚拟主机快速搭建个人网站?
如何选择PHP开源工具快速搭建网站?
如何在云虚拟主机上快速搭建个人网站?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何快速搭建高效WAP手机网站?
建站之星如何实现网站加密操作?
高防服务器租用如何选择配置与防御等级?
html制作网站的步骤有哪些,iapp如何添加网页?
建站OpenVZ教程与优化策略:配置指南与性能提升
免费视频制作网站,更新又快又好的免费电影网站?
c# 服务器GC和工作站GC的区别和设置
桂林网站制作公司有哪些,桂林马拉松怎么报名?
如何通过商城免费建站系统源码自定义网站主题?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
定制建站方案优化指南:企业官网开发与建站费用解析
如何用美橙互联一键搭建多站合一网站?
北京网站制作网页,网站升级改版需要多久?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
javascript中对象的定义、使用以及对象和原型链操作小结
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
建站之星后台管理:高效配置与模板优化提升用户体验
三星网站视频制作教程下载,三星w23网页如何全屏?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
建站之星如何保障用户数据免受黑客入侵?
*服务器网站为何频现安全漏洞?
如何在宝塔面板中修改默认建站目录?
如何在万网开始建站?分步指南解析
定制建站价位费用解析与套餐推荐全攻略
PHP正则匹配日期和时间(时间戳转换)的实例代码
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
网站微信制作软件,如何制作微信链接?
定制建站流程解析:需求评估与SEO优化功能开发指南
电商平台网站制作流程,电商网站如何制作?
香港服务器WordPress建站指南:SEO优化与高效部署策略
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
*请认真填写需求信息,我们会在24小时内与您取得联系。