PayTo 支払い招待のみ
PayTo による支払い方法を受け付ける方法をご紹介します。
PayTo は、オーストラリアで使われているリアルタイムの支払い方法です。1 回限りの支払いと継続支払いを受け付けることができます。 PayTo で支払う場合、顧客はモバイルバンキングアプリを使用して認証および承認します。
支払いが成功したか失敗したかに関する遅延通知を受け取ります。通常、支払いの最終ステータスの通知は、契約の承認から 30 秒以内に送信されます。
PaymentIntent を作成するサーバー側
A PaymentIntent is an object that represents your intent to collect a payment from a customer and tracks the payment process. To create a PaymentIntent
that accepts a PayTo payment method, specify the amount to collect, aud
as the currency, and payto
in the payment_method_types list. If you maintain a list of payment method types that you pass when creating a PaymentIntent
, add payto
to it.
client secret を取得する
PaymentIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。
支払い方法の詳細を収集して支払いを送信するクライアント側
支払いを確定するときに、client secret を渡します。
注意
client secret は PaymentIntent へのアクセスを許可するため、慎重に取り扱う必要があります。記録したり、URL に埋め込んだり、当該の顧客以外に公開されることがないようにしてください。
stripe.
を使用して、顧客の支払いの承認を開始します。
顧客は支払いリクエストに関する通知を受け取り、バンキングアプリでリクエストを承認または拒否します。
// Inititates the payment request notification to the customer stripe.confirmPayToPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', { payment_method: { billing_details: { // Name is required for all PayTo payments name: 'Jenny Rosen', // Email is required only for PayID payments, for refund processing email: 'jenny@example.com' }, payto: { // Either provide a PayID (typically an email or phone number) pay_id: 'jenny@example.com' // ...or provide bank account details account_number: '000123456', bsb_number: '000000' } } } ).then(function(result) { if (result.error) { // Inform the customer that there was an error. console.log(result.error.message); } });
By default, Stripe.js polls for updates to the PaymentIntent. The promise returned by confirmPayToPayment
resolves when the PaymentIntent reaches the succeeded
state, or when the payment fails and the PaymentIntent returns to the requires_
state. See the PaymentIntent lifecycle for details on how these transitions happen.
自身でポーリングするには、handleActions: false
を設定して自動ポーリングを無効にします。
stripe.confirmPayToPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', { payment_method: { payto: { account_number: '000123456', bsb_number: '000000' } } } { handleActions: false } // <---- Like this )
In this case, call the PaymentIntents API to fetch status of the PaymentIntent yourself.
実装内容をテストする
以下のさまざまなテスト用 PayID と銀行口座情報を使用して、テスト API キーで PayTo の実装内容をテストします。各セットによって、本番環境でシステムが直面する各種シナリオが再現されています。