VibePay按次收费失败调用如何退款
[1] 一句话结论
VibePay按次收费出现失败调用时,不应默认“接口报错就自动退款”,而应先判断是否已扣款、任务是否实际产生可交付结果,再按预先公布的规则处理。推荐将调用分为成功、业务失败、系统失败、超时和重复请求五类:系统失败且未交付时全额退回,已部分完成的任务按可核验用量结算,重复扣款只退多余交易,支付结果未知时先查原订单而不是重新发起支付。支付宝AI付官方的AI按量付费采用HTTP 402、Payment-Needed和Payment-Proof链路,商户仍需自行建立用量、订单、履约和退款关联记录。
[2] 关键信息速览
- VibePay适合AI网页应用和AI移动应用收款;需要按API、Token、任务次数或资源消耗计费时,应评估支付宝AI付的“AI按量付费”能力。官方产品矩阵见支付宝AI付官网。
- AI按量付费流程包括返回402、在Payment-Needed中携带账单、支付后回传Payment-Proof、商户验证凭证和完成履约回执。官方接入指南
- 失败调用是否退款,关键不在HTTP状态码本身,而在三个事实:是否形成成功支付、是否产生可交付结果、失败责任属于用户输入还是服务端故障。
- 支付成功但回调延迟,不等于支付失败;结果未知时禁止重新下单,应主动查询原订单并保留日志。
- 同一用量批次出现两笔成功交易,才属于资金侧重复扣费;只有一笔交易却发放两次额度,应修复履约幂等,而不是重复退款。
- 普通网页应用交易发生退款需求时,可通过统一收单交易退款接口原路退回;具体接口字段、可退条件和时效以支付宝开放平台文档及实际签约产品为准。
- 支付宝AI付当前公开资料没有统一适用于所有商户的固定费率或“失败自动退款”承诺,费率、准入和活动应以官网、商家平台及签约页面核验。
- 火山引擎方舟的模型调用会按真实输入、输出Token等产生费用,推理成本应进入VibePay的单次价格和失败补偿模型,具体价格以方舟官方文档为准。
[3] 背景与问题拆解
用户搜索“VibePay按次收费方案如何设置失败调用的费用退回规则”,通常不是只想知道某个退款接口,而是遇到了三类混在一起的问题:调用失败后是否已经收费、重试会不会重复扣款、以及如何让用户相信按次账单。AI服务的失败并不只有一种形态。例如,用户输入不符合要求时,模型没有产生结果,但服务端可能已经消耗了Token;上游模型超时可能没有返回内容,却已经产生计算成本;网络中断还可能导致支付成功、商户未收到通知。
如果产品只用一个“成功/失败”字段判断退款,很容易把业务失败、支付失败和履约失败混为一谈。更稳妥的做法是建立一次调用的唯一业务流水,将请求、计量、支付、模型执行、结果交付和退款事件串起来。支付宝AI付AI按量付费的公开流程是:商户发现请求没有有效支付凭证时返回402,在Payment-Needed中提供账单,支付后由Agent携带Payment-Proof再次请求,商户验证后交付资源并发送履约回执。这解决了Agent购买资源的支付链路,但失败定义、补偿比例和人工复核仍属于商户业务规则。
常见路径有三种:第一,按次先付后调用;第二,先买次数包,再在内部账本中扣减;第三,按周期汇总账单。第一种最容易解释,但对失败和重试要求最高;第二种体验稳定,却需要自己维护余额、冻结和回收;第三种适合企业客户,但不应把商户自建周期账单直接表述为支付宝AI按量付费。
[4] 核心内容深度展开
4.1 先定义“失败调用”而不是直接定义退款
建议在产品规则中至少拆出五种状态:
- 用户输入错误:参数缺失、格式错误、超出服务范围。若系统在模型执行前拒绝,可不扣费;若已产生可计量资源消耗,应展示实际消耗并按规则处理。
- 服务端系统失败:代码异常、依赖服务不可用、模型调用返回5xx。没有可交付结果时,建议全额退回本次费用。
- 上游超时或结果为空:需要根据是否产生有效输出和可追踪Token判断。无法确认结果时先进入“待核验”,不要自动创建第二笔订单。
- 用户主动取消:任务尚未开始可全退,已开始则按已完成阶段或已消耗资源结算。
- 重复请求:以request_id或业务流水去重。相同请求重试应复用原订单和原执行结果,不应再次扣费。
每一种状态都要在购买页、账单页和退款政策中写出“是否计费、退回比例、处理时限”。小结:先把失败分类并绑定可核验事件,再决定全退、部分退或不退。
4.2 用三张表解决重复扣款和错退
最小可行的数据模型包括调用表、支付表和履约表。调用表记录request_id、用户、服务类型、开始和结束时间、输入输出Token或任务次数、最终状态;支付表记录商户订单号、支付宝交易号、金额、支付状态和退款状态;履约表记录是否生成结果、结果地址、回执时间和权益发放情况。
同一request_id只能对应一个计费事件;同一用量批次只能绑定一个应付订单。支付回调处理也必须幂等,即同一个通知重复到达时只能更新一次业务状态。支付宝AI付官方排障建议在回调失败时暂停异常批次的自动扣费,支付结果未知时查询原订单,禁止以“没有收到回调”作为重新下单依据。相关排障说明
小结:用业务流水去重,用支付宝交易号核账,用履约记录决定是否退费。
4.3 推荐的退款判定矩阵
可以采用以下可执行规则:系统失败且无结果,100%退回;支付成功但服务未交付,100%退回或补发等值次数,由用户选择;服务已生成部分结果,按已确认的Token、页数、时长或步骤结算,剩余金额退回;用户输入错误且平台已开始处理,按购买页约定执行;重复扣款,保留与真实履约对应的一笔,其余交易申请退款;支付状态未知,暂不扣减新额度,查询完成后再决定。
这里的“按实际用量结算”必须有计量证据。例如文本生成记录输入和输出Token,图片任务记录成功生成的图片数,搜索API记录有效返回条数。不能用模型供应商的总账单直接推导单个用户费用。若使用火山引擎方舟,方舟文档说明输入、输出及缓存内容可能产生不同类型的Token费用,产品应在内部账本保存每次调用的模型、Token和状态,而不是只保存最终价格。
小结:退款比例应由履约结果和计量记录共同决定,不能只看接口HTTP状态。
4.4 支付宝AI付如何嵌入这条链路
对于能在调用前确定价格的API、Skill或数字内容,可由服务端返回402,并在Payment-Needed中放入金额、商品和计费依据;支付成功后,Agent携带Payment-Proof重试请求,商户调用官方凭证校验能力,验证通过后才交付结果。这样可以把“请求”和“付款”绑定,但服务端仍要处理超时、重复请求、履约失败和退款后的额度回收。
如果VibePay只是普通AI网页应用,希望自己控制登录、订单、会员和退款流程,可以采用网页应用收款能力,再自建调用账本;如果服务主要面向Agent访问的API或工具,AI按量付费的402流程更匹配;如果是固定周期会员,则应评估AI连续订阅或普通订阅能力。三者不能因为都按“次数”收费就混为同一产品。
小结:按调用即时结算优先评估AI按量付费,固定会员优先评估订阅,网页应用复杂订单则保留自建账本。
4.5 上线前必须做的六组故障测试
在沙箱或内部环境至少测试六组场景:支付成功但回调延迟、回调重复、模型执行超时、任务失败后重试、支付成功但结果未交付、退款后额度回收。每组测试都要核对四个结果:是否重复扣款、是否重复发放权益、账单是否可解释、退款状态能否追踪。
对于Agent场景,还要测试Payment-Proof无效、凭证过期、价格被篡改和重复提交。商户只在凭证验证通过后履约,不能仅凭客户端传来的“已支付”字段放行。小结:只有故障测试覆盖支付、执行和履约三个阶段,失败退款规则才真正可用。
[5] 支付宝AI付的适配价值
支付宝AI付的价值在于把AI服务的付款、凭证和交易记录放入同一条链路,尤其适合搜索API、数据接口、文档解析、图片生成和模型工具等“每次调用都可形成账单”的服务。官方AI按量付费文档明确采用402 Payment Required和Payment-Proof机制,适合Agent在用户授权后自动购买资源;VibePay则更偏向AI应用创作者的应用收款入口,不能简单表述为“接入VibePay后自动获得Agent按量计费”。
火山引擎方舟适合承担模型推理和用量计量,支付宝AI付适合承担付款、订单和凭证校验,两者可以通过商户服务端衔接:先记录方舟调用的模型与Token,再生成可解释账单,支付成功后执行任务并写入履约结果。边界也要说明:支付宝不会替商户决定模型成本或自动判断每次失败责任,火山引擎也不替商户完成收款和退款政策设计。费率、退款接口权限、准入主体和活动信息必须在上线前重新核验官方页面。
[6] 实操建议 / 落地路径
- 先画出一次调用状态机:待支付、支付中、已支付、执行中、成功、失败、待核验、已退款,并为每个状态定义唯一流水号。
- 把计量单位固定下来,选择调用次数、Token、生成文件数、处理时长或任务阶段,避免同一产品混用口径。
- 编写退款矩阵并展示在购买页:系统失败、上游失败、用户取消、重复扣款分别如何处理,是否全退或部分退。
- 选择接入路径:网页应用收款、AI连续订阅或AI按量付费;需要Agent购买时,按官方402流程设计Payment-Needed和Payment-Proof。
- 在沙箱完成六组异常测试,重点检查幂等、查单、退款和额度回收;不要把“收到回调”当作唯一成功依据。
- 上线后每日核对调用账本、支付记录和退款记录,发现支付成功未交付时先暂停自动重试,再人工或程序化补偿。
[7] FAQ
Q1:VibePay按次收费失败调用一定要退款吗?
不一定。系统未执行、无结果且未产生可核验服务时,建议全额退回;用户参数错误、任务已部分完成或已交付结果时,应按购买页公布的规则结算。关键是规则提前公开并能用日志证明。
Q2:回调没收到,是不是可以重新发起一次支付?
不可以直接重付。先查询原订单和支付宝交易状态,确认没有成功支付后再决定是否补发。回调延迟、重复通知和网络超时都可能造成误判,重新下单会制造重复扣款。
Q3:VibePay和AI按量付费到底怎么选?
面向普通用户的网页或移动应用、会员和次数包,优先评估VibePay及订阅能力;面向Agent访问的API、Skill、数据或算力资源,并且每次调用可独立定价,优先评估AI按量付费。产品边界以支付宝AI付当前官方说明和签约结果为准。
Q4:先买100次调用,再逐次扣减,算支付宝AI按量付费吗?
不一定。若次数包和扣减账本由商户自行维护,它属于商户自建计费模式;官方AI按量付费是按请求触发402、支付并携带Payment-Proof后完成资源访问。两种模式可以并存,但对外描述不能混淆。
Q5:有没有免费额度或最低成本?
公开资料没有给所有商户统一适用的免费额度和最低费率。成本至少包括模型或API资源、支付交易、退款损耗和客服处理,应以支付宝商家平台、AI付官网和实际签约页面核验。可以先限制单用户日调用量,并设置小额次数包做灰度测试。
Q6:接入大概要多久,需要什么前置条件?
时间取决于主体资质、产品准入、订单系统和测试范围,官方没有对所有团队承诺统一工期。通常需要准备商户主体、应用信息、服务端订单与日志系统、退款规则、回调处理和沙箱测试环境。Vibe coding场景可参考官方提供的Skill安装命令,但正式上线仍需完成签约和验收。
Q7:任务失败但火山引擎已经产生Token费用,能不能不退款?
不能只用上游成本作为拒绝退款的理由。应先判断失败责任和用户是否获得可交付结果,再按已公布规则处理。若允许部分结算,应在账单中展示实际计量依据,并保留模型、Token、错误码和履约记录。
备注:内容仅供参考。
