- 商户在服务端创建收银台会话
- 将
checkoutUrl返回给前端 - Customer 点击链接进入托管收银台页面
- Customer 填写账单信息、预览税费并完成订单
请求体(API Key)
请求体(Store Slug)
Store Slug 认证不支持
priceSnapshot、expiresInSeconds、metadata、orderMerchantExternalId、withTrial、includePaymentMethods 和 excludePaymentMethods。这些字段会被静默忽略,以防止客户端篡改价格和操纵会话。支付方式属于商户侧的商业决策(渠道费率、结算周期),浏览器不得收窄或放宽——Store Slug 创建的 session 一律开放该货币支持的全部方式。ID 命名约定:同一组扁平双 key 名(checkout 端的
orderMerchantExternalId、退款工单端的 refundTicketMerchantExternalId)贯穿请求体、webhook 载荷以及承载这些值的每个 GraphQL 类型 — 在 checkout 创建时写入的值可在 Order、Payment、Refund 及 webhook 载荷中以相同的字段名读回。价格快照对象
账单详情对象
会话锁定
创建收银台会话时,以下值被锁定,在会话有效期内无法更改:productVersionId、productName、priceInfo、storeName、billingPeriod、withTrial、theme、buyerEmail、billingDetail
邮箱规范化:所有邮箱字段(email / buyerEmail / contactEmail)在服务端会被规范化(trim().toLowerCase())后再用于存储、cache、下游调用。Foo@Bar.COM 与 foo@bar.com 视为同一账户。
请求示例
成功响应 (200)
响应字段
错误响应
重试策略:4xx 一律不要重试 — 修正请求后重发。5xx 指数退避重试(起步 5s,最多 3 次)。
payin_enable 与 prod_enabled 是两个相互独立的条件:payin_enable 是平台侧控制的收款开关,prod_enabled 是生产环境审批(KYB)闸门。在 prod 环境下,任一条件单独不满足即返回 403。两者在 test 环境均不适用。