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カードの利用は可能です。
各種サンプルコード