支付处理器规范指南
简介
本指南定义指定 UCP 支付处理器的标准结构和词汇,以确保一致性、完整性和清晰度。
目的
支付处理器实现平台、商家和支付提供商之间的 “N 对 N” 互操作性。规范的处理器必须回答:
- 谁参与? 涉及哪些参与者及其角色
- 有哪些先决条件? 需要什么入门或设置
- 如何配置? 宣告或使用什么配置
- 如何执行? 遵循什么协议
核心元素
参与者
参与支付处理器生命周期的不同参与者:
| 参与者 | 角色 |
|---|---|
| 商家 | 宣告处理器配置,处理支付工具 |
| 平台 | 发现处理器,获取支付工具,提交结账 |
| 令牌化器(可选) | 存储原始凭证并发行令牌凭证 |
| PSP(可选) | 代表商家处理支付 |
先决条件
参与者在参与之前必须完成的入门、设置或配置:
签名:
PREREQUISITES(participant, onboarding_input) → prerequisites_output输出包括:
- 身份(
PaymentIdentity格式中的access_token) - 额外配置、凭证或设置
处理器宣告
商家宣告的配置,以指示对此处理器的支持:
{
"id": "handler_instance_id",
"name": "com.example.handler",
"version": "2026-01-11",
"spec": "https://example.com/ucp/handler",
"config_schema": "https://example.com/ucp/handler/config.json",
"instrument_schemas": [
"https://example.com/ucp/handler/instruments/card.json"
],
"config": {
// 处理器特定配置
}
}工具获取
平台遵循的获取支付工具的协议:
签名:
INSTRUMENT_ACQUISITION(
platform_prerequisites_output,
handler_declaration,
binding,
buyer_input
) → checkout_instrument处理
参与者为接收到的支付工具执行的步骤:
签名:
PROCESSING(
identity,
checkout_instrument,
binding,
transaction_context
) → processing_result最佳实践
Schema 设计
| 实践 | 描述 |
|---|---|
| 扩展而非重新发明 | 使用 allOf 组合基本 schema |
| 对鉴别器使用 const | 将 credential.type 定义为 const |
| 提前验证 | 在最终确定之前在稳定 URL 发布 schema |
| 包括过期 | 为令牌凭证包含 expiry 或 ttl |
文档
| 实践 | 描述 |
|---|---|
| 展示而非仅讲述 | 包括完整的 JSON 示例 |
| 记录错误情况 | 指定错误处理 |
| 独立版本控制 | 处理器版本独立于 UCP 演变 |
安全
| 实践 | 描述 |
|---|---|
| 需要绑定 | 通过 binding 将凭证绑定到特定结账 |
| 最小化凭证暴露 | 设计流程以最小化原始凭证暴露 |
| 指定令牌生命周期 | 记录单次使用、时间限制或会话范围 |
一致性检查表
发布前,验证:
- 使用标准模板结构
- 所有 [必需] 部分都存在
- 列出所有参与者及其角色
- 为每个参与者记录先决条件
- 身份映射到
PaymentIdentity结构 - 记录配置、工具和凭证 schema
- 使用示例枚举协议步骤
- 指定绑定要求
- 列出安全要求
- 处理器名称遵循反向 DNS 约定
另请参阅
- 令牌化指南 - 令牌化处理器指南
- Google Pay 处理器 - Google Pay 集成
- Shop Pay 处理器 - Shop Pay 集成