Stripe アプリの仕組み
Stripe でアプリを作成する方法をご紹介します。
StripeApps では、Stripe ダッシュボードにカスタムのユーザー機能を直接埋め込み、Stripe API を調整できます。以下に使用するアプリを構築することができます。
- 顧客情報、注文、請求書などの Stripe データを作成および変更する
- Stripe データを他のシステムに同期
- Stripe のユーザーインターフェイスへのカスタマイズを追加する
Stripe Apps で構築できる内容の詳細な例については、サンプルアプリをご覧ください。
Stripe Apps の基本コンポーネント:
Stripe Apps を使用すると、自分のアカウント用のカスタムアプリを作成したり、Stripe App Marketplace 経由で他の Stripe ユーザーが自分のアプリを使用できるようにしたりできます。
このガイドを使用して、構築できる 3 つの Stripe Apps タイプと、権限を使用してアプリが必要とする情報にアクセスする方法をご確認ください。
フルスタックアプリケーション
ほとんどの Stripe Apps には、次の 2 つのコンポーネントがあります。
- UI 拡張機能を使用する、Stripe ダッシュボードのフロントエンドコンポーネント
- 状態の保存とバックグラウンド操作の実行を行うバックエンドコンポーネント
フルスタックアプリケーションのコンポーネント
アプリの UI と、それに対応するバックエンドサービスとの間の認証は、OAuth と共有シークレットのいずれかを使用して機能します。
注
フルスタック Stripe アプリを構築するときは、まず UI Extensions の仕組みを、次に、必要に応じてサーバー側のロジックをご覧ください。
バックエンド専用アプリケーション
UI のない Stripe アプリを構築できます。たとえば、アプリで Stripe から注文データを収集し、フルフィルメントのためにそのデータを別のサービスに送信することが考えられます。
バックエンド専用アプリケーションのコンポーネント:
アプリのバックエンドで実行できる内容について、詳細はサーバー側のロジックをご覧ください。
フロントエンド専用アプリケーション
Stripe ダッシュボードを拡張し、追加のバックエンド機能を含めないアプリを構築できます。UI のみで Stripe アプリを構成できます。UI 拡張機能を使用して、カスタムの UI を作成し、Stripe ダッシュボードのどこにどのように表示されるかを制御します。
フロントエンド専用アプリケーションのコンポーネント
UI 拡張機能を使用したフロントエンド専用アプリケーションをお勧めするのは、次の場合です。
- アプリケーションがバックエンドサービスと通信する必要がない場合。
- アプリケーションが Stripe API と通信する必要があるのは、Stripe ダッシュボードにサインインしているユーザーの代理としてのみである場合。
- アプリケーションがユーザーの認証と、他のサービスとの対話に OAuth プロバイダーを使用する場合。
詳細については、UI Extensions の仕組みをご覧ください。
アプリの権限
すべての Stripe アプリは、タイプに関係なく、データにアクセスするための明示的な権限を必要とします。この権限は、次の 2 つの種類に分類されます。
- アプリケーションが読み書きできる Stripe オブジェクトを決定する Stripe 権限
- ユーザーの Stripe データにアクセスできる他のサービスを決定するサードパーティー権限
アプリマニフェストには、アプリに付与された Stripe とサードパーティーの権限が保存されます。
Stripe 権限
アプリが Stripe データにアクセスできるようにするには、そのデータに対する権限をアプリに付与する必要があります。すべての権限のリストをご覧ください。
権限は、いくつかの方法で適用されます。
- アプリが Stripe オブジェクトの Webhook イベントをリッスンできるのは、そのオブジェクトを読み取る権限がある場合のみです。
- アプリが Stripe API コールを実行できるのは、その API がアプリケーションに権限を付与している場合のみです。
- アプリが UI 拡張機能から Stripe API を呼び出すときは、アプリとサインインユーザーの両方に、その API にアクセスする権限がある必要があります。
UI 拡張機能は、サインインユーザーの代わりに Stripe API を呼び出します。アプリには、サインインユーザーができないデータへのアクセスやアクションの実行はできません。アプリが要求しなかった権限がサインインユーザーにある場合でも、アプリはそのデータの読み書きを実行できません。ただし、サインインユーザーにない権限がアプリにある場合、アプリにその実行権限がある限り、アクションを実行できます。この場合、バックエンドサービスが、ユーザーの権限を確認します。
サードパーティーサービス
Stripe Apps では、Stripe データを受け取る可能性がある Stripe 以外のサービスの URL を明示的にリストする必要もあります。
UI 拡張機能では、コンテンツセキュリティーポリシー (CSP) を適用することでアクセス可能な URL が実行されます。このポリシーにより、fetch
コールは、アプリマニフェストに明示的にリストされていない限り、すべて失敗します。
権限の付与
アプリマニフェストには、アプリケーションの権限がすべて保管されます。特定の Stripe オブジェクトやバックエンドサービスに権限を付与する場合は、アプリをアップロードする際に stripe app grant
コマンドを使用します。詳細については、すべての権限のリストをご覧ください。