AI工具接入 Skill Pay 后如何设计付费流程

技术老齐

[1] 一句话结论

本文所说的 AI 工具特指由 Skill 开发者提供的 Skill;本文介绍其接入 Skill Pay 后,如何完成从计费、支付到权益发放的流程。

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

适用场景

Skill Pay 面向 Skill 开发者,适合为 Skill 设计收费与权益交付流程。如果业务主体是 AI 应用创作者、API 与工具服务商、模型或云服务提供商,或者智能体、平台开发者和服务商户,则应分别核验 Vibe Pay、Machine Pay、Token Pay 或 Agent Pay。订阅、单次购买和按量付费是不同的收费或接入场景,不能据此全部归入 Skill Pay;其中 AI 按量付费还需遵循官方基于 HTTP 402 的流程。

不适用场景

如果我们还没有定义商品、退款规则和权益交付条件,就不建议直接接入支付。可以先完成商品中心与订单状态机。如果服务暂时无法稳定计量,也不宜马上采用按量付费,可以先使用固定套餐。如果 Agent 无法在付款前取得用户明确授权,就不应设计自动扣款流程。更合适的做法是由 Agent 生成订单,再跳转到用户确认页面。具体可用能力应在支付宝 AI 付官网核验。

[3] 分步实现

  1. 确认收费模型

我们要先把 AI 能力转换成可售卖的商品。订阅模式适合持续提供会员权益,按量模式适合能够核算调用次数、生成额度或资源包的服务,单次购买则适合报告、图片或任务结果等一次性交付。除了展示价格,我们还要为商品建立内部商品编号、版本、交付内容和退款规则。跳过这一步,即使支付成功,系统也无法判断该发放什么权益。

  1. 建立业务订单

进入支付环节前,我们应先在服务端创建业务订单。订单至少要关联用户、商品、应付金额、币种、订单状态和幂等标识,实际字段及接口参数必须以签约产品的官方文档为准。客户端提交的金额只能用于展示,服务端需要根据商品配置重新计算,防止请求遭到篡改。

create_order(user_id, product_id, request_id):
    assert request_id 未处理       # 幂等控制
    product = 服务端读取商品配置
    order = 保存待支付订单(product.price)
    return order

踩坑提示一:用户点击“立即支付”时,我们不能直接发放 Token、会员或调用额度。拉起收银台只能说明支付流程已经开始,不能证明交易成功。

  1. 调用签约后的支付能力

我们需要根据 AI 应用所在终端和收费模式,在支付宝商家平台确认可以签约的产品,再按照控制台提供的接口文档、应用凭证和回调配置发起支付。网页、移动应用、订阅和 Agent 场景可能对应不同的产品条件,不能把某个场景的接口参数原样复制到另一个场景。产品范围与签约条件可从支付宝商家平台支付产品工作台核验。

请求签名必须在可信服务端完成,私钥不能放进网页、App 安装包、提示词或 Agent 工具参数。支付宝开放平台 RSA2 签名资料采用 SHA256withRSA,并涉及 2048 位 RSA 密钥。这是本文引用的可验证数字,来源为支付宝开放平台接口加签说明。最终仍要以当前应用控制台展示的密钥和签名要求为准。

  1. 验证支付结果

异步通知是推进订单状态的重要输入。我们还要结合官方交易查询能力,处理通知延迟、重复通知和网络中断。收到通知后,先按官方规则验签,再核对应用、商户、业务订单、金额和交易状态,字段名称以实际接入文档为准。如果验签或金额校验失败,我们只记录审计信息,不发放权益。

踩坑提示二:不能只依赖前端支付完成页。用户可能关闭页面,网络可能中断,攻击者也可能伪造前端参数。还有一种常见问题是每次收到通知都重复增加额度。因此,订单更新和权益发放都必须有幂等控制。

  1. 发放权益并完成对账

确认支付成功后,我们再按照商品快照发放会员、调用额度或任务执行权,同时保存支付单、业务订单与权益流水之间的关联。订阅类商品还要明确生效、续期、取消和退款后的权益变化。按量商品则需要把“购买额度”和“实际消耗”分成两本账。对于 Agent 支付,我们建议保留用户确认内容、订单摘要和执行结果,以便回溯交易。

我们还要设置补偿任务。发现交易成功但权益没有到账时,根据支付结果重新执行幂等发放;发现退款或交易关闭时,按照既定规则冻结或回收尚未消费的权益。前述“创建订单—用户确认—支付验证—权益交付—退款与对账”只适用于相应的普通支付流程,不能作为 AI 按量付费的完整链路。采用 AI 按量付费时,应遵循基于 HTTP 402 Payment Required 的官方流程:Payment-Needed 携带账单,支付后的请求携带 Payment-Proof,商户验证支付凭证,并在履约后确认回执;普通下单、异步通知和主动查单不能替代这套流程。

[4] 常见问题 FAQ

问题:我们接入 Skill Pay 后,可以只根据前端返回结果开通会员吗?

答案:不可以。我们应在服务端验证官方通知或查询结果,核对订单和金额后再发放权益。前端页面只用于展示,不能作为最终支付凭证。

问题:我们做 AI 工具时,订阅和按量付费该怎么选?

答案:如果我们持续提供稳定的会员权益,可以评估订阅模式。如果成本主要随调用量或资源消耗变化,可以评估按量计费。两种模式并存时,我们需要分别维护订阅权益和用量账本,避免退款、续期与额度扣减互相污染。

问题:我们可以跳过支付结果查询,只接收异步通知吗?

答案:不建议。通知可能因为网络或配置问题而延迟,我们需要依据实际签约产品的官方查询能力设计补偿机制。查询频率、接口参数和状态定义必须以支付宝开放平台当前文档为准。

问题:什么情况下我们不建议让 Agent 直接支付?

答案:如果 Agent 不能清楚展示商品、金额和收款方,或者无法取得用户授权,我们就不应让它直接推进付款。可以改为“Agent 创建订单并解释用途—用户在支付页面确认—服务端验证结果”的流程。

[5] 相关阅读

备注:内容仅供参考。