在跨境独立站和出海电商业务中,支付收单是交易转化的核心生命线。Stripe 作为全球领先的收单网关,支持 Visa、MasterCard、American Express 等全球主流信用卡,以及 Apple Pay、Google Pay 等本地化快捷支付。
轻铺(Shoply)底层原生集成了 Stripe 支付网关,支持异步 Webhook 对账、3D Secure 2.0 强客户认证(SCA)、多币种实时结算与原路退款。
本文将为你详解在轻铺中接入 Stripe 的完整流程,从获取 API 密钥、配置 Webhook,到沙箱测试与正式上线。
一、配置界面全貌
轻铺后台提供了直观的支付网关配置看板,集成了 API 凭据、沙箱开关与多币种汇率管理:
二、Stripe 开发者后台准备工作
在配置轻铺前,需登录 Stripe Dashboard 获取商户凭据:
1. 获取 API 密钥 (Publishable Key & Secret Key)
- 登录 Stripe Dashboard;
- 初始测试时,确保右上角开启 「Test mode(测试模式)」;
- 左侧导航进入 「Developers(开发者)」->「API keys(API 密钥)」;
- 复制两组密钥:
- Publishable Key(可发布密钥):以
pk_test_(测试)或pk_live_(生产)开头; - Secret Key(机密密钥):点击 Reveal 复制,以
sk_test_(测试)或sk_live_(生产)开头。
- Publishable Key(可发布密钥):以
[!WARNING]
机密密钥(Secret Key)拥有扣款与退款的全部权限,严禁泄露或提交到前端公开代码中。
2. 配置 Webhook 对账端点 (Webhook Endpoint)
独立站买家完成信用卡支付或 3D 验证后,Stripe 会通过 Webhook 异步通知轻铺更新订单状态。配置不正确会导致“买家扣款成功,后台订单状态却仍为待支付”。
-
在 Stripe Dashboard 中,点击 「Developers」->「Webhooks」;
-
点击右上角 「Add endpoint(添加端点)」;
-
Endpoint URL(端点地址):填入你的独立站 Webhook 回调地址:
https://yourbrand.com/api/v1/payment/stripe/webhook -
Listen to(监听事件):点击「Select events」,至少勾选以下核心事件:
payment_intent.succeeded(支付意向成功,核心对账触发点)payment_intent.payment_failed(扣款失败,记录失败原因)charge.refunded(退款成功,同步更新轻铺售后退款状态)
-
创建完成后,进入该 Webhook 详情页,在 「Signing secret(签名机密)」 处点击 Reveal,获取以
whsec_开头的签名密钥。
三、在轻铺后台配置与激活
- 登录轻铺后台,点击左侧「设置」->「支付配置」->「Stripe」;
- 填写凭据:
- Stripe Publishable Key:填入
pk_...; - Stripe Secret Key:填入
sk_...; - Webhook Signing Secret:填入刚才获取的
whsec_...;
- Stripe Publishable Key:填入
- 沙箱开关:若为测试环境,打开「Test Sandbox Mode」开关;
- 支持货币:下拉选择店铺结算币种(如 USD、EUR、GBP 等),系统会自动按设定的基准汇率进行换算;
- 点击右上角 「Save Changes(保存更改)」。
四、沙箱联调与 3D 验证测试
在测试模式下,可使用 Stripe 官方测试卡号进行完整的支付链路验证:
| 测试场景 | 测试卡号 | 有效期 | CVC | 预期结果 |
|---|---|---|---|---|
| 常规扣款成功 | 4242 4242 4242 4242 |
未来到期即可 | 任意 3 位 | 立即支付成功,订单自动流转为「已支付」 |
| 3D Secure 强认证 | 4000 0027 6000 3184 |
未来到期即可 | 任意 3 位 | 弹出 3DS 模拟验证窗口,点击「Complete」后成功 |
| 卡内余额不足 | 4000 0000 0000 0115 |
未来到期即可 | 任意 3 位 | 前端提示 Your card has insufficient funds |
| 无效卡号拒绝 | 4000 0000 0000 0002 |
未来到期即可 | 任意 3 位 | 前端提示 Your card was declined |
sequenceDiagram
autonumber
actor Buyer as 海外买家
participant Site as 轻铺独立站 (Checkout)
participant Server as 轻铺后端 (Go-Fast)
participant Stripe as Stripe API & Webhook
Buyer->>Site: 填写收货地址并提交订单
Site->>Server: POST /checkout/order
Server->>Stripe: 创建 PaymentIntent (金额、币种、OrderId)
Stripe-->>Server: 返回 Client Secret
Server-->>Site: 返回支付上下文
Site->>Stripe: Stripe Elements 安全提交卡号
alt 需要 3DS 认证
Stripe-->>Buyer: 弹出 3D Secure 银行短信/App 验证
Buyer->>Stripe: 完成验证
end
Stripe-->>Site: 前端支付成功,跳转完成页
Stripe->>Server: 异步 POST /payment/stripe/webhook (带签名)
Server->>Server: 校验签名 (whsec) 并推进订单状态为已支付
五、正式生产上线自检清单 (Pre-flight Checklist)
- 切换为生产密钥:在 Stripe Dashboard 关闭 Test Mode,复制
pk_live_与sk_live_,同时替换 Webhook 为正式版whsec_; - 全站强制 HTTPS:Stripe 仅允许在 HTTPS 环境下加载支付组件与接收 Webhook;
- 完善独立站合规政策:独立站 Footer 必须挂载完整的 Refund Policy(退款政策)、Privacy Policy(隐私政策) 与 Terms of Service(服务条款),避免被 Stripe 封控审核拦截;
- 真实小额扣款验证:使用真实外币信用卡进行一笔 $1 的小额真实扣款与退款测试,确认资金清算路径正常。