3Dセキュア(3DS2.0)開発ガイド
本ガイドの内容
本ガイドの内容
本ガイドは、(株)DGフィナンシャルテクノロジーが提供するVeriTrans4Gの本人認証サービス(3Dセキュア2.0)をECサイトに導入するための、アプリケーション開発者向けのガイドです。
本ページと併せて「本人認証サービス補足資料(3Dセキュア2.0対応版)」もご確認ください。
本人認証サービス概要
本人認証サービス(3Dセキュア2.0)について
本人認証サービスはクレジットカード決済と連動する3Dセキュアによる認証サービスです。
3Dセキュア2.0は、EMVCoが中心となって策定された本人認証サービスの総称で、クレジットカードブランドごとにサービスの名称が異なります。
- Visa Secure (旧VISA認証サービス)
- Mastercard ID Check(TM)
- JCB J/Secure(TM)
- American Express SafeKey(R)
- Diners Club ProtectBuy(R)
ブランドのサービス名称は変更となる場合があります(上記は2022年2月現在)。
3DセキュアバージョンアップによるVeriTrans4G本人認証サービスへの影響
本資料は3Dセキュア2.0に対応した資料となります。以前のバージョン(3Dセキュア1.0)と用語が異なる箇所があります。
3Dセキュア1.0では、加盟店(ECサイト)側で3Dセキュア認証を処理する部分(機能)を「MPI(Merchant Plug-In)」と呼びますが、3Dセキュア2.0ではMPIという表現は用いられません。3Dセキュア1.0における「MPI」は、3Dセキュア2.0では「3DSサーバー」となります。
そのため、厳密には「MPIホスティング」という表現は、3Dセキュア2.0では適切でない表現となりますが、「3Dセキュア認証サービス(1.0か2.0に限らず)」と「MPIホスティングサービス」は同等の機能(サービス)として扱っても大きな問題はありません。
なお、2022年2月時点でVeriTrans4G本人認証サービスは、3Dセキュア2.0の「ブラウザベース認証」に対応しています。「アプリベース認証」には対応していません。
MDKの処理概要
機能一覧(決済要求コマンド)
使用可能な決済要求コマンドを下表に示します。
決済要求種類 /コマンド |
概要 |
---|---|
認可 /Authorize |
カード番号を元にカード発行会社(イシュア)判定を実施し、3Dセキュアの利用可否を判定します。 |
再取引 (認可) /ReAuthorize |
過去の取引で利用されたカード番号で、再度認可を要求します。 |
本人認証結果確認 /GetResult |
本人認証結果を取得できます。 |
売上 /Capture |
与信取得済みの取引に対して売上処理を要求します。 クレジットカード決済と同じコマンドを使用します。詳細はインターフェース詳細 ~クレジットカード決済~をご参照ください。 |
取消 /Cancel |
売上済みまたは与信済みの取引に対して取消を要求します。 クレジットカード決済と同じコマンドを使用します。インターフェース詳細 ~クレジットカード決済~をご参照ください。 |
- 3Dセキュアの処理フローでは、認可の成功後、消費者のブラウザをカード会社のサイトに遷移させることで認証が行われます。その後、決済サーバーが認証結果の判定(検証)を実施し、判定結果と認証タイプ(本書では「決済サービスオプションタイプ」)を元にカード決済(与信)の実行に進みます。
決済処理シーケンス
No. | 処理 | 説明 |
---|---|---|
1 | 認可要求 |
3Dセキュア認証および決済に必要な情報を電文化し、決済サーバーに送信します。
※ トークン取得時の処理フローは、『MDKトークン開発ガイド』をご参照ください。 |
2 | リダイレクト指示 | 認可要求の応答に含まれる2つのパラメータのどちらかを利用して、消費者ブラウザを画面遷移させます。
|
3 | 結果通知 (PUSH通知) |
決済サーバーは、認証結果およびカード決済の結果をECサイトに通知します。 【4.結果連携】が正しく行われなかった場合にも、この結果通知を受信することで認証および決済の結果を取得できます。 |
4 | 結果連携 (ブラウザ経由での結果連携) |
決済サーバーは、認証結果およびカード決済の結果をECサイトにブラウザ経由で連携します。 ブラウザ経由での結果連携は、消費者の端末(PCやスマートフォン)のネットワーク環境の問題や、誤操作(ブラウザやタブを閉じてしまう等)により、正しく行われない可能性がありますので、必ず【3.結果通知】を受信してください。 また、ブラウザの操作によっては、ECサイトのURLに複数回のアクセスが発生する可能性がありますが、複数回のアクセスが発生しても、連携された結果が正しい(改ざんされていない)場合には、エラーにならないように適切に処理してください。 |
5 | 結果確認 |
必要に応じてECサイトから決済サーバーに結果を問い合わせることもできます。
※【3.結果通知】【4.結果連携】によって結果を正常に取得できた場合は、この処理は不要です。 |
(重要)
- 【2.リダイレクト指示】でresResponseContentsを利用する場合は、決済サーバーから受信した resResponseContents を加工・編集せずに、そのままブラウザに送信してください。加工・編集を加えた場合、認証処理が正しく動作しない可能性があります。
-
【3.結果通知(PUSH通知)】と【4.結果連携】は非同期で実行されます。どちらを先に受信しても処理できるように実装してください。
結果の取得方法の詳細は「4-4本人認証およびカード決済の結果取得」を参照して下さい。
インターフェース詳細
ここでは本人認証サービスで利用するMDKインターフェース項目を説明します。
基本項目について
-
「設定」欄の内容は以下の通りです。
- 要求電文 ...
- 必須項目:○ 任意項目:△ 設定不可:× その他条件付:※、※n(条件は説明欄、または欄外に記入)
- 応答電文 ...
- 必ず返戻:○ 処理成功時のみ返戻:△ 返戻なし:× その他条件付:※
-
orderId(取引ID)について
店舗で任意に採番してください。申込処理毎に付ける必要があります。他の取引IDと重複しないよう採番してください。他決済サービスとも重複できません。
また、テスト取引で使用した取引IDを、本番取引で再度使用することはできません。
取引IDには、半角英数字以外に"-"(ハイフン)、"_"(アンダースコア)も使用可能です。 -
応答電文について
応答電文には、本書に記載されていないフィールド(パラメータ)も存在しますが、通常は、記載されているフィールド以外は加盟店様の方で意識する必要はございません。
特記事項
カード決済関連
売上、キャンセル処理について
本人認証によるクレジットカード決済取引は、クレジットカード決済のCapture処理により売上を行います。また、Cancel処理により取消・返金を行います。
Capture処理、Cancel処理については、『インターフェース詳細 ~クレジットカード決済~』 を参照してください。
カード情報の非保持化について
クレジットカード取引におけるセキュリティ対策として、加盟店様にはカード情報の非保持化(自社で保有する機器・ネットワークにおいて、カード情報を保存、処理、通過しないこと)が求められています。
非保持化に対応するためには、MDKの要求電文に、カード番号を設定して送信することはできません。そのため、VeriTrans4GのMDK型(モジュール方式)では、トークン方式による非保持化・非通過化に対応しています。
トークン方式では、カード情報は消費者の端末から直接弊社のサーバーに送信します。
加盟店様のシステムでは、カード情報の代わりに弊社が発行したトークンを用いて、その後の決済要求を行っていただきますので、加盟店様のシステムをカード情報が通過することはありません。
- トークン方式については『MDKトークン 開発ガイド』を参照してください。
- 加盟店様のシステムでカード情報を保持する(非保持化に対応しない)場合は、PCI-DSSへの準拠が必要になります。
なお、カード有効期限、セキュリティコードは、カード番号と同時に設定しなければカード情報の通過には該当しません。
例えば、再取引(以前の決済で使用したカード情報で決済する機能)をご利用の際に、更新された有効期限を設定して送信することや、不正防止のために購入の都度、セキュリティコードを消費者に入力させて送信することは、カード情報の通過にはあたりません。
- セキュリティコードは加盟店および決済代行会社で保存はできません。
ワンクリック継続課金サービスについて
ワンクリック継続課金サービスを利用するためのインターフェースは、以下のページに記載されています。
『インターフェース詳細~ワンクリック継続課金サービス~』
- 3Dセキュア認証(および与信)が成功したカードの登録を行いたい場合は、「2.2.2 クレジットカード決済実行時の会員ID管理と決済機能」の「◆3Dセキュア利用時の注意事項(重要)」を必ず確認してください
ワンクリック継続課金サービスをご利用の際は、本ページに記載の要求電文のフィールドと、ワンクリック継続課金サービス用のフィールドを設定して決済を行ってください。
また、応答電文のフィールドにも、ワンクリック継続課金サービス用のフィールドが追加されますのでご注意ください。
3Dセキュア2.0関連
ブランドルールによる必須項目について
2024年8月より、ブランドルールにより以下の項目が必須となりますので、「4.3.1認可」の説明を参考に必ず設定してください。
- カード保有者名
- 消費者のメールアドレス または 電話番号
- 消費者のIPアドレス
- ブラウザの高さと幅
※この項目は決済サーバー側で自動収集するため加盟店側で設定は不要です
カード保有者情報、請求先情報、配送先情報について
カード保有者情報、請求先情報、配送先情報は、認可要求時の先頭と末尾の半角スペースを除いた値で本人認証処理に使用します。特に、3Dセキュア2.0の要求では必須項目となるカード保有者名について、スペースのみで書式を満たす桁数を設定した場合も未指定の場合と同様に書式エラーとなります。
(重要) カード保有者名は、ブランドルールにより必須項目となりましたので、以下の記載は削除します。
3Dセキュア2.0においてカード保有者名の値は限りなく必須の表現となっております。加盟店サイトの仕様としてカード保有者を指定しないと判断した場合は、カード保有者名省略フラグをtrueで指定することで、カード保有者名が未指定でも書式エラーとせずに本人認証をリクエストすることができます。
カード保有者名の設定について
トークン発行時にカード保有者名を設定する場合は、他のカード情報と同様にトークンに紐づいたカード保有者名を使用するため、3Dセキュア要求電文に設定する必要がありません。
再取引とカード保有者名について
再取引では、カード保有者名の値も元取引IDに指定した取引に紐づく値を利用しますが、指定した元取引IDにカード保有者名が紐づいていない場合は、パラメータ不足でエラーとなります。
再取引で引き継がれるデータ
再取引では、カード保有者名は元取引の値を引き継ぎます。
以下の値は引き継がれませんのでご注意ください。「4.3.2再取引」の説明を参照してください。
- デバイスチャネル
- HTTPユーザエージェント
- HTTPアクセプト
- カード保有者名以外の個人情報(メールアドレス、電話番号、IPアドレスなど)
本人認証要求
認可
3Dセキュアの実行に必要なパラメータ、およびカード決済に必要なパラメータを送信します。
3DSサーバーは、クレジットカード番号からカード発行会社(イシュア)を判定し、3Dセキュアを開始するために必要な情報を返戻します。
加盟店サーバーは認可の成功後、消費者ブラウザを「認証サーバーにアクセスさせるためのページ」に誘導する必要があります。認可のレスポンスに含まれる2つのパラメータのどちらかを利用して、消費者ブラウザを画面遷移させてください。
- authStartUrl(認証開始URL)
- resResponseContents(自動遷移用のJavaScriptを含む HTMLコンテンツ)
パラメータの利用方法を以下に示しますので、加盟店様のECサイトの実装上、利用しやすい方を選択してください。
- authStartUrl を利用する場合には、HTTP レスポンスヘッダ(Locationヘッダ)にリダイレクト先URLを設定し、HTTPステータスコード=302でリダイレクトするか、JavaScriptを利用してリダイレクト先URLに自動遷移させてください。
- resResponseContentsを使う場合は、そのままブラウザに送信してください。JavaScriptにより自動的にカード会社の認証サーバーに遷移します。(コンテンツの中身の編集は絶対に行わないでください。画面遷移ができなくなる可能性があります。)
要求電文 : MpiAuthorizeRequestDto | ||||
---|---|---|---|---|
フィールド名 | 項目名 | 書式・制限 | 説明 | 設定 |
serviceOptionType | 決済サービスオプションタイプ (認証タイプ) |
右記参照 | "mpi-complete" : 完全認証 "mpi-company" : 通常認証(カード会社リスク負担) "mpi-merchant" : 通常認証(カード会社、加盟店リスク負担) "mpi-none" : 本人認証単体サービス |
○ |
orderId | 取引ID | 半角英数字 100桁以内 |
取引を識別する一意のID 「4-1基本項目について」を参照してください。 |
○ |
amount | 決済金額 | 半角数字 8桁以内 |
1 以上99,999,999 以下 | ○ |
token | トークン | 半角英数記号 36桁 |
トークンサーバーが発行した、クレジットカード情報の識別に用いるトークンの値 詳細は『MDKトークン開発ガイド』を参照してください。 ※トークンまたはカード情報が必須 |
※ |
cardNumber | カード番号 | 半角数字 16桁以内 |
(重要)カード情報の非保持(非通過、非保持)への対応のため、通常は設定しないでください。 数字のみ、またはハイフン含みで指定(ハイフン含みの場合は19桁以内で指定) ※トークンまたはカード情報が必須 |
※ |
cardExpire | カード有効期限 | 半角英数字 5桁 |
(重要)カード情報の非保持(非通過、非保持)への対応のため、通常は設定しないでください。 MM/YY (月 + "/" + 年)の形式 (例 "08/") |
※ |
jpo | 支払種別 | 半角英数字 83桁以内 右記参照 |
"10" (一括払い) "21" (ボーナス一括) "61Cxx" (分割払い、xxに分割回数指定) "80" (リボルビング払い)
※指定が無い場合は、"10"(一括払い)が適用されます。 |
△ |
withCapture | 売上フラグ | 右記参照 |
"true": 与信・売上 "false": 与信のみ ※指定が無い場合は、デフォルト値の"false"が設定されます。 |
△ |
securityCode | セキュリティコード | 半角数字 3桁 or 4桁 |
(重要)カード情報の非保持(非通過、非保持)への対応のため、通常は設定しないでください。 セキュリティコード(CVV2/CVC2)とは、カード券面に記載された3桁ないし4桁の数字です。 |
△ |
redirectionUri | リダイレクションURI | 半角英数字 1024バイト以内 |
検証結果を返すURIを指定
(重要) |
○ |
verifyResultLink | 詳細パラメータ連携フラグ | 半角数字 |
0:パラメータ連携しない 1:パラメータ連携する 2:パラメータ連携しない(GET) ※未指定の場合は、加盟店毎の設定で異なる挙動になるため、このフラグを設定することをお勧めします。 |
△ |
httpUserAgent | HTTPユーザエージェント | 制限なし |
消費者のブラウザ情報
※3Dセキュア 2.0で未指定の場合は、決済サーバー側で表示する画面から取得した値を使用します。 |
△ |
pushUrl | プッシュURL | URLに使用可能な半角文字 256桁以内 |
結果通知先URLを指定 指定がない場合には予め登録されたURLを用います。 |
△ |
verifyTimeout | 本人認証有効期限 | 半角数字 3桁以内 |
本人認証処理の有効期限(分単位のタイムアウト値)を指定 1 以上999 以下 消費者が本人認証の画面で長時間滞留する等、認証完了までに時間がかかった取引を無効(エラー)にする場合は、この値を設定してください。 タイムアウト判定の起点は、認可要求の処理時刻です。 ECサイトのセッションタイムアウト値よりも数分程度短く設定することを推奨します。 ※未指定の場合、弊社サービス上のタイムアウトは発生しないため、長時間経過後に決済が成立する場合があります。 |
△ |
deviceChannel | デバイスチャネル | 半角数字 2桁 |
デバイスチャネルを指定します。 "02": ブラウザベース 重要:本パラメータは必ず設定してください。 |
〇 |
accountType | アカウントタイプ | 半角数字 2桁 |
アカウントの種類を指定します。 "01": 該当なし "02": クレジット "03": デビット ※通常は指定する必要はありません。また、デビットカードを拒否する等の用途で利用できるものではありません。 |
△ |
cardholderName | カード保有者名 | 半角英数記号 2桁以上 45桁以内 |
カード保有者名を指定します。 トークンにカード保有者名設定している場合は、ここでの設定は不要です。 姓名の書き方には明確なルールはありません。カード券面に記載されている通りの表記で設定することを推奨しますが、以下のような場合にも弊社システム上はエラーにはせず、カード会社の判断に委ねます。
|
〇注1 |
cardholderNameOmitFlag | カード保有者名省略フラグ | 右記参照 |
※このパラメータの使用は非推奨です。 ※指定が無い場合は、デフォルト値の"false"が設定されます |
△注1 |
cardholderEmail | カード保有者メールアドレス | 半角英数記号 254桁以内 RFC5322準拠(右記参照) |
カード保有者メールアドレスを指定します。 RFC5322に準拠していないメールアドレスを設定すると、エラーが発生する可能性があります。RFCに準拠していないメールアドレスの場合は当項目は設定せず、代わりに電話番号を設定するなどしてください。 |
〇注2 |
cardholderHomePhoneCountry | カード保有者自宅電話番号国コード | 半角数字 3桁以内 |
カード保有者自宅電話番号の国コード ITU-T E.164で規定された地域別国コードを指定 (日本の場合は「81」) |
〇注2 |
cardholderHomePhoneNumber | カード保有者自宅電話番号 | 半角数字 15桁以内 |
カード保有者自宅電話番号を指定します。 (例:0312345678) |
〇注2 |
cardholderMobilePhoneCountry | カード保有者携帯電話番号国コード | 半角数字 3桁以内 |
カード保有者携帯電話番号の国コード ITU-T E.164で規定された地域別国コードを指定 (日本の場合は「81」) |
〇注2 |
cardholderMobilePhoneNumber | カード保有者携帯電話番号 | 半角数字 15桁以内 |
カード保有者携帯電話番号を指定します。 (例:09012345678) |
〇注2 |
cardholderWorkPhoneCountry | カード保有者勤務先電話番号国コード | 半角数字 3桁以内 |
カード保有者勤務先電話番号の国コード ITU-T E.164で規定された地域別国コードを指定 (日本の場合は「81」) |
〇注2 |
cardholderWorkPhoneNumber | カード保有者勤務先電話番号 | 半角数字 15桁以内 |
カード保有者勤務先電話番号を指定します。 (例:0312345678) |
〇注2 |
billingAddressCity | 請求先住所_市区町村 | 文字列 50文字以内 |
請求先住所の市区町村を指定します。 | △ |
billingAddressCountry | 請求先住所_国 | 半角数字 3桁 |
請求先住所_都道府県を指定した場合は必須 |
※ |
billingAddressLine1 | 請求先住所1 | 文字列 50文字以内 |
請求先住所1を指定します。 | △ |
billingAddressLine2 | 請求先住所2 | 文字列 50文字以内 |
請求先住所2を指定します。 | △ |
billingAddressLine3 | 請求先住所3 | 文字列 50文字以内 |
請求先住所3を指定します。 | △ |
billingPostalCode | 請求先郵便番号 | 半角英数字記号 16桁以内 |
請求先郵便番号を指定します。 | △ |
billingAddressState | 請求先住所_都道府県 | 半角英数字 3桁以内 |
請求先住所の都道府県を指定します。 ISO 3166-2で定義されているコードを設定します。先頭が0の場合も省略せずにで設定してください(例JP-01の場合は「01」)。 |
△ |
shippingAddressCity | 配送先住所_市区町村 | 文字列 50文字以内 |
配送先住所の市区町村を指定します。 | △ |
shippingAddressCountry | 配送先住所_国 | 半角数字 3桁 |
配送先住所_都道府県を指定する場合は必須 |
※ |
shippingAddressLine1 | 配送先住所1 | 文字列 50文字以内 |
配送先住所1を指定します。 | △ |
shippingAddressLine2 | 配送先住所2 | 文字列 50文字以内 |
配送先住所2を指定します。 | △ |
shippingAddressLine3 | 配送先住所3 | 文字列 50文字以内 |
配送先住所3を指定します。 | △ |
shippingPostalCode | 配送先郵便番号 | 半角英数字記号 16桁以内 |
配送先郵便番号を指定します。 | △ |
shippingAddressState | 配送先住所_都道府県 | 半角英数字 3桁以内 |
配送先住所の都道府県を指定します。 ISO 3166-2で定義されているコードを設定します。先頭が0の場合も省略せずにで設定してください(例JP-01の場合は「01」)。 |
△ |
customerIp | 消費者IPアドレス | 半角英数字記号 45桁以内 |
消費者のブラウザ情報をアプリケーションサーバから取得して設定します。 MAPの「各種設定変更」のページで以下のチェックボックスをチェックしている場合はここでは設定不要です。 IPアドレスを自動収集する |
〇注3 |
requestorChallengeIndicator | リクエスターチャレンジインジケーター | 半角数字2桁 |
このリクエストに対してチャレンジ認証を要求するかを指定します。
"01": No preference(任意)
※"04"を指定しても必ずチャレンジ認証が行われるとは限りません。 |
△ |
注1
カード保有者名省略フラグ(cardholderNameOmitFlag)は、カード保有者名を消費者から取得することができないケースを除き、設定しないでください。カード保有者名(cardholderName)は、ブランドルールにより必須項目となりましたので、cardholderNameOmitFlagの利用は推奨されません。
カード保有者名は、以下のケースを除き設定が必要です。
- MDKトークンの取得時に設定している場合
- 過去の認証時にカード保有者名を指定していた取引IDを「元取引ID」にして再取引を実行する場合
- ワンクリック継続課金サービスの会員IDを利用して認証を行う場合で、会員IDに紐づくカード情報にカード保有者名が保存されている場合
(補足)
cardholderNameOmitFlagに true を設定した場合にも、指定されたcardholderName は認証に利用されます。
- 以下のケースでは、エラーにならず、設定されたcardholderName が認証に利用されます。
cardholderNameOmitFlag : true cardholderName : 設定あり - 以下のケースでは、パラメータエラーになります。
cardholderNameOmitFlag : false cardholderName : 設定なし
注2
ブランドルールにより、カード保有者の「メールアドレス」または「電話番号」が必須項目となりました。どちらかの項目は必ず設定してください。
電話番号を設定する際には「国コード」と「電話番号」をセットで設定してください。
電話番号は自宅/携帯/勤務先のうち1つを設定していただければ問題ありません。
加盟店様のシステムで電話番号の属性(自宅/携帯/勤務先)を管理していない場合は、「自宅」の情報として設定してください。
メールアドレス・電話番号はワンタイムパスワード等の送信先として使用されることはありません。
注3
ブランドルールにより、消費者のIPアドレスが必須項目になりました。
MAPの「各種設定変更」のページで以下のチェックボックスをチェックしている場合はここでは設定不要です。
IPアドレスを自動収集する
* 注2~注3は必須項目ですが、未設定の場合にも弊社システムではエラー応答はしませんのでご注意ください。
カード会社側の認証判定に利用される重要な項目のため、必ず設定するようにしてください。
応答電文 : MpiAuthorizeResponseDto | ||||
---|---|---|---|---|
フィールド名 | 項目名 | 書式・制限 | 説明 | 設定 |
serviceType | 決済サービスタイプ | 半角英数字 10桁以内 |
要求電文を送信した決済サービスタイプ。 | ○ |
mstatus | 処理結果コード | 半角英数字 32文字以内 |
"success":正常終了 "failure" :異常終了 |
○ |
vResultCode | 詳細結果コード | 文字列 16桁 |
処理の結果を詳細に表すコード 4桁ずつ4つのブロックで構成され、各ブロックでサービス毎の処理結果を表します。 詳細は『結果コード一覧』を参照下さい。 |
○ |
merrMsg | エラーメッセージ | 文字列 | 処理結果を日本語で表示します。 | ○ |
marchTxn | 電文ID | 文字列 100 桁以内 |
決済サーバーにて決済処理電文(内部処理も含む)毎に付与するID 1つの取引IDに対して、複数のIDが付与されます。 |
○ |
orderId | 取引ID | 半角英数字 100文字以内 |
決済要求時に加盟店にて任意に採番し送信された取引ID | ○ |
custTxn | 取引毎に付くID | 文字列 100桁以内 |
決済サーバーがオーダー(取引ID)と紐付ける為に採番するID | ○ |
txnVersion | MDK バージョン | 半角英数字 5 桁 |
電文のバージョン 問題発生時などに用いますが、通常ご利用になることはありません。 |
○ |
reqCardNumber | 要求カード番号 | 文字列 16桁以内 |
要求電文に設定した値 上6桁下2桁のみ数字表示され、その他は"*"(アスタリスク)に変換されます。 (例 "411111********11") |
△ |
reqCardExpire | 要求カード有効期限 | 文字列 5桁以内 |
要求電文に設定した値 全桁"*"(アスタリスク)に変換されます。(例 "*****") |
△ |
reqAmount | 要求取引金額 | 文字列 12桁以内 |
要求電文に設定した値 | △ |
reqJpoInformation | 要求支払種別情報 | 文字列 83桁以内 |
要求電文に設定した値 | △ |
reqWithCapture | 要求同時売上 | 文字列 5桁以内 |
要求電文に設定した値 | △ |
reqSecurityCode | 要求セキュリティコード | 文字列 4桁以内 |
要求電文に設定した値 全桁"0"(ゼロ)に変換されます。 |
△ |
reqRedirectionUri | 要求リダイレクションURI | 文字列 1024桁以内 |
要求電文に設定した値 | △ |
reqHttpUserAgent | 要求HTTPユーザエージェント | 無制限 | 要求電文に設定した値 | △ |
reqHttpAccept | 要求HTTPアクセプト | 無制限 | 要求電文に設定した値 | △ |
resResponseContents | 応答コンテンツ | 無制限 |
消費者ブラウザを「認証サーバー」に自動遷移させるjavascriptを含むHTMLコンテンツ。
※コンテンツの中身は絶対に編集しないでください。画面遷移できなくなる可能性があります。 |
△ |
resCorporationId | 応答会社ID | 文字列 2桁以内 |
店舗が加盟店契約をしているカード会社のコード 最終的に決済を行うカード発行会社ではなく、決済要求電文が最初に仕向けられる加盟店管理会社です。 『インターフェース詳細 ~クレジットカード決済~』の「クレジットカード決済 仕向け先カード会社の一覧」を参照 |
△ |
resBrandId | 応答ブランドID | 文字列 2桁以内 |
以下の値が設定されます。
3Dメッセージバージョンが"1.0.2"の場合 |
△ |
res3dMessageVersion | 応答3Dセキュア メッセージバージョン |
文字列 10桁以内 |
3Dセキュアプロトコルのメッセージバージョン | △ |
authRequestDatetime | 認可要求日時 | 文字列 28桁以内 |
認可要求の受付時間 EEE MMM dd HH:mm:ss JST yyyy形式 (例 "Tue Mar 07 13:17:40 JST 2017") |
△ |
authResponseDatetime | 認可応答日時 | 文字列 28桁以内 |
認可の応答時間 EEE MMM dd HH:mm:ss JST yyyy形式 (例 "Tue Mar 07 13:17:40 JST 2017") |
△ |
authStartUrl | 認証開始URL | 文字列 1024桁以内 |
ブラウザをこのURLに遷移させると3Dセキュアの認証を開始できます。 ※有効期限:認可応答日時から3分 ※resResponseContentsを利用する場合は、このパラメータを利用する必要はありません。 |
△ |
再取引
過去の決済時に利用したクレジットカード情報を用いて認可要求を実行します。
MpiReAuthorizeRequestDtoの実行だけでは3Dセキュア認証および決済は成立しません。「4.3.1認可」と同様に消費者ブラウザを遷移させて、認証処理を行う必要がありますのでご注意ください。
要求電文 : MpiReAuthorizeRequestDto | ||||
---|---|---|---|---|
フィールド名 | 項目名 | 書式・制限 | 説明 | 設定 |
originalOrderId | 元取引ID | 半角英数字 100桁以内 |
再取引を行う過去取引の取引ID | ○ |
※元取引ID以外については認可要求電文を参照 |
- カード保有者名(cardholderName)は元取引から値を引き継ぐため指定不要です。ただし、セキュリティコードは保存できないため、セキュリティコードを指定する場合は消費者に都度入力を求める必要があります。
- カード有効期限を指定した場合は、元取引のカード番号と指定したカード有効期限で決済が行われます。
- 以下の値は元取引から引き継がれませんのでご注意ください。
- デバイスチャネル
- HTTPユーザエージェント
- HTTPアクセプト
- カード保有者名以外の個人情報(メールアドレス、電話番号、IPアドレスなど)
- 元取引IDにカード保有者名(cardholderName)が保存されていない場合は、以下のどちらかの対応が必要です。
- cardholderNameを指定する
- cardholderNameOmitFlagを指定する 注)ブランドルールによりカード保有者名は必須項目のため推奨されません。
- 元取引IDには3Dセキュアを実施しなかったカード決済の取引IDも指定可能です。3Dセキュアを実施しないカード決済でトークン取得時にカード保有者名を設定した場合は、取引IDにカード保有者名(cardholderName)が登録されます。この取引を元取引IDとする場合はカード保有者名(cardholderName)は元取引から値が引き継がれます。
- CardReAuthorizeRequestDtoでは決済サービスオプションタイプを"mpi-none"に設定した取引は元取引には使用できませんが、MpiReAuthorizeRequestDtoでは使用可能です。ただし、認可失敗(MpiAuthorizeResponseDtoのmstatusがfailure)の取引は使用できません。
応答電文 : MpiReAuthorizeResponseDto | ||||
---|---|---|---|---|
フィールド名 | 項目名 | 書式・制限 | 説明 | 設定 |
※応答電文は認可の応答電文(MpiAuthorizeResponseDto)と同じ |
本人認証およびカード決済の結果取得
本人認証およびカード決済の結果は、以下の4通りの方法で取得することができます。
項番 | 結果の取得方法 | 本ガイドの参照先 |
---|---|---|
① | 消費者のブラウザを経由して結果を取得する | 4.4.1消費者のブラウザを経由した結果の取得 |
② | 決済サーバーからの結果通知を受信する | 4-5結果通知 |
③ | 本人認証結果確認コマンドを利用する | 4.4.2本人認証結果確認 |
④ | 検索(Search)コマンドを利用する | 4-6検索 |
- ①はブラウザを経由した結果連携のため、画面遷移が正常に行われないケースでは結果を取得することができません。そのため、②の結果通知の受信と組み合わせて確実に結果を取得するようにしてください。
-
③と④は、取引ID等のキーとなるパラメータを条件に指定した問合せ型のコマンドになります。
- その他の方法と組み合わせて利用されることを想定しています。
消費者のブラウザを経由した結果の取得
本人認証およびカード決済の完了後、消費者のブラウザは加盟店のURLへ画面遷移します。加盟店側のシステムでは、該当取引のキー情報(取引ID)と認証および決済結果をブラウザを経由して受信することができます。
送信される取引のキー情報を次の表に示します。
消費者ブラウザ経由で店舗へ送信されるキー情報(POSTまたはGET) | ||||
---|---|---|---|---|
フィールド名 | 項目名 | 書式・制限 | 説明 | 設定 |
RequestId | リクエストID | 半角英数字記号 128文字以内 |
本人認証の結果を検索する際のキー項目 | ○ |
OrderId | 取引ID | 半角英数字 100文字以内 |
決済要求時に加盟店サイトにて任意に採番し送信された取引ID | ○ |
- ここで送信されるフィールド名「RequestID」と「OrderId」は、旧仕様との互換性を保つため、その他の項目と異なり、先頭文字が大文字となりますのでご注意ください。
- 旧仕様(veritrans3Gの初期仕様)では、「RequestID」をキーとして検索(Search)コマンドによって結果を取得する方法しか提供しておりませんでしたが、現在の仕様では、その他の方法でも結果をシンプルに取得することが可能になりましたので、これから実装を検討される場合には、RequestIDの利用はお勧めしません。
このタイミングで取引の結果は取得せずに、上記のキー情報のみを受信することも可能です。この場合は、別途、結果を決済サーバーに問い合わせる必要があります。キー情報のみを受信する場合は、「4.3.1 認可」の「詳細パラメータ連携フラグ(verifyResultLink)」で、以下のどちらかのパラメータを指定します。
- 前者を指定するとPOST、後者を指定するとGETパラメータとして受信できます。
2:詳細パラメータ連携しない(GET)
次に、このタイミングで取引の結果を取得する場合は、「詳細パラメータ連携フラグ(verifyResultLink)」に以下のパラメータを指定します。
送信される結果の詳細パラメータを次の表に示します。送信されるパラメータは、今後の機能拡張により追加される可能性がありますので、本書に記載されていないパラメータが連携された場合でもエラーとならないように実装してください。
消費者ブラウザ経由で店舗へ送信される詳細パラメータ(POST) | ||||
---|---|---|---|---|
フィールド名 | 項目名 | 書式・制限 | 説明 | 設定 |
reqAmount | 要求取引金額 | 半角数字 12桁以内 |
要求電文に設定した値 | ○ |
reqCardNumber | 要求カード番号 | 文字列 16桁以内 |
要求電文に設定した値 上6桁下2桁のみ数字表示され、その他は"*"(アスタリスク)に変換されます。(例 "411111********11") |
○ |
reqCurrencyUnit | 要求通貨単位 | 半角英字 3桁以内 |
要求電文に設定した値 | △ |
mpiMstatus | MPI結果コード | 半角英数字 32文字以内 |
本人認証の処理結果ステータス "success":正常終了 "failure":異常終了 |
○ |
vResultCode | 詳細結果コード | 文字列 16桁 |
処理の結果を詳細に表すコード 4桁ずつ4つのブロックで構成され、各ブロックでサービス毎の処理結果を表します。 詳細は『結果コード一覧』を参照下さい。 |
○ |
vAuthInfo | 改ざんチェック用 ハッシュ値 |
文字列 右記参照 |
下記文字列を連結し、SHA-256によって算出したハッシュ値
|
○ |
authParams | ハッシュ値算出パラメータ順序 | 文字列 右記参照 |
vAuthInfo のハッシュ値を算出する元とした文字列の、パラメータの連結順序を示す値 パラメータ名のカンマ区切り文字列をBase64エンコードしています。デコードを行うと文字列が復元されます。 例) "mpiMstatus,vResultCode,OrderId" "OrderId,mpiMstatus,vResultCode" (パラメータの個数と順序は固定ではないため、リクエスト受信のたびに動的に処理する必要があります。) |
○ |
以下は、serviceOptionTypeが(mpi-complete / mpi-company / mpi-merchant)の場合に連携される項目です。 | ||||
cardMstatus | カード結果コード | 半角英数字 32文字以内 |
カード決済の処理結果ステータス "success":正常終了 "failure":異常終了 "pending":ペンディング ※MPI結果コードがfailureの場合は空 |
△ |
cardTransactionType | カードトランザクションタイプ | 文字列 6桁以内 |
カード決済取引の詳細な状態 "a":与信 "ax":与信(期限切れ) "ap":与信(保留) "ac":与信売上 "acp":与信売上(保留) |
△ |
centerRequestDate | センター要求日時 | 文字列 14桁以内 |
カード決済センターへ決済要求を行った日時 YYYYMMDDhhmmss形式 |
△ |
centerResponseDate | センター応答日時 | 文字列 14桁以内 |
カード決済センターの決済応答を受けた日時 YYYYMMDDhhmmss形式 |
△ |
connectedCenterId | 接続先カード接続センター | 文字列 5桁以内 |
決済サーバー⇒カード会社間の接続センター名 例:'jcn' |
△ |
acquirerCode | 要求仕向け先コード | 文字列 2桁以内 |
決済要求電文が最初に仕向けられたカード会社のコード 仕向け先カード会社の一覧は『インターフェース詳細 ~クレジットカード決済~』の「クレジットカード決済 仕向け先カード会社の一覧」を参照 |
△ |
authCode | 応答承認番号 | 半角英数字スペース 7桁以内 | カード会社が発行する承認番号 | △ |
fdResult | 不正検知結果コード | 半角数字 3桁以内 |
不正検知結果 "100":accept "200":deny "300":challenge "400":error "500":timeout "600":internal error "":値なし(空白) 不正検知を実施する場合のみ返戻します。 |
※ |
tradUrl | trAd URL | 半角文字列 512文字以内 |
現在使用していません。 | × |
以下は、serviceOptionTypeが(mpi-none)の場合に連携される項目です。 | ||||
dddMessageVersion | 3Dメッセージバージョン | 半角英数字記号 10 桁以内 |
Message Version Number (例 "2.1.0") |
△ |
dddTransactionId | 3DトランザクションID | 半角英数字、"+"、"/"、"=" 28 桁 |
Transaction Identifier(XID)の値を Base64 で変換した値
※3Dセキュア2.0でも、AMEXの場合にカード与信に本項目を設定する必要があります。 |
△ |
dddDsTransactionId | 3DDSトランザクションID | 半角英数字、"-"、"+"、"/"、"=" 36 桁以内 |
DS Transaction ID
※3Dメッセージバージョンが"2.1.0"以上の場合のみ返戻します。 |
△ |
dddServerTransactionId | 3DサーバトランザクションID | 半角英数字、"-" 36 桁以内 |
Server Transaction ID
※3Dメッセージバージョンが"2.1.0"以上の場合のみ返戻します。 |
△ |
dddTransactionStatus | 3Dトランザクションステータス | 半角英数字 1桁 右記参照 |
3Dセキュアトランザクションステータス "Y":本人認証成功 "N":本人認証失敗(イシュアまたは会員が原因) "U":本人認証失敗(上記以外が原因) "A":Attempt(暫定的に本人認証成功) "R":本人認証拒否 "":値なし(空白) ※値のバリエーションは増える可能性があります |
△ |
dddTransactionStatusReason | 3Dトランザクションステータス理由 | 半角数字 2桁 |
3Dトランザクションステータスの値の設定理由
※3Dメッセージバージョンが"2.1.0"以上の場合のみ返戻します。 |
△ |
dddCavvAlgorithm | 3DCAVVアルゴリズム | 半角英数字1桁 右記参照 |
3DセキュアCAVVアルゴリズム "0":HMAC "1":CVV "2":CVV with ATN "3":SPA Algorithm "4":AEVV Algorithm "9":取引毎の指定なし (2.1.0以上の場合) "":値なし(空白) ※値のバリエーションは増える可能性があります |
△ |
dddCavv | 3DCAVV | 半角英数字、"+"、"/"、"=" 28 桁 |
3DセキュアCAVV (Base64で変換した値) |
△ |
dddEci | 3DECI | 半角数字2桁 右記参照 |
3Dセキュア ECI "02", "05":認証成功 "01", "06":Attempt "04", "07":認証実行失敗または不能 "":値なし(空白) ※値のバリエーションは増える可能性があります |
△ |
決済サーバーから消費者ブラウザを経由して加盟店サイトの結果画面に遷移(リダイレクト)しますが、ここで加盟店サイトが受け取ったPOSTパラメータが改ざんされていないか検証することを推奨しています。この改ざんチェックでは、リダイレクト時に返戻される「vAuthInfo」、および「authParams」パラメータを使用します。店舗側システムで算出したハッシュ値が、リダイレクト時のパラメータより取得した「vAuthInfo」と一致している場合は、パラメータは改ざんされていない、とみなすことができます。
※悪意を持った第三者によって、不正なリダイレクト電文を受信する可能性がありますので、改ざんチェックの実装を強く推奨します。
※実装方法の詳細につきましては、弊社より提供しているサンプルプログラムをご参照ください。
本人認証結果確認
指定した取引IDの認証結果およびカード決済の結果を取得します。
要求電文 : MpiGetResultRequestDto | ||||
---|---|---|---|---|
フィールド名 | 項目名 | 書式・制限 | 説明 | 設定 |
orderId | 取引ID | 半角英数字 100桁以内 |
取引を識別する一意のID | ○ |
応答電文 : MpiGetResultResponseDto | ||||
---|---|---|---|---|
フィールド名 | 項目名 | 書式・制限 | 説明 | 設定 |
serviceType | 決済サービスタイプ | 半角英数字 10桁以内 |
要求電文を送信した決済サービスタイプ。 | ○ |
mstatus | 処理結果コード | 半角英数字 32文字以内 |
"success" :正常終了 "failure" :異常終了 注意: |
○ |
vResultCode | 詳細結果コード | 文字列 16桁 |
処理結果の詳細を示すコードです。 詳細は『結果コード一覧』をご参照下さい。 注意: |
○ |
merrMsg | エラーメッセージ | 文字列 | 処理結果を日本語で表示します。 | ○ |
orderId | 取引ID | 文字列 100 桁以内 |
決済要求時に加盟店にて任意に採番し送信された取引ID | ○ |
txnVersion | MDKバージョン | 半角英数字 5文字以内 |
電文のバージョン 問題発生時などに用いますが、通常ご利用になることはありません。 |
○ |
requestId | リクエストID | 半角英数字記号 128 桁以内 | 本人認証の結果を検索する際のキー項目 | ○ |
reqAmount | 要求取引金額 | 半角数字 12 桁以内 |
要求電文に設定した値 | ○ |
reqCardNumber | 要求カード番号 | 文字列 16桁以内 |
要求電文に設定した値 上6桁下2桁のみ数字表示され、その他は"*"(アスタリスク)に変換されます。(例 "411111********11") |
△ |
reqCurrencyUnit | 要求通貨単位 | 半角英字 3桁以内 |
要求電文に設定した値 | △ |
mpiMstatus | 本人認証処理結果コード | 半角英数字 32桁以内 |
本人認証の処理結果ステータス "success":正常終了 "failure":異常終了 |
△ |
mpiVresultCode | 本人認証詳細結果コード | 文字列 16桁以内 |
本人認証の処理結果の詳細を示すコードです。 4桁ずつ4つのブロックで構成され、各ブロックでサービス毎の処理結果を表します。 詳細は『結果コード一覧』を参照下さい。 |
△ |
txnType | トランザクションタイプ | 半角英数字 32桁以内 |
本人認証の実施方法を表す値 "AuthorizeConfirm":フリクションレスフロー "VerifyNotify":チャレンジフロー |
△ |
以下のフィールドは、消費者ブラウザ経由で店舗へ送信されるパラメータと同じです。各フィールドの詳細は「4.4.1消費者のブラウザを経由した結果の取得」をご参照ください。
フィールド名 | 項目名 | 書式・制限 | 説明 | 設定 |
---|---|---|---|---|
以下は、serviceOptionTypeが(mpi-complete / mpi-company / mpi-merchant)の場合に連携される項目です。 | ||||
cardMstatus | カード結果コード | 詳細は「4.4.1消費者のブラウザを経由した結果の取得」をご参照ください。 |
△ | |
cardTransactionType | カードトランザクションタイプ | △ | ||
centerRequestDate | センター要求日時 | △ | ||
centerResponseDate | センター応答日時 | △ | ||
connectedCenterId | 接続先カード接続センター | △ | ||
acquirerCode | 要求仕向け先コード | △ | ||
authCode | 応答承認番号 | △ | ||
fdResult | 不正検知結果コード | ※ | ||
tradUrl | trAd URL | × | ||
以下は、serviceOptionTypeが(mpi-none)の場合に連携される項目です。 | ||||
dddMessageVersion | 3Dメッセージバージョン | 詳細は「4.4.1消費者のブラウザを経由した結果の取得」をご参照ください。 |
△ | |
dddTransactionId | 3DトランザクションID | △ | ||
dddDsTransactionId | 3DDSトランザクションID | △ | ||
dddServerTransactionId | 3DサーバトランザクションID | △ | ||
dddTransactionStatus | 3Dトランザクションステータス | △ | ||
dddTransactionStatusReason | 3Dトランザクションステータス理由 | △ | ||
dddCavvAlgorithm | 3DCAVVアルゴリズム | △ | ||
dddCavv | 3DCAVV | △ | ||
dddEci | 3DECI | △ |
結果通知
決済サーバーは、本人認証、およびクレジットカード決済の結果を加盟店サイトへ通知します。
尚、本人認証結果の検証後(連動してクレジットカード決済が実行される場合は決済実行後)に、決済成否に関わらず通知します。
結果通知に関するサービス共通の仕様については、『開発ガイド』を併せてご参照ください。
項番 | フィールド名 | 項目名 | 書式・制限 | 説明 |
---|---|---|---|---|
1 | numberOfNotify | 通知件数 | 半角数字 4桁以内 |
1度に通知可能な件数は50件 51件以上は次回通知 |
2 | pushTime | 送信時刻 | 半角数字 14桁 |
決済サーバーから通知した時刻 YYYYMMDDhhmmss形式 |
3 | pushId | 識別ID | 半角数字 8桁 |
プッシュ処理を行うたびに採番されるID 注) 他の決済サービスで使用されたIDと重複する場合があります。 |
通知件数分下記の項番(4~9)を繰り返す。尚、フィールド名の後ろに4ケタの連番(0000~0049)を付与する。 | ||||
4 | orderId | 取引ID | 半角英数字 100桁以内 |
取引を識別する一意のID |
5 | vResultCode | 詳細結果コード | 半角英数字 16桁 |
処理結果を詳細に表すコード 処理結果コードの詳細は、『結果コード一覧』をご参照ください。 |
6 | txnType | トランザクションタイプ | 半角英数字 32桁以内 |
"Verify":本人認証結果 "AuthorizeConfirm ":本人認証結果(2.0で追加) "VerifyNotify ":本人認証結果(2.0で追加) |
7 | mpiMstatus | MPI結果コード | 半角英数字 8桁以内 |
本人認証の処理結果ステータス "success ":正常終了 "failure" :異常終了 |
8 | cardMstatus | カード結果コード | 半角英数字 8桁以内 |
"success ":正常終了 "failure" :異常終了 "pending" :ペンディング ※mpi-none(MPI単体サービス)の場合とMPI結果コードがfailureの場合は空 |
9 | dummy | ダミー決済フラグ | 半角数字 1桁 |
ダミー取引の場合"1"、本番取引の場合"0" |
- 本人認証サービスの結果通知機能をご利用の場合は、認可の要求電文にpushUrlを指定するか、MAPの各種設定変更より、本人認証の結果通知URLを設定してください。どちらも設定した場合には、要求電文のpushUrlが優先されます。
- pushId(識別ID)は、他の決済サービスで使用されたIdと重複する場合がありますので、ユニークキーとして処理しないようにしてください。
- 項目の並び順は、必ずしも表の順序とは一致しません。
検索
-
「設定」欄の内容は以下の通りとなります。
- 要求電文 ...
- 必須項目:○ 任意項目:△ 設定不可:× その他条件付:※(条件は説明欄に記入)
- 応答電文 ...
- 必ず返戻:○ 該当取引存在時に返戻:△ 返戻なし:× その他条件付:※
-
複数指定は0~の添字を指定します。
例)exparam.serviceTypeCd[0]=card&exparam.serviceTypeCd[1]=mpi -
ワイルドカードは値の一部と"*"を組み合わせて検索します。"*"のみの指定はできません。
例)exparam.searchParameters.common.orderId=123*
要求電文 : SearchRequestDto | |||||||
---|---|---|---|---|---|---|---|
※以下は、共通の検索要求フィールドです。 | |||||||
検索フィールド名 | 検索項目名 | 書式・制限 | 複数 指定 |
ワイルド カード |
説明 | 設定 | |
requestId | リクエストID | 半角英数字記号 128文字以内 |
リクエストIDを指定します。指定した場合は、それ以外のパラメータは指定できなくなります。 | △ | |||
serviceTypeCd | 決済サービスタイプ | 右記参照 | ○ | 検索対象の決済を指定します。未指定の場合は、全決済が検索対象となります。 "mpi": 本人認証 |
△ | ||
newerFlag | 最新トランザクションフラグ | 右記参照 |
成功、失敗に関係なく、最新トランザクションのみを検索する場合に使用します。 "true": 1取引内の最新トランザクションのみ検索 "false": 全てのトランザクションを検索 ※指定しない場合は"false"になります。 |
△ | |||
containDummyFlag | ダミー決済対象フラグ | 右記参照 |
ダミー取引も検索する場合に使用します。 "true": ダミー取引も検索する "false": ダミー取引は検索しない ※指定しない場合は"false"になります。 |
△ | |||
maxCount | 検索最大件数 | 1~1000 |
取得したい検索結果の最大件数です。未指定の場合、最大値となります。
※短時間で大量の検索を繰り返すような処理はサーバーに負荷が掛かりますのでご遠慮頂けますようお願いします。 |
△ | |||
common 共通 | |||||||
orderId | 取引ID | 半角英数字 100桁以内 |
○ | 検索したい取引IDを指定します。 | △ | ||
orderStatus | 取引決済状態 | 右記参照 | ○ | 以下のいずれかを指定します。 " initial ":初期状態 " end ":終了 " end_presentation ":画面遷移正常終了 " pending ":保留 " validation_error ":検証エラー " expired ":期限切れ " error ":エラー |
△ | ||
command | コマンド | 右記参照 | ○ |
決済で使用するコマンドを指定します。 " Authorize ":認可申込 " Verify ":検証(3Dセキュア1.0) " AuthorizeNotify ":認可通知(3Dセキュア2.0) " AuthorizeConfirm ":認可確認(同) " VerifyNotify ":検証通知(同) " ResultRedirect ":結果リダイレクト(同) |
△ | ||
mstatus | ステータスコード | 右記参照 | ○ | 決済結果として返戻されるステータスコードを指定します。 " success ":成功 " failure ":失敗 |
△ | ||
txnDatetime.from | 取引日(From) | 文字列12桁 | 取引日時の範囲(From)を指定します。 YYYYMMDDhhmm形式 |
△ | |||
txnDatetime.to | 取引日(To) | 文字列12桁 | 取引日時の範囲(To)を指定します。 YYYYMMDDhhmm形式 |
△ | |||
amount.from | 金額(From) | 数字12桁以内 | 決済金額の範囲(From)を指定します。 | △ | |||
amount.to | 金額(To) | 数字12桁以内 | 決済金額の範囲(To)を指定します。 | △ | |||
※以下は、本人認証 固有の検索要求フィールドです。 | |||||||
mpi 本人認証 固有 | |||||||
detailOrderType | 詳細オーダー決済状態 | 右記参照 | ○ | ※「detailOrderType」の詳細は5-7 検索(Search)に関する補足(詳細コマンドタイプ)を参照 | △ | ||
res3dTransactionId | 応答3DトランザクションID | 半角英数字、"+"、"/"、"=" 28 桁 or 0桁 |
応答3DトランザクションIDを指定 | △ | |||
resTransactionStatus | 応答3Dトランザクションステータス | 応答3Dトランザクションステータスを指定 | △ | ||||
res3dId | 応答3D ECI | 応答3D ECIを指定 | △ | ||||
deviceChannel | デバイスチャネル | 半角数字 2桁 |
デバイスチャネルを指定3Dセキュア2.0で追加された項目 | △ | |||
accountType | アカウントタイプ | 半角数字 2桁 |
アカウントタイプを指定3Dセキュア2.0で追加された項目 | △ | |||
authenticationIndicator | 認証要求タイプ | 半角数字 2桁 |
認証要求タイプを指定3Dセキュア2.0で追加された項目(予約項目) | △ | |||
messageCategory | メッセージカテゴリ | 半角数字 2桁 |
メッセージカテゴリを指定3Dセキュア2.0で追加された項目(予約項目) | △ |
応答電文 : SearchResponseDto | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
※以下は、共通の検索結果フィールドです。 | ||||||||||||
検索フィールド名 | 検索項目名 | 書式・制限 | 説明 | 設定 | ||||||||
result | 処理結果 | - | ○ | |||||||||
serviceType | サービスタイプ | 右記参照 | "search" | ○ | ||||||||
mstatus | 処理結果コード | 半角英数字 32文字以内 |
処理の結果ステータスが格納されます。 "success":正常終了 "failure":異常終了 |
○ | ||||||||
vResultCode | 詳細結果コード | 半角英数字 16文字 |
処理の結果を詳細に表すコードとなります。 詳細は別途『結果コード一覧』を参照下さい。 |
○ | ||||||||
merrMsg | エラーメッセージ | 文字列 300文字以内 |
処理結果を日本語又は英語で表示します。 | ○ | ||||||||
overMaxCountFlag | 最大件数超えフラグ | 右記参照 | 検索対象データが要求電文で指定した検索最大件数より多いかどうかを表します。 "true": 最大件数以上 "false": 最大件数未満 |
△ | ||||||||
searchCount | 検索結果件数 | 0~1000 | 検索結果件数(オーダー件数)が格納されます。 | △ | ||||||||
orderInfos | オーダー情報リスト | 複数のオーダー情報(orderInfo)が格納されます。 | △ | |||||||||
orderInfo | オーダー情報 | - | 検索条件に該当した取引の情報が該当件数分繰り返されます。0~1000件(要求電文で指定した検索最大件数まで)となります。 | △ | ||||||||
index | インデックス | 0~999 | 検索された情報のインデックスが格納されます。 | △ | ||||||||
serviceTypeCd | 決済サービスタイプ | 右記参照 | 決済の種類が格納されます。 " mpi ": 本人認証サービス |
△ | ||||||||
orderId | 取引ID | 文字列 | 取引の取引IDが格納されます。 | △ | ||||||||
orderStatus | 取引決済状態 | 右記参照 |
決済の状態が格納されます。 " initial ":初期状態 " end ":終了 " end_presentation ":画面遷移正常終了 " pending ":保留 " validation_error ":検証エラー " expired ":期限切れ " error ":エラー ※このフィールドは、取引IDに関連する注文データの状態を完全に表現するものではありません。サービスタイプによっては詳細な状態遷移を別のフィールドに保持している場合がありますので、店舗側システムの用途に合わせてsuccessDetailTxnTypeや、決済固有の状態フィールドをご参照ください。 |
△ | ||||||||
lastSuccessTxnType | 最終成功トランザクションタイプ | 文字列 | 直近の成功したコマンド名が格納されます。 | △ | ||||||||
successDetailTxnType | 詳細トランザクションタイプ | 文字列 | 取引の詳細な状態が格納されます。 検索要求電文の各決済の detailOrderType参照。 |
△ | ||||||||
properOrderInfo | 固有オーダー情報 | - | 各決済サービスの固有オーダー情報が格納されます。後述の一覧参照。 | △ | ||||||||
transactionInfos | 決済トランザクションリスト | - | 複数の決済トランザクション情報(transactionInfo)が格納されます。 | △ | ||||||||
transactionInfo | 決済トランザクション情報 | - | 検索条件に該当した取引の情報が該当件数分繰り返されます。 | △ | ||||||||
txnId | トランザクション管理ID | 文字列 | 決済サーバーが採番する管理IDとなります。 | △ | ||||||||
command | コマンド | 文字列 |
実行されたコマンド名が格納されます。
※MDKで要求したコマンドだけでなく、決済サーバーの内部処理コマンドも含まれます。 |
△ | ||||||||
mstatus | 処理結果コード | 半角英数字 32文字以内 |
処理の結果ステータスが格納されます。 "success":正常終了 "failure":異常終了 "pending":保留 |
△ | ||||||||
vResultCode | 詳細結果コード | 文字列16桁 | 処理の結果を詳細に表すコードとなります。 詳細は別途『結果コード一覧』を参照下さい。 |
△ | ||||||||
txnDatetime | 取引日時 | 文字列23桁 | 取引日時が格納されます。 YYYY-MM-DD hh:mm:ss.mmm形式 |
△ | ||||||||
amount | 金額 | 半角数字12桁以内 | 決済した金額が格納されます。 | △ | ||||||||
properTransactionInfo | 固有トランザクション情報 | - | 各決済サービスの固有トランザクション情報が格納されます。後述の一覧参照。 | △ | ||||||||
☆ 以下の情報は、上記 「固有オーダー情報」 「固有トランザクション情報」 内の階層にセットされます。 | ||||||||||||
※以下は、本人認証 固有の検索結果フィールドです。 | ||||||||||||
properOrderInfo | 本人認証 固有オーダー情報 | |||||||||||
startTxn | 電文ID | 文字列 | △ | |||||||||
dddMessageVersion | メッセージバージョン | △ | ||||||||||
requestCurrencyUnit | 要求通貨単位 | 半角英数字 4桁以内 |
△ | |||||||||
cardExpire | カード有効期限 | 文字列 5桁以内 |
有効期限(全桁平文) | △ | ||||||||
deviceChannel | デバイスチャネル | 半角数字 2桁 |
3Dセキュア2.0で追加された項目 |
△ | ||||||||
accountType | アカウントタイプ | 半角数字 2桁 |
3Dセキュア2.0で追加された項目 |
△ | ||||||||
authenticationIndicator | 認証要求タイプ | 半角数字 2桁 |
3Dセキュア2.0で追加された項目(予約項目) |
△ | ||||||||
messageCategory | メッセージカテゴリ | 半角数字 2桁 |
3Dセキュア2.0で追加された項目(予約項目) |
△ | ||||||||
properTransactionInfo | 本人認証 固有トランザクション情報 | |||||||||||
txnKind | トランザクション種類 | 文字列 | "mpi":3Dセキュア "card":カード決済 |
△ | ||||||||
mpiTransactionType | MPIトランザクションタイプ | 文字列 6桁以内 |
取引の詳細な状態 検索要求電文の各決済の detailOrderType参照。 |
△ | ||||||||
reqCardNumber | 要求カード番号 | 文字列 16桁以内 |
上6桁下2桁のみ数字表示され、その他は "*"(アスタリスク)1つに変換されます。 (例 "411111*11") |
△ | ||||||||
reqCardExpire | 要求カード有効期限 | 文字列 5桁以内 |
全桁"*"(アスタリスク)に変換されます。 (例 "*****") |
△ | ||||||||
reqAmount | 要求取引金額 | 文字列 12桁以内 |
△ | |||||||||
reqRedirectionUri | 要求リダイレクションURI | 文字列 1024桁以内 |
△ | |||||||||
corporationId | 会社ID | 文字列 2桁以内 |
△ | |||||||||
brandId | ブランドID | 文字列 2桁以内 |
△ | |||||||||
acquirerBinary | 仕向け先Binary | 文字列 | △ | |||||||||
dsLoginId | dsLoginId | 文字列 | △ | |||||||||
crresStatus | crresStatus | 文字列 | △ | |||||||||
veresStatus | veresStatus | 文字列 | △ | |||||||||
paresSign | paresSign | 文字列 | △ | |||||||||
paresStatus | paresStatus | 文字列 | △ | |||||||||
paresEci | paresEci | 文字列 | △ | |||||||||
authResponseCode | 本人認証応答コード | 文字列 | △ | |||||||||
verifyResponseCode | 認証結果検証応答コード | 文字列 | △ | |||||||||
res3dMessageVersion | 応答3Dメッセージバージョン | 文字列 10桁以内 |
△ | |||||||||
res3dTransactionId | 応答3DトランザクションID | 文字列 28桁以内 |
△ | |||||||||
res3dDsTransactionId | 応答3D DSトランザクションID | 文字列 36桁以内 |
3Dセキュア2.0で追加された項目 |
△ | ||||||||
res3dServerTransactionId | 応答3DサーバトランザクションID | 文字列 36桁以内 |
3Dセキュア2.0で追加された項目 |
△ | ||||||||
res3dTransactionStatus | 応答3Dトランザクションステータス | 文字列 1桁以内 |
△ | |||||||||
res3dCavvAlgorithm | 応答3D CAVVアルゴリズム | 文字列 1桁以内 |
△ | |||||||||
res3dCavv | 応答3D CAVV | 文字列 28桁以内 |
△ | |||||||||
res3dEci | 応答3D ECI | 文字列 2桁以内 |
△ | |||||||||
authRequestDatetime | 本人認証要求日時 | 文字列 23桁以内 |
本人認証要求の受付時間 (YYYY-MM-DD hh:mm:ss.mmm) |
△ | ||||||||
authResponseDatetime | 本人認証応答日時 | 文字列 23桁以内 |
本人認証の応答時間 (YYYY-MM-DD hh:mm:ss.mmm) |
△ | ||||||||
verifyRequestDatetime | 認証結果検証要求日時 | 文字列 23桁以内 |
認証結果検証要求の受付時間(YYYY-MM-DD hh:mm:ss.mmm) | △ | ||||||||
verifyResponseDatetime | 認証結果検証応答日時 | 文字列 23桁以内 |
認証結果検証の応答時間 (YYYY-MM-DD hh:mm:ss.mmm) |
△ | ||||||||
reqCurrencyUnit | 要求通貨単位 | 文字列 4桁以内 |
※現在はご利用いただくことはできません。 |
△ | ||||||||
reqAcquirerCode | 要求仕向け先コード | 文字列 2桁以内 |
※現在はご利用いただくことはできません。 |
△ | ||||||||
reqItemCode | 要求商品コード | 文字列 7桁以内 |
※現在はご利用いただくことはできません。 |
△ | ||||||||
reqCardCenter | 要求カードセンター | 文字列 7桁以内 |
※現在はご利用いただくことはできません。 |
△ | ||||||||
reqJpoInformation | 要求支払種別情報 | 文字列 83桁以内 |
△ | |||||||||
reqSalesDay | 要求売上日 | 文字列 8桁以内 |
※現在はご利用いただくことはできません。 |
△ | ||||||||
reqWithCapture | 要求同時直接 | 文字列 8桁以内 |
△ | |||||||||
reqSecurityCode | 要求セキュリティコード | 文字列 4桁以内 |
全桁"0"(ゼロ)に変換されます。 (例 "0000") |
△ | ||||||||
reqBirthday | 要求誕生日 | 文字列 4桁以内 |
※現在はご利用いただくことはできません。 |
△ | ||||||||
reqTel | 要求電話番号 | 文字列 4桁以内 |
※現在はご利用いただくことはできません。 |
△ | ||||||||
reqFirstKanaName | 要求カナ名前(名) | 文字列 15桁以内 |
※現在はご利用いただくことはできません。 |
△ | ||||||||
reqLastKanaName | 要求カナ名前(姓) | 文字列 15桁以内 |
※現在はご利用いただくことはできません。 |
△ |
その他 補足事項
決済サービスオプションタイプについて
VeriTrans4G本人認証サービスでは、3Dセキュア認証の結果をもとにクレジットカード与信(カード与信)処理まで実施可能です。
カード与信を実施するかしないかの判定ルールは、「決済サービスオプションタイプ(serviceOptionType)」に指定する値によって異なります。
-
mpi-complete(完全認証)
カード会社が認証成功と判定した場合のみ、カード与信を実施します。
-
mpi-company(通常認証)
カード会社が認証成功 または みなし認証成功(Attempt)と判定した場合、カード与信を実施します。
-
mpi-merchant(通常認証:加盟店リスクあり)
できる限りカード与信を実施するモードになります。加盟店様が3Dセキュアのご利用契約をされていないブランドのカード、処理中にエラーが発生した場合でも加盟店リスク負担でカード与信を実施します。ただし、3Dセキュア認証処理が正常に行われ、明確にNG(ステータスN受信ケースなど)の場合、カード与信は行いません。
-
mpi-none(単体認証)
本人認証(3Dセキュア認証)のみを実施し、カード与信は実施しません。カード与信を実施するかの判断とカード与信の処理(リクエスト)は加盟店様で行う必要があります。カード与信を実施するかの判断方法はmpi-none 以外のモードの判定を参考に実装してください。カード与信はCardAuthorizeRequestDtoを使用します。「MPI(3Dセキュア)の結果を連携する場合に使用するフィールド」に本人認証の結果を設定してください。詳しくは、クレジットカード決済のインターフェース詳細をご参照ください。
mpi-noneは、3Dセキュア認証とカード決済の処理を分けて実行できるため、カード決済の与信を加盟店様のタイミングで実行したい場合に利用されるケースが多いです。また、何等かの理由で弊社からの結果通知を受信できない場合にも利用されることがあります。
しかし、mpi-noneの場合は、与信を実行するか否かの判定を加盟店様のシステムで実装する必要があり、また、与信の要求時には3Dセキュアの認証結果を正確に設定しなければチャージバックリスクとなるため、少し難易度が高いです。
mpi-none以外を利用する場合は、弊社側でこれらの処理を行いますのでその点では難易度は低いです。しかし、結果通知を必ず受信していただく必要があります。
※結果通知を受信しないと、決済の成立を加盟店側で検知できないことがあり、お客様が支払ったのに注文が成立しなかったり、注文が不成立のため、再度お客様が決済を実行して2重決済となるなど、クレームに発展するリスクがあります。
決済サービスオプションタイプ別の結果の判定方法の詳細については、「本人認証サービス補足資料(3Dセキュア2.0版)」の「2 決済サービスオプションタイプについて」「5-3 結果判定マトリックス」を参照してください。
決済結果の判定について
本人認証サービスでは、決済サービスオプションタイプ(serviceOptionType)が"mpi-none"である場合を除き、本人認証の成功時(みなし成功を含む)には、カード決済が実行されます。
加盟店サイトでは、必ずカード決済が成功したことをご確認のうえ、商品の発送やサービスのご提供を行うようにしてください。
カード決済が成功した場合の結果コードの例を以下に示します。
mpiMstatus :success
cardMstatus :success
以下は、本人認証は成功、カード決済は失敗の例です。
mpiMstatus :success
cardMstatus :failure
決済サーバーと加盟店サイト間の取引不整合の問題
本人認証およびカード決済の成功後、消費者のブラウザから加盟店サイトの完了画面に遷移しなかった場合、あるいは遷移に失敗して処理の途中で離脱した場合には、加盟店サイトではカード決済の成立を認識できないという問題が発生する場合があります(取引不整合)。この問題は、以下のような状況で発生する可能性があります。
- カード会社の本人認証画面(パスワード入力画面)で長時間滞留したため、加盟店サイトでセッションタイムアウト(注文の期限切れ等)が発生したことによって、決済結果の反映処理が行えなかった場合
- 本人認証の成功後にブラウザを閉じる等の操作を行った
この問題に対処するために、加盟店サイトでは以下の何れかの実装を行って頂きますようお願いいたします。
- 決済サーバーからの決済結果通知(PUSH)を受信する (「5-5 結果通知の送信(Push)」 をご参照ください)
- 本人認証結果確認コマンドで、決済が成立していないかどうかを確認する
- 未成立の取引をSearchコマンドで検索し、決済が成立していないかどうかを確認する(新規に実装される場合、非推奨。②本人認証結果確認コマンドをご利用ください)
なお、Searchコマンドをご利用の場合は、必ず 「5-2 決済結果の判定について」 を参考に、「カード決済が成功しているかどうか」をご確認ください。
決済結果の詳細パラメータ連携とGETによるリダイレクションURIへのアクセス
消費者のブラウザを経由して送信する認証結果およびカード決済の結果は、HTTPのPOSTメソッドで送信しています。そのため、各種ブラウザの仕様変更に伴う、CookieのSameSite属性の挙動変更の影響には注意が必要です。
VeriTrans4Gでは、3Dセキュア2.0への対応に合わせて、リダイレクションURIに遷移する際にHTTP GETで遷移できるようにするフラグを用意しましたので、POSTメソッドでの遷移に問題がある場合にはこのフラグの利用をご検討ください。
-
「4.3.1 認可」の「詳細パラメータ連携フラグ(verifyResultLink)」で、2を指定するとHTTP GETで遷移します。
- 0:詳細パラメータ連携しない
- (キー情報のみPOSTで送信)
- 1:詳細パラメータ連携する(POST)
- (キー情報と結果すべてをPOSTで送信)
- 2:詳細パラメータ連携しない(GET)
- (キー情報のみGETで送信)
ただし、HTTP GETによる遷移の場合、クエリパラメータにはキー情報のフィールド(「取引ID」と「リクエストID」)のみが設定されますので、別途、キー情報を利用して認証および決済の結果を問い合わせる必要があります。詳しくは、「4-4 本人認証およびカード決済の結果取得」をご参照ください。
- HTTP GETによる遷移は、ブラウザの再読み込み(リロード)操作により、同じリクエストが複数回届くケースが発生いたしますので、同じリクエストが届いても問題ないように実装してください。(HTTP POSTによる実装の場合、再読み込みを行った場合はリクエストからパラメータが取得できないため、動作として問題となっていない可能性もあります。)
- 従来の仕様では、詳細パラメータ連携の有効・無効の切り替えは、決済サーバーのマスタ設定を弊社で変更するしかありませんでしたが、verifyResultLinkフラグによる制御を優先するようになり、加盟店様の実装にて切り替えが可能となりましたので、フラグによる切替を実装される加盟店様は、特にマスタ設定を意識する必要はありません。
- 詳細パラメータ連携を有効にする場合、決済サービスオプションタイプ(serviceOptionType)でMPI単体サービス("mpi-none")を選択する場合は、リダイレクト先となる加盟店サイトの結果画面のURIはSSL(https://)を必須とします。ダミーモードでのテストも考慮し、HTTPのURIを指定した場合でもエラーにはなりませんのでご注意ください。
結果通知の送信(Push)
決済サーバーから加盟店サイトへ、本人認証結果、およびクレジットカード決済結果を送信(Push)する機能です。
本人認証サービスの決済フローは、加盟店サイトから一度外部サイトにブラウザ(クライアント)を遷移する形となっており、外部サイトにて決済処理を行い、またブラウザを経由して加盟店サイトに戻ります。
ブラウザを経由した遷移は、正しく行われない(リダイレクトが届かない)ケースは発生するものとしてご認識ください。
つまり、外部サイト(VeriTrans4G側)で本人認証の結果、クレジットカード与信処理が行われたが、その後、加盟店サイトに戻ってこない事象が発生し、加盟店サイトでは決済が完了していないという不整合が発生する可能性があります。
結果通知を受信することで、消費者が離脱してしまった場合でも、決済が行われたかどうかを加盟店サイトにて把握することが可能となります。 なお、結果通知は、クレジットカード決済の結果が失敗の場合も送信(PUSH)されます。
結果通知は、認可要求時のパラメータ、またはMAP(マーチャント管理ポータル)の「各種設定変更」より設定したURLに届きます。 なお、古いバージョンのMDKでは、認可要求時に通知先URLを指定できないものもございますが、3Dセキュア2.0対応のMDKでは指定可能となっております。 結果通知の受信処理については、『4G_開発ガイド』を参照してください。
本人認証処理の有効期限
本人認証有効期限(verifyTimeout)の設定により、本人認証の画面で長時間滞留する等、認証完了までに時間がかかった取引を無効(タイムアウトエラー)にすることができます。
例えば、加盟店サイトのセッションタイムアウトが30分の場合は、verifyTimeout値を30分よりも短く設定することで、決済サーバー側で決済が成立しているのにもかかわらず、加盟店サイトに戻ったときにセッションタイムアウトエラーになる、という問題を回避することができます。
3Dセキュア2.0のフローでタイムアウトがチェックされるのは次の2つのタイミングとなります。
- 検証処理開始時(AReq送信前)
- RReq受信時
- 処理フローについては、「本人認証サービス補足資料(3Dセキュア2.0版)」 を参照してください。
- タイムアウト判定の起点は、厳密には決済サーバーの認可処理の完了時間に近いタイミングとなり、加盟店サイトからリクエストを送信したタイミングが起点ではないためご注意ください。
1.のタイミングでタイムアウトした場合は、決済サーバーはAReq送信を行わず、MPI処理結果失敗(mpiMstatus=failure)でリダイレクションURIに遷移が戻るフローとなります。
- verifyTimeout値は分単位の設定のため、1.のタイミングでタイムアウトする可能性は高くはありません。
2.のタイミングでタイムアウトした場合は、RReqの内容が認証可(オーソリ可)の場合でも決済サーバーはオーソリを行わず、MPI処理結果失敗(mpiMstatus=failure)でリダイレクションURIに遷移が戻るフローとなります。
タイムアウト発生時の結果コードは3Dセキュア1.0と変わりません。
消費者様より当エラーに関する問合せがあった場合は、「タイムアウトエラーのため注文をやり直していただく必要がある」ことをご案内ください。
本人認証有効期限を設定しなければ、有効期限の判定は行われません。この場合、弊社サービス上のタイムアウトは発生しないため、消費者のブラウザ操作のタイミング次第で、長時間経過後に決済が成立することがあります。
検索(Search)に関する補足
決済サーバーは、取引ID毎の内部処理(トランザクション)の履歴と現在の決済状態を保持しています。
Search コマンドでは決済サーバーが保持しているトランザクション情報を取得することが可能ですが、各トランザクションの種類は「トランザクションタイプ」で表されます。
下表に3Dセキュアおよびカード決済の主なトランザクションタイプを示します。
タイプ名 | 設定値 | 処理成功時の状態 |
---|---|---|
3Dセキュアのトランザクションタイプ | ||
認可 | auth | 本人認証の認可が成功したことを示す。 |
認可(条件付) | authc | 本人認証の認可が条件付き成功となったことを示す。 |
検証 | vd | 本人認証の検証が成功したことを示す。 |
検証(条件付) | vdc | 本人認証の検証が条件付き成功となったことを示す。 |
検証(スキップ) | vds | 本人認証をスキップしたことを示す。 |
チャレンジ認証 | chg | 本人認証のチャレンジ認証を実施したことを示す。 |
カード決済のトランザクションタイプ | ||
与信 | a | 与信が成功したことを示す。 |
与信売上 | ac | 与信同時売上が成功したことを示す。 |
売上 | pa | 売上が成功したことを示す。(与信後の売上要求による) |
与信→取消 | va/rad/rae | 与信の取消が成功したことを示す。 与信に対する一部金額の取消は通常は実行されませんが、実行された場合に金額の残りがある場合はrae、ない場合はradとなります。 |
与信売上→取消 | vac/racd/race | 与信売上の取消が成功したことを示す。 部分返品を実行後の時点で、残高がある場合はrace、残高がない場合はracdとなる。 |
売上→取消 | vpa/rpad/rpae | 売上の取消が成功したことを示す。 部分返品を実行後の時点で、残高がある場合はrpae、残高がない場合はrpadとなる。 |
与信有効期限切れ | ax | 与信有効期限(通常60日)を超えた取引を示す。 |
注) 一覧に記載していないタイプも存在します。
-
取引の状態確認が必要な場合には、Searchの結果からorderInfo.successDetailTxnType(詳細トランザクションタイプ)を参照することで、現在の決済状態を確認できます。ただし、orderInfo.successDetailTxnTypeには「直前に成功したトランザクションのタイプ」が設定される仕様のため、その後の処理が失敗したことを明確に示すことはできません。
例)
- " successDetailTxnType ": "a"
- ⇐ 与信が成功した状態であることを示します。
- " successDetailTxnType ": "vpa"
- ⇐ 売上の取消が成功した状態であることを示します。
-
取引ID毎のSearchの結果には、3Dセキュアの認証結果とカード決済の結果が含まれます。カード決済の結果詳細を確認するには、カード決済のトランザクション情報(transactionInfo)を参照してください。トランザクション情報の種類は、properTransactionInfo.txnKind(トランザクション種類)で識別できます。
- "txnKind": "mpi"
- ⇐ 3Dセキュアのトランザクション情報であることを示します。
- "txnKind": "card"
- ⇐ カード決済のトランザクション情報であることを示します。
導入・テストに関する補足
決済サーバーに接続し、テストを実施するための各種手続き・手順の詳細につきましては、『導入テストガイド』を参照してください。
本人認証サービスにおける3D-Secureのテストは、発行カード会社対応状況、カード保有者パスワード登録状況、マーチャント設定(認証実行不可のカードの決済を許可する、しないなど)により複雑なパターンが存在します。 それぞれのテストパターンについてテストカード番号を準備しております。 カード番号により、本人認証成功、失敗、認証不可、異常終了等のシナリオテストが実施可能です。 テストカード以外で取引を実施された場合、vResultCode は「NH02」となります。 詳細は、別資料『本人認証サービス補足資料(3Dセキュア2.0版)』をご参照ください。