Skip to main content

结账 API

2.1 能力标识

结账能力的命名空间为 dev.ucp.shopping.checkout,是UCP最核心的交易能力。它定义了从创建购物会话到完成支付的完整流程。

2.2 结账会话状态机

一个结账会话(Checkout Session)在其生命周期内经历6个明确的状态:
关键设计: requires_escalation 状态允许商家在AI无法自动处理的场景下将控制权交给人类(例如需要法律合规确认的高价商品)。complete_in_progressincomplete 的回退路径处理支付失败等异常场景。

2.3 五种操作

Create — 创建结账会话

响应:

Get — 查询结账会话

返回会话的当前完整状态,包括所有行项目、定价、买家信息和配送选项。

Update — 更新结账会话

Update操作可以多次调用,逐步补充信息。当所有必要信息就绪后,状态自动转为 ready_for_complete

Complete — 提交完成

仅当状态为 ready_for_complete 时可调用。调用后状态变为 complete_in_progress,商家异步处理支付和订单创建。成功后状态变为 completed,失败则回退到 incomplete 响应:
完成后的最终响应(通过Get查询或Webhook回调):

Cancel — 取消会话

除了 completedcanceled 两个终态外,任何状态都可以取消。

2.4 ISO 4217 金额处理

UCP严格要求所有金额使用 ISO 4217最小货币单位(minor units)表示,避免浮点数精度问题:
开发注意: 不同货币的最小单位指数不同。CNY和USD是2位(除以100),JPY是0位(直接使用),KWD是3位(除以1000)。实现时务必参考ISO 4217的exponent定义。

2.5 嵌入式结账UI

当AI代理无法在纯API模式下完成结账(例如复杂的支付验证、3D Secure认证),UCP支持嵌入式UI模式: 嵌入式UI通过 requires_escalation 状态触发。商家在响应中返回UI URL:
嵌入式UI支持双向通信,用户在商家页面完成操作后,状态自动更新。

2.6 价格透明要求

UCP要求所有价格信息必须完全透明。在结账会话中,定价对象必须包含: AI代理在调用Complete操作前,必须向消费者展示完整的价格明细并获得确认。
下一章: 身份关联 — OAuth 2.0 Authorization Code流程、令牌撤销和scope管理