教程中心实战
实战

给 AI Agent 装上「能花钱」的能力:中国银联智能体支付开放协议实战

2026.07.24· 6 个步骤 · 18 分钟阅读· 💳 智能体支付

智能体现在能写报告、订酒店、买机票,但有个关键问题一直没人解决:它怎么「付钱」?过去 Agent 只能给你一个付款链接让你自己点,一旦要它自主完成「下单→支付→拿到凭证」的闭环,就卡在信任与合规上。2026 年 7 月,中国银联发布《智能体支付开放协议框架》,联合数十家伙伴用统一信任机制和交互范式,让不同厂商的智能体以「即插即用」的方式安全参与支付流程——境外酒店预订、车载智能体消费、AI 机票预订、云闪付生活缴费、线下智能点单等真实场景已经跑通验证交易。本教程手把手教你给自己的 Agent 设计一套「能确认、能花钱、可追溯」的支付能力。

💳 本教程适合:正在做电商、出行、生活服务类 Agent 的开发者,以及想把「AI 帮你买东西」做成产品的团队。你不需要是支付专家,跟着做就能搭出一套可演示的支付闭环。

先搞懂:为什么 Agent 支付是个难题?

人付钱很简单:看金额、点头、输密码。但 Agent 付钱有三道坎:

难点通俗解释协议怎么解
信任凭什么信这个 Agent 有权花你的钱统一身份与授权范式
互通不同厂商的 Agent 互相听不懂即插即用交互标准
溯源出错了谁付的、为什么付全流程上链/留痕

银联框架的核心贡献:不绑定某一家模型或平台,而是定义一套「信任握手 + 交互范式」,让任意 Agent 都能以标准化方式接入支付生态,打破厂商之间的互通壁垒。

Step 1:明确你的 Agent 的「支付边界」

1 先写清:哪些能自动付、哪些必须人确认

千万别让 Agent 默认拥有「无限支付权」。先用一张表划清边界:

支付策略示例:
- 单笔 ≤ ¥50 且属于「已知商户白名单」 → 可自动支付
- 单笔 > ¥50 或陌生商户            → 必须人工确认
- 涉及订阅/周期扣款                → 必须人工确认 + 二次授权
- 任何退款/转账类操作              → 一律人工确认

把这张表写进 Agent 的系统提示与安全策略,
作为「支付护栏」的第一道闸。
💡 这是防止「失控 Agent 半夜乱花钱」的关键。参考本中心《给智能体装预算护栏》教程,把金额上限和告警一起配上。

Step 2:设计「信任握手」流程

2 让支付方先认出「你是谁、被授权了没」

按协议思路,Agent 发起支付前要先做一次授权校验,而不是上来就扣款:

// 伪代码:支付前的信任握手
async function authorizePayment(agent, intent) {
  // 1. 校验 Agent 身份与用户授权令牌
  const token = await getUserConsent(agent.id, intent.amount);
  if (!token.valid) throw new Error('未授权');

  // 2. 命中支付策略(Step 1 的边界表)
  if (intent.amount > 50 && !intent.merchantInWhitelist) {
    return await requestHumanConfirmation(intent); // 暂停,等人
  }
  return { approved: true, token };
}

「暂停等待人工确认」是必须的:协议的价值就在于 Agent 能安全地「停下来问一句」。任何超出边界的支付,都必须把意图、金额、商户清晰地呈现给用户,确认后才继续。

Step 3:封装一个标准「支付工具」给 Agent 调用

3 把付款做成 Agent 能调的一个工具

像给其他工具一样,把支付包装成 Agent 可调用的函数,内部走协议的标准交互:

const payTool = defineTool(
  { name: 'agentPay',
    description: '在用户授权范围内完成一笔支付',
    inputSchema: { amount: number, merchant: string, reason: string } },
  async ({ amount, merchant, reason }) => {
    const auth = await authorizePayment(agent, { amount, merchant });
    if (auth.needHuman) return { status: 'pending', confirmUrl: auth.url };

    // 调银联开放协议的标准支付接口(示意)
    const result = await unionpayAgentPay({
      amount, merchant,
      authToken: auth.token,
      traceId: generateTraceId()   // 用于溯源
    });
    return { status: 'paid', orderId: result.orderId, traceId: result.traceId };
  }
);
🔑 关键:工具返回里带上 traceId(溯源 ID)。每一笔支付都可被独立查询「谁、为什么、付了多少、结果如何」——这正是协议「可信协同」的落地点。

Step 4:接真实场景验证(酒店 / 机票 / 缴费)

4 从「演示级」走向「真实交易」

银联框架已验证的真实场景,正好给你当样板:

场景Agent 自主程度你的可借鉴点
境外酒店预订比价→下单→支付大额走人工确认
AI 机票预订选舱→锁价→支付价格时效性强,需回写状态
云闪付生活缴费查账单→代扣白名单商户可自动
线下智能点单选品→下单→支付小额免确认体验最佳
🚀 新手建议:先做「生活缴费」这类小额、白名单、结果可逆的场景,跑通闭环后再扩展到机票酒店。

Step 5:把每一笔支付「留痕溯源」

5 决策、协作、资金流转全程可查

协议的信任来自可追溯。无论是否上链,你至少要本地落地一份结构化流水:

// 每笔支付写一条不可变记录
paymentLedger.append({
  traceId, orderId, agentId, userId,
  amount, merchant, reason,
  status, timestamp,
  humanConfirmed: boolean   // 是否经人工确认
});

// 提供查询接口:用户随时问「我的 Agent 昨天付了什么」
// 也方便对账与争议处理

没有溯源就没有信任:一旦 Agent 付错钱,能秒级定位「哪一步、谁授权、为什么」才算合格。这也是金融、政企合规的硬性要求。

Step 6:做一套「支付安全自检清单」

6 上线前逐项打勾
□ 支付边界表已写入系统提示与安全策略
□ 所有超阈值/陌生商户支付都暂停等人确认
□ 支付工具返回带 traceId 且写入流水
□ 用户能随时查询 Agent 的历史支付
□ 设有单日/单笔金额硬上限与告警
□ 退款/转账类操作一律禁用或强确认
□ 授权令牌有过期与吊销机制
🎉 恭喜!你给 Agent 装上了一套「能确认、能花钱、可追溯」的支付能力。记住:Agent 支付的第一原则是「最小授权 + 人工兜底」,能力越强,护栏越要早装。

常见问题速查

你遇到的现象大概率原因 & 解决
Agent 直接大额扣款支付边界表没生效或策略写反了,立即加人工确认
对账发现缺记录支付工具没回写 traceId 到流水
用户不信任自动付默认阈值太高,把白名单和小额门槛调低
跨厂商 Agent 调不通没遵循标准交互范式,按协议对齐字段