Vipps による支払い非公開プレビュー
ノルウェーで一般的な支払い方法である Vipps を受け付ける方法をご紹介します。
Vipps は、ノルウェーで使用されている 1 回限りの使用のカードウォレット支払い方法です。顧客は付属のスマートフォンアプリケーションを使用して支払いの認証と承認を行うことができます。
顧客は、Vipps を使用して支払うために、お客様のウェブサイトからリダイレクトされ、支払いを承認してから、ウェブサイトに戻ります。お客様はここで、支払いが成功したか失敗したかについて即時通知を受け取ります。
Stripe を設定するサーバー側
アプリケーションから Stripe API にアクセスするには、Stripe の公式ライブラリを使用します。
PaymentIntent を作成するサーバー側
PaymentIntent (支払いインテント) は、顧客から支払いを回収する意図を表すオブジェクトであり、支払いプロセスのライフサイクルの各段階を追跡します。まず、サーバーで PaymentIntent
を作成し、回収する金額と nok
の通貨 (Vipps は nok
にのみ対応しているため) を指定します。すでに Payment Intents API を使用した実装がある場合は、vipps
を PaymentIntent
の支払い方法タイプのリストに追加します。
レスポンス
{ "id": "pi_12345", "amount": 1099, "currency": "nok", "payment_method": "pm_12345", "payment_method_types": [ "vipps" ], "payment_method_options": { "vipps": { "reference": "ORDER_123", }, }, "status": "requires_confirmation" }
注
Vipps アプリケーションで顧客に表示される注文参照を設定できます。デフォルトは Payment Intent の id
です。
PaymentIntent を確定するサーバー側
PaymentIntent を確定するには、ステップ 2 の PaymentIntent の id を使用します。これにより、指定された 支払い方法で顧客が支払うことを宣言します。PaymentIntent が確定されると、支払いが開始されます。return_url は、ユーザーが支払いを完了した後に Stripe がユーザーをリダイレクトする場所を示します。
レスポンス
{ "id": "pi_12345", "amount": 1099, "currency": "nok", "payment_method": "pm_12345", "next_action": { "redirect_to_url": { "return_url": "https://example.com/checkout/complete", "url": "https://pm-redirects.stripe.com/authorize/acct_123/pa_nonce_abc" }, "type": "redirect_to_url" }, "payment_method_types": [ "vipps" ], "payment_method_options": { "vipps": { "reference": "ORDER_123", }, }, "status": "requires_action" }
支払いを承認するには、next_action[redirect_to_url][url] フィールドの URL に顧客をリダイレクトします。
デスクトップでは、URL によって Vipps ランディングページが開くため、顧客はここに Vipps アカウントである電話番号を入力できます。その後、顧客は Vipps スマートフォンアプリを使用して支払いの認証を進めることができます。
モバイルデバイスでは、デスクトップでのプロセスと同様に、この URL を使用すると、Vipps アプリケーションが直接開くか (存在する場合)、Vipps ランディングページが開きます。
注
顧客がリダイレクト URL を 5 分以内に開かない場合、支払いは失敗になり、Payment Intent は
requires_
に移行します。payment_ method 顧客がリダイレクト URL で操作した後、アプリで支払いをオーソリできる時間制限は 5 分です。基本のカードの請求が失敗した場合、支払いは失敗し、Payment Intent は
requires_
に移行します。payment_ method
注文のフルフィルメントを実行するサーバー側
Webhook などの方法を使用して、注文のフルフィルメントを処理します。顧客が支払いを完了すると、PaymentIntent
のステータスは succeeded
に移行し、payment_intent.succeeded Webhook イベントを送信します。顧客が支払いを行わない場合、PaymentIntent
は payment_intent.payment_failed Webhook イベントを送信し、ステータスを requires_
に返します。