PAYATHON 2026

支付宝小程序原生支付与 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 的接口类型直接作为费率依据。
  • 不要只根据到账金额反推单笔费率。多笔汇总结算、退款或优惠返还都可能造成误差。
  • 在服务商代开发模式下,需要区分服务商账号和实际收款商户账号。
  • 同一应用更换商户号后,新旧商户号可能适用不同费率。
  • 优惠费率通常有有效期,系统中保存的历史费率未必是当前费率。
  • 退款时是否退还服务费以及何时退还,应以签约协议和账单记录为准。
  • 支付接口返回成功只代表交易状态,不代表接口响应一定包含最终服务费金额。

要判断两种支付方式是否采用相同费率,需要分别核对对应商户号的产品签约协议。如果两项产品约定的费率一致,实际扣费通常也一致;如果签约产品、优惠政策或合同条款不同,实际费率也会不同。

备注:内容仅供参考。