MobilePay での支払い
デンマークとフィンランドで一般的な支払い方法として使われている MobilePay を受け付ける方法をご紹介します。
MobilePay は、デンマークとフィンランドで使われている 1 回限りの使用のカードウォレット決済手段です。顧客は MobilePay アプリを使用して、支払いを認証して承認できます。
顧客が MobilePay で支払う場合、Stripe は MobilePay から受け取ったカードデータを使用してカード取引を実行します。カード取引の処理は実装には表示されず、Stripe は支払いの成功または失敗を直ちに通知します。
Stripe では、埋め込み可能な決済フォームである Mobile Payment Element の使用を推奨しています。MobilePay やその他の決済手段を最小限の労力でシステムに追加することが可能です。
このガイドでは、カスタムの決済フォームを使用して、ネイティブのモバイルアプリから MobilePay を受け付ける方法をご説明します。ネイティブのモバイルアプリによって、顧客は MobilePay モバイルアプリにリダイレクトされ、決済を完了します。購入を完了するにあたり、MobilePay モバイルアプリで追加のアクションは必要ありません。
Stripe を設定するサーバ側クライアント側
まず、Stripe アカウントが必要です。今すぐ登録してください。
サーバ側
この組み込みには、サーバ上に Stripe API と通信するエンドポイントが必要です。サーバから Stripe API にアクセスするには、Stripe の公式ライブラリを使用します。
クライアント側
Stripe iOS SDK はオープンソースです。詳細なドキュメントが提供されており、iOS 13 以降をサポートするアプリと互換性があります。
注
SDK の最新リリースおよび過去バージョンの詳細については、GitHub の Releases (リリース) ページをご覧ください。リポジトリのリリースをウォッチして、新しいリリースの公開時に通知を受け取ることも可能です。
アプリの起動時に Stripe 公開可能キーを使用して SDK を設定します。これにより、アプリが Stripe API にリクエストを送信できるようになります。
PaymentIntent を作成するサーバー側クライアント側
サーバー側
PaymentIntent は、顧客から支払いを回収する意図を表すオブジェクトであり、支払いプロセスのライフサイクルをステージごとに追跡します。
サーバーで PaymentIntent
を作成して確定するには、以下のようにします。
- 回収する金額と対応している通貨 (
eur
、dkk
、sek
、nok
) を指定します。 mobilepay
をPaymentIntent
の決済手段タイプのリストに追加します。ダッシュボードで MobilePay を有効にしていることを確認してください。payment_
をmethod_ data[type] mobilepay
に設定すると、PaymentMethod を作成して、PaymentIntent ですぐに使用できます。
PaymentIntent には client secret が含まれています。次のステップで PaymentIntent を確定するために、client secret をクライアントに送信します。
クライアント側
クライアントで、サーバーの PaymentIntent をリクエストし、その client secret を保存します。
Stripe に支払いを送信するクライアント側
顧客が MobilePay での支払いをタップしたら、PaymentIntent
を確定して支払いを完了します。STPPaymentIntentParams
オブジェクトを PaymentIntent
の client secret で構成します。
client secret は、 Stripe API リクエストを認証する API キーとは異なります。このデバイスは支払いを完了できるため、慎重に扱う必要があります。記録したり、URL に埋め込んだり、当該の顧客以外に漏洩することがないようにしてください。
戻り先 URL を設定する
顧客はお客様のアプリから離れて、(Safari やバンキングアプリなどで) 認証する場合があります。ユーザーが認証後にアプリに自動的に戻れるようにするには、カスタム URL スキームを構成し、URL を SDK に転送するようにアプリのデリゲートを設定します。Stripe はユニバーサルリンクには対応していません。
支払いを確定する
ステップ 2の PaymentIntent client secret を使用し、STPPaymentHandler.shared.confirmPayment() で PaymentIntent を確認します。これにより、MobilePay アプリが直接開くか (ダウンロード済みの場合)、MobilePay スタートページを示す WebView が開きます。顧客が決済をオーソリすると、completion block に決済のステータスが含まれます。
顧客は 5 分以内に MobilePay アプリで支払いを承認できます。基のカードによる支払いが失敗した場合、顧客は別のカードを選択して、MobilePay アプリで再試行できます。
支払い後のイベントを処理する
支払いが完了すると、Stripe は payment_intent.succeeded イベントを送信します。ダッシュボード、カスタム Webhook、またはパートナーソリューションを使用してこれらのイベントを受信し、また、顧客への注文確認メールの送信、データベースでの売上の記録、配送ワークフローの開始などのアクションを実行します。
クライアントからのコールバックを待つのではなく、これらのイベントをリッスンします。クライアント側では、コールバックが実行される前に顧客がブラウザーのウィンドウを閉じたり、アプリを終了したりする可能性があります。また、悪意を持つクライアントがレスポンスを不正操作する恐れもあります。非同期型のイベントをリッスンするよう構築済みのシステムを設定することで、これ以降はより多くの決済手段を簡単に受け付けられるようになります。サポートされているすべての決済手段の違いをご確認ください。
手動
Stripe ダッシュボードは、すべての Stripe 支払いの確認、メールでの領収書の送信、入金処理、または失敗した支払いの再試行に使用できます。
カスタムコード
Webhook ハンドラを作成してイベントをリッスンし、カスタムの非同期決済フローを作成します。Stripe CLI を使用し、ローカルで Webhook 組み込みのテストとデバッグを行います。
事前構築のアプリ
オートメーションやマーケティングとセールスなどの一般的なビジネスイベントを、パートナーアプリケーションとの連携によって処理します。
組み込みをテストする
テスト API キーを使用して、PaymentIntent を作成します。PaymentIntent を確定したら、next_
リダイレクト URL に従い、支払いをオーソリまたは失敗させるオプションのあるテストページをテストします。
- Authorize test payment (テスト支払いをオーソリする) をクリックして、支払い成功のケースをテストします。PaymentIntent の status (ステータス) が
requires_
からaction succeeded
に移行します。 - Fail test payment (テスト支払いを失敗させる) をクリックして、顧客が認証に失敗するケースをテストします。PaymentIntent の status (ステータス) が
requires_
からaction requires_
に移行します。payment_ method
失敗した支払い
基になったカード取引が拒否されると、MobilePay 取引が失敗することがあります。詳しくは、カードの支払い拒否をご覧ください。この場合、PaymentMethod は解除され、PaymentIntent のステータスは自動的に requires_
に移行します。
PaymentIntent のステータスが requires_
の場合、顧客は 5 分以内に支払いを認証する必要があります。5 分経過してもアクションが実行されない場合、PaymentMethod は解除され、PaymentIntent のステータスは自動的に requires_
に移行します。
返金と不審請求の申請
Stripe は、MobilePay 取引の一環として標準のカードネットワークを使用してカード取引を実行します。返金 と不審請求の申し立てには、Visa と Mastercard のネットワークのルールが適用されます。