Stripe + Server酱:支付事件实时推送到微信
效果:Stripe 收到新付款、订阅、退款等事件时,自动推送到微信
前置条件
- Server酱 SendKey:登录 sct.ftqq.com,在「SendKey」页面复制(30 秒获取教程)
- Stripe 账户,且有权限访问 Developers 设置
- (可选)Cloudflare Workers 或其他云函数平台,用于中转动态内容
配置步骤
方案一:直连(固定标题,最简单)
在 Stripe 中进入 Developers → Webhooks → 添加端点,Endpoint URL 填入以下地址(中文已 URL 编码):
https://sctapi.ftqq.com/你的SENDKEY.send?title=Stripe%E6%9C%89%E6%96%B0%E4%BA%8B%E4%BB%B6
选择要监听的事件类型,保存即可。Stripe 每次触发事件都会向该 URL POST JSON,Server酱 服务端优先读取 URL query 中的 title 作为消息标题。
如果你的 SendKey 以
sctp开头(Server酱³),端点改为https://{uid}.push.ft07.com/send/{SendKey}.send,其中 uid 是 sctp 后面的数字。
Server酱 支持推送到微信服务号/企业微信/钉钉/飞书等多个通道,详见 /getting-started/channels/。
方案二:中转(动态标题+正文,可校验签名)
直连方案只能推送固定标题。若要把金额、客户邮箱等动态内容送进 desp,需要一层中转:用 Cloudflare Workers 或云函数接收 Stripe 的 Webhook,解析 JSON 后再转发给 Server酱。
中转服务地址填入 Stripe Webhook 的 Endpoint URL,例如:
https://your-worker.your-subdomain.workers.dev/
完整示例
以下 Cloudflare Workers 代码接收 Stripe Webhook,提取事件类型与关键字段,转发到 Server酱:
export default {
async fetch(request, env) {
const payload = await request.json();
const eventType = payload.type || 'unknown';
const obj = payload.data?.object || {};
const title = `Stripe: ${eventType}`;
const desp = [
`**事件类型**: ${eventType}`,
`**金额**: ${obj.amount ? (obj.amount / 100).toFixed(2) : 'N/A'} ${obj.currency || ''}`,
`**客户邮箱**: ${obj.customer_email || obj.receipt_email || 'N/A'}`,
`**事件ID**: ${payload.id || 'N/A'}`,
].join('\n\n');
const apiUrl = `https://sctapi.ftqq.com/${env.SERVERCHAN_SENDKEY}.send`;
await fetch(apiUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({ title, desp }),
});
return new Response('ok');
}
};
部署后在 Workers 设置中添加环境变量 SERVERCHAN_SENDKEY,值为你的 SendKey。Stripe 会在请求头中携带签名,请根据 Stripe 官方文档在代码中增加签名校验逻辑后再处理请求。
常见问题
免费额度够用吗?
Server酱 免费版每天 5 条消息,每分钟上限 50 条。Stripe 事件量不大时完全够用;订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。
配置后收不到消息怎么办?
先检查 Stripe Webhook 日志中请求是否返回 2xx,再确认 SendKey 是否正确。更多排查步骤见 /getting-started/faq/。
Stripe 事件太多会触发频率限制吗?
Server酱 每分钟上限 50 条。如果短时间内大量事件并发(如批量退款),建议在中转层做合并或限流。
直连方案能看到付款金额吗?
不能。直连方案 title 固定,desp 为空。需要动态内容请使用方案二的中转方式。
相关集成
- /integrations/python/ —— Python 脚本推送
- /integrations/uptime-kuma/ —— Uptime Kuma 宕机告警
- /integrations/qinglong/ —— 青龙面板任务通知