Skip to main content
这些工具用于商户网站上的银行卡付款。完整流程见 Browser Pay。示例展示 MCP 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。此返回仅确认凭证已签发,不代表商户支付结果。
加密凭证的处理方式见解密参考。已解密的返回中,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 时可能只返回文本工具错误,详见通用错误处理。