レガシーの拡張機能非推奨
拡張機能が Stripe Apps に移行
Stripe 拡張機能を新たに構築することはできなくなりました。Stripe での開発には拡張機能に代わって Stripe Appsを使用します。ただし、既存の拡張機能は 2024 年まで引き続き使用できます。すでに拡張機能がある場合は、Stripe Apps への移行をお勧めします。
注
Stripe Data Pipeline を使用すると、数回クリックするだけで Stripe データとレポートを Snowflake や Amazon Redshift に自動的に送信できるようになりました。もっと知る
Stripe の製品と機能を使用すると、企業はオンラインでの支払いを受け付けることができますが、導入すべき理由は他にもあります。Baremetrics や Segment などの企業は、Stripe 上に構築することで、Standard ダッシュボードを利用する Stripe アカウントにサービスを提供しています。
Stripe 上での拡張プログラムの構築は 4 つのステップで構成されます。
まだの場合には、ビジネス詳細を追加して、本番環境利用の申請を行う必要もあります。
開始するには、Stripe ダッシュボードの開発者タブの拡張プログラムページにアクセスします。
OAuth を設定してリダイレクト URl を指定する
この設定は、 拡張プログラムの設定ページの組み込みセクションで行います。
組み込みを開始するには、ボタンを切り替えて、OAuth を使用した Standard アカウントの登録を有効にします。拡張プログラムで Express アカウントの OAuth を使用することはできません。
Stripe はお客様の拡張プログラムに client_id
と呼ばれる一意の識別子を提供します。お客様は、redirect_uri
を設定し、ユーザーが自身のアカウントを連結した後にそのページに誘導されるようにします。拡張プログラムの設定で、すべてのリダイレクト URI を指定する必要があります。これらの開発バージョンと本番バージョンの 2 つの値により、テストがより簡単になります。3 番目のステップで OAuth リンクを作成できるように、これらの値をメモしておきます。
ブランディング設定を構成する
Extensions Settings (拡張プログラム設定)ページのブランディングセクションで、お客様のビジネスをユーザーに表示する形式をカスタマイズできます。
ユーザーが自身の Stripe アカウントをお客様のアプリケーションにリンクすると、お客様のロゴが表示されます。アカウントがリンクされると、接続されたアプリケーションのリストにお客様のアイコンが表示されます。
ユーザー用の OAuth リンクを作成する
Stripe は、Stripe アカウントに接続するための標準の OAuth 2.0 フローを提供しています。ステップ 1 の client_id
と redirect_uri
の値を使用し、ユーザーがアカウント登録する OAuth リンクを作成できます。このリンクを、ユーザーを authorize_url
エンドポイントに送るための Connect with Stripe (Stripe と連結) ボタンとともに表示することをお勧めします。
https://connect.stripe.com/oauth/authorize?response_type=code&client_id=ca_FkyHCg7X8mlvCUdMDao4mMxagUfhIwXb&scope=read_only
以下に、上記のリンクをユーザーに対して表示する方法例と、Connect with Stripe (Stripe と連結) ボタンを示します。
連結するユーザーがサイトのリンクをクリックすると、ユーザーは、お客様の拡張プログラムへの接続を許可または拒否できるページにリダイレクトされます。Stripe のオーソリフローにより、既存のアカウントを選択して拡張プログラムに接続するか、新しいアカウントを作成するように求められます。
ユーザーが既存または新規作成したアカウントを拡張プログラムに連結した後、ユーザーは再度お客様が拡張プログラムの redirect_uri
として設定した URL にリダイレクトされます。
OAuth ワークフローの最後に、ユーザーのアカウントの認証情報が提供されます。
{ ... "stripe_user_id": "acct_0123456789", ... }
ユーザーアカウントを識別できるように、stripe_user_id
を保存する必要があります。
連結アカウントの代理として API を使用する
ユーザーが Stripe アカウントをお客様のアプリケーションにリンクすると、ユーザーの代わりに API リクエストを実行できます。API リクエストを実行するには、自身の拡張プログラムアカウントのシークレットキーと、リクエスト対象のアカウントを識別する Stripe-Account
ヘッダーが必要です。Stripe ライブラリーはすべて、リクエスト単位でこのスタイルの認証をサポートします。
保存されたデータを取得する
保存されたデータには、支払いや顧客の詳細などの情報が含まれます。read_only
アクセスを使用すると、Stripe の API でほとんどの GET
リクエストを実行できます。単一のオブジェクト (PaymentIntent (支払いインテント) の取得など) またはオブジェクトのリスト(すべての Payment Intent のリストなど) を取得できます。
この API は高パフォーマンスを実現するように設計されていますが、大容量のデータを繰り返し取得するとアプリケーションの応答が遅くなります。分析やレポートには、取得したデータをお客様の側で保存することをお勧めします。
リアルタイムのデータをリッスンする
保存されたデータに加え、Webhook を使用すればリアルタイムのデータにもアクセスできます。アカウントで拡張プログラム Webhook エンドポイントを定義すると、Stripe は各連結アカウントについてのイベント通知をエンドポイントに送信します。このイベントオブジェクトの account
プロパティーは、イベントが発生したアカウントを示しています。
たとえば、以下のイベントは、acct_0123456789
アカウントで顧客が作成されたことを示しています。繰り返しますが、分析やレポートに備えてこのデータをお客様側で保存することをお勧めします。イベントの発生をリアルタイムで監視することにより、アプリケーションの反応をスピードアップできるだけでなく、多数の API コールを実行する必要もなくなります。
{ "id": "evt_jAtp2cN4bO3VcD", "livemode": true, "object": "event", "type": "customer.created", "account": "acct_0123456789", "pending_webhooks": 2, "created": 1349654313, "data": {...} }
アプリケーションについて請求する
お客様の拡張プログラムの Stripe アカウントは独自の支払いを処理できるため、read_only
アクセスでもプラットフォームに対する請求ができます。顧客が Stripe アカウントを連結した後は、支払いの詳細を求めてから、お客様の Stripe アカウントで顧客のサブスクリプションを作成します。作成された顧客 ID は、必ず関連付けられた Stripe アカウント ID と一緒に保存してください。これにより、支払い済みでアクティブなユーザーとそうでないユーザーを把握できます。
サブスクリプションを作成する場合、プラットフォームの手数料として application_fee_percent
を指定することもできます。これは、Stripe 手数料に加えて請求されます。詳細については、サブスクリプションのドキュメントをご覧ください。
連結解除されたアカウント
ユーザーはいつでもアカウントをお客様の組み込みから連結解除できます。これが行われると、account.application.deauthorized
Webhook イベントが送信されます。この通知を使用して、お客様側でのユーザーアカウントの無効化やデータの削除など、クリーンアップを開始できます。
OAuth のアクセス権の取り消しエンドポイントにリクエストを送信して、アカウントを組み込みから切断することもできます。