使用 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,
};
}
但是,这并不总是匹配。必须有一些特殊的舍入或其他方法来进行数学计算,这就是我希望在这里找到的帮助。
对于净额 1500.00$,返回 总金额:1568.69 条纹费用:45.79, 我的应用程序费用:22.90, 总费用:68.69
对于净额 1000.00$,返回 总金额:1045.90 条纹费用:30.63, 我的应用程序费用:15.27, 总费用:45.90
对于净额 49.99$,返回 总金额:52.58 <-- on Stripe is 52.59 stripeFee: 1.83, myAppFee: 0.77, totalFees: 2.59 <-- on Stripe is 2.60
对于净额 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
每当我尝试调整某些内容来修复一个失败的示例时,它最终都会破坏现在正在运行的某些内容。
费用很可能根据不同因素而有所不同。 对我来说,这听起来可能对您有用付款意图对象。
PaymentIntent 指导您完成收款过程 来自您的客户。我们建议您创建一个 系统中每个订单或客户会话的 PaymentIntent。
先发送此内容并检查响应属性
application_fee_amount