メインコンテンツへスキップ
このページで

Next Actionは、既存の注文が、3DSチャレンジやリダイレクトなどのサポートされている追加ステップを完了する必要がある場合に、元の注文トークンを再利用して使用します。

意思決定フロー#

フロー図
1Create or submitpayment2-- Yes3Handle current orderstate4Open Next Actionwith same ordertoken5-- Error or close6Reconcile order onbackend7Retrieve statebefore retry8Fulfill only fromverified final state
結果またはアウトカムレビューまたは保留中
01 · response
必要なアクションを検出
支払い応答または文書化された注文の状態を使用します。
02 · SDK
Next Actionを開く
元のトークンを渡す order_token; do not create another order.
03 · customer
課題を完了する
リダイレクト、ポップアップ、およびアプリのライフサイクル遷移を正常に動作させる
04 · backend
結果を確認する
注文を取得するか、検証されたウェーブブックを消費する

カスタマーエクスペリエンスを見る#

Next Action は、DEUNA の支払いウィジェットと加盟店独自の支払いフォームの両方で動作します。バックエンドが支払いを送信した後、レスポンスで顧客による追加手順が必要と示された場合にのみ Next Action を開いてください。ウィジェットは、対応する 3DS チャレンジまたは代替支払い方法 (APM) へのリダイレクトを表示し、コールバックを通じて結果を通知します。

次のデモでは、加盟店のチェックアウトから必要な支払い後のアクションへ、顧客体験がどのように続くかを示します。

Next Action は、支払い開始後に顧客が完了する必要のあるステップを表示します。 YouTube でビデオを直接視聴する 埋め込みプレーヤーが利用できない場合。

このビデオは、顧客に表示される画面遷移を示します。統合では、以下で説明する支払いレスポンス、コールバック、バックエンドでの照合を引き続き使用してください。顧客がウィジェットで見た内容から最終的な支払いステータスを判断しないでください。

Next Actionを開く#

await DeunaSDK.initNextAction({
  orderToken,
  callbacks: {
    onSuccess: () => verifyOriginalOrder(),
    onError: (error) => recoverAfterVerification(error),
    onClosed: () => recoverAfterVerification(),
  },
});

パラメータ#

パラメータプラットフォーム必須目的
orderTokenすべてはい顧客による処理を待っている注文の元のトークン
callbacksすべてはい成功、エラー、クローズ、イベント、およびリサイズハンドラが、基本コールバック契約でサポートされている
languageすべてなしホスト環境をローカライズする
modeReact Nativeはいモーダルまたはサポートされている埋め込み表示を選択する
fraudCredentialsネイティブ + React Nativeなし設定されたデバイスデータ統合のみ
customUserAgentiOS + Androidなし承認されたWebViewユーザーエージェントのオーバーライド
domainすべてなし制御された環境のオーバーライド; 通常のプロ덕ション環境では使用しない

すべての結果を処理する#

結果その意味適切なアクション
onSuccess顧客向けのステップが完了する元の注文を取得し、現在の状態を表示します。
onErrorSDKまたはチャレンジで正規化されたエラーが報告されました。安全なメタデータを記録し、状態を取得し、適切な再試行を提供します。
onClosed顧客またはSDKが体験を終了しました。バックエンドの状態がわかれば、曖昧な状態として扱います。
タイムアウトまたはアプリケーションの中断信頼できるクライアントの結果がハンドラに到達しません。バックエンドから再調整し、自動的に再送信しないでください。

リダイレクトおよびポップアップの要件#

  • SDKがサポートされている外部認証インターフェースを開くことを許可します。
  • 顧客が離れる間、アプリケーションのライフサイクル状態を維持します。
  • Webの場合、顧客の操作から開き、ウィジェットをサンドボックス化してポップアップやトップレベルのナビゲーションをブロックしないようにします。
  • React Nativeの場合、外部リダイレクトコントローラがアクティブな間、SDKレンダラをマウントしたままにします。
  • iOSおよびAndroidの場合、内部のWebViewブリッジを再作成するのではなく、維持されたSDKモダールまたは埋め込みコンポーネントを使用します。
  • 成功したチャレンジ、拒否、顧客によるキャンセル、発行者タイムアウト、ネットワーク損失、およびバックグラウンドからの戻し。

組み込み表示#

Web SDK は以下のをサポートします mode: 'target' más target; iOS および Android は組み込みウィジェットコンポーネントを公開し、React Native はそれを使用します DeunaWidget レンダラー。十分な初期の高さを確保し、サイズ変更に対応し、ホストがチャレンジコントロールをステイッキーフッターや画面キーボードの背後に隠さないようにしてください。