付款前计算Stripe和申请费

问题描述 投票:0回答:1

使用 Stripe 上的连接帐户并使用 JavaScript, 我需要向用户显示他将为发票支付的净额总额。 例如,用户有一张 1500 美元的发票需要支付,我需要包括 Stripe 费用和申请费(我的费用),我需要向用户表明他将被收取 1500 美元加上 68.68 美元的费用,这使得总计 1568.68$。我需要此金额与 Stripe 处理付款所需的费用完全匹配。

为此,我目前有这个小脚本:

    const stripeCommissionRate = 0.029;
    const stripeFixedFee = 0.30;
    const myFeeRate = 0.0146;

    function calculateFees(netAmount) {
      // Calculate gross amount to do calculations (reverse engeneering from Stripe's math) 
      let grossAmount = (netAmount + stripeFixedFee) / (1 - stripeCommissionRate - myFeeRate);

      // Calculate individual fees
      let stripeFee = stripeFixedFee + (grossAmount * stripeCommissionRate);
      let myFee = grossAmount * myFeeRate;

      // Round individual fees
      stripeFee = parseFloat(stripeFee.toFixed(2));
      myFee = parseFloat(myFee.toFixed(2));

      // Calculate total fees
      let totalFees = stripeFee + myFee;

      // Calculate final gross amount from rounded amounts
      grossAmount = netAmount + stripeFee + myFee;

      return {
        grossAmount: grossAmount,
        stripeFee: stripeFee,
        myFee: myFee,
        totalFees: totalFees,
      };
    }

但是,这并不总是匹配。必须有一些特殊的舍入或其他方法来进行数学计算,这就是我希望在这里找到的帮助。

示例:

工作示例1

对于净额 1500.00$,返回 总金额:1568.69 条纹费用:45.79, 我的应用程序费用:22.90, 总费用:68.69

工作示例2

对于净额 1000.00$,返回 总金额:1045.90 条纹费用:30.63, 我的应用程序费用:15.27, 总费用:45.90

失败示例1

对于净额 49.99$,返回 总金额:52.58 <-- on Stripe is 52.59 stripeFee: 1.83, myAppFee: 0.77, totalFees: 2.59 <-- on Stripe is 2.60

失败示例2

对于净额 299.98$,返回 总金额: 313.97 <-- on Stripe is 313.98 stripeFee: 9.41, <-- on Stripe is 9.40 myAppFee: 4.58,
总费用:13.99 <-- on Stripe is 13.98

每当我尝试调整某些内容来修复一个失败的示例时,它最终都会破坏现在正在运行的某些内容。

javascript stripe-payments
1个回答
0
投票

费用很可能根据不同因素而有所不同。 对我来说,这听起来可能对您有用付款意图对象

PaymentIntent 指导您完成收款过程 来自您的客户。我们建议您创建一个 系统中每个订单或客户会话的 PaymentIntent。

先发送此内容并检查响应属性

application_fee_amount

© www.soinside.com 2019 - 2024. All rights reserved.