Created
February 3, 2018 06:20
[Calculate Stripe Fee] Calculate stripe fee to ask customer to cover stripe fee #javascript #stripe
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Calculate stripe fee from amount | |
* so you can charge stripe fee to customers | |
* lafif <hello@lafif.me> | |
*/ | |
var fees = { | |
USD: { Percent: 2.9, Fixed: 0.30 }, | |
GBP: { Percent: 2.4, Fixed: 0.20 }, | |
EUR: { Percent: 2.4, Fixed: 0.24 }, | |
CAD: { Percent: 2.9, Fixed: 0.30 }, | |
AUD: { Percent: 2.9, Fixed: 0.30 }, | |
NOK: { Percent: 2.9, Fixed: 2 }, | |
DKK: { Percent: 2.9, Fixed: 1.8 }, | |
SEK: { Percent: 2.9, Fixed: 1.8 }, | |
JPY: { Percent: 3.6, Fixed: 0 }, | |
MXN: { Percent: 3.6, Fixed: 3 } | |
}; | |
function calcFee(amount, currency) { | |
var _fee = fees[currency]; | |
var amount = parseFloat(amount); | |
var total = (amount + parseFloat(_fee.Fixed)) / (1 - parseFloat(_fee.Percent) / 100); | |
var fee = total - amount; | |
return { | |
amount: amount, | |
fee: fee.toFixed(2), | |
total: total.toFixed(2) | |
}; | |
} | |
var charge_data = calcFee(100, 'USD'); | |
alert('You should ask: ' + charge_data.total + ' to customer, to cover ' + charge_data.fee + ' fee from ' + charge_data.amount ); | |
console.log(charge_data); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I tested the code and it doesn't return the correct amounts that are actually calculated by Stripe.
Here's my revised code: