PHP 项目快速接入微信公众号模板消息
最近把微信公众号模板消息整理成了一个可以直接复用的 PHP Demo,适合订单通知、支付提醒、审核结果、会员服务等场景。📩
很多项目接入时,真正麻烦的不是调用接口,而是:
- •
access_token 要不要每次重新获取?
- •
token 过期后怎么处理?
- •
模板数据字段怎么组装?
- •
OpenID 无效到底是哪一步出了问题?
这套封装把这些基础逻辑都整理好了,其他 PHP 项目复制核心文件就能开始集成。✨
一、先准备这 5 项
1️⃣ 已认证的微信公众号服务号或可用测试号
2️⃣ AppID
3️⃣ AppSecret
4️⃣ 模板 ID
5️⃣ 接收用户的 OpenID
⚠️ 重点:OpenID 必须属于当前公众号,不能拿其他公众号的 OpenID 直接使用。通常还要求用户已经关注该服务号。
二、核心目录其实很简单
config/config.php
includes/WechatTemplate.php
includes/functions.php
cache/access_token.json
logs/wechat.log
真正需要复制的核心文件只有 3 个:
三、配置 AppID 和模板 ID
'wechat'=>[
'app_id'=>'你的 AppID',
'app_secret'=>'你的 AppSecret',
'template_id'=>'你的模板ID',
],
不要把真实 AppSecret 发到笔记、群聊或代码仓库里,示例里统一使用占位符。🔐
四、发送消息只需要一次调用
$wechat=newWechatTemplate($config);
$result=$wechat->sendMessage(
$openid,
$data,
'https://example.com/order/detail'
);
access_token 获取、缓存、接口请求和日志记录,都已经封装在 WechatTemplate 类里了。
五、模板数据要和后台字段一致
$data=[
'first'=>['value'=>'您有一笔新订单'],
'keyword1'=>['value'=>'20260817001'],
'keyword2'=>['value'=>'测试商品'],
'keyword3'=>['value'=>'¥99.00'],
'remark'=>['value'=>'点击查看详情'],
];
模板里叫 keyword1,代码里就要传 keyword1;字段名不一致,消息就可能发送失败。📌
六、常见错误码速查
排查时先看:
一句话总结
如果你的 PHP 项目需要订单、支付、审核等公众号通知,可以先把这 3 个核心文件接进去,再根据自己的模板字段调整 $data。💡
建议收藏,后面接微信消息通知时直接翻出来用!
你在接入微信公众号模板消息时,遇到过 40003 还是模板字段不匹配?评论区可以一起排查👇
#PHP #PHP开发 #微信公众号开发 #微信开发 #后端开发