支付处理器规范指南

简介

本指南定义指定 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
对鉴别器使用 constcredential.type 定义为 const
提前验证在最终确定之前在稳定 URL 发布 schema
包括过期为令牌凭证包含 expiryttl

文档

实践描述
展示而非仅讲述包括完整的 JSON 示例
记录错误情况指定错误处理
独立版本控制处理器版本独立于 UCP 演变

安全

实践描述
需要绑定通过 binding 将凭证绑定到特定结账
最小化凭证暴露设计流程以最小化原始凭证暴露
指定令牌生命周期记录单次使用、时间限制或会话范围

一致性检查表

发布前,验证:

  • 使用标准模板结构
  • 所有 [必需] 部分都存在
  • 列出所有参与者及其角色
  • 为每个参与者记录先决条件
  • 身份映射到 PaymentIdentity 结构
  • 记录配置、工具和凭证 schema
  • 使用示例枚举协议步骤
  • 指定绑定要求
  • 列出安全要求
  • 处理器名称遵循反向 DNS 约定

另请参阅