如何用 Cloudflare Workers 搭建微信消息推送服务:从零到部署的完整指南
你好,我是你的朋友,一个在 Serverless 架构和微信生态里摸爬滚打了好些年的开发者。今天想和你聊聊一个特别实用的工具——如何用一个轻量级的服务,把你的业务消息精准推送到微信用户手上。
你是不是也遇到过这些场景:服务器半夜挂了,却只能等早上才发现;用户下了订单,系统无法及时通知;或者你想给自己发个每日报告,却发现没有简单不花钱的方案?传统做法要么买服务器,要么用第三方推送平台,既麻烦又贵。
这篇文章要介绍的方案,可能正是你需要的。它不需要租服务器,不用管运维,部署只要几分钟,而且免费额度足够个人或小团队使用。更重要的是,整个过程你都能掌控。
这个方案到底是什么?
简单来说,我们要在 Cloudflare Workers 上搭建一个中间层服务,它接收你的 HTTP 请求,然后调用微信公众号的模板消息接口,把内容推送到用户微信里。这个服务有个名字,叫 WXPush。
Cloudflare Workers 是什么?你可以把它理解成跑在全球 CDN 边缘节点上的轻量代码。你的代码会被复制到全球 300 多个城市,用户请求自动路由到最近的节点,延迟极低。最关键的是,它按请求次数收费,每天有 10 万次免费调用额度,对个人项目来说几乎等于白用。
微信公众号模板消息又是怎么回事?这是微信官方提供的一种能力,允许公众号向用户发送固定格式的通知卡片,比如”订单支付成功”、”服务异常提醒”这类重要通知。用户收到后,消息会静静地躺在微信消息列表里,不会像客服消息那样造成骚扰。
为什么值得花时间了解这个方案?
动手之前,你可能想问:市面上不是有很多现成的推送服务吗?为什么要自己搭?好问题。这个方案有几个实打实的好处:
首先,成本真的低。Cloudflare 的免费套餐包含 10 万次请求/天,1000 万次 KV 操作/天。除非你的业务已经大到每天要给几万人发消息,否则根本不用花钱。对比一下,买台最便宜的云服务器一年也要几百块,更别说还要配置环境、维护安全。
其次,安全可控。你的<-WEIXIN-> 的 Secrets 加密存储,不在代码里硬编码。即使代码仓库不小心公开了,敏感信息也不会泄露。而且所有数据传输都走 HTTPS,Cloudflare 还自带 DDoS 防护。
再者,高度灵活。你可以为不同场景设置不同的推送模板,甚至可以在 URL 里临时覆盖默认配置。比如平时推送给运维团队,紧急情况下改个参数就能推给全员,不用改代码。
最后,维护成本几乎为零。部署完成后,你不用再操心服务器会不会宕机、要不要升级系统。Cloudflare 的工程师会搞定一切,你只管调用接口就行。
当然,它也有前提条件:你需要有一个已经认证的微信公众号(订阅号或服务号都行),并且用户必须关注了这个公众号。这是微信的安全机制,防止垃圾信息。
开始之前,你需要准备什么?
动手之前,咱们把需要的材料准备齐全,免得中途卡壳。
-
一个微信公众号:必须是已经认证的,个人订阅号暂不支持模板消息。登录公众号后台,在”开发”->”基本配置”里找到你的 AppID 和 AppSecret。 -
一个 Cloudflare 账号:没有的话去 cloudflare.com 注册一个,过程很简单。 -
一个模板消息 ID:在公众号后台的”广告与服务”->”模板消息”里选个模板,或者申请新的。库里填好关键词,系统会生成一个模板 ID,长得像 6n_CMcMWtwWMG7pyt1uFg9K27pX-qHQxO2h6sZdJfh0。 -
用户的 OpenID:这是用户在你们公众号下的唯一身份标识。如果不知道,可以问你们开发要,或者看下文提到的获取方式。
这些东西准备好了,我们就可以开始部署。整个过程有两种方式,你可以根据自己的技术背景选择。
部署方式一:直接粘贴代码(最适合新手)
如果你不熟悉 Git 操作,也不想装开发环境,这个方法最适合。全程在浏览器里点几下、粘贴代码就能完成。
第一步:登录 Cloudflare 并创建 Worker
打开浏览器,进入 Cloudflare 仪表板。左侧菜单找到”Workers 和 Pages”,点击后选择”创建应用程序”,然后点”创建 Worker”。
这里需要给你的服务起个名字。这个名称会成为你服务地址的一部分,比如 my-wxpush-service.your-subdomain.workers.dev。名字只能包含字母、数字、连字符,而且全局唯一。建议用 wxpush- 开头加上你的项目名,比如 wxpush-order-notify。
输入名称后,直接点击”部署”。Cloudflare 会先生成一个默认的 Hello World 示例代码。
第二步:替换为 WXPush 的代码
部署成功后,你会看到页面提示”恭喜!你的 Worker 已成功部署”。别激动,这只是示例代码。点击”编辑代码”按钮,进入在线编辑器。
你会看到类似这样的默认代码:
export default {
async fetch(request, env, ctx) {
return new Response('Hello World!');
},
};
把它全部删掉。然后打开项目里的 src/index.js 文件(如果你下载了整个项目),或者直接从项目的 GitHub 页面复制代码。把所有内容原封不动地粘贴到 Cloudflare 编辑器里。
粘贴完成后,你的编辑器里应该包含了处理微信 token、调用模板消息接口、验证参数等完整逻辑。别担心看不懂,这些代码已经封装好了,你暂时不用深究。
点击右上角的”保存并部署”按钮。Cloudflare 会重新编译并把你的代码推送到全球节点。这个过程通常只要十几秒。
第三步:配置环境变量(最关键的一步)
代码部署好了,但它还不知道你的微信公众号信息。这时候需要配置环境变量。
返回 Worker 的主管理页面,点击”设置”选项卡,然后选择”变量”。在这里,你会看到”环境变量”部分。
需要添加以下变量,每添加一个都要记得勾选”加密”选项,这是保护你凭证安全的关键:
| 变量名 | 说明 | 示例值 | 是否加密 |
|---|---|---|---|
API_TOKEN |
你自己设定的接口访问密码,调用时必须带上。建议用 32 位以上的随机字符串,包含大小写字母、数字和符号 | WxPush_2024_Secure_Key_XyZ9LmPqRsTu |
必须加密 |
WX_APPID |
微信公众号的 AppID,一串 18 位字母数字组合 | wx1234567890abcdef |
必须加密 |
WX_SECRET |
微信公众号的 AppSecret,32 位字符串 | a1b2c3d4e5f678901234567890123456 |
必须加密 |
WX_USERID |
接收消息的默认用户 OpenID,多个用 ` | ` 分隔 | `o7Xy_1a2B3c4D5e6F7g8H9i0J1k2L3m |
WX_TEMPLATE_ID |
模板消息 ID,从公众号后台获取 | 6n_CMcMWtwWMG7pyt1uFg9K27pX-qHQ... |
可不加密 |
WX_BASE_URL |
可选,点击消息后跳转的页面地址 | `<-URL-> | 可不加密 |
填完这些,点击”保存”。你的服务现在有了身份标识和通信密码。
第四步:测试服务是否正常工作
打开浏览器,构造一个测试 URL(记得把地址和 token 换成你的):
https://<你的Worker地址>/wxsend?title=测试消息&content=服务部署成功!&token=your_secret_token
如果一切正常,你会看到类似”Successfully sent messages to 1 user(s). First response: ok”的提示。同时,你配置的微信用户应该能收到一条模板消息卡片。
如果没看到,别慌,检查一下:
-
token 是否写错 -
OpenID 是否正确 -
模板 ID 有没有空格 -
公众号是否有模板消息权限
部署方式二:通过 GitHub 仓库自动部署(适合团队协作)
如果你习惯用 Git 管理代码,或者希望实现持续集成,推荐这种方式。每次代码更新推送到 GitHub,Cloudflare 会自动重新部署。
第一步:Fork 项目仓库
打开项目 GitHub 页面,点击右上角的”Fork”按钮,把它复制到你自己的账户下。当然,你也可以克隆到本地,然后推送到你新建的私有仓库。
第二步:在 Cloudflare 中连接 GitHub
同样在 Cloudflare 仪表板,进入”Workers 和 Pages”,但这次点击”连接到 Git”。系统会引导你授权 Cloudflare 访问你的 GitHub 账户。
授权完成后,选择你刚才 Fork 的仓库。
第三步:配置构建设置
这一步很关键。因为 WXPush 是纯 JavaScript,不需要构建过程,所以构建设置要特别配置:
-
项目名称:随意,比如 wxpush-production -
生产分支:通常是 main或master -
框架预设:必须选 None -
构建命令:留空 -
输出目录:留空 -
根目录:保持 /即可
第四步:添加环境变量
和方式一一样,在配置页面的”环境变量”部分,把 API_TOKEN, WX_APPID, WX_SECRET 等变量全部加上。切记勾选”加密”。
第五步:保存并部署
点击”保存并部署”。Cloudflare 会自动从 GitHub 拉取代码,完成部署。以后只要你向 main 分支推送新代码,Cloudflare 都会在几分钟内自动更新服务。
你可以看到每次部署的记录,包括谁在什么时候推送了什么代码,出了问题也方便回滚。
如何调用这个推送服务?
服务跑起来后,怎么用?WXPush 支持两种调用方式:GET 请求和 POST 请求,满足不同场景。
方式一:简单的 GET 请求
这是最直接的用法,适合在浏览器里测试,或者在脚本里用 curl 快速调用。
基础格式:
https://<你的Worker地址>/wxsend?token=你的密钥&title=消息标题&content=消息内容
参数说明:
| 参数名 | 是否必填 | 作用 | 示例 |
|---|---|---|---|
token |
是 | 验证调用者身份 | WxPush_2024_Secure_Key_XyZ9LmPqRsTu |
title |
是 | 消息标题,会显示在卡片首行 | 系统告警 |
content |
是 | 详细内容 | 磁盘使用率超过 90% |
userid |
否 | 临时指定接收人,覆盖默认值 | o7Xy_1a2B3c4D5e6F7g8H9i0J1k2L3m |
template_id |
否 | 临时更换模板 | 6n_CMcMWtwWMG7pyt1uFg9K27pX-qHQ... |
appid |
否 | 临时更换公众号 | wx1234567890abcdef |
secret |
否 | 临时更换密钥 | a1b2c3d4e5f678901234567890123456 |
base_url |
否 | 临时更换跳转链接 | https://example.com/alerts |
一个完整的例子:
假设你的 Worker 地址是 wxpush-api.yourname.workers.dev,想发一条服务器重启通知:
<-URL-> 22:00 重启&token=WxPush_2024_Secure_Key_XyZ9LmPqRsTu
注意,URL 里的空格和特殊字符要编码成 %20 这类格式,否则可能出错。
方式二:更专业的 POST 请求
GET 请求虽然简单,但参数暴露在 URL 里,不适合传递敏感信息。POST 请求把数据放在请求体里,更安全,也更符合 RESTful 规范。
请求地址:
https://<你的Worker地址>/wxsend
请求头:
Authorization: 你的token
Content-Type: application/json
请求体(JSON 格式):
{
"title": "Webhook 通知",
"content": "自动化任务已完成,处理 1234 条记录",
"userid": "o7Xy_1a2B3c4D5e6F7g8H9i0J1k2L3m",
"template_id": "6n_CMcMWtwWMG7pyt1uFg9K27pX-qHQ..."
}
实际调用示例(cURL):
curl -X POST <-URL-> \
-H 'Authorization: WxPush_2024_Secure_Key_XyZ9LmPqRsTu' \
-H 'Content-Type: application/json' \
-d '{
"title": "订单支付成功",
"content": "订单号:<-PHONE->,金额:¥299.00"
}'
这种方式特别适合集成到各种系统里:
-
GitLab/GitHub Webhook:代码提交后自动通知团队 -
监控系统:Prometheus、Zabbix 告警直接推送到微信 -
业务系统:用户下单、发货、退款等关键节点实时通知 -
定时任务:每天下班前把数据报表推给自己
常见问题与解答(FAQ)
在部署和使用过程中,你可能会遇到这些疑惑。我根据大家的反馈,整理了最集中的几个问题。
问:Cloudflare Workers 的免费额度真的够用吗?
答:对于个人项目或小型团队,完全够用。免费套餐每天 10 万次请求,假设你每分钟调用一次,一天也才 1440 次。即使给 50 个人发通知,每人每天 10 条,也才 500 次。除非你的业务已经达到日活数万级别,否则很难用完。真的接近上限时,Cloudflare 会发邮件提醒,你可以考虑升级到付费套餐,每月 5 美元起步。
问:微信公众号必须是企业认证的吗?个人号行不行?
答:很遗憾,个人订阅号不支持模板消息能力。你需要注册并认证一个企业主体公众号,或者服务号。认证费用是 300 元/年,由腾讯收取。这是微信官方的门槛,目的是防止滥用。如果你没有企业资质,可以找有资质的朋友合作,或者用测试号先玩一下(但测试号的模板消息有限制)。
问:如何获取用户的 OpenID?
答:OpenID 是用户在特定公众号下的唯一标识。获取方式有几种:1)如果你的公众号有网页授权功能,用户访问你的网页时,可以通过 OAuth2.0 接口获取;2)用户向公众号发送消息时,微信服务器推送事件里会包含 OpenID;3)如果你们有小程序,可以从小程序端获取后传给服务端。最简单的方式是,让用户关注公众号后,在后台”用户管理”里导出关注者列表,就能看到 OpenID。
问:配置环境变量时,哪些必须加密?
答:API_TOKEN、WX_APPID、WX_SECRET 这三项强烈建议加密。特别是 WX_SECRET,这是调用微信接口的密钥,一旦泄露,别人可以冒充你的公众号发消息。WX_USERID 虽然敏感性稍低,但加密更好。WX_TEMPLATE_ID 和 WX_BASE_URL 是公开的,可以不加密。但为统一安全标准,全部加密也没问题,Cloudflare 的加密存储不会影响使用性能。
问:URL 参数可以覆盖环境变量,那是不是意味着我的 token 可以明文写在 URL 里?
答:技术上可以,但强烈不建议。URL 会记录在浏览器历史、服务器日志等很多地方。推荐使用 POST 方式,把 token 放在 Authorization 请求头里。如果必须用 GET,至少确保你的请求是在服务端发起,而不是在前端 JavaScript 里,否则等于把钥匙交给了所有人。
问:为什么调用成功了,但微信没收到消息?
答:这个问题排查起来有几个方向:1)检查 OpenID 是否正确,这个用户是否真的关注了公众号;2)检查模板 ID 是否与公众号匹配;3)确认微信接口没有返回错误,但消息进入发送队列后失败(这种情况较少);4)最可能的是,微信对模板消息有频率限制,同一用户同一模板 24 小时内只能收一条。超过限制会静默失败。解决办法是多用几个模板,或者优化发送逻辑,避免重复。
问:我可以同时推送给多个用户吗?
答:完全可以。在配置 WX_USERID 时,用 | 符号分隔多个 OpenID,比如 openid1|openid2|openid3。调用时如果 URL 里再传 userid 参数,会完全覆盖这个列表。如果你想动态控制接收人群,建议在调用方维护一个用户列表,循环调用接口,而不是把所有 OpenID 都写在环境变量里,那样太僵化了。
问:点击模板消息后能跳转到指定页面吗?
答:可以。这就是 WX_BASE_URL 参数的作用。点击消息后,微信会打开这个链接。你可以在 URL 里带上参数,比如 `<-URL-> 可以动态生成跳转链接,方便接收者直接查看详情。注意,跳转域名必须在公众号后台的”网页授权域名”列表里,否则会被拦截。
问:如何集成到 Prometheus 告警系统?
答:Prometheus 的 Alertmanager 支持 webhook 配置。在 alertmanager.yml 里添加一个接收器:
receivers:
- name: 'wechat-push'
webhook_configs:
- url: 'https://<你的Worker地址>/wxsend'
http_config:
headers:
Authorization: '你的token'
send_resolved: true
然后在告警规则里,把 title 和 content 组织成 JSON 格式。Alertmanager 触发时会自动 POST 过来。你可能还需要写一个中间转换脚本,把 Prometheus 的告警格式转成 WXPush 需要的格式。
安全与最佳实践
虽然方案本身很安全,但使用中还是要注意一些细节,避免给自己挖坑。
Token 管理:API_TOKEN 就是调用接口的密码。不要在 Git 仓库、日志、前端代码里出现。建议定期更换,更换时先在 Cloudflare 后台更新环境变量,然后逐步把调用方改成新 token,避免服务中断。
权限最小化:如果团队有多人,不要在所有场景都用同一个 token。可以为不同业务创建不同的 Worker 实例,每个实例用不同的 token 和接收人列表。比如监控告警用一个,业务通知用另一个,这样即使某个 token 泄露,影响范围也有限。
日志与监控:Cloudflare Workers 自带日志功能。在仪表板里可以看到每次请求的详情,包括响应时间、状态码、错误信息。建议定期查看日志,特别是刚开始使用时,确保调用都正常。如果收到错误邮件,及时处理。
频率控制:微信对模板消息有严格限制。除了单用户 24 小时一条的限制,还有整体发送频率的限制。虽然官方没公布具体数字,但建议不要短时间内大量发送,否则可能被微信限制接口权限。如果你的业务量很大,考虑接入微信的客服消息或企业微信。
错误处理:调用接口时,做好错误处理。WXPush 返回 200 不代表消息一定送达,它只表示成功调用了微信接口。微信接口本身可能返回错误,比如用户未关注、模板不匹配等。这些错误信息会放在响应文本里,建议解析出来记录到日志。
实际应用场景举例
理论说得再多,不如看看别人怎么用。这里举几个真实场景,帮你打开思路。
场景一:服务器监控告警
小 A 运维着几台云服务器,装了 Prometheus 监控。以前告警发邮件,但他不常看。现在他把 Alertmanager 配置成 webhook,告警直接推到自己微信。标题写”服务器告警”,内容写”主机 db-01 CPU > 90%,当前值 95.3%”。点击消息跳转到 Grafana 看详细图表。半夜手机一震,就知道出事了,马上处理。
场景二:电商订单通知
小 B 的 Shopify 独立站每天有几单生意。以前订单通知靠邮件,经常被归类到垃圾信箱。现在他用 Shopify 的 webhook 功能,新订单产生时自动调用 WXPush。标题写”新订单提醒”,内容写”订单号 #12345,金额 ¥599,商品 T恤 x2″。客服微信收到后,马上安排发货,效率提升不少。
场景三:个人习惯养成
小 C 想培养每天喝水的习惯。他写了个简单的 Python 脚本,每天上午 10 点、下午 3 点通过系统的 cron 定时执行,调用 WXPush 给自己发消息”该喝水了”。成本为零,但效果奇好,因为微信是他肯定会看的应用。
场景四:Git 提交通知
小 D 带的开发团队用 GitLab 管理代码。每次有人往主分支合并代码,GitLab 的 webhook 就触发 WXPush,通知技术负责人。标题写”代码合并提醒”,内容写”张三 合并了 MR #42,涉及 5 个文件”。负责人快速查看代码改动,确保质量。
这些场景的共同点是:信息重要但不紧急,需要确保送达,但不需要实时聊天互动。模板消息正好满足这类需求。
视频教程与进阶学习
如果你看完文字还是觉得没把握,项目作者准备了一个详细的视频教程,手把手演示每一步操作。视频在 YouTube 上,时长约 20 分钟,涵盖了从注册账号到成功发送第一条消息的全过程。

视频地址是 `<-URL-> 有中文解说,配合画面操作,零基础也能跟上。建议边看边暂停,在自己的浏览器里同步操作。
如果你已经熟悉 Cloudflare Workers,想深入定制代码,可以直接研究 src/index.js 里的实现。它包含了微信 access_token 的缓存逻辑(避免频繁调用微信接口)、参数验证、错误处理等。你可以根据自己的需求修改,比如增加日志记录、支持更多消息类型、或者对接企业微信。
成本分析与升级建议
再聊聊钱的事。免费套餐的 10 万次请求/天,是怎么算的?每次你调用 /wxsend 算一次请求,Cloudflare 内部请求(比如获取环境变量)不计入。如果你的消息要发给 10 个人,WXPush 会循环调用微信接口,但这仍然只算 1 次 Worker 请求。
什么情况下会用完?举个例子:你的服务被攻击了,有人恶意刷接口;或者你把它用作了公开 API,被大量调用。正常业务场景下,日活几千的用户量都很难用完。
如果真用完了,Cloudflare 会返回 HTTP 429 错误,服务暂时不可用。此时你有几个选择:
-
升级到 Workers Paid 套餐,5 美元/月,请求额度提升到 1000 万次/天 -
优化调用逻辑,减少不必要的请求。比如合并多条消息,批量发送 -
在代码里加简单限流,防止某个调用方过度使用
付费套餐还带来了其他好处:更长的时间限制(免费版每次请求最多 10 毫秒 CPU 时间,付费版 50 毫秒)、更大的 KV 存储、更详细的分析数据。但这些对推送服务来说,免费版已经足够。
关于微信公众号的成本,除了 300 元/年的认证费,模板消息本身是免费的。但注意,如果用户取消关注,或者投诉你滥用消息,微信可能会限制你的接口权限。所以一定确保消息对用户有价值,不要乱发广告。
故障排查自查清单
服务中断时,别急着找人问,先按这个清单自查,能解决 90% 的问题。
-
检查 Cloudflare 状态:进去 Worker 后台,看最近几次请求的状态码。如果是 4xx,看是不是 token 错了;如果是 5xx,看日志里的错误信息。 -
验证微信凭证:在公众号后台重置 AppSecret,然后在 Cloudflare 环境变量里更新。注意,重置后要等 5 分钟左右生效。 -
测试最小化:用最简单的 GET 请求测试,只带 token、title、content三个参数,排除其他因素干扰。 -
查看微信返回码:WXPush 的返回文本里包含了微信接口的原始响应。如果看到 errcode: 40003,表示 OpenID 无效;errcode: 43004表示用户未关注;errcode: 45047表示发布次数超限。 -
检查模板是否可用:登录公众号后台,确认模板还在有效期内,且没有被删除。 -
确认网络连通性:虽然 Cloudflare 全球节点都很稳定,但偶尔也会有波动。可以用 curl -I命令检查你的 Worker 地址是否通。 -
查看代码版本:如果你用 GitHub 部署,确认生产分支的代码确实包含了最新的修改。有时候推送了但没触发部署,需要手动在 Cloudflare 里点击”重新部署”。
如果自查后还是没解决,可以去 GitHub 项目页面提 Issue,附上你的错误日志(记得隐去敏感信息),作者和社区会帮忙分析。
贡献与开源协议
WXPush 是一个开源项目,采用 MIT 许可证。这意味着你可以自由使用、修改、分发代码,甚至用于商业项目。唯一的要求是在代码里保留原作者的版权声明。
如果你在使用过程中发现了 Bug,或者有好的改进想法,欢迎提交 Pull Request。比如:
-
增加更多消息类型的支持 -
优化错误提示信息 -
添加多语言支持 -
写更详细的部署文档
项目地址在 GitHub,搜索 “WXPush” 就能找到。参与开源不仅能让工具变得更好,也是提升自己代码能力的好机会。即使你不懂代码,帮忙翻译文档、录制教程视频,也是宝贵的贡献。
总结与下一步行动
写到这里,相信你对如何用 Cloudflare Workers 搭建微信推送服务已经有了完整认识。我们来回顾一下核心步骤:
-
准备微信公众号和 Cloudflare 账号 -
选择部署方式(代码粘贴或 GitHub 集成) -
配置敏感的环境变量并加密 -
用 GET 或 POST 方式调用接口 -
根据业务需求灵活使用 URL 参数覆盖默认配置
这个方案的价值在于,它把复杂的微信接口调用封装成了简单的 HTTP 请求,把服务器运维的工作交给了 Cloudflare。你不需要关心服务器配置、SSL 证书、负载均衡这些琐事,专注于业务本身。
下一步你可以做什么?
-
立刻动手部署一个测试实例,发第一条消息给自己 -
把现有系统的邮件通知改成微信推送,提升触达率 -
研究一下 Cloudflare Workers 的其他能力,比如 KV 存储、Durable Objects,看看能否做出更有意思的应用 -
在团队内推广,让监控、业务告警都能推到微信
技术的世界很大,但好的工具能让复杂的事情变简单。希望 WXPush 能成为你工具箱里的得力助手。如果你在部署中遇到问题,或者有独特的使用场景,欢迎分享出来,让更多人受益。
附录:结构化数据标记
为了让搜索引擎和 AI 助手更好地理解这篇文章,我们提供了以下结构化数据。
FAQ Schema
{
"@context": "<-URL->",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Cloudflare Workers 的免费额度真的够用吗?",
"acceptedAnswer": {
"@type": "Answer",
"text": "对于个人项目或小型团队,完全够用。免费套餐每天 10 万次请求,正常业务场景下日活几千的用户量都很难用完。接近上限时,Cloudflare 会发邮件提醒,可考虑升级付费套餐或优化调用逻辑。"
}
},
{
"@type": "Question",
"name": "微信公众号必须是企业认证的吗?个人号行不行?",
"acceptedAnswer": {
"@type": "Answer",
"text": "个人订阅号不支持模板消息能力。需要注册并认证企业主体公众号或服务号,认证费用 300 元/年。这是微信官方防止滥用的安全机制。"
}
},
{
"@type": "Question",
"name": "如何获取用户的 OpenID?",
"acceptedAnswer": {
"@type": "Answer",
"text": "OpenID 可通过三种方式获取:1)公众号网页授权 OAuth2.0 接口;2)用户发送消息时微信推送的事件;3)在公众号后台'用户管理'导出关注者列表。"
}
}
]
}
HowTo Schema
{
"@context": "<-URL->",
"@type": "HowTo",
"name": "如何通过 Cloudflare Workers 部署微信推送服务",
"description": "使用 WXPush 项目在 Cloudflare Workers 上搭建微信公众号模板消息推送服务",
"step": [
{
"@type": "HowToStep",
"name": "准备账号与凭证",
"text": "注册微信公众号并完成认证,获取 AppID 和 AppSecret。注册 Cloudflare 账号。"
},
{
"@type": "HowToStep",
"name": "创建 Cloudflare Worker",
"text": "登录 Cloudflare 仪表板,进入 Workers 和 Pages,创建新的 Worker 服务。"
},
{
"@type": "HowToStep",
"name": "部署 WXPush 代码",
"text": "删除 Worker 默认代码,将 WXPush 项目的 src/index.js 内容完整粘贴到在线编辑器,保存并部署。"
},
{
"@type": "HowToStep",
"name": "配置加密环境变量",
"text": "在 Worker 设置中添加 API_TOKEN, WX_APPID, WX_SECRET, WX_USERID 等变量,并勾选加密选项。"
},
{
"@type": "HowToStep",
"name": "测试服务",
"text": "使用浏览器或 curl 构造 GET 请求调用 /wxsend 接口,验证消息能否成功推送到微信。"
}
]
}
参考文献:
-
Cloudflare Workers 官方文档: <-URL-> -
维基百科 – Serverless 计算: <-URL->

