tools/call 请求的 name 和 arguments;成功的工具数据位于 structuredContent。
get_credential
为商户结账页的最终总额获取支付凭证。Clink 检查钱包卡和购买授权,返回凭证,或带有next_action 的 Operation。
参数
用户指定卡后,本次结账的后续调用都应保留相同的
paymentInstrumentId。无需在此调用前单独完成 Agent Pay 注册;需要时,返回的授权流程会处理注册。实际卡可用性以钱包和工具返回结果为准。
每条 products 记录包含:
传入
shippingAddress 时,需要包含 street_address、address_locality、address_region、address_country(两位代码)、postal_code、first_name、last_name 和 phone_number。extended_address 可选。使用已知的客户信息;信息不可用时,省略该可选对象。
请求
返回
返回结构采用 Operation envelope,还可能包含:
以下示例展示
structuredContent;标识、URL、卡字段和密文均为占位值。
credential 直接包含 card、orderId、paymentExecutionDetailId 和 clientReferenceId。卡字段为 number、securityCode,以及可选的 expiryMonth、expiryYear、expiry、dynamicDataType、dynamicDataId 和 dynamicDataExpiration(字符串形式的 Unix 时间戳,单位为秒)。
负载还可能包含 amount(主货币单位)、currencyCode、status、cardholderName、billingAddress、paymentExecutionId、paymentTransactionId、instructionId 和 mandateId。
此处的
SUCCEEDED 仅确认凭证已签发,不代表商户支付成功。随后调用 get_operation 只能读取签发状态,不会返回凭证。观察到商户结果后调用 confirm_result;如果没有提交,则上报 NOT_SUBMITTED。继续流程与重试
用户完成授权或绑卡链接后,使用结账信息重复请求,不要传入设置操作的operationId。若设置仍未完成,遵循当前 next_action。
最终上报前,重复相同结账信息会返回尚未处理的凭证。凭证在提交前过期时,相同请求可以为同一订单获取替换凭证。最终上报后,相同信息会开始新购买。此工具没有 idempotencyKey 参数。
为兼容早期返回的 CONFIRM,schema 还允许同时传入 operationId、actionId 和 expectedRevision,该形式不得包含任何结账字段。新接入使用上述结账信息流程;如果较早的签发 Operation 显示 CONFIRM,重复相同结账信息即可使用当前流程。
confirm_result
记录 Agent 对 Browser Pay 支付的观察结果。该工具不会执行支付,也不会独立验证商户支付是否成功。不要用于 UCP Checkout 或直接支付。参数
failureReason 支持 CARD_DECLINED、AUTHENTICATION_REQUIRED、AMOUNT_CHANGED、CREDENTIAL_EXPIRED、CREDENTIAL_LOST、MERCHANT_ERROR、BUYER_CANCELLED 和 OTHER。
以下为上述凭证对应的不同上报情形。只有商户明确确认付款后,才能上报成功。
- 上报成功
- 上报已记录
- 总额发生变化
使用签发凭证时返回的标识,不要使用设置操作的标识。
返回与上报规则
该工具返回结果报告,不是 Operation envelope:
上报
UNKNOWN 后,查看商户已有交易,并在 report_deadline 前补报最终结果,不要再次付款。相同结果可以重报;已有最终结果后,冲突的最终结果会被拒绝。若 messages 包含 paid_amount_mismatch,表示上报金额与 Clink 记录不同,且没有覆盖 Clink 的记录。
错误与恢复
Browser Pay 业务拒绝返回isError: true,以及包含 code 和 message 的 structuredContent.error,不携带 next_action。缺少 Scope 时可能只返回文本工具错误,详见通用错误处理。