如需让用户结账,您必须实现原生结账集成。这需要创建一个标准 REST API,以便 Google 以编程方式管理与您服务器的结账流程。此方法可为用户提供最顺畅的体验。最初,Google 将为买家呈现用户界面,未来计划支持更多智能体体验。
结账流程
原生集成要求您构建一个 RESTful API,供 Google 调用以创建和管理结账会话。
整体流程如下:
- 构建结账会话:用户和代理(可选)处于循环中,向会话添加商品。
- 移交给 Google 界面:用户决定结账后(如果已互动),将控制权移交给 Google 界面(传递结账会话数据)
- 手动结账:用户现在仅与 Google 界面互动,以填写敏感的履单和付款详细信息并提交订单。代理不参与此部分,确保确定性。
- 完成和返回:Google 界面会显示“谢谢”页面以确认订单。用户也可以选择重定向回代理,代理可能已经收到购买完成的通知。
结账会话状态生命周期
当用户完成结账流程时,您必须更新结账会话 status 以反映其当前状态。会话会经历以下生命周期:
incomplete:创建会话时的初始状态。这表示缺少或未计算强制性信息(例如配送方式、税费或用户详细信息)。ready_for_payment:在用户更新送货地址后,您计算送货选项和总金额,但在支付方式最终确定之前要使用的状态。ready_for_complete:在支付方式选定且所有订单详情都经过验证后,在完整结账对象水合期间使用的状态。completed:成功处理付款并下单后返回的最终状态。canceled:结账会话中止时返回的状态。error:如果出现无法恢复的业务逻辑错误,导致无法结账,则返回此状态。此状态可在 UCP 版本2026-04-08及更高版本中使用。
多件商品结账流程:
Google 现在支持在单个结账会话中添加多个不同的订单项。 一般流程如下:
- 用户从启用 UCP 的界面发起结账流程(例如,点击商品上的“立即购买”)。
- 系统会进行
POST /checkout-sessions调用,其中包含line_items数组中的所有不同项。line_items数组将包含一个单独的对象,用于表示每件正在结账的唯一商品。 - 用户可以使用
PUT /checkout-sessions/{id}调用更新支付方式、履单详细信息或应用折扣。 - 当用户点击“Pay with GPay”按钮时,系统会进行
POST /checkout-sessions/{id}/complete调用。
身份验证
如需详细了解如何保护 Native Checkout API 端点,包括支持的身份验证方法(例如 API 密钥和 OAuth 2.0),请参阅身份验证和安全性指南。
开发者工具
为帮助您实现原生结账 API,您可以在通用商务协议 GitHub 代码库中找到以下资源:
- UCP GitHub 代码库:浏览主代码库,获取全面的文档、规范和社区资源。
- SDK:使用软件开发套件可加快集成速度。 我们提供特定于语言的 SDK,包括:
一致性测试:使用一致性测试套件根据 UCP 规范验证 API 端点
这有助于确保您的实现符合所需的标准和行为。
我们强烈建议您使用这些工具来简化开发和测试流程。
服务等级目标
以下服务等级目标 (SLO) 适用于原生结账 REST API 端点。与 Google 集成的企业应达到这些 API 性能和可用性目标。
| 端点 | 可用性 | 延迟时间(第 50 百分位) | 延迟时间(第 95 百分位) |
|---|---|---|---|
POST /checkout-sessions(创建) |
>= 95% | <= 1 秒 | <= 4 秒 |
PUT /checkout-sessions/{id}(更新) |
>= 95% | <= 1 秒 | <= 5 秒 |
POST /checkout-sessions/{id}/complete(完成) |
>= 95% | <= 6 秒 | <= 10 秒 |
第 50 百分位延迟时间表示至少 50% 的请求预计在此时间内完成。第 95 百分位的延迟时间表示至少 95% 的请求预计在此时间内完成。
后续步骤
查看您的 UCP 版本的结账 API 载荷和技术实现详细信息: