本人認証について

本ページでは、MPIホスティングサービス(本人認証)においてご利用いただける処理フロー、処理結果コード及び判定について記載しています。

決済種別一覧

VeriTrans MPIホスティングサービスはVISA/MASTER/JCBの3つの国際カードブランドの本人印象(3Dセキュア)に対応しています。
リスク負担については、本人認証APIの「決済サービスオプションタイプ」(service_option_type) の設定により、 マーチャント様サイトに合ったパターンを選択することができます。
決済サービスオプションタイプ一覧
service_option_type 認証種別 カード決済連動タイプ ブランド別カード決済有無 リスク負担
mpi-complete 完全認証 本人認証+カード決済 3D対応ブランド(VISA/MASTER/JCB) 決済する パスワード完全一致のケースのみ決済します。
3D対応ブランド以外 決済しない -
mpi-company 完全認証
(カード会社リスク負担)
本人認証+カード決済 3D対応ブランド(VISA/MASTER/JCB) 決済する カード会社リスク負担のケースのみ決済します。
3D対応ブランド以外 決済する 本人認証に対応していないので加盟店リスク負担となります。

処理シーケンス

本人認証APIを利用した場合の基本的なシーケンスを以下に示します。

処理フロー

決済サービスオプションタイプ別のフローを以下にしまします。

mpi-complete

出力パラメータ名 フローの説明
mstatus failure
本人認証不可のケースです。決済はできませんので、別のカードや別の決済手段を利用するよう案内を表示してください。
success
本人認証可能のケースです。応答パラメータresponse_contentsをHTMLとして印字し、消費者ブラウザをカード会社認証サーバへリダイレクトさせてください。 本人認証成功かつ署名検証成功した場合のみ決済が実行されます。

mpi-company

出力パラメータ名 フローの説明
mstatus failure
本人認証不可のケースです。決済はできませんので、別のカードや別の決済手段を利用するよう案内を表示してください。
success
本人認証可能のケースです。応答パラメータresponse_contentsをHTMLとして印字し、消費者ブラウザをカード会社認証サーバへリダイレクトさせてください。
本人認証成功かつ署名検証成功、あるいはカード会社リスク負担となる場合で決済が実行されます。
success
本人認証不可かつカード会社リスク負担となるケースです。応答パラメータresponse_contentsをHTMLとして印字しすることで、消費者ブラウザがVeriTransへリダイレクトされ、決済が実行されます。

リダイレクト受信内容

処理が完了すると、ブラウザは本人認証API要求時にマーチャント様にて送信された戻り先URL(redirection_uri)へリダイレクトされます。
その際にPOSTされるパラメータを以下に示します。
フィールド名 項目名 書式・制限 説明
RequestId リクエストID 半角英数字記号128文字以内 本人認証の結果を検索する際のキー項目
OrderId 取引ID 半角英数ハイフンアンダースコア100文字以内 本人認証API要求時にマーチャント様にて送信された取引ID

本人認証結果データ判定

Request Idを指定した場合の決済トランザクション情報取得APIの応答サンプルは以下の通りです。
{
  "order_info": {
    "order_id": "TESTB001",
    "service_type_code": "mpi",
    "last_success_command": "Verify",
    "success_detail_transaction_type": "a",
    "proper_order_info": {"trad_url": "https://example.com/..."},
    "transaction_info_array": [
      {
        "amount": 100,
        "command": "Verify",
        "mstatus": "success",
        "vresult_code": "G011A00100000000",
        "transaction_datetime": "2015-03-11 20:05:20.277",
        "properTransactionInfo": {
          "transaction_kind": "mpi",
          "transaction_type": "vd",
          "res_3d_cavv": "AbC1eFg2IJkl3NopQ4STU5WXYZ\u003d\u003d",
          "res_3d_cavv_algorithm": "2",
          "res_3d_eci": "05",
          "res_3d_message_version": "1.0.2",
          "res_3d_transaction_id": "12aBcde3Fg4HiJ\u003dAbcd1Efgh2J\u003d",
          "res_3d_transaction_status": "Y"
        }
      },
      {
        "amount": 100,
        "command": "Verify",
        "mstatus": "success",
        "vresult_code": "G011A00100000000",
        "transaction_datetime": "2015-03-11 20:05:22.221",
        "properTransactionInfo": {
          "transaction_kind": "card",
          "res_auth_code": "000000",
          "res_center_error_code": "   "
        }
      }
    ]
  },
  "vresult_code": "N001000000000000",
  "mstatus": "success",
  "code": "Q000",
  "status": "success",
  "message": "Search request was successful"
}

シナリオ別コード一覧

以下の一覧表は、本人認証APIを利用して決済を行う際のvresult_code一覧です。
マーチャント様サイトにて、vresult_codeの上4桁を判定して次の処理を決めていく必要があります。
No シナリオ リスク負担 テストカード MPI Authorize
/mpi_charges
Verify
(VeriTrans内部処理)
カード会社/加盟店 カード番号 決済サービスオプションタイプ 完全認証
(mpi-complete)
通常認証
(mpi-company)
決済サービスオプションタイプ 完全認証
(mpi-complete)
通常認証
(mpi-company)
リスク負担 カード会社 カード会社 リスク負担 カード会社 カード会社
3D未対応ブランド決済可否 × 3D未対応ブランド決済可否 ×
mstatus ※1 vresult_code mstatus ※1 vresult_code
1 本人認証失敗
(パスワード間違い、キャンセル)
(決済不可) 5555444455554442 success G0010000 G0010000 failure GE110000 GE110000
2 本人認証成功
(パスワード一致)
カード会社 4111111111111111 success G0010000 G0010000 success G011A001 G011A001
3 本人認証成功
(Attempt)
カード会社 5555555555554444 success G0010000 G0010000 failure
又はsuccess
GE120000 G012A001
4 本人認証実行不可
(MPIキャッシュにてイシュア未参加)
カード会社 3528000000000007 failure
又はsuccesstd>
GE010000 G0020000 G002A001
5-1 本人認証実行不可
(イシュア又は会員が未参加)
カード会社 3530111333300000 failure
又はsuccess
GE020000 G0030000 G003A001
6-1 本人認証実行不可
(未対応デバイス(携帯等)又はACS障害)
加盟店 3528000000000023 failure
又はsuccess
GE030000 GE030000
6-2 本人認証失敗
(不正PAReq、他技術的要因)
加盟店 3528000000000015
341111111111111
success G0010000 G0010000 failure
又はsuccess
GE130000 GE130000
7-1 異常終了
(ベリトランス側MPI又は通信エラー)
加盟店 5105105105105100
5500000000000004
failure
又はsuccess
GE040000
GE050000
GE040000
GE050000
7-2 異常終了
(ベリトランス側MPI又は通信エラー)
加盟店 6950695069506958 success G0010000 G0010000 failure
又はsuccess
GE140000
GE150000
GE140000
GE150000
8 本人認証失敗
(PARes署名検証失敗)
(決済不可) 5111111111111118 success G0010000 G0010000 failure GE160000 GE160000
※1 応答コードが「GExx」の場合は "failure"(失敗)、「G0xx」の場合は "success"(成功)となります。
クレジットカードでの失敗系テストに関しましては、[稼働確認]に記載の有効期限を設定して下さい。

成功系・authorize処理

  • G001=本人認証実行可能です。
  • G002=決済実行可能です。(条件付成功)
  • G003=決済実行可能です。(条件付成功)
  • G004=決済実行可能です。(条件付成功)
  • G005=決済実行可能です。(条件付成功)

成功系・verify処理

  • G011=本人認証に成功しました。
  • G012=本人認証に成功しました。(条件付成功)
  • G013=本人認証に成功しました。(条件付成功)
  • G014=本人認証に成功しました。(条件付成功)

失敗系・authorize処理

  • GE01=本人認証実行不可です。(MPIキャッシュにてイシュア未参加)
  • GE02=本人認証実行不可です。(イシュアまたは会員が未参加)
  • GE03=本人認証実行不可です。(未対応デバイス(携帯・未対応ブラウザ)又はACS障害)
  • GE04=本人認証実行不可です。(MPIライブラリでエラー発生)
  • GE05=本人認証実行不可です。(センタ接続通信エラーが発生({0}))

失敗系・verify処理

  • GE11=本人認証に失敗しました。(パスワード間違い、キャンセル)
  • GE12=暫定的に認証成功とみなされました。(決済不可)
  • GE13=本人認証に失敗しました。(不正PAReq、他技術的要因)
  • GE14=本人認証に失敗しました。(MPIライブラリでエラー発生)
  • GE15=本人認証に失敗しました。(センタ接続通信エラーが発生({0}))

PUSH通知

本人認証APIにパラメータとして本人認証結果Push通知の送信先マーチャントサイトURLが指定された場合、 本人認証結果の検証後(連動してクレジットカード決済が実行される場合は決済実行後)に、決済成否にかかわらず、指定URLに結果がPOST送信されます。
URL push_uri
HTTP動詞 POST
HTTPヘッダ ヘッダ名
Authorization Basic RequestBodyの終端にServer Keyを連結してSha-256ハッシュした文字列
説明 本人認証APIで指定されたpush_uriへ結果を通知する
入力形式 JSON
送信パラメータ
(RequestBody)
push_time String YYYY/MM/DD hh:mm:ss形式 通知した時刻
push_id String 半角数字8桁 ベリトランス決済ゲートウェイが
Push通知を行うたびに採番されるID
data
  [ 配列
    {
      order_id String 半角英数ハイフンアンダースコア100桁以内 取引ID
      vresult_code String 半角英数字16桁 詳細結果コード
      transaction_type String 半角英数字32桁以内 "Verify":本人認証結果
      mpi_mstatus String 半角英数字32桁以内 本人認証の処理結果ステータス
"success":正常終了
"failure":異常終了
      card_mstatus String 半角英数字8桁以内 カード結果コード
"success":正常終了
"failure":異常終了
"pending":ペンディング
      test_mode Boolean ダミーの場合true
    }
  ]
※基本認証には対応していません。
※Push通知送信は非同期で実施されるため、Push通知を受信する前に、ブラウザが戻り先URLにリダイレクトされる可能性があります。
 その場合はSearch APIを利用し、本人認証結果を取得してください。
※同じpush_idで複数回通知が送信される場合があります。
Push通知でRequestBodyに書き込まれるJSONのサンプルは以下の通りです。
{
    "push_time": "2015-03-30 18:36:42",
    "push_id": "00000080",
    "data": [
        {
            "order_id": "TESTC001",
            "vresult_code": "G012A00100000000",
            "transaction_type": "Verify",
            "mpi_mstatus": "success",
            "card_mstatus": "success",
            "test_mode": true
        }
    ]
}