Cloudflaer Workers+微信公众号测试接口部署私有消息推送
本项目是基于以下两个项目做的优化,原项目拆封成了两部分,消息推送和消息浏览需要分别部署,我嫌麻烦,将其优化后合并到了一起,代码也做了优化,缩减到了573行,这样只需要一次部署,绑定一个域名,不用多次部署绑定。各有利弊吧,分开有分开的好。
项目来源:
https://github.com/frankiejun/wxpush
https://github.com/frankiejun/wxpushSkin
一、申请微信测试号
打开:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
用你的微信扫码登录
向下滚动,找到以下信息并记下来:
appID
appsecret
用需要接收消息的微信扫「测试号二维码」关注,刷新页面,在「测试号用户列表」中会看到你的 微信号,一会儿要用。
模板消息接口,新增测试模板,标题填入:消息推送, 内容填入:内容:{{content.DATA}} ,这里的模板ID(用于接口调用),一会儿要用。
二、部署主推送服务(Cloudflare Workers)
登录 Cloudflare → Workers & Pages ,从 Hello World 开始部署,取个名字(如 wx)→ Create worker
点击 Edit code → 把默认代码全删,粘贴项目源码
保存 → Deploy
然后点 Settings → Variables,添加以下环境变量
全部填好后点最下方的 Deploy,主服务就部署完成!
访问格式:
https://你的worker域名.workers.dev/你的API_TOKEN
例如:
https://wx.xxx.workers.dev/k9xP2mZqkjkdsahfjdsfs2FDeJ4hF6gD9cA0sB2vG3
打开就是自带测试页,填内容点发送就能收到微信消息啦!
三、实际使用示例
支持 Webhook 的项目(哪吒、UptimeKuma、青龙面板、HealthChecks 等)都能轻松接入:
请求方式: POST 或 GET 均可
URL: https://你的worker域名.workers.dev/wxsend
请求头: {“Authorization”: “你的token”, “Content-Type”: “application/json”}
body: { “content”: “你的内容”, “title”:”你的标题” }
基础推送:
https://wx.yourdomain.com/wxsend?title=服务器通知&content=服务已于北京时间2026-09-22 14:00重启&token=k9xP2mZqkjkdsahfjdsfs2FDeJ4hF6gD9cA0sB2vG3
Linux 下直接测试的命令:
curl -X POST \
"https://<您的Worker地址>/wxsend" \
-H "Authorization: 你的token" \
-H "Content-Type: application/json" \
-d '{
"title": "测试消息",
"content": "自动化任务已完成。"
}'
为了好记,强烈建议绑定自定义域名,例如:https://wx.yourdomain.com
| 变量名 | 示例值 | 说明 |
|---|---|---|
API_TOKEN | k9xP2mZqkjkdsahfjdsfs2FDeJ4hF6gD9cA0sB2vG3 | 调用接口的访问令牌,务必设置复杂随机字符串,由你自己自定义 |
WX_APPID | wx1234567890abcdef | 测试号首页的 AppID |
WX_SECRET | 0123456789abcdef0123456789abcdef0123456789ab | 测试号首页的 AppSecret |
WX_USERID | o_abcd1234efgh5678|o_ijkl9012mnop3456 | 接收者 微信号,多个用户用竖线 | 分隔 |
WX_TEMPLATE_ID | AbC123dEFGhIJKlmnOPQRStuvwxYZ | 第一步添加模板后得到的 template_id |
WX_BASE_URL | https://wx.yourdomain.com | 微信中点击消息后跳转的详情页地址,填写你Workers的默认域名或者你指定的域名 |



以下是Worker用到的部署代码:
