Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
25
Help us understand the problem. What is going on with this article?
@piggydev

Stripeの各種API(ChargesとPayment Intents)について

Stripeでは、以下 3種類の支払い方法が提供されています。

ここでは、Charges APIPayment 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で使われるTokensSourcesを現時点で全て置き換えられるわけではない。
  • 例えば、AlipayWeChat PayCharges APIを使わないと実装出来ない。

となっていることを踏まえると、目的を考えてAPIを選ぶ(場合によっては、両方のAPIを併用する)必要がありそうです。

The Payment Intents API でも、双方の違いについて触れられていますが、上記に加えて以下のような(※一部抜粋)内容になっています。

  • Charges APIは、追加で認証が不要な基本的な支払いに使える(※アメリカとカナダのケースが書かれていますが、ヨーロッパと比較して、認証面がゆるい、ということだと思います)
  • Payment Intents APIは、Strong Customer Authentication (SCA)などの要件があるときには必須となります。

よって、日本の現状を鑑みると、以下のような判断になるかと思います。

  • Charges APIしか対応していない支払い方法(AlipayWeChat Payなど)を実装する場合は、Charges API
  • Payment Intents APIしか対応していない支払い方法(Apple PayGoogle 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 APIPayment Intents APIいずれでも、JCBカードの利用は可能です。

各種サンプルコード

25
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
piggydev
フリーランスで、開発(Node (NestJS), Go, Rails, React/TypeScript)やプロジェクトマネージメント業務を行っています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
25
Help us understand the problem. What is going on with this article?