Revolut Pay による決済を受け付ける
システムに Revolut Pay のサポートを追加します。
Revolut Pay は再利用可能な決済手段であり、顧客は支払いを認証する必要があります。顧客はウェブサイトまたはアプリからリダイレクトされ、Revolut Pay で支払いを承認すると、ウェブサイトまたはアプリに戻されます。お客様は支払いが成功したか失敗したかに関する即時通知を受け取ります。
PaymentIntent を作成するサーバー側
PaymentIntent (支払いインテント) は、顧客から支払いを回収する意図を表すオブジェクトであり、支払いプロセスのライフサイクルを追跡します。サーバーで PaymentIntent を作成し、回収する金額とサポートされている通貨を指定します。すでに Payment Intents の実装がある場合は、支払い方法のタイプのリストに revolut_ を追加します。
client secret を取得する
PaymentIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。
Revolut Pay ウォレットにリダイレクトするクライアント側
顧客が Revolut Pay での支払いをクリックしたときに、Stripe.js を使用してその支払いを Stripe に送信します。Stripe.js は、決済フローを構築するための基本的な JavaScript ライブラリです。このライブラリにより、以下で説明するリダイレクトなどの複雑な処理が自動的に行われ、他の決済手段にも対応できるように実装を拡張できます。Stripe.js スクリプトを決済ページに含めるには、HTML ファイルの head にこのスクリプトを追加します。
<head> <title>Checkout</title> <script src="https://js.stripe.com/clover/stripe.js"></script> </head>
決済ページで以下の JavaScript を使用して、Stripe.js のインスタンスを作成します。
// Set your publishable key. Remember to change this to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe();'pk_test_TYooMQauvdEDq54NiTphI7jx'
PaymentIntent の client secret を使用し、stripe. を呼び出して Revolut Pay リダイレクトを処理します。return_ を追加して、支払いが完了した後に Stripe が顧客をリダイレクトする場所を決定します。
const form = document.getElementById('payment-form'); form.addEventListener('submit', async function(event) { event.preventDefault(); // Set the clientSecret of the PaymentIntent const { error } = await stripe.confirmPayment({ clientSecret: clientSecret, confirmParams: { payment_method_data: { type: 'revolut_pay', }, // Return URL where the customer should be redirected after the authorization return_url: `${window.location.href}`, }, }); if (error) { // Inform the customer that there was an error. const errorElement = document.getElementById('error-message'); errorElement.textContent = result.error.message; } });
return_ は支払いの結果を表示するウェブサイト上のページに相当します。PaymentIntent のステータスを確認して、表示内容を決定できます。ステータスを確認するため、Stripe は以下の URL クエリパラメーターを含む return_ にリダイレクトします。return_ には自社のクエリパラメーターを追加することもできます。これらのパラメーターはリダイレクトプロセス全体にわたって存続します。
| パラメーター | 説明 |
|---|---|
payment_ | PaymentIntent の一意の識別子。 |
payment_ | PaymentIntent オブジェクトの client secret。 |
オプションリダイレクトを手動で処理するサーバー側
リダイレクトを処理する最善の方法は、confirmPayment で Stripe.js を使用することです。顧客を手動でリダイレクトする場合の方法を紹介します。
- 顧客が支払いを完了した後にリダイレクトされる URL を指定します。
PaymentIntentのステータスがrequires_であることを確認します。action next_のタイプは、redirect_to_url になります。action
"next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } }
next_プロパティで指定された URL に顧客をリダイレクトします。action
支払いプロセスを完了した顧客は、return_ の指定先に送られます。payment_ と payment_ の URL クエリパラメーターが含まれ、上記のように独自のクエリパラメーターを渡すことができます。
オプション支払い後のイベントを処理する
支払いが完了すると、Stripe は payment_intent.succeeded イベントを送信します。ダッシュボード、カスタム Webhook、またはパートナーソリューションを使用してこれらのイベントを受信し、また、顧客への注文確認メールの送信、データベースでの売上の記録、配送ワークフローの開始などのアクションを実行します。
クライアントからのコールバックを待つのではなく、これらのイベントをリッスンします。クライアント側では、コールバックが実行される前に顧客がブラウザーのウィンドウを閉じたり、アプリを終了したりする可能性があります。また、悪意を持つクライアントがレスポンスを不正操作する恐れもあります。非同期型のイベントをリッスンするよう構築済みのシステムを設定することで、これ以降はより多くの決済手段を簡単に受け付けられるようになります。サポートされているすべての決済手段の違いをご確認ください。
イベントを受信し、ビジネスアクションを実行する
ビジネスアクションを受信して実行するためのいくつかのオプションがあります。
手動
Stripe ダッシュボードは、すべての Stripe での支払いの確認、メール領収書の送信、入金処理、または失敗した支払いの再試行に使用できます。
カスタムコード
Webhook ハンドラを作成してイベントをリッスンし、非同期型のカスタムの支払いフローを作成します。Stripe CLI を使用して、ローカルで Webhook 組み込みのテストとデバッグを行います。
事前構築のアプリ
オートメーションやマーケティングとセールスなどの一般的なビジネスイベントを、パートナーアプリケーションとの連携によって処理します。
サポートされている通貨
お客様の国に対応する通貨で Revolut Pay の決済を作成できます。現在、Stripe では gbp、eur、ron、huf、pln、dkk をサポートしています。Revolut Pay UK の顧客の場合のデフォルトの現地通貨は gbp、その他の EU の顧客の場合は eur です。
| 通貨 | 国 |
|---|---|
gbp | イギリス |
eur、ron、huf、pln、dkk | オーストリア、ベルギー、ブルガリア、クロアチア、キプロス、チェコ共和国、デンマーク、エストニア、フィンランド、フランス、ドイツ、ギリシャ、ハンガリー、アイルランド、イタリア、ラトビア、リヒテンシュタイン、リトアニア、ルクセンブルグ、マルタ、オランダ、ノルウェー、ポーランド、ポルトガル、ルーマニア、スロバキア、スロベニア、スペイン、スウェーデン |