コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
始める
支払い
財務の自動化
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
概要
バージョン管理
変更ログ
API バージョンのアップグレード
SDK バージョンをアップグレードする
開発者向けのツール
SDK
API
テスト
ワークベンチ
イベントの送信先
ワークフロー
Stripe CLI
Stripe Shell
開発者ダッシュボード
エージェントツールキット
LLM を使用した構築Visual Studio Code をご利用の場合Stripe 健全性アラートファイルのアップロード
Security and privacy
セキュリティ
プライバシー
Stripe を拡張する
Stripe Apps
    概要
    始める
    アプリを作成する
    Stripe アプリの仕組み
    サンプルアプリ
    アプリを構築する
    シークレットを保存
    API 認証方法
    認証フロー
    サーバー側のロジック
    イベントのリッスン
    さまざまな環境を処理
    サンドボックスのサポートを有効にする
    アプリの設定ページ
    UI を構築する
    アカウント登録
    アプリを配布する
    配布オプション
    アプリをアップロード
    バージョンとリリース
    アプリをテストする
    アプリを公開する
    自分のアプリを宣伝する
    ディープリンクを追加する
    インストールリンクを作成
    UI 拡張機能で役割を割り当て
    インストール後のアクション
    アプリのアナリティクス
    アプリの埋め込みコンポーネント
    サードパーティーの Stripe アプリを埋め込む
    Stripe Apps に移行
    拡張機能を移行または構築
    Stripe Apps または Stripe Connect にプラグインを移行
    参照情報
    アプリマニフェスト
    CLI
    拡張 SDK
    権限
    ビューポート
    設計パターン
    コンポーネント
Stripe のコネクター
パートナー
Partner Ecosystem
パートナー認定
ホーム開発者向けのツールStripe Apps

インストールリンクを使用する公開プレビュー

ユーザーが Stripe App Marketplace の外部でアプリをインストールできるようにします。

ページをコピー

インストールリンクを使用すると、Stripe App Marketplace の外部でアプリをインストールできます。特定の導入フローで、アプリケーションから状態を渡し、Stripe アプリのインストールを完了して、アプリケーションまたはサイトにリダイレクトすることができます。

アプリの権限を示すインストールリンクのページ

インストールリンクのページ

概要

以下の手順では、ユーザーはインストールリンクを使用してアプリをインストールできます。

  1. お客様のサイトでは、ユーザーがリンクをクリックすると、Stripe にリダイレクトされ、app_id が渡されます。
  2. Stripe で、ユーザーは、適切なアカウントを選択して、アプリをインストールする権限を受け取ります。
  3. インストールすると、ユーザーはサイトにリダイレクトされ、指定されたユーザーの Stripe アカウントも渡されます。
  4. これで、アプリは認証済みのアカウントのリクエストを行うことができます。

インストールリンクを作成する

アプリのマニフェストで allowed_redirect_uris を設定します。これは、ユーザーがアプリをインストールした後にリダイレクトされる URL です。すべてのリダイレクト URL をアプリの設定で指定する必要があります。

allowed_redirect_uris を設定した後、アプリの新しいバージョンをアップロードします。

stripe-app.json
{ "id": "com.invoicing.[YOUR_APP]", "version": "1.2.3", "name": "[YOUR APP] Shipment Invoicing", "icon": "./[YOUR_APP]_icon_32.png", "permissions": [], "app_backend": {}, "ui_extension": {}, "allowed_redirect_uris": [ "https://example.com/callback/stripe" ] }

インストールリンクをテストする

以下の手順で外部テストを実施することで、提出して審査を受ける前にインストールリンクをテストすることができます。

  1. アプリのマニフェストで定義されている allowed_redirect_uris が指定されたバージョンを使用し、アプリの外部テストを作成します。テストがすでに存在する場合は、テスト用のバージョンを必要なバージョンに更新することができます。
  2. 外部テストタブには、テスト用のインストールリンクが示され、許可されたリダイレクトが表に表示されています。
  3. 公開する準備ができたら、テスト用の URI と値を本番環境で使用する予定の値に置き換えて新しいバージョンをアップロードします。
インストールリンクを示す外部テストのタブ

インストールリンクを使用する

テストが完了したら、以下の手順を使用してすべてのユーザーに提供することができます。

  1. allowed_redirect_uris を定義するアプリの新しいバージョンを公開します。
  2. 設定タブをクリックします。インストールリンクはここに表示され、コピーすることができます。リンクは次のようになります。https://marketplace.stripe.com/apps/install/link/{id}?redirect_uri=https://example.com
  3. 推奨 CSRF 攻撃を防止するには、推奨の state パラメーターを追加して、値として一意のトークンを渡すことができます。Stripe は、お客様のサイトにユーザーをリダイレクトするときに、指定された state を含めます。サイトでは state パラメーターが変更されていないことを確認できます。
  4. ユーザーがインストールリンクをクリックすると、Stripe は次のページを開きます。このページでは、アカウントを選択して、アプリの詳細を確認し、インストールを先に進めることができます。
アプリをインストールするアカウントを選択する

インストールリンクのアカウントの選択

サイトにリダイレクトしています

ユーザーは、アプリのインストール後に、アプリのマニフェストに記載された allowed_redirect_uris で定義されているリダイレクトと一致する redirect_uri URL パラメーターにリダイレクトされます。

インストールの成功

インストールが成功すると、URL に以下が含まれます。

  • user_id の値。インストールを開始した Stripe ユーザーの ID。
  • account_id 値。貴社のアプリをインストールした Stripe アカウントの ID。
  • state 値 (指定されている場合)
  • install_signature 値。これは、上記の値のハッシュであり、アプリの署名シークレットを使用して生成されます。
  • アプリがテスト環境またはサンドボックス環境にインストールされている場合、リダイレクト URL に livemode=false の値が追加されます。

「本番環境のリダイレクトの一例:」

https://example.com/callback/stripe?user_id={USER_ID}&account_id={CONNECTED_ACCOUNT_ID}&state={STATE}&install_signature={INSTALL_SIGNATURE}

テスト環境とサンドボックス環境のリダイレクトの例:

https://example.com/callback/stripe?user_id={USER_ID}&account_id={CONNECTED_ACCOUNT_ID}&state={STATE}&install_signature={INSTALL_SIGNATURE}&livemode=false

インストールの失敗

ユーザーがインストールをキャンセルした場合でも、お客様のサイトにリダイレクトされますが、URL にはエラーが含まれます。

https://example.com/callback/stripe?error=access_denied&error_description=The%20user%20denied%20your%20request

これで、ユーザーはアプリに連結されました。stripe_user_id をデータベースに保存します。これは、ユーザーの Stripe アカウント ID です。この値を Stripe-Account ヘッダーでリクエストに渡すことで、連結アカウントとして認証します。

install_signature を使用してアプリのインストールを確認する 推奨

アプリのユーザーがリダイレクト URL に入力したアカウントでアプリのインストールを承認されているかを確認することが重要です。install_signature が含まれているのはこのためです。このシグネチャーはアプリの署名シークレット、およびインストールを実行した user_id と account_id から生成されます。指定されている場合は渡された state もこのシグネチャーに含まれます。署名シークレットにアクセスせずにこのシグネチャーを複製することはできず、実行できるのは、Stripe 内部とアプリのバックエンドのみです。これにより、不正行為者がリダイレクト URL を試したり偽装しようとしても、ハッシュを複製することはできません。アプリのシグネチャーを確認することによって、アカウントがアプリのユーザーに関連付けられていることを確信できます。

シグネチャーを確認するには、以下のステップを使用します。

  1. まだ作成していない場合は、アプリの署名シークレットを作成します。
  2. アプリのバックエンドを設定して、install_signature を確認します。

インストールを確認するバックエンドのサンプル:

ペイロードフィールドの順序と名前は、署名検証を実行する際に重要です。state は user_id の前にあり、account_id に先行します。結果のオブジェクトは { state, user_id, account_id } になります。

Ruby
require 'stripe' require 'sinatra' require 'json' Stripe.api_key = 'API_KEY' get '/' do 'Install Links verification example' end get '/verify' do user_id = params[:user_id] account_id = params[:account_id] state = params[:state] install_signature = params[:install_signature] payload = JSON.dump({ state: state, user_id: user_id, account_id: account_id }) begin Stripe::Webhook::Signature.verify_header( payload, install_signature, 'STRIPE_APP_SECRET' ) rescue Stripe::SignatureVerificationError => e return e.message, 400 end { success: true }.to_json end set :port, 3000

確認後は、インストールしたアカウントの代理として API コールを実行できます。

認証されたリクエストを行う

サーバー側での API コールでは、プラットフォームユーザーの Stripe アカウント ID (プレフィックスは acct_) とともに特殊なヘッダー Stripe-Account を使用することで、連結アカウントとしてリクエストを作成できます。下記は、プラットフォームの API シークレットキーとユーザーのアカウント ID を使用して PaymentIntent を作成する方法を示す例です。

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"
\ -d amount=1000 \ -d currency=usd \ -d "payment_method_types[]"=card

URL に Stripe アカウント ID を含む API リクエストのすべてで、Stripe-Account ヘッダーによる方法が必要になります。下記は、URL 内のユーザーのアカウント ID を使用してアカウントを取得する方法を示す例です。

Command Line
cURL
curl https://api.stripe.com/v1/accounts/
{{CONNECTED_ACCOUNT_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

こちらで認証されたリクエストを行う方法の例をご覧ください。

URL パラメーターを使用してリンクをカスタマイズする

インストールリンクに追加の URL パラメーターを含めることで、アプリのインストールの動作を変更できます。

サポートされている URL パラメーター

パラメーター説明
redirect_uriユーザーがアプリをインストールした後にリダイレクトされる URL。指定する場合は、アプリのマニフェストに記載されたカンマ区切りの redirect_uris 値のいずれかに正確に一致させる必要があります。一部の中間者攻撃から自社を守るためには、本番環境の redirect_uri でセキュリティで保護された HTTPS 接続を使用する必要があります。
state推奨お客様に返される任意の文字列値。CSRF の対策に推奨されます。

state パラメーターを使用して CSRF 攻撃を防止する

クロスサイトリクエストフォージェリ (CSRF) 攻撃を防止するには、state パラメーターを使用できます。このパラメーターは任意の文字列値を受け入れ、インストーラーからお客様のアプリケーションまたはプラットフォームにリダイレクトされるときにその文字列を変更せずに返します。このパラメーターを使用するには、インストールリンクを使用してインストールを開始するときに、推測できない一意の値を渡します。その値を保存し、後で確認に使います。

ユーザーがアプリケーションをインストールしてお客様のアプリケーションにリダイレクトされたら、指定された state パラメーターの値が当初のインストールリンク内に存在する値と一致するかどうか確認します。この確認プロセスによって、返された stripe_user_id がインストールを開始したユーザーのものであることを高い信頼性で確認でき、偽造対策になります。

アクセスを取り消す

ユーザーがアカウントからアプリの連結を解除すると、account.application.deauthorized イベントが発生します。Webhook でこのイベントを監視することにより、サーバーで必要なクリーンアップを実行できます。

参照情報

  • Stripe Apps の仕組み
  • API リファレンス完全版
このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc