流程总览
各阶段说明
1. 商户创建支付订单
商户服务端调用POST /api/merchant/payment/create 创建支付订单。
请求参数包含:
- 商户交易号(唯一标识)
- 订单金额与币种
- 商品信息
- 客户信息
- 支付成功/取消后的跳转地址
order_id:平台订单号pay_url:收银台地址,引导用户支付
2. 商户重定向消费者
商户将消费者浏览器重定向到pay_url(或在自己的页面中嵌入 iframe)。
3. 收银台加载
消费者打开收银台页面后:- 收银台根据订单信息加载可用的支付方式
- 展示支付金额、商品摘要等信息
- 消费者选择合适的支付方式
4. 支付方式
支持的支付方式包括:| 类型 | 说明 |
|---|---|
| 银行卡 | Visa, Mastercard, AMEX 等 |
| 电子钱包 | Alipay, WeChat Pay 等 |
| 银行转账 | 银行直连支付 |
5. 消费者提交支付
消费者填写支付信息(如卡号、有效期、CVV)后提交。 收银台根据渠道类型处理:- Stripe Elements:由 Stripe.js SDK 安全采集卡信息
- Antom SDK:加载 Antom 支付组件
- 重定向:跳转到第三方支付页面
6. 渠道处理 & 异步通知
支付渠道(Stripe、Antom 等)处理支付后,通过异步回调通知 PayMatrix:POST /api/webhook/{channelId}
7. 商户 Webhook 通知
平台确认支付结果后,向商户配置的 Webhook 地址推送事件:order.payment.succeeded— 支付成功order.payment.failed— 支付失败order.payment.processing— 处理中
8. 商户主动查询(可选)
商户也可以调用GET /api/merchant/order/payment/query/{transactionId} 主动查询支付状态。
支付状态流转
超时处理
- 支付订单有有效期,超过有效期未支付将自动关闭
- 建议商户在
pay_url页面提示用户支付有效期
幂等性
- 同一
merchant_transaction_id不可重复创建支付 - 如网络超时未收到响应,建议以相同参数重试(平台保证幂等)
