准备两种不同的密钥
Stripe 接入需要区分 API 私钥和 Webhook 签名密钥:前者用于创建付款会话,后者用于验证 Stripe 发来的支付通知。两项不能填写同一个值。
先确定使用测试还是正式环境,并确认账户支持所需币种和支付方式。在对应环境取得 Secret key,相关说明见Stripe API keys。
填写 Stripe 设置
使用能保存瓜奇设置的后台账号,进入「支付」→「Stripe」。
- 打开「启用此支付方式」,填写支付名称、说明和图标。
- 在「支持的货币」中选择业务要使用的币种。
- 将 Stripe Secret key 填到「私钥」。
- 在「支付方式」中填写账户实际支持的方式,多个值用英文逗号分隔,例如
card,alipay,wechat_pay。 - 将「前台支付形式」设为「跳转收银台」。当前流程使用 Stripe Checkout 收银台。
示例中的支付方式也是后台默认值,但不代表每个账户、地区和币种都能使用。填写前应核对实际可用范围;缺少私钥或支付方式时,当前代码会阻止发起付款。
配置支付通知
在 Stripe Webhooks 中添加目标前端的 /api/callback 端点,订阅 checkout.session.completed 和 checkout.session.async_payment_succeeded。目标前端是买家访问的网站,不是 WordPress 后台。
取得该端点以 whsec_ 开头的签名密钥,填入瓜奇「Webhook 签名密钥」。端点与签名说明见Stripe Webhooks。
当前游客付款必须填写 Webhook 签名密钥。它只是游客支付的必要条件之一,具体商品、表单或资源仍需允许游客购买。
保存并验证
- 保存设置,从目标前端打开有有效价格的购买项目,检查币种和 Stripe 入口。
- 发起测试付款,确认能正常进入 Checkout 收银台。
- 完成付款后,检查浏览器回跳和 Webhook 通知是否正常。
- 核对订单已确认付款,再验证商品、表单或资源是否按预期可用。计划支持游客时,单独测试游客流程。
切换正式收款时,应同时核对正式 API 私钥、通知端点及其签名密钥。测试环境的密钥不能直接用于正式环境。
按提示排查
| 现象或提示 | 先检查什么 |
|---|---|
| 配置不完整 | 「私钥」是否填写,「支付方式」是否为空或填写错误。 |
| 游客付款要求 Webhook secret | 是否填写了对应端点的「Webhook 签名密钥」。 |
| 签名无效 | 通知端点、测试或正式环境、签名密钥是否匹配。不要通过关闭验签绕过错误。 |
| 没有 Stripe 入口 | 渠道开关、支持币种、业务价格及当前身份的购买条件。 |
| 已返回网站,订单却未确认 | Webhook 是否到达并通过校验,以及订单实际支付状态。 |
外部 Webhook 无法直接访问仅本机可达的 localhost。本地测试需要外部可达的转发入口;使用转发工具时,还要填写与该测试方式匹配的签名密钥。