決済システムでの通貨コード(Stripe、PayPal、Square)
主要決済プロセッサーでのISO 4217通貨コードの使用方法。Stripe、PayPal、Square、Adyenの補助単位規約、サポート通貨、APIパターンを解説。
Payment Systems
詳細な説明
決済プロセッサーでの通貨処理
各決済プロセッサーは、APIで通貨コードと金額がどのように使用されるかについて独自の規約があります。決済統合時にこれらの違いを理解することが不可欠です。
Stripe
Stripeは小文字のISO 4217コードと最小通貨単位での金額を使用:
const paymentIntent = await stripe.paymentIntents.create({
amount: 2999, // セントで$29.99
currency: "usd", // 小文字のISO 4217
});
// JPY(0小数通貨)の場合:
const jpPayment = await stripe.paymentIntents.create({
amount: 3000, // ¥3,000(30.00ではない!)
currency: "jpy",
});
PayPal
PayPalは大文字のISO 4217コードと10進数文字列での金額を使用:
{
"amount": {
"currency_code": "USD",
"value": "29.99"
}
}
主な違いの要約
| プロセッサー | 大文字/小文字 | 金額形式 | JPY ¥3000 |
|---|---|---|---|
| Stripe | 小文字 | 補助単位(int) | 3000 |
| PayPal | 大文字 | 主単位(string) | "3000" |
| Square | 大文字 | 補助単位(int) | 3000 |
| Adyen | 大文字 | 補助単位(int) | 3000 |
ユースケース
マルチプロセッサー決済統合や決済抽象化レイヤーを構築する開発者は、各プロセッサーが使用する特定の規約を知る必要があります。単一のコードベースがカード用のStripe、PayPal決済用のPayPal、地域固有の方法用のローカルプロセッサーと統合することがよくあります。フォーマットの違いを理解することで、顧客への過大・過少請求を防止できます。