Stripe Apps の埋め込み導入ガイド非公開プレビュー
Stripe Apps の埋め込みコンポーネントを使用して、顧客がサードパーティーアプリケーションで支払いデータを管理できるようにします。
顧客は、ビジネスワークフローを完了するためにすでに使用しているツールで、支払いデータをすぐに利用できることを期待しています。アプリの埋め込みコンポーネントを使用すると、顧客は Stripe でサードパーティーのアプリケーションを使用できるようになります。
アプリの埋め込みコンポーネントを使用すると、Stripe 向けに構築されたシステムをプラットフォームに埋め込むことができ、顧客は Stripe のサイトにとどまったまま任意のサードパーティーアプリケーションを使用できるようになります。QuickBooks や Xero などのアプリケーションとデータを直接同期できる、事前構築済みの UI コンポーネントをご使用ください。
Connect の埋め込みコンポーネントを導入する
Connect.js を設定して、連結アカウントのダッシュボード機能をウェブサイトに追加することができます。
埋め込み Stripe Apps はプライベートプレビュー版コンポーネントを使用するため、Stripe SDK のプレビューバージョンを使用する必要があります。プライベートプレビュー版コンポーネントの詳細をご覧ください。
実装するアプリを選択する
Stripe は以下のアプリの実装をサポートしています。
実装可能アプリ | アプリ ID |
---|---|
QuickBooks Sync by Acodei | com.example.acodeistripeapp |
Xero sync by Xero | com.xero.stripeapp |
Mailchimp | mailchimp |
アプリインストールを設定する
選択したアプリのアプリインストール埋め込みコンポーネントを表示します。アプリをインストールすると、サードパーティーアプリに Stripe ユーザーデータへのアクセス権が付与され、プラットフォーム、Stripe、サードパーティーアプリ間の接続が作成されます。コンポーネントには uninstalled
と installed
の 2 つの状態があります。インストールイベントトリガーをリッスンして、カスタムの UX フローを構築するか、自社のバックエンドで更新を行います。
アカウントセッションの作成時に、components
パラメーターで app_
と app_
を指定して、アプリのインストールと表示コンポーネントを有効にします。allowed_
の features
パラメーターを指定して、表示するアプリを有効にしてください。
アカウントセッションを作成して、ConnectJS を初期化すると、フロントエンドにアプリインストールコンポーネントを表示できます。
この埋め込みコンポーネントは、次のパラメーターに対応します。
現在の、または更新されたインストールの状態に基づいて、カスタムの動作を設定できます。
アプリの設定
選択したアプリのアプリビューポートの埋め込みコンポーネントを表示して、アプリのコア機能 (OAuth を使用したソフトウェアアカウントへの接続、アカウント登録、サービスの設定、取引の同期状態など) を有効にします。オプションの HTML 属性として user_
(お客様のプラットフォームで表されるビジネス) を渡します。サードパーティーアプリはこれを使用して、OAuth の後にユーザーダッシュボードへリダイレクトされる動的 URL を作成します。
この埋め込みコンポーネントは、次のパラメーターに対応します。
on behalf of (OBO) の Connect 送信先のカスタマイズ
To ensure that your selected app properly processes transaction data, you must update the destination charge on the connected account by using the standardized data schema. It’s crucial that your platform sends at least a Customer object (specifically the customer ID) with each charge event.
This requirement is important because the charge.
event might be sent multiple times for a single transaction. However, the third-party app only reads and processes events that include a customer ID. Always include the customer ID in the payload to confirm that the app processes the corresponding transaction. You have three scenarios that require you to update your destination charge:
- 1 回限りの支払いの完了
- 継続支払いの完了
- 支払いの返金
次のコードスニペットの例では、対象となるデスティネーション支払いに移動し、スキーマごとに更新する方法を示しています。
- 取引からデスティネーション支払いまで追跡します
const paymentOnPlatform = await StripeClient.paymentIntents.retrieve( "pi_3N6JL7LirQdaQn8E1Lpn7Dui", ); const latestCharge = await StripeClient.charges.retrieve( paymentOnPlatform.latest_charge as string, ); const transfer = await StripeClient.transfers.retrieve( latestCharge.transfer as string, ); const payment = await StripeClient.charges.retrieve( transfer.destination_payment as string, undefined, { stripeAccount: transfer.destination as string, }, );
- 顧客を作成したら、関連する顧客 ID とメタデータで支払いを更新します。データの受け渡しやアプリの同期を行うには、顧客はプラットフォームではなく、連結アカウントに属している必要があります。
const customer = await StripeClient.customers.create( { email: `jenny.rosen@example.com`, name: "Jenny Rosen", address.city: "Brothers" Address.state: "Oregon" address.country: "USA" address.line1: "27 Fredrick Ave" address.postal_code: "97712" metadata: { platform_customer_ID: "K-123456" }, }, { stripeAccount: accountId, }, ); const payment = await StripeClient.charges.update( id, { customer: customer.id, metadata: { product_name: "Creative writing course for PMs", platform_product_ID: "P-123456" platform_order_ID: "O-123456" }, }, { stripeAccount: accountId, }, );
ダイレクト支払い
システムの埋め込みによって、Stripe に保存されている支払い、顧客、商品のすべてのデータにアクセスできます。以下のメタデータスキーマを使用して、任意のプラットフォームデータをアプリに渡すことができます。
フィールドまたはキーの名前 | 形式 (標準の CSV ルールを適用) | 説明 |
---|---|---|
customer. | 文字列 | プラットフォームのシステムに記録されている顧客 ID |
payment. | 文字列、CSV の複数製品 | このトランザクションに関連してプラットフォームのシステムに記録されている製品 ID (Stripe 製品 ID と異なる場合) |
payment. | 文字列、CSV の複数製品 | このトランザクションに関連してプラットフォームのシステムに記録されている製品名またはサービス名 (Stripe 製品名と異なる場合) |
payment. | 文字列、CSV の複数製品 | ID および名前の配列に対応する個々の製品の金額 (価格またはコスト) (Stripe 製品の金額と異なる場合) |
payment. | 文字列 | このトランザクションに関連してプラットフォームのシステムに記録されている注文 ID (支払い) |
payment. | 文字列 | プラットフォームに記録され、ユーザーに表示される支払いまたは取引の ID (Stripe 決済 ID と異なる場合) |