今後の PayTo 支払いのために同意書を保存する招待のみ
PayTo 支払いを回収して将来の支払いを承認する方法をご紹介します。
PayTo を使用すると、オーストラリアの顧客は 1 回限りおよび継続支払いに関する PayTo の同意書をバンキングアプリで認証できます。PayTo で支払う顧客は、保留中の契約リクエストに関する通知を受け取り、契約条件を承認してから、アプリに戻り、そこで支払いが成功したか失敗したかについて遅延通知を受け取ります。
将来の支払いに備えて PayTo の契約を設定することで、再度顧客に承認を求めることなく、将来の継続支払いを回収できるようになります。顧客はバンキングアプリで PayTo の同意書を表示、管理、一時停止、取り消すことができます。
注意
Stripe doesn’t support modification or pausing of PayTo agreements by customers. If a customer attempts to pause or modify an agreement, we cancel the agreement and send you a mandate.
webhook. After receiving the webhook, you can reach out to your customer to find out why they adjusted their agreement, as well as set up a new agreement.
PayTo 決済を受け付けるには、支払いを追跡するための PaymentIntent (支払いインテント) オブジェクトを作成して、決済手段に関する情報を収集し、処理のために Stripe に支払いを送信します。Stripe は、PaymentIntent を使用して、支払いが完了するまでの支払いの状態のすべてを追跡および処理します。以降の支払いの作成には、最初の PayTo PaymentIntent から収集された Mandate (同意書) の ID が使用されます。
注意
Stripe は、顧客の通貨、決済手段の制限、その他のパラメーターを評価して、決済手段オプションを自動的に提示します。決済を受け付けるの手順を使用して、Stripe ダッシュボードから決済手段を設定することをお勧めします。
引き続き、Checkout で顧客に提示する決済手段を手動で設定する場合は、このガイドを使用します。それ以外の場合は、導入済みのシステムを更新して、ダッシュボードで決済手段を設定してください。
顧客を作成するサーバー側
顧客がビジネスでアカウントを作成したら、顧客を作成し、アカウントを表す内部表記と関連付けます。このようにすると、保存されている支払い方法の詳細を後で取得して使用することができます。
PaymentIntent を作成するサーバー側
サーバーで PaymentIntent を作成し、回収する amount
、aud
通貨、顧客 ID を指定し、setup future usage (今後の使用のための設定) の引数として off_
を指定します。最少請求金額は 0.50 AUD であり、PayTo は他の通貨に対応していません。既存の Payment Intents API の実装がある場合は、payto
を payment method types (決済手段タイプ) のリストに追加します。
PayTo 決済手段オプションで、顧客に同意を求める契約条件を指定できます。
よくある間違い
支払い方法オプションの amount
は PaymentIntent の amount
と一致させる必要があります。ただし、amount_
を maximum
に設定する場合は、PaymentIntent よりも大きい支払い方法オプションの金額を設定できます。
次のコードサンプルは、amount_
が maximum
であるため、PaymentIntent の金額が 10 AUD で、支払い方法オプションの金額が 1,500 AUD であることを示しています。
Stripe はさまざまな種類の同意書に対応し、同意書の金額、期間、頻度、目的を管理できます。できる限り忠実に要件に一致する同意条件を指定します。これらの詳細な条件は承認時に顧客に表示されるため、正確にすることで購入完了率を向上できます。
デフォルトの purpose
は retail
に設定されています。retail
が契約の目的を正確に表していない場合は、有効値のいずれかを使用してこのフィールドを上書きします。
client secret を取得する
PaymentIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。
支払い方法の詳細を収集して支払いを送信するクライアント側
Payment Element を使用してクライアント側で支払い詳細を収集します。Payment Element は事前構築された UI コンポーネントであり、さまざまな決済手段の詳細の収集をシンプルにします。
Payment Element には、HTTPS 接続を介して支払い情報を Stripe に安全に送信する iframe が含まれています。一部の支払い方法では、支払いを確定するために別のページにリダイレクトする必要があるため、Payment Element を別の iframe 内に配置しないでください。
構築済みのシステムを機能させるには、決済ページのアドレスの先頭を http://
ではなく https://
にする必要があります。HTTPS を使用しなくてもシステムをテストできますが、本番環境で決済を受け付ける準備が整ったら、必ず、HTTPS を有効にしてください。
stripe.confirmPayment を使用し、Payment Element からの詳細を指定して支払いを完了します。これにより、オーソリリクエストが買い手に送信されます。
注
顧客による支払いの承認を待っている間、stripe.
の完了には数秒かかる場合があります。この間、フォームが再送信されないように無効化し、スピナーのような待機中のインジケーターを表示します。エラーが発生した場合は、それを顧客に表示し、フォームを再度有効化し、待機中のインジケーターを非表示にします。
PayTo PaymentMethod に後で請求する
顧客に再び請求する必要が生じたときは、新しい PaymentIntent を作成します。同意書 ID、顧客 ID、決済手段 ID を確認するため、以前の PaymentIntent を取得し、latest_
フィールドを拡張します。
以下のレスポンスで必要な ID を確認してください。
{ // ... "customer": "cus_PW6rQWRGAaBD7z", // <---- Here's the customer "latest_charge": { "payment_method": "pm_1Ok4l9A8DuEjWaGwhB4SGrWh", // <---- Here's the payment method "payment_method_details": { "payto": { "bsb_number": null, "last4": null, "mandate": "mandate_1Ok4lVA8DuEjWaGwu0uTwI94", // <----- Here's the mandate "pay_id": "jenny@example.com" }, "type": "payto" }, }, "payment_method_types": [ "payto" ], // ... }
PaymentMethod ID、同意書 ID、顧客 ID を指定して PaymentIntent を作成します。
実装内容をテストする
以下のさまざまなテスト用 PayID と銀行口座情報を使用して、テスト API キーで PayTo の実装内容をテストします。各セットによって、本番環境でシステムが直面する各種シナリオが再現されています。
オプション支払い後のイベントを処理する
支払いが完了すると、Stripe は payment_intent.succeeded イベントを送信します。ダッシュボード、カスタム Webhook、またはパートナーソリューションを使用してこれらのイベントを受信し、また、顧客への注文確認メールの送信、データベースでの売上の記録、配送ワークフローの開始などのアクションを実行します。
クライアントからのコールバックを待つのではなく、これらのイベントをリッスンします。クライアント側では、コールバックが実行される前に顧客がブラウザーのウィンドウを閉じたり、アプリを終了したりする可能性があります。また、悪意を持つクライアントがレスポンスを不正操作する恐れもあります。非同期型のイベントをリッスンするよう構築済みのシステムを設定することで、これ以降はより多くの決済手段を簡単に受け付けられるようになります。サポートされているすべての決済手段の違いをご確認ください。
イベントを受信し、ビジネスアクションを実行する
ビジネスアクションを受信して実行するためのいくつかのオプションがあります。
手動
Stripe ダッシュボードは、すべての Stripe での支払いの確認、メール領収書の送信、入金処理、または失敗した支払いの再試行に使用できます。
カスタムコード
Webhook ハンドラを作成してイベントをリッスンし、非同期型のカスタムの支払いフローを作成します。Stripe CLI を使用して、ローカルで Webhook 組み込みのテストとデバッグを行います。
事前構築のアプリ
オートメーションやマーケティングとセールスなどの一般的なビジネスイベントを、パートナーアプリケーションとの連携によって処理します。