服务端掌握最终成交事实
价格、优惠、运费、税费、库存与支付结果必须由后端核算,浏览器只提交用户选择。
Checkout Quote
商城把购物车、地址和配送选择提交到 /checkout/quote。后端重新读取商品与 SKU 数据,返回权威金额和库存可用性。
- 商品与变体当前售价
- SKU 与地点库存
- 优惠资格与折扣
- 配送方式、税费、币种和应付总额
创建订单
订单接口只接受购物车、地址和支付意图等输入。创建前再次 quote,并在数据库事务中锁定库存和写入订单金额。
客户端提交的 discount、shipping_fee 或 total 不能作为入账依据。
支付与 Webhook
- 浏览器支付结果不能直接把订单改为已支付
- Webhook 允许无登录访问,但必须验签
- 使用支付事件 ID 做幂等
- 记录失败原因并支持安全重试
库存与履约
库存以 SKU + location 为维度,区分可售、已承诺和实际库存。发货、取消与退款通过库存流水回溯。