Stripeでは、以下 3種類の支払い方法が提供されています。
- Stripe Checkout(まとめはこちら)
- Charges API
- Payment Intents API
ここでは、Charges API
とPayment Intents API
の違いと、それぞれいつ使うべきかをまとめています。
これらのAPIは自社サイトやiOS/Androidアプリに決済処理を組み込みたい場合に使います。
Stripeのページにリダイレクトさせて、もっと簡単に決済を実装したい場合は、Stripe Checkout の利用を検討してください。
まとめ
Charges vs. Payment Intents APIs には
-
Payment Intents API
は、すべてのStripe製品と支払い方法を統合するAPIとして設計されました。 -
Chareges API
の廃止予定はありませんが、製品開発をPayment Intents API
に集中して、これを中心的なAPIにする予定です。
と書かれており、「これから開発するならPayment Intents API
を使うんや〜」と思うかもしれませんが、Transitioning to the Payment Methods API では
-
Payment Intents API
で使われるPayment Methods API
は、Charges API
で使われるTokens
やSources
を現時点で全て置き換えられるわけではない。 - 例えば、
Alipay
やWeChat Pay
はCharges API
を使わないと実装出来ない。
となっていることを踏まえると、目的を考えてAPIを選ぶ(場合によっては、両方のAPIを併用する)必要がありそうです。
The Payment Intents API でも、双方の違いについて触れられていますが、上記に加えて以下のような(※一部抜粋)内容になっています。
-
Charges API
は、追加で認証が不要な基本的な支払いに使える(※アメリカとカナダのケースが書かれていますが、ヨーロッパと比較して、認証面がゆるい、ということだと思います) -
Payment Intents API
は、Strong Customer Authentication (SCA)
などの要件があるときには必須となります。
よって、日本の現状を鑑みると、以下のような判断になるかと思います。
-
Charges API
しか対応していない支払い方法(Alipay
やWeChat Pay
など)を実装する場合は、Charges API
。 -
Payment Intents API
しか対応していない支払い方法(Apple Pay
、Google Pay
など)を実装する場合は、Payment Intents API
。- 尚、これらは
Charges API
を使っても実装可能かもしれませんが、StripeのドキュメントではPayment Intents API
を使ったものしかありませんでした。
- 尚、これらは
- どちらも対応しているものは、
Payment Intents API
。
Charges API と Payment Intents API の違い
参照先: Charges vs. Payment Intents APIs
CHARGES API | PAYMENT INTENTS API |
---|---|
カード決済の簡単な導入を希望する主に米国/カナダの顧客を持つ企業に推奨 | 複数の支払い方法と認証を必要とする企業に必要 (例:ヨーロッパでの強力な顧客認証のため) |
Web, iOS, Androidで利用可能 | 左記に加えて、ターミナルを使った店頭支払いでも利用可能 |
ここに記載されたカードと支払い方法をサポート | カード、及び3DS, iDEAL, SEPAが必要なカードをサポート |
SCA対応されていない | SCA対応されている |
SCA(Strong Customer Authentication)とは?
Charges API の詳細
Card payments on the Charges API
Charges API reference
Payment Intents の詳細
Accept a payment(Payment Intents API)
The Payment Intents API
Payment Intents API reference
Charges API から Payment Intents API へのマイグレーション方法
※詳細は追記予定。
参照先
Migrating code that reads from charges
Migrating to Payment Intents
方法
以下の 2つのプロパティを使って段階的に移行(コードの書き換え)を行っていきます。
その他
JCBカードの利用サポート
- JCBカードの利用を可能にするためには、Stripeに依頼する必要があります。
-
Charges API
、Payment Intents API
いずれでも、JCBカードの利用は可能です。
各種サンプルコード