PAYATHON 2026

哪种 Payment gateway 的交易手续费最低?

支付小周

结论

没有哪一种 Payment gateway 能保证在所有情况下手续费最低。对于单笔 $3 到 $5 的小额支付,成本往往主要取决于每笔固定手续费,而不是百分比费率。

计算方式如下:

[ 手续费 = 交易金额 \times 百分比费率 + 每笔固定费用 ]

假设费率是 2.9% + $0.30:

  • 一笔 $3 的交易,手续费约为 $0.39,约占交易额的 13%
  • 一笔 $5 的交易,手续费约为 $0.45,约占交易额的 9%

选择服务商时,可以优先考虑以下方案:

  1. 支持 micropayment pricing、低固定手续费或纯比例计费。
  2. 如果业务允许,先累计多笔消费,再合并扣款。
  3. 确认服务商支持 authorize now, capture later。这种模式通常称为 manual capture、delayed capture,或 auth and capture 分离。
  4. 除了 Payment gateway 的报价,还要计算收单、卡组织、跨境、退款和拒付费用。

哪家服务商最便宜,取决于公司所在国家、客户银行卡地区、月交易量、卡种和商户类别。费率也会调整。缺少这些信息和最新报价时,无法严谨地指定唯一服务商。

延迟付款应如何实现

一般可以按以下流程处理:

  1. 客户提交银行卡信息。
  2. 支付平台创建一笔仅授权、暂不扣款的交易。
  3. 发卡行冻结相应额度。
  4. 业务在几天后确认履约。
  5. 在授权有效期内执行 capture。
  6. 如果交易取消,撤销授权,而不是发起退款。

创建授权时,接口通常需要传入类似 capture_method=manual 的参数。下面是与服务商无关的示意代码,实际字段名应以所选平台的 API 文档为准:

const authorization = await paymentGateway.createPayment({
  amount: 500,
  currency: "USD",
  paymentMethod: paymentMethodId,
  captureMethod: "manual"
});

// 保存授权标识和到期时间
await database.orders.update(orderId, {
  paymentAuthorizationId: authorization.id,
  authorizationExpiresAt: authorization.expiresAt
});

确认可以扣款后,再执行 capture:

await paymentGateway.capturePayment(
  authorization.id,
  {
    amount: 500
  }
);

订单取消时,释放授权:

await paymentGateway.cancelPayment(authorization.id);

金额通常以最小货币单位表示。例如,500 美分就是 $5.00。保存金额时不要使用浮点数。

如何比较实际成本

先向候选服务商索取符合自身业务情况的报价,再根据预期交易结构计算有效费率:

[ 有效费率 = \frac{ 成功交易手续费 + 网关费 + 月费 + 退款费 + 拒付损失 }{ 成功交易总额 } ]

可以用简单脚本比较不同报价:

providers = [
    {"name": "Provider A", "rate": 0.029, "fixed": 0.30},
    {"name": "Provider B", "rate": 0.050, "fixed": 0.05},
]

amounts = [3.00, 4.00, 5.00]

for amount in amounts:
    print(f"${amount:.2f}")
    for provider in providers:
        fee = amount * provider["rate"] + provider["fixed"]
        effective_rate = fee / amount
        print(
            provider["name"],
            f"fee=${fee:.2f}",
            f"effective={effective_rate:.1%}"
        )

这些费率只用于演示计算,不代表任何服务商的实际报价。成本模型中还应包括:

  • 月租费和最低消费
  • gateway fee 与 processor fee
  • 授权费、capture 费和失败交易费
  • 国际卡及货币转换附加费
  • 退款时是否退还原交易手续费
  • 拒付费
  • 延迟 capture 是否加价
  • 提现、结算和储备金成本

更适合小额支付的方案

如果客户会连续产生多笔 $3 到 $5 的消费,合并扣款通常比寻找略低的逐笔费率更有效。例如,五笔 $3 交易分别扣款,要支付五次固定费用;合并为一笔 $15 交易,只需支付一次固定费用。

常见方式有:

  • 预充值余额
  • 达到金额阈值后统一扣款
  • 按日或按周汇总账单
  • 月度订阅加超额用量结算

不要反复授权同一张卡后长期等待扣款。如果需要保存银行卡以便以后扣款,应使用支付平台提供的 tokenization 或 vaulted payment method,并取得符合业务所在地法规和卡组织规则的客户授权。服务器不应自行保存完整卡号或 CVV。

延迟一周扣款的注意事项

银行卡授权不能无限期保留。有效期由卡组织、卡种、交易类型、发卡行和支付服务商共同决定,不能直接假定为七天。

实施前需要确认:

  • 当前商户类别能否保留授权一周。
  • API 是否返回准确的授权到期时间。
  • 到期前没有 capture 时,授权会自动取消,还是需要主动撤销。
  • 延迟期间能否调整最终金额。
  • 授权成功只表示额度暂时可用,并不保证最终付款。
  • capture 失败后能否重新授权,是否需要客户再次确认。
  • 是否支持部分 capture、增量授权和多次 capture。

系统应保存授权到期时间,并在到期前进行处理:

if (Date.now() >= authorizationExpiresAt - safetyWindowMs) {
  await reauthorizeOrRequestNewPaymentMethod(orderId);
}

重新授权可能触发客户验证,例如 3-D Secure,不能假定后台操作一定会成功。

最终选择服务商时,应将“支持至少所需天数的 manual capture”设为硬性条件,再比较符合条件的服务商处理 $3、$4 和 $5 交易时的总成本。对这类小额交易来说,降低或取消每笔固定费用,通常比把百分比费率降低零点几个百分点更有用。

备注:内容仅供参考。