| 步骤 | 操作 |
|---|---|
| 1 | 访问 微信公众平台 |
| 2 | 使用管理员账号登录 |
| 3 | 进入「开发」→「基本配置」 |
在「基本配置」页面,点击「修改」按钮,填写以下信息:
| 配置项 | 说明 | 示例值 |
|---|---|---|
| 服务器地址(URL) | 服务器回调地址 | http://www.chengyantek.cn/api/wechat/mp/verify |
| Token | 自定义Token(需与后端配置一致) | 自定义字符串(如:your_custom_token_123) |
| EncodingAESKey | 消息加解密密钥(可选) | 点击「随机生成」或留空 |
⚠️ 重要提示:
.env 文件中的 WECHAT_MP_TOKEN 保持一致| 步骤 | 操作 |
|---|---|
| 1 | 填写完服务器地址和Token后,点击「提交」 |
| 2 | 微信服务器会发送GET请求到你的服务器进行验证 |
| 3 | 验证成功后,配置生效 |
在 backend/.env 文件中添加:
# 微信公众平台配置
WECHAT_MP_TOKEN=your_custom_token_123
⚠️ 注意:WECHAT_MP_TOKEN 必须与微信公众平台中配置的 Token 完全一致。
配置完成后,重启后端服务使配置生效:
# 如果使用 systemd
sudo systemctl restart lyrria-backend
# 或者直接运行
cd backend
python main.py
路径:/api/wechat/mp/verify
用途:微信公众平台配置服务器URL时的验证
参数:
signature: 微信加密签名timestamp: 时间戳nonce: 随机数echostr: 随机字符串返回:验证成功返回 echostr,失败返回空字符串
路径:/api/wechat/mp/message
用途:接收微信公众平台推送的消息(文本、事件等)
参数(URL参数):
signature: 微信加密签名timestamp: 时间戳nonce: 随机数请求体:XML格式的消息内容
返回:XML格式的响应消息
假设你的域名是 http://www.chengyantek.cn/,后端运行在 8000 端口:
微信公众平台配置:
http://www.chengyantek.cn/api/wechat/mp/verifyyour_custom_token_123后端 .env 配置:
WECHAT_MP_TOKEN=your_custom_token_123
如果使用 Nginx 反向代理,确保配置了正确的路由:
location /api/wechat/mp/ {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
在浏览器中访问(替换为你的实际Token和参数):
http://www.chengyantek.cn/api/wechat/mp/verify?signature=xxx×tamp=xxx&nonce=xxx&echostr=test
如果返回 test,说明接口正常工作。
配置提交后,查看后端日志,应该能看到:
✅ 微信公众平台服务器验证成功
在微信公众平台发送测试消息,查看后端日志:
📨 收到微信公众平台消息: type=text, from=xxx
📝 文本消息内容: xxx
原因:后端 WECHAT_MP_TOKEN 与微信公众平台配置的 Token 不一致
解决:检查 .env 文件中的 WECHAT_MP_TOKEN 是否与微信公众平台中配置的 Token 完全一致(区分大小写)
原因:
解决:
原因:
解决:
success 字符串建议:生产环境建议使用 HTTPS,但 HTTP 也可以正常工作。如果使用 HTTPS,需要配置有效的 SSL 证书。
当前实现为示例代码,你可以根据业务需求扩展消息处理逻辑:
修改 backend/main.py 中的 wechat_mp_message 函数即可。