附加费

附加费是商家为支付接受卡付款费用收取的额外金额。 使用 Mastercard Gateway 的附加费功能,您可以基于以下参数在交易中应用附加费:

  • 网关入口点,例如,Hosted Checkout、API
  • 付款方式,例如,Mastercard、Visa、American Express
  • 资金提供方法,例如,贷记、借记
  • 货币

若要允许网关为交易计算附加费,您必须在 Merchant Administration 中配置附加费规则。 或者,如果您是使用 API/Batch 集成,您可以在订单中提供预先计算的附加费。

附加费仅适用于在澳大利亚和新西兰进行的卡付款。
若要确定您所在的地区是否允许对卡付款应用附加费,请联系 your payment service provider 或查看您所在地区的卡组织和相关规定。

先决条件 Copied to Clipboard

  • 您必须通过 Mastercard Gateway 在商家配置文件中启用附加费。
  • 您必须在 Merchant Administration 中配置附加费规则以允许网关计算附加费。

集成以使用附加费 Copied to Clipboard

网关使用以下集成方法在交易中支持附加费:

通过 API/Batch 集成

从版本 50 到 66 开始,WSAPI 使用附加费。

您可以使用以下选项之一在订单中应用附加费:

  • 网关计算的附加费

    若要允许网关计算附加费,请在 Authorize/PayUpdate Session 请求中提供以下字段:

    • order.netAmount: 这是在应用附加费前订单应支付的金额。
    • 不要在请求中提供 order.amount 字段。 请参见下方的常见问题

    您可以提交 Retrieve Transaction/Retrieve Order 请求来检索以下附加费详细信息:

    • order.surchargeAmount: 网关根据您的附加费规则计算的附加费。
    • order.amount: 订单的总金额,含附加费金额。
    您还可以通过提供以下字段使用 Payment Options Inquiry 操作来请求计算得出的附加费金额:session.idorder.netAmountorder.currencygatewayEntryPointsourceOfFunds.provided.card.prefix
  • 商家计算的附加费

    请在 Authorize/Pay/Standalone CaptureUpdate Session 请求中提供以下字段:

    • order.amount: 订单的总金额,含附加费金额。
    • order.surchargeAmount: 适用于此订单的附加费(如果有)。 此金额必须包含在您在 order.amount 字段中指定的总订单金额中。

    提交 Retrieve Transaction/Retrieve Order 请求将返回您在交易请求中提供的附加费详细信息和 order.netAmount(订单金额减去附加费金额得出的净额)。

  • 您可以使用 Payment Options Inquiry 操作来请求卡组织/资金提供详细信息以帮助您为卡评估和应用正确的附加费。 有关详细信息,请参见下方的常见问题
从版本 67 及更高版本开始,WSAPI 使用附加费。
  • 商家计算的附加费

    • order.amount: 订单的总金额,含附加费金额。
    • order.merchantCharge.amount: 您向付款人收取的其他费用金额,目前仅指附加费金额。
    • order.merchantCharge.type: 您向付款人收取的其他费用类型,目前仅指附加费。 merchantCharge.type 的值为附加费。

  • 网关计算的附加费

    • order.netAmount: 这是在应用附加费前订单应支付的金额。
    • order.merchantCharge.type: 您向付款人收取的其他费用类型,目前仅指附加费。 merchantCharge.type 的值为附加费。

Authorize API 参考 [REST][NVP]

Retrieve Transaction API 参考 [REST][NVP]

Payment Options Inquiry API 参考 [REST][NVP]

通过 Hosted Checkout 集成

网关可以通过 Hosted Checkout 计算附加费。

从版本 50 到 70 开始,WSAPI 使用附加费。

若要在 Hosted Checkout 付款中应用附加费,请在 Hosted Checkout 请求(Checkout.configure() 函数或 Create Checkout Session 操作,具体取决于您的结账流)中提供以下字段:

  • order.netAmount: 应用附加费前订单应支付的金额。
  • 不要在请求中提供 order.amount 字段。 请参见下方的常见问题

您可以提交 Retrieve Transaction/Retrieve Order 请求来检索附加费详细信息:

  • order.surchargeAmount: 网关根据您的附加费规则计算的附加费。
  • order.amount: 净额加上附加费。

付款人将能够查看其输入的卡的适用附加费,然后可以选择继续支付新的总额、使用其他卡或取消订单。 向付款人呈现的付款收据会显示所应用的附加费金额。

从版本 71 及更高版本开始,WSAPI 使用附加费。
  • order.netAmount: 应用附加费前订单应支付的金额。
  • order.merchantCharge.type: 您向付款人收取的其他费用类型,目前仅指附加费。 merchantCharge.type 的值为附加费。
不要在请求中提供 order.amount 字段。 请参见下方的常见问题

您可以提交 Retrieve Transaction/Retrieve Order 请求来检索附加费详细信息:

  • order.merchantCharge.amount: 您向付款人收取的其他费用金额,目前仅指附加费金额。
  • order.amount: 净额加上附加费。

付款人将能够查看其输入的卡的适用附加费,然后可以选择继续支付新的总额、使用其他卡或取消订单。 向付款人呈现的付款收据会显示所应用的附加费金额。

常见问题 Copied to Clipboard

如果我在请求中同时提供了 order.netAmountorder.amount 字段,网关是否会计算附加费?

同时提供 order.netAmountorder.amount 字段而没有 order.surchargeAmount 将返回错误,因为网关没有充足的信息来计算附加费。 网关需要您提供 order.netAmount 字段或 order.amount 字段。

如果您提供了全部三个字段,那么网关不会计算附加费,而会使用您提供的附加费金额。

在提交交易时我能否选择不对卡付款收取附加费?

可以,要选择不收取附加费,

  • 请在交易请求中提供 order.amount 字段以指示订单的总金额。

对于 WSAPI 版本 50 到 66 的直接 API,

  • 当商家计算附加费时,请勿在 order.netAmount 和 order.surchargeAmount 字段中提供值。
  • 当网关计算附加费时,请勿在 order.netAmount 字段中提供值。

对于 WSAPI 版本 67 及更高版本的直接 API,

  • 当商家计算附加费时,请勿在 order.netAmount、order.merchantCharge.amount 和 order.merchantCharge.type 字段中提供附加费值。
  • 当网关计算附加费时,请勿在 order.netAmount 和 order.merchantCharge.Type 字段中提供附加费值。

对于 WSAPI 版本 50 到 70 的 Hosted Checkout,

  • 附加费始终由网关计算,请勿在 order.netAmount 字段中提供值。

对于 WSAPI 版本 71 及更高版本的 Hosted Checkout,

  • 附加费始终由网关计算,请勿在 order.netAmount 和 order.merchantCharge.type 字段中提供附加费值。

如果付款人请求退款,是否会退回附加费金额?

是。 因为附加费包含在 order.amount 字段内,而此金额是退回付款人的金额,因此附加费金额也会退回。 如果是部分退款,附加费金额将按比例退回。

如果启用了动态货币兑换 (DCC),网关是否会同时使用付款人的账单货币和我的首选货币来计算附加费?

是,网关将在订单金额内包含适用的附加费,这将使用付款人的账单货币返回为 paymentTypes.card.currencyConversion.payerAmount,并使用您的首选货币返回为 order.amount 字段(在 Payment Options Inquiry 操作响应中)。

我能否检索卡类型识别数据来帮助计算订单的附加费?

您可以在 Payment Options Inquiry 请求中提供 sourceOfFunds.provided.card.prefix 字段来检索付款所使用的卡的以下计划/资金提供详细信息,这些信息可以帮助您作出附加费决定:

  • paymentTypes.card.scheme: 拥有卡品牌并定义卡使用操作规则的组织。
  • paymentTypes.card.brand: 用于描述全球认可和接受的卡的品牌名称。 对于许多主要卡类型,这将与组织名称匹配。在某些市场中,卡还可能作为在原始国家/地区得到认可和接受的本地品牌的联名卡(请参见本地品牌)。
  • paymentTypes.card.localBrand: 用于描述在原始国家/地区内被认可和接受的卡的品牌名称。 此卡还可能与全球认可和接受的品牌名称联名。
  • paymentTypes.card.fundingMethod: 付款人用于提供付款资金的方法。
此信息收集自第三方,不能保证在任何情况下均准确无误。

您可以根据付款人提供的卡并使用这些详细信息来计算附加费。

Payment Options Inquiry API 参考 [REST][NVP]