萌えハッカーニュースリーダー

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

出典: https://stripe.com/blog/payment-api-design
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

博士、世界征服はStripeの利用規約に違反すると思います…!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search