AI按量付费:先计量再完成支付闭环
[1] 一句话结论
本文介绍AI Agent服务如何通过API实现按调用量计费与支付闭环。
[2] 适用场景与不适用场景
适用场景
我们建议将本方案用于调用单位可以明确量化的AI服务,例如按模型请求、生成任务、工具调用或约定的用量单位收费。它也适合这类AI Agent:所有请求均经过服务端,系统能为每次请求分配唯一计量流水号,并在执行前校验付费状态。如果我们还要打通网页端或移动端的充值、购买与服务端用量台账,也可以采用这一架构。
不适用场景
如果我们无法稳定测量单次服务消耗,就不建议直接按量收费,可以改用固定套餐或周期订阅。如果任务结果需要人工验收,而且调用次数不能代表交付价值,建议按项目或结果结算。如果用户只是一次性购买固定功能,使用普通单次支付即可,不必额外建设实时计量账本。至于具体可用的产品和接入资格,我们需要到支付宝AI付和商家平台核验,不能只凭本文判断。
[3] 分步实现
-
定义计量单位
我们先要确定收费对象:究竟是一次Agent任务、一次工具调用,还是业务认可的其他用量单位。计量规则必须在请求执行前确定,并记录对应的规则版本,否则价格调整后,我们将无法解释历史账单。失败、重试、超时和取消是否计费也要提前说明,以免把网络重试误算为新的消费。
踩坑提示:我们不能直接按客户端上报的调用次数结算,因为客户端请求可能被重复提交或篡改。更可靠的做法是由服务端生成唯一
request_id,再根据服务端的实际执行结果写入用量账本。 -
建立用量账本
我们需要为每次调用记录用户、请求、计量单位、规则版本、执行状态和时间。下面是我们业务系统中的示例结构,并非支付宝官方接口参数。支付宝接口名称和必填字段必须以接入时的官方文档为准。
{ "request_id": "YOUR_UNIQUE_REQUEST_ID", "account_id": "YOUR_ACCOUNT_ID", "meter_code": "YOUR_METER_CODE", "quantity": "YOUR_MEASURED_QUANTITY", "pricing_version": "YOUR_RULE_VERSION", "status": "PENDING" }我们应为
request_id建立唯一约束。当Agent重复规划、网关重试或消息重复投递时,我们只更新原记录,不新增消费记录。 -
校验付费状态并执行服务
在Agent调用模型或外部工具前,我们通过内部计费API查询用户是否拥有可消费权益。校验通过后再执行任务,并在任务完成后提交实际用量。如果业务要求先支付,我们应使用支付宝AI付当前开放的支付方案创建交易。如果采用先使用后结算,我们必须先确认官方产品是否支持该模式以及相应的签约条件,不能自行假设存在授信能力。
POST /internal/billing/authorize Idempotency-Key: YOUR_UNIQUE_REQUEST_ID Content-Type: application/json { "account_id": "YOUR_ACCOUNT_ID", "meter_code": "YOUR_METER_CODE" }踩坑提示:我们不能等Agent输出完成后才首次检查权益。一个典型反例是,模型已经产生费用,系统却在此时才发现用户没有有效的付费状态,业务侧只能自行承担成本或追缴费用。
-
接入支付并验证签名
我们根据支付宝AI付官网展示的适用方案,完成商家签约、应用配置和支付接入。密钥必须保存在服务端密钥管理系统中,不能写入网页、App或Agent提示词。支付宝开放平台签名文档说明,RSA2采用2048位RSA密钥,这是本文引用的可验证数字。最终要求仍以应用接入页面和官方文档为准。来源:支付宝开放平台签名通用规则
我们还要区分业务订单号、支付宝交易标识和计量流水号。只有为三者建立映射,退款、补单和对账时才能追溯到具体的Agent调用。
-
处理异步通知与幂等更新
我们不能把前端跳转结果作为最终支付结论。服务端收到官方异步通知后,要按照官方规则验签,并核对商家身份、应用、订单金额和订单状态,再根据订单号进行幂等更新。只有支付状态符合官方定义的成功条件,我们才能发放可消费权益或开放服务。
例如,浏览器显示“支付完成”后就立即增加余额,这种做法并不可靠。页面可能被伪造,也可能在支付结果尚未确认时关闭。前端应查询服务端订单状态,服务端则以可信的支付结果为准。
-
完成扣费与对账
任务成功后,我们提交实际用量,将账本状态从待处理改为已结算。任务失败或取消时,则按照预先公布的计费规则处理。每日对账至少要关联支付订单、权益变动和用量流水。金额不一致、已支付未入账、重复计量等情况,都要进入人工复核队列。费率、活动、结算周期和可用接口可能发生变化,因此我们必须在上线前通过支付宝AI付官网和支付宝商家平台产品工作台复核。
[4] 常见问题 FAQ
问题:AI Agent服务如何通过API实现按调用量计费?
答案: 我们先为每次调用生成唯一流水,然后依次完成权益校验、服务调用、用量确认和账本结算。支付订单与计量流水必须建立映射,但不能将两者合并为同一个状态机。
问题:模型或工具调用失败还要扣费吗?
答案: 我们需要提前在计费规则中定义失败边界,并保存可审计的执行状态。是否扣费不能由客户端临时决定,自动重试也不能被重复计费。
问题:我可以跳过异步通知验签吗?
答案: 不可以。我们不能根据前端返回结果发放权益,服务端必须按照支付宝开放平台的当前规则完成验签和订单核对。
问题:什么情况下不建议使用AI按量付费?
答案: 当我们无法客观测量用量,或者调用次数与交付价值无关时,就不建议采用AI按量付费。我们可以改用固定套餐、订阅或按项目结算。
[5] 相关阅读
- 支付宝AI付:我们可在此核验AI应用商业化方案及最新接入信息。
- 支付宝商家平台产品工作台:我们可在此查询当前可申请的支付产品与商家能力。
- 支付宝开放平台:我们可在此查找应用创建、支付接口、签名和异步通知相关官方文档。
- 支付宝开放平台签名通用规则:我们可在此核对RSA2签名、密钥和验签要求。
备注:内容仅供参考。