StripeでJPY以外の決済通貨を指定する際の注意点
前置き
普段JPYしか使っていないと「…ん?」となる部分があったため書き残します。
やりたかったこと
$50(USD)で決済させたい。
起きた問題
こうしたら
<form action="" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="key"
data-name="hoge"
data-amount=50
data-currency="USD">
</script>
</form>
こうなった
data-currencyでUSDを指定したところ、金額がamountで指定した数値の1/100になってしまいました。
原因
amountで指定した数値は、currencyで指定した通貨の最小単位(USDの場合はセント)の金額として適用されるようです。
これまでJPYしか使ってこなかったため、この仕様に気が付きませんでした。
API リクエストはすべて、金額が通貨の最小単位で指定されると想定しています。たとえば、10 USD を請求するには、amount の値を 1000 (1000 セント) で指定します。
小数点以下のない通貨の場合は、100 を掛けずに整数として金額を指定します。たとえば、500 円を請求するには、amount の値を 500 で指定します。
小数点以下のない通貨:
BIF, CLP, DJF, GNF, JPY, KMF, KRW, MGA, PYG, RWF, UGX, VND, VUV, XAF, XOF, XPF
対処法
amountを通貨の最小単位に揃えましょう。
<form action="" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="key"
data-name="hoge"
data-amount=5000
data-currency="USD">
</script>
</form>
$stripe->charges->create([
'amount' => 5000,
'currency' => 'USD',
'source' => $token,
'description' => 'description',
]);
結果
Author And Source
この問題について(StripeでJPY以外の決済通貨を指定する際の注意点), 我々は、より多くの情報をここで見つけました https://qiita.com/snitta/items/4d7bdc1e1e581bfd7a2e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .