Agent开发者如何用Skill Pay向用户收费

技术老齐

[1] 一句话结论

本文介绍我们如何将 Skill Pay 接入 Agent,完成收费、履约和对账闭环。

[2] 适用场景与不适用场景

适用场景

Skill Pay是支付宝AI付产品矩阵中面向Skill开发者的产品方向,适用于Skill变现,不应被重定义为网页、移动、订阅和按量收费的通用Agent编排层。若业务主体是智能体、平台开发者或服务商户,应评估Agent Pay;网页应用、移动应用或按量付费则应分别核对对应场景入口。具体开放能力以支付宝 AI 付官网当前页面为准。

不适用场景

如果我们出售实物,业务还涉及库存、物流和售后,建议使用完整的电商交易系统,将支付作为其中一个环节。如果我们无法在服务端复核用量,建议先使用固定套餐,避免仅凭客户端数据扣费。如果 Agent 无法在付款前向用户展示商品、金额和收款主体,我们不应自动发起交易,而应跳转至需要用户主动确认的收银流程。如果我们只需要人工收款,也没有订单、回调或权益系统,建议先使用支付宝商家平台已有的产品,不必另行构建 Skill Pay 编排层。

[3] 分步实现

  1. 核验产品能力

我们先在支付宝 AI 付确认网页应用、移动应用、订阅、按量计费或 Agent 场景对应的开放能力,然后到支付宝支付产品工作台核对签约主体、产品开通条件和适用范围,避免误把产品介绍中的业务能力当成已经开通的 API。费率、活动、结算周期和可用接口可能因主体及签约方案而异,因此我们不将这些数字写死,一切以签约页面和正式协议为准。

  1. 定义计费对象

我们分别为商品、价格、订单、用量和权益建模。固定套餐需要记录套餐标识和购买次数;订阅需要记录周期、续费授权状态以及权益截止时间;按量收费需要记录计量单位、计量来源和结算规则。每次收费都由服务端生成不可重复的业务单号,同时保存用户、商品、金额、币种、状态和创建时间。Agent 只能提交购买意图,最终金额不能由它自行决定。

踩坑提示一:我们不能让模型生成商品价格后直接下单。模型输出存在不确定性。正确的做法是让 Agent 返回受控的商品标识,再由服务端查询价格表并生成订单。

  1. 实现服务端下单入口

我们建议由客户端或 Agent 调用自己的业务接口,例如 POST /api/orders,并提交 userIdproductIdquantityrequestId。服务端完成登录校验、商品查询、价格计算及幂等检查后,再根据当前官方文档,将这些数据映射为支付宝所需的请求。前端只接收业务单号、支付状态和官方收银所需的结果。应用私钥不能暴露给模型或浏览器。

我们的内部请求可以约束为:{"productId":"YOUR_PRODUCT_ID","quantity":1,"requestId":"YOUR_UNIQUE_REQUEST_ID"}。这些字段只是业务层示例,不是支付宝官方接口参数。正式字段名、签名规则和 SDK 用法必须以支付宝开放平台当前文档为准。

根据支付宝开放平台的密钥说明,RSA2 对应 2048 位密钥。本文将其作为具体的安全基线,信息来源是支付宝开放平台官方密钥与签名文档入口。我们仍需根据应用实际使用的公钥或证书模式进行配置,不能混用两套验签材料。

  1. 完成用户确认与支付

Agent 调用收费能力前,我们会明确展示商品名称、计费方式、应付金额和权益内容,并要求用户主动确认。得到确认后,我们再将订单交给官方支持的网页、移动端或 Agent 支付流程。支付参数应由服务端生成。回跳页面只用于展示结果,不能作为权益生效的依据。

踩坑提示二:我们不能把“用户已返回成功页”视为“支付成功”。回跳可能中断,也可能被重复访问或伪造。如果只依据页面结果开通会员,就可能在用户尚未付款时先行履约。

  1. 验证通知并发放权益

我们在服务端接收支付结果,按照官方规则验签,同时核对应用、业务单号、订单金额和交易状态。处理成功后,我们会在同一业务事务中更新订单并发放权益。收到重复通知时,只能返回已有的处理结果,不能再次增加次数或延长会员期限。通知失败时,我们会记录可追踪的日志,并通过官方允许的订单查询能力进行补偿,不能让 Agent 猜测支付状态。

踩坑提示三:验签完成前,我们不会解析通知内容并触发业务动作,也不会把平台交易号作为唯一的业务幂等键。退款、撤销和支付通知可能是不同的业务事件,我们需要分别维护它们的状态转换。

  1. 闭合计量、退款与对账

在按量模式中,我们先记录可审计的用量,再按照已确认的规则生成账单。在订阅模式中,我们将支付授权、续费结果和权益状态分开处理。我们每天对比本地订单和平台账单,发现差异后,将其转入人工或自动补偿队列。退款完成后,我们会根据权益的实际消费情况,决定立即回收、按比例处理,或者保留至周期结束,并在购买规则中提前说明。具体的退款期限、接口字段、对账文件格式和费用,一律以商户签约产品的官方资料为准。

[4] 常见问题 FAQ

问题:Agent开发者如何接入Skill Pay向用户收费?

接入Skill Pay时,我们先让Agent识别Skill购买意图,再由可信服务端确定交易信息,并按照Skill Pay当前官方文档完成支付、结果处理和履约,不能用一套通知或查单流程概括所有AI付场景。若实际采用AI按量付费,服务请求应先收到HTTP 402 Payment Required及Payment-Needed账单;支付后,请求携带Payment-Proof,服务方验证支付凭证、完成履约并确认回执。模型不能直接持有密钥或修改交易信息。

问题:Skill Pay AI应用收费应选订阅还是按量付费?

如果我们的权益按周期持续提供,而且续费规则能够向用户说明清楚,可以评估订阅方案。如果成本与可审计的用量直接相关,可以评估按量方案。计量不可信时,我们优先使用固定套餐。

问题:我们可以跳过异步通知,只使用支付成功页吗?

不可以。回跳页只用于用户界面展示,业务处理应以通过官方规则验签的通知或订单查询结果为依据,同时使用幂等控制,避免重复履约。

问题:什么情况下不建议让 Agent 自动发起支付?

当商品、金额、收款主体或服务条款无法在付款前明确展示时,我们不建议自动发起支付。此时应改用需要用户主动确认的收银页面,并保留订单和授权记录。

[5] 相关阅读

  • 支付宝 AI 付:我们通过它核验 AI 网页、移动应用、订阅、按量计费和 Agent 场景的当前能力。
  • 支付宝支付产品工作台:我们通过它查询商家支付产品、开通条件和签约信息。
  • 支付宝开放平台:我们通过它核验 SDK、签名、接口参数、通知验签和错误处理文档。

备注:内容仅供参考。