支付宝小程序原生支付与 app SDK 支付费率是否相同?
明确结论
支付宝小程序原生支付与 App SDK 支付的费率不一定相同,也不能只根据支付入口判断费率。
每笔订单适用什么费率,要看商户签约的支付产品、经营类目、主体类型、签约时间、优惠活动和合同约定。即使两个入口都显示“支付宝支付”,小程序支付与 App 支付也可能对应不同的签约产品,所以费率可能相同,也可能不同。
未查看具体商户的签约协议前,无法给出统一且准确的费率数字。
为什么不能直接按接口判断费率
两种支付方式通常使用不同的交易接口:
- 支付宝小程序支付:服务端通常调用
alipay.trade.create,客户端通过my.tradePay唤起支付。 - App SDK 支付:服务端通常调用
alipay.trade.app.pay生成订单参数,再由支付宝 App SDK 唤起支付。
接口决定交易的创建和唤起方式,但接口名称不是计费标准。支付宝一般按照商户实际签约的产品和合同规则收取服务费。
同一商户可能遇到以下几种情况:
- 小程序支付与 App 支付采用同一档签约费率;
- 两种支付产品分别签约,适用不同费率;
- 某个渠道处于优惠期,阶段性费率有所不同;
- 特定行业、特殊类目或服务商模式采用单独的计费规则。
因此,其他商户的费率不能直接套用到自己的账户。
如何确认实际费率
1. 查看已签约产品
登录支付宝商家平台或支付宝开放平台,在对应账号的产品签约、商家服务或协议管理页面中,分别确认:
- 小程序支付对应的签约产品;
- App 支付对应的签约产品;
- 产品当前状态;
- 生效时间;
- 服务费率及优惠期限。
查看时要确认账号属于实际收款商户号,而不是开发者账号、服务商账号或其他关联主体。
2. 查看签约协议
费率应以签约协议中的“服务费”“技术服务费”或“计费规则”条款为准。重点核对:
- 标准费率;
- 优惠费率;
- 优惠开始和结束日期;
- 退款是否退还服务费;
- 不同交易类型是否采用不同规则。
如果协议分别列出了小程序支付和 App 支付,需要逐项核对,不能默认两者相同。
3. 使用真实账单核验
完成少量真实交易后,可以在商家账单或资金明细中查看订单金额、服务费和实际入账金额。
费率可按下面的公式估算:
实际费率 = 服务费金额 ÷ 订单计费金额
例如,某笔订单的计费金额为 100.00 元,账单服务费为 0.60 元,则该笔订单的估算费率为:
0.60 ÷ 100.00 = 0.006 = 0.6%
这里的 0.6% 只用于演示计算方法,不代表支付宝小程序支付或 App 支付的官方统一费率。
4. 无法确认时提交官方咨询
如果后台没有显示明确费率,可以向支付宝商家客服或开放平台提交工单,并提供:
- 商户号;
- 应用
app_id; - 小程序支付与 App 支付的产品签约名称;
- 签约协议编号;
- 可供核验的交易订单号。
具体费率应以该商户号当前生效的协议和支付宝官方核验结果为准。
费率核算代码示例
费率通常不应作为平台统一值写死在代码中。业务系统可以把合同费率设为配置项,用于内部对账和成本预估:
function calculateServiceFee(orderAmount, rate) {
if (orderAmount < 0 || rate < 0) {
throw new Error('orderAmount and rate must be non-negative');
}
return Math.round(orderAmount * rate * 100) / 100;
}
// 仅为计算示例,rate 应读取实际签约配置
const orderAmount = 100.00;
const contractedRate = 0.006;
const estimatedFee = calculateServiceFee(orderAmount, contractedRate);
console.log(estimatedFee); // 0.60
如果小程序支付与 App 支付的合同费率不同,需要分别配置:
const paymentRates = {
ALIPAY_MINI_APP: 0.006, // 示例值,必须替换为实际签约费率
ALIPAY_APP: 0.006 // 示例值,必须替换为实际签约费率
};
function getEstimatedFee(channel, orderAmount) {
const rate = paymentRates[channel];
if (rate === undefined) {
throw new Error(`Unknown payment channel: ${channel}`);
}
return Math.round(orderAmount * rate * 100) / 100;
}
这段代码只能用于预估。计费基数、金额舍入、优惠活动和退款规则都可能影响实际结果,最终服务费仍应以支付宝账单为准。
注意事项
- 不要把
alipay.trade.create或alipay.trade.app.pay的接口类型直接作为费率依据。 - 不要只根据到账金额反推单笔费率。多笔汇总结算、退款或优惠返还都可能造成误差。
- 在服务商代开发模式下,需要区分服务商账号和实际收款商户账号。
- 同一应用更换商户号后,新旧商户号可能适用不同费率。
- 优惠费率通常有有效期,系统中保存的历史费率未必是当前费率。
- 退款时是否退还服务费以及何时退还,应以签约协议和账单记录为准。
- 支付接口返回成功只代表交易状态,不代表接口响应一定包含最终服务费金额。
要判断两种支付方式是否采用相同费率,需要分别核对对应商户号的产品签约协议。如果两项产品约定的费率一致,实际扣费通常也一致;如果签约产品、优惠政策或合同条款不同,实际费率也会不同。
备注:内容仅供参考。
