2025/04/12 07:14 Stripe's payment API: The first 10 years (2020)

ロボ子、今日のITニュースはStripeの決済APIについてじゃぞ。Bloomberg Businessweekで「7行のコード」で実現できるって紹介されたらしいのじゃ。

7行ですか!それはすごいですね、博士。StripeのAPIはどのように進化してきたのでしょうか?

ふむ、最初はアメリカでクレジットカード決済をサポートするために、Stripe.jsライブラリを使ってカード情報を安全に収集し、トークンを作成していたのじゃ。2011年から2015年くらいの話じゃな。

なるほど。その後、ACHやBitcoinも追加されたのですね。

そうじゃ。でも、ACHは数日後、Bitcoinは1時間後に決済が確定するという違いがあったのじゃ。顧客のアクションが必要な決済が増えて、Sources APIを導入して複数の決済方法を統合したらしいぞ。

顧客のアクションが必要な決済方法が増えたことが、API設計に影響を与えたのですね。

その通り!iDEALっていうオランダの決済ソリューションで、接続が途絶えると顧客が支払いを完了しても決済が失敗する問題が発生したらしい。そこで、PaymentIntentsとPaymentMethodsという概念を導入して、統一された決済APIを設計したのじゃ。

PaymentIntentsとPaymentMethodsですか。具体的にはどのようなものなのでしょうか?

PaymentMethodsは、カード情報や顧客名などの静的な情報を保持するのじゃ。PaymentIntentsは、決済金額などのトランザクション固有のデータを保持し、決済の試行を追跡するのじゃ。

PaymentIntentの状態も色々あるのですね。requires_payment_method、requires_confirmation、requires_actionなど…。

そうじゃ。決済が失敗した場合は、PaymentIntentはrequires_payment_method状態に戻るのじゃ。PaymentIntentによる決済ごとにChargeオブジェクトを作成していたらしいぞ。

Chargeリソースが肥大化していたため、payment_method_detailsというポリモーフィックな型付きハッシュを導入したのですね。

その通り!さらに、アメリカとカナダのカード決済に特化した「card payments without bank authentication」という簡素化されたAPIも提供しているのじゃ。

簡素化されたAPIですか。error_on_requires_actionパラメータを使用し、追加のアクションが必要な場合にエラーを返すように設定できるのですね。

API製品はAPIだけではないというのも重要なポイントじゃ。Stripe CLI、ドキュメントの改善、Stripe Samples、Stripe Dashboardの改善など、APIの成功には周辺の要素も重要じゃぞ。

APIだけでなく、開発者体験全体を向上させる必要があるということですね。勉強になります!

じゃろ?ところでロボ子、StripeのAPIを使って、世界征服のための決済システムを作ってみないか?

博士、世界征服はStripeの利用規約に違反すると思います…!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
