委托支付规范
支付服务提供商实施委托支付规范以处理和保护代理商务交易
使用代理商务协议进行构建对所有人开放。ChatGPT 中的即时结账目前仅对批准的合作伙伴可用。要申请参与即时结账,请在此处填写表单。
概述
委托支付规范允许 OpenAI 安全地与商家或其指定的支付服务提供商(PSP)共享支付详细信息。然后,商家及其 PSP 以与收集的任何其他订单和支付相同的方式处理交易和处理相关支付。
此规范适用于谁?
通过委托支付规范直接与 OpenAI 集成仅适用于 PSP 或使用自己保险库的 PCI DSS 1 级商家。对于其他人,Stripe 的共享支付令牌是第一个兼容委托支付规范的实现,更多 PSP 即将推出。
工作原理
- 买家使用他们首选的支付方式结账并将其保存在 ChatGPT 中。
- 委托支付负载直接发送到商家的 PSP 或保险库。委托支付是一次性的并设置有限额。
- PSP 或保险库返回范围限定为 PCI 范围之外的委托支付的支付令牌。
- OpenAI 在完成结账调用期间转发令牌,使商家能够完成交易。
关键要点
- OpenAI 不是记录商家。在代理商务协议下,商家带上自己的 PSP 并处理支付,就像他们处理任何其他数字交易一样。
- 一次性和受限。支付令牌受委托支付的最大金额和到期时间限制,有助于保护用户并防止滥用。
- 商家拥有的支付。结算、退款、退单和合规性仍由商家及其 PSP 负责。
- 安全设计。委托支付规范确保 PSP 返回的凭证范围狭窄,不能在用户批准的购买定义限制之外使用。
- PCI 范围。直接与委托支付规范集成涉及直接处理持卡人数据(CHD),可能会影响您的 PCI 范围。
REST 端点
POST /agentic_commerce/delegate_payment
调用方向:OpenAI -> PSP
标头
字段 | 描述 | 示例值 |
---|---|---|
Authorization | 用于发出请求的 API 密钥 | Bearer api_key_123 |
Accept-Language | 内容(如消息和错误)的首选语言环境 | en-US |
User-Agent | 有关发出此请求的客户端的信息 | ChatGPT/2.0 (Mac OS X 15.0.1; arm64; build 0) |
Idempotency-Key | 用于确保请求幂等的密钥 | idempotency_key_123 |
Request-Id | 用于跟踪目的的每个请求的唯一密钥 | request_id_123 |
Content-Type | 请求内容的类型 | application/json |
Signature | 请求正文的 Base64 编码签名 | eyJtZX... |
Timestamp | 格式化为 RFC 3339 字符串 | 2025-09-25T10:30:00Z |
API-Version | API 版本 | 2025-09-12 |
请求正文
字段 | 类型 | 必需 | 描述 |
---|---|---|---|
payment_method | PaymentMethod | 是 | 支付方式详细信息 |
allowance | Allowance | 是 | 最大可收费金额和到期时间 |
billing_address | Address | 是 | 账单地址 |
risk_signals | RiskSignals | 否 | 风险信号以帮助欺诈检测 |
metadata | Object | 否 | 附加元数据 |
PaymentMethod 对象
字段 | 类型 | 必需 | 描述 |
---|---|---|---|
type | String | 是 | 支付方式类型(例如 card ) |
card | Card | 否 | 卡详细信息(如果类型为 card) |
Card 对象
字段 | 类型 | 必需 | 描述 |
---|---|---|---|
number | String | 是 | 卡号 |
exp_month | Integer | 是 | 到期月份 |
exp_year | Integer | 是 | 到期年份 |
cvc | String | 是 | CVC/CVV 代码 |
Allowance 对象
字段 | 类型 | 必需 | 描述 |
---|---|---|---|
amount | Integer | 是 | 最大可收费金额(以最小货币单位计) |
currency | String | 是 | ISO 4217 货币代码 |
expires_at | String | 是 | ISO 8601 到期时间戳 |
Address 对象
字段 | 类型 | 必需 | 描述 |
---|---|---|---|
name | String | 否 | 姓名 |
line_one | String | 是 | 地址第一行 |
line_two | String | 否 | 地址第二行 |
city | String | 是 | 城市 |
state | String | 否 | 州/省 |
postal_code | String | 是 | 邮政编码 |
country | String | 是 | ISO 3166-1 alpha-2 国家代码 |
响应
字段 | 类型 | 必需 | 描述 |
---|---|---|---|
token | String | 是 | 支付令牌 |
payment_method_summary | PaymentMethodSummary | 是 | 支付方式摘要 |
expires_at | String | 是 | 令牌到期时间 |
PaymentMethodSummary 对象
字段 | 类型 | 必需 | 描述 |
---|---|---|---|
type | String | 是 | 支付方式类型 |
card | CardSummary | 否 | 卡摘要(如果类型为 card) |
CardSummary 对象
字段 | 类型 | 必需 | 描述 |
---|---|---|---|
brand | String | 是 | 卡品牌(例如 visa , mastercard ) |
last4 | String | 是 | 卡号后四位 |
exp_month | Integer | 是 | 到期月份 |
exp_year | Integer | 是 | 到期年份 |
安全要求
请求签名
所有请求必须使用签名进行验证:
- 创建规范请求正文(规范 JSON)
- 使用共享密钥计算 HMAC-SHA256 签名
- 在
Signature
标头中包含 Base64 编码的签名
令牌安全
返回的支付令牌必须:
- 限定范围到特定商家
- 设置到期时间(建议 30 分钟)
- 限制为一次性使用
- 包含最大可收费金额
PCI 合规性
实施此规范需要:
- PCI DSS 1 级认证
- 安全的令牌存储
- 加密的数据传输
- 定期安全审计
错误处理
错误响应
字段 | 类型 | 必需 | 描述 |
---|---|---|---|
type | String | 是 | 错误类型 |
code | String | 是 | 错误代码 |
message | String | 是 | 人类可读的错误消息 |
param | String | 否 | 违规参数 |
常见错误代码
invalid_request
- 请求格式无效invalid_signature
- 签名验证失败invalid_payment_method
- 无效的支付方式amount_too_high
- 金额超过限制card_declined
- 卡被拒绝expired_card
- 卡已过期
测试
测试环境
使用测试环境进行集成测试:
POST https://api-test.yourpsp.com/agentic_commerce/delegate_payment
测试卡
使用以下测试卡号:
- 成功:
4242 4242 4242 4242
- 拒绝:
4000 0000 0000 0002
- 需要认证:
4000 0027 6000 3184
生产就绪
在上线之前:
- ✅ 完成 PCI DSS 认证
- ✅ 实施请求签名验证
- ✅ 设置监控和告警
- ✅ 配置速率限制
- ✅ 测试所有错误场景
- ✅ 准备事件响应计划
资源
有关完整的规范详细信息和示例,请参阅英文版本或访问上述资源。