プラグインを RAK アプリに移行する
Stripe Apps を使用してプラグインを RAK 認証に移行する方法をご紹介します。
このガイドを使用して、既存のプラグインを、認証に制限付き API キー (RAK) を使用する Stripe アプリ (RAK アプリとも呼ばれる) に移行します。 RAK の詳細については、 制限付き API キーを使用して API アクセスをカスタマイズするをご覧ください。
以前は、Stripe ではプラグインによってユーザーの標準の API キーをリクエストして、商品に連携させることができました。2024 年 9 月 30 日以降、Stripe はユーザーを不正利用から保護するために、すべてのプラグイン開発者に対して安全な認証方法 (制限付きの API キー、OAuth 2.0、または Stripe Connect) の採用を義務付けています。既存および新規のプラグイン開発者はすべて、これらの安全な認証方法のいずれかを使用する必要があります。プラグインを RAK アプリに移行すると、この要件が満たされます。
はじめに
- Stripe Apps または Stripe Connect にプラグインを移行するを確認します。
- Stripe Connect を使用していて、Stripe Apps を通じて既存のプラグインを移行する場合は、新しい Stripe アカウントを作成する必要があります。現在、Connect が有効になっている Stripe アカウントではアプリを公開することはできません。
- アカウントごとに作成できる公開アプリは 1 つのみです。アカウントにすでに公開アプリがある場合は、新しい Stripe アカウントを作成してください。同じアカウント上でも、プライベートアプリの場合は、公開アプリと並行して複数作成することができます。
Stripe CLI プラグインをインストールする
- Stripe ダッシュボードにログインします。
- まだインストールしていない場合は、Stripe CLI をインストールし、同じアカウントを使用してログインします。
その他のインストールオプションについては、Stripe CLI を使ってみるをご覧ください。
- CLI バージョン 1.12.4 以降を使用していることを確認します。これは以下を実行することで確認できます。Stripe の CLI バージョンが 1.12.4 より前のバージョンの場合は、最新のStripe CLIバージョンに更新してください。Command Line
stripe version
- ノードがインストールされており、最新であることを確認します。アプリの依存関係は、NPM または Yarn を使用して管理できます。最新の安定バージョンを使用してください。アプリを App Marketplace に公開する予定の場合は、さらに次の制限が適用されます。Command Line
node -v
- 本番環境のアカウントが必要です。
- Connect が有効になった Stripe アカウントでアプリを公開することはできません。
アプリを開発する
Stripe Apps CLI プラグインをインストールする: Stripe App の構築を開始するために、Stripe Apps CLI プラグインをインストールします。
Command Linestripe plugin install apps
apps
プラグインがすでにインストールされている場合は、バージョンが1.
以降であることを確認してください。5. 12 Command Linestripe apps -v # apps version 1.5.12
apps
プラグインをアップグレードする必要がある場合は、以下のコマンドを実行します。Command Linestripe plugin upgrade apps
テンプレートを使用してアプリを作成します。
Command Linestripe apps create <app-name> --template restricted-api-key-app
- アプリに名前を付ける際に、Stripe では、Authenticator、RAK、Generator、RAK Auth、App、Generator App、Stripe という単語の使用を禁止しています。
- サードパーティーサービス用のアプリを開発する場合は、[アプリの機能] by [開発者の名前] という命名規則を使用します。たとえば、「Hubspot Sync by Boomi」、「Analytics Pro by DataWiz」、「Invoice Manager by PayFlow」のようにします。
アプリに必要な権限をすべて追加します。
アプリの設定ページを編集します。上記のテンプレートを使用している場合は、Stripe によって設定ビューが自動生成されます。ユーザーがアプリを設定するときの参考になるように、設定ページに手順や独自のドキュメントへのリンクを追加します。
アプリをアップロードします。RAK アプリをアップロードした後、API 認証方法を変更することはできません。
アプリをテストする
ダッシュボードで、自分のアカウントで制限付きのAPI キーをテストします。
- アカウントのテスト環境にアプリをインストールします。
- インストール済みアプリを表示して、最近インストールしたアプリをクリックします。
- アプリの設定ページで、API キーを表示をクリックします。このシークレットキーをコピーして、実装内容をテストします。
アプリを公開する前に、他の本番環境のアカウントでアプリをテストします。外部テスト機能を使用して、最大 25 人のユーザーを招待して、それらのユーザーのアカウントでアプリをテストします。
- 開発者ダッシュボード > アプリから、外部テストを行うアプリを選択します。
- アプリの詳細ページで、外部テストタブをクリックし、始めるをクリックします。
- このタブが表示されない場合は、リリースを作成するから一般公開を選択していることを確認します。
- 次のフィールドに入力して、外部テストを設定します (いつでも編集可能です)。
- リンクアクセス: リンクを使用して誰でもアプリをインストールできるようにするか、招待されたユーザーのみに制限するかを選択します。
- バージョン: ユーザーがインストールするバージョンを選択します。バージョンを変更すると、現在のすべてのユーザーが新しいバージョンに更新されます。
- 招待リンクをクリックして、それをコピーしてユーザーに送信し、ユーザーが自分のアカウントでアプリをインストールできるようにします。これらのユーザーがアプリをインストールするには、管理者権限が必要です。ユーザーがテストバージョンのアプリをインストールすると、アカウントのすべてのメンバーがアプリを使用できるようになります。
外部テストの詳細については、アプリの外部テストを参照してください。
アプリを公開して配布する
Stripe App Marketplace にアプリを公開するには、次のようにします。
- アプリを審査に提出します。
- Stripe がアプリを承認したら、アプリを Stripe App Marketplace に公開します。
アプリを配布するには、次のようにします。
- インストール済みアプリを表示して、配布するアプリをクリックします。アプリの詳細ページで、設定タブをクリックします。
- アプリのインストールリンクをコピーします。このリンクをクリックしたユーザーは、アプリのインストールフローに誘導されます。
- 商品およびユーザーとの通信全体で、同じインストールリンクを一貫して使用します。検討すべき例を以下に示します。
- ドキュメントを更新して、Stripe RAK アプリをインストールするようにユーザーに指示します。ユーザーは制限付きの API キーをコピーして、Web サイトまたはプラグイン構成に貼り付ける必要があります。
- プラグインアカウント登録にインストールリンクを追加して、ユーザーがより簡単にアプリをインストールし、制限付きの API をコピーできるようにします。
- ユーザーとのメール通信にインストールリンクを使用して、ユーザーが既存のインストール済み環境を更新できるようにします。
既存のユーザーを移行する
プラグインを Stripe App に移行した後、既存のユーザーを移行する必要があります。手順は通常のユーザーとのやり取りの方法によって異なりますが、大部分のプラグインに適用できる一般的なガイドラインを以下に示します。
- ユーザーに通知します。インストールリンクを使用して Stripe への接続を更新するように既存のユーザーに通知します。これは、メール、プラグインの UI、製品内の通知、リリースノート、またはその他の通信方法を利用して行えます。
- API キーを更新します。ユーザーがアプリをインストールして、新しい制限付き API キーを提供したら、以前のシークレット API キーを削除します。
- ユーザーの移行の進捗を追跡します。可能な場合は、ユーザーの移行の進捗を追跡します。移行をまだ行っていないユーザーをフォローアップし、時間の経過に伴ってスムーズに移行できるようにします。
オプションアプリの健全性を監視して改善する
アプリの健全性を事前に改善するために、以下のアクションを検討して実行することができます。
- アプリを宣伝するため、アプリトラックの一環として Stripe Partner Ecosystem への参加をご検討ください。すべてのアプリ開発者がパートナープログラムに参加できます。アプリが特定のマイルストーンを達成すると、アプリの成長に応じて追加のパートナー特典を獲得できます。
- Stripe ダッシュボードを拡張して、ユーザー向けにカスタマイズされた機能を提供するには、UI 拡張機能を作成します。
- ユーザーのインストール指標など、App Marketplace のリスト掲載の実績に関するインサイトを取得するには、App 分析を追跡します。
オプション支払いを設定する
ユーザーの決済処理を支援するアプリを構築する際は、これらのガイドラインを確認してください。
支払い情報を安全に収集する
Stripe ユーザーは、クレジットカードデータを安全に保存、処理、送信する方法を指定した PCI への準拠を求められます。ビジネスは、コンプライアンス違反や潜在的な不履行が発生したときに罰則の対象となります。
Stripe ユーザーに代わって API コールを行うため、クライアント側のトークン化を使用してクレジットカードデータを安全に送信する必要があります。顧客は、Web ブラウザまたはモバイルアプリを介して直接 Stripe に個人情報を提供し、それと引き換えに Stripe が単純なトークンを送信します。これにより、機密データがサーバーを介することなく、ユーザーはカードの詳細情報を安全に収集できます。
プラグインにブラウザのクライアント側の支払いフォームが含まれている場合は、次のいずれかを使用することをお勧めします。
- Stripe Elements: Web 決済フローを構築するための事前構築された UI コンポーネントのセットです。支払いフローを構築するための Stripe の基本的な JavaScript ライブラリーである、Stripe.js の機能として提供されています。
- Stripe Checkout: カスタマイズ可能な支払いフォームをローコードで作成し、提供する決済プロダクトです。ウェブサイトに直接埋め込むことも、Stripe がオンラインで提供している決済ページに顧客をリダイレクトすることもできます。
上記のオプションは両方とも、クライアント側のトークン化を提供します。
プラグインがバックエンド環境でのみ動作する場合は、Elements または Checkout を使用して支払いの詳細をトークン化するようにユーザーに求める注意書きをドキュメントに追加してください。トークン化により、Stripe ユーザーは Stripe のプラットフォーム上で可能な限り安全に処理を行うことができます。
Express Checkout Element を追加する
Express Checkout Element では、Apple Pay、Google Pay、Link、PayPal など、ワンクリック支払いボタンを使用して支払いを受け付けるための単一統合が提供されています。この統合により、複数のボタンを同時に表示することができます。顧客のデバイスとブラウザーの組み合わせに応じて、異なる支払いボタンが表示されます。
複数の支払い方法を有効にする
Stripeは、クレジットカード以外にも複数の支払い方法をサポートしています。決済手段の詳細については、決済手段 をご覧ください。
Payment Methods API を使用すると、ユーザーは追加の支払い方法 (Alipay、iDEAL、Sofort など) で支払いを回収できます。これらの支払い方法は、1 つの導入パスを使用して追加できます。
HTTPS が有効になっていることを確認する
プラグインで決済フォームがウェブブラウザーに表示される場合は、フォームが HTTPS を介して表示されることを確認する必要があります。Stripe では HTTPS を有効することをユーザーに求めています。ユーザーが適切に保護されていない場合は、ユーザーにわかりやすくエラーを表示する必要があります。
次の例は、ユーザーが HTTPS を有効化しているかどうかを確認する方法を示しています。
// This example uses Express const express = require('express'); const app = express(); app.get('/', function(request, response) { if (!request.secure) { // Present an error to the user } }); app.listen(3000);
プラグインにフロントエンドコンポーネントがある場合は、ブラウザから HTTPS が使用されているかどうかを確認します。たとえば、JavaScript を使用する場合は、以下のとおりです。
// This example checks for HTTPS from the browser if (window.location.protocol !== "https:") { // Present an error to the user }