サーバー側の連携
Stripe とのバックエンド連携を設定します。
バックエンドの最適な連携を設定するには、Stripe への認証を行い、API リクエストのベストプラクティスを確認し、Webhook を適切に設定する必要があります。
Stripe への認証を行う
Stripe では API キーによる認証を提供しています。また、制限付きアクセスキーを作成して特定のリソースへのアクセスをさらに厳しく制御することもできます。トークンの作成にはシークレット API キーと公開可能 API キーを使用できますが、サーバー側の認証にはシークレットキーが必要です。
以下は、API コールのサンプルです。
API リクエストのベストプラクティス
すべての POST リクエストにべき等キーを追加することをお勧めします。ユニバーサル一意識別子 (UUID) や、顧客 ID と注文 ID の組み合わせなど、キーが一意であることを確認します。これらのキーを使用することで、ネットワークエラーが発生した場合に、リクエストを安全に再試行できます。
Customer オブジェクト: 支払いの詳細を格納する
PaymentMethods を保存して再利用するには、これを Customer オブジェクトに関連付ける必要があります。
PaymentMethod を Customer に関連付けた後で、Customer ID と PaymentMethod ID をシステムに保存し、将来の支払いに使用できるようにします。1 つの Customer オブジェクトに複数の支払い方法のリストを設定できるため、後から支払いを作成する際は、Customer ID と PaymentMethod ID の両方を指定する必要があります。
Customer を作成して PaymentMethod を関連付ける場合の例を以下に示します。
返金
返金は Refunds API を使用して管理され、全額または一部の金額に対して実行できます。Stripe での取引を返金するには、返金が必要な取引の PaymentIntent ID または Charge ID が必要です。
返金は「利用可能な」 Stripe 残高を使用し、保留中の残高は使用できません。利用可能な残高に、返金額に充当できるだけの十分な資金がない場合、Stripe は残りの金額をご利用の銀行口座から引き落とします。一部返金、全額返金、1 件の支払いに対する複数の返金が可能ですが、当初の支払い金額より多い総額の返金は実行できません。
返金には、API またはダッシュボードを使用できます。返金の発行後にキャンセルすることはできません。返金が顧客の明細に表示されるまでに、5 ~ 10 営業日かかります。顧客が返金ステータスの確認を希望している場合は、ARN を提供 することで、顧客から銀行に対する問い合わせが可能になります。
PaymentIntent の返金例を次に示します。
金額を指定した一部返金の例を次に示します。
不審請求の申請とチャージバック
ビジネスは、不審請求の申請 (チャージバックとも呼ばれる) を管理する責任を負います。不審請求の申請を積極的に監視し、必要に応じて、請求の有効性を裏付ける反証資料を収集および提出することをお勧めします。Stripe は不審請求が申請された売上を保留し、判定が下されるまでの間、Stripe 残高から差し引きます。不審請求の申請でお客様の主張が認めらたら、売上を戻します。
不審請求は、次の 2 つの方法で監視できます。
- Stripe ダッシュボードを使用して、通知をメールで送信します。この通知は、ダッシュボードのプロフィールで設定できます。
- Disputes API を使用して、不審請求の申請への対処と、反証資料の提出を完全に自動化できます。
Webhook を設定する
Webhook を使用して、アカウントで発生したイベント (銀行口座への入金、返金、支払いなど) をキャプチャーできます。非同期で発生する Stripe イベントや、追加アクションのトリガーが必要なイベントに利用できます。
各タイプに推奨される Webhook をご覧ください。
Webhook タイプ | 推奨 Webhook |
---|---|
支払い |
|
返金 |
|
入金 |
|
PAYMENT INTENTS |
|
不審請求の申請 |
|
次のリソースを使用して Webhook をセットアップし、正しく設定されていることを検証します。