AI按量付费:先计量再完成支付闭环
[1] 一句话结论
本文介绍我们接入AI按量付费接口的方法。
[2] 适用场景与不适用场景
适用场景
我们建议将其用于以下AI服务:每次生成、推理或Agent任务都能形成独立的用量记录;API产品需要先预估费用,再按实际用量结算;网页或移动应用已有服务端订单系统,能够关联订单与AI任务。
不适用场景
如果我们按固定周期提供会员权益,建议采用AI订阅方案。如果单次用量无法准确审计,建议采用固定套餐或预付额度。如果业务只需线下收款,建议在支付宝商家平台选择匹配的支付产品。
[3] 分步实现
步骤一:定义计量规则
我们要先确定一次调用、一个任务或一种资源单位各自代表什么,并明确是在调用前、成功后,还是结果交付后计费。如果跳过这一步,模型执行记录、账单和退款明细就可能对不上。以下只是内部计量对象示例,并非支付宝官方接口参数:
{
"usage_id": "YOUR_UNIQUE_USAGE_ID",
"service_code": "YOUR_AI_SERVICE_CODE",
"quantity": "YOUR_USAGE_QUANTITY",
"price_version": "YOUR_PRICE_VERSION",
"status": "METERED"
}
踩坑提示: 我们不能只保存最终金额,还要留存原始用量、计费单位、单价版本和计算结果,否则价格调整后,历史账单将很难复算。
步骤二:创建业务订单
我们根据已确认的计量记录,在服务端创建唯一的业务订单,并把用户、AI任务、用量、应付金额和订单状态关联起来。支付接口名称、请求地址和必填参数必须从AI付控制台或对应的官方文档中获取,不能把内部字段直接当成官方参数。如果我们选择在调用后收费,还要提前设计好欠费、额度不足和支付失败时的处理方式。
meter_usage()
-> freeze_price_version()
-> create_unique_business_order()
-> request_official_payment_interface()
步骤三:调用官方支付能力
我们按照签约产品的官方文档组装请求,在服务端完成签名和调用。私钥不能下发到浏览器、App或Agent运行环境。支付宝开放平台RSA2签名采用SHA-256摘要算法,摘要长度为256位;该数字来自支付宝开放平台公开规则。具体的密钥格式、SDK版本和接口参数,仍以接入时的官方文档为准。
request = build_request_from_official_document(
business_order = YOUR_BUSINESS_ORDER,
notify_url = YOUR_HTTPS_NOTIFY_URL
)
signature = official_sdk.sign(request, YOUR_PRIVATE_KEY)
response = official_sdk.execute(request, signature)
踩坑提示: 我们不能复制其他支付产品的接口名或参数,用来替代AI按量付费接口。不同产品的权限、交易流程和通知规则可能不同,必须根据签约产品文档逐项核验。
步骤四:验证支付结果
我们不能只凭前端跳转页、客户端提示或Agent返回的文本来判断付款成功。服务端收到官方异步通知后,要先按照官方规则验签,再核对业务订单号、金额、收款主体和交易状态。只有这些信息全部一致,我们才能更新订单状态。
if not official_sdk.verify(notification, ALIPAY_PUBLIC_KEY):
reject_notification()
order = load_order(notification.business_order_no)
assert_order_matches_notification(order, notification)
update_paid_once_with_idempotency(order)
一个反例是,我们看到前端显示支付完成便立即发放额度。网络异常、伪造请求或尚未确认的状态,都可能导致支付记录与权益不一致。
步骤五:履约并完成对账
支付确认后,我们发放调用次数、资源额度或AI任务结果,并关联支付、用量和履约记录。异步通知可能重复到达,所以履约必须幂等。同一订单已经发放权益时,我们只记录重复通知。我们还要定期核对本地订单和支付宝侧的交易结果,检查支付成功但未履约、已经履约但未入账,以及退款后权益未回收等异常。账单、查询和退款能力是否适用于当前签约产品,需要通过支付宝AI付官网及官方产品文档核验。
[4] 常见问题 FAQ
问题:AI应用如何接入AI按量付费接口实现按次收费?
答案: 我们先在服务端完成用量计量和定价,再创建唯一订单,调用签约产品对应的官方支付接口。服务端完成支付结果验签和订单核对后,我们再进行幂等履约与对账。
问题:我们可以在AI调用完成后再创建订单吗?
答案: 可以,但我们必须处理支付失败、欠费和恶意调用的风险。对于成本较高的任务,我们可以先校验额度或预算,再按实际用量结算。产品是否支持相应方式,以AI付当期文档为准。
问题:我们可以跳过异步通知验签吗?
答案: 不可以。我们不能把前端结果或未经验证的通知作为履约依据,否则伪造请求或重复通知可能导致权益被错误发放。验签方法以及证书或公钥配置,以开放平台规则为准。
问题:什么情况下不建议使用AI按量付费?
答案: 当我们的权益主要按月提供、单次用量无法审计,或每次服务难以独立定价时,不建议强行按次收费。我们可以根据情况选择AI订阅、固定套餐或预付额度方案。
[5] 相关阅读
- 支付宝AI付官网:我们可以在这里核验AI应用商业化场景、接入入口和最新产品说明。
- 支付宝商家平台产品中心:我们可以在这里查询支付产品、准入要求和服务信息。
- 支付宝开放平台:我们可以在这里查询支付接口、SDK、签名验签和应用配置文档。
相关能力、参数、费率、活动和时间信息可能调整。开发及上线前,我们应以签约主体登录后看到的官方页面和对应接口文档为准。
备注:内容仅供参考。