本人認証について
決済種別一覧
リスク負担については、本人認証APIの「決済サービスオプションタイプ」(service_option_type) の設定により、 マーチャント様サイトに合ったパターンを選択することができます。
service_option_type | 認証種別 | カード決済連動タイプ | ブランド別カード決済有無 | リスク負担 | |
---|---|---|---|---|---|
mpi-complete | 完全認証 | 本人認証+カード決済 | 3D対応ブランド(VISA/MASTER/JCB) | 決済する | パスワード完全一致のケースのみ決済します。 |
3D対応ブランド以外 | 決済しない | - | |||
mpi-company | 通常認証 (カード会社リスク負担) |
本人認証+カード決済 | 3D対応ブランド(VISA/MASTER/JCB) | 決済する | カード会社リスク負担のケースのみ決済します。 |
3D対応ブランド以外 | 決済する | 本人認証に対応していないので加盟店リスク負担となります。 |
処理シーケンス
処理フロー
mpi-complete
出力パラメータ名 | 値 | フローの説明 |
---|---|---|
mstatus | failure |
本人認証不可のケースです。決済はできませんので、別のカードや別の決済手段を利用するよう案内を表示してください。 |
success |
本人認証可能のケースです。応答パラメータresponse_contentsをHTMLとして印字し、消費者ブラウザをカード会社認証サーバへリダイレクトさせてください。 本人認証成功かつ署名検証成功した場合のみ決済が実行されます。 |
mpi-company
出力パラメータ名 | 値 | フローの説明 |
---|---|---|
mstatus | failure |
本人認証不可のケースです。決済はできませんので、別のカードや別の決済手段を利用するよう案内を表示してください。 |
success |
本人認証可能のケースです。応答パラメータresponse_contentsをHTMLとして印字し、消費者ブラウザをカード会社認証サーバへリダイレクトさせてください。 本人認証成功かつ署名検証成功、あるいはカード会社リスク負担となる場合で決済が実行されます。 |
|
success |
本人認証不可かつカード会社リスク負担となるケースです。応答パラメータresponse_contentsをHTMLとして印字しすることで、消費者ブラウザがVeriTransへリダイレクトされ、決済が実行されます。 |
リダイレクト受信内容
その際にPOSTされるパラメータを以下に示します。
フィールド名 | 項目名 | 書式・制限 | 説明 |
---|---|---|---|
RequestId | リクエストID | 半角英数字記号128文字以内 | 本人認証の結果を検索する際のキー項目 |
OrderId | 取引ID | 半角英数ハイフンアンダースコア100文字以内 | 本人認証API要求時にマーチャント様にて送信された取引ID |
本人認証結果データ判定
Search結果データ | |||||||||||
transaction_info_array | |||||||||||
本人認証結果データ | カード決済データ | 結果状態 | 対応方法 | ||||||||
transaction_info | transaction_info | ||||||||||
mstatus | vresult_code | proper_transaction_info | command | mstatus | vresult_code | proper_transaction_info | command | mstatus | vresult_code | ||
transaction_kind | transaction_kind | ||||||||||
failure | ① | - | - | - | - | - | - | - | - | Search処理失敗 | Search処理に失敗しています。①の値を確認し、ご対応ください。 |
success | ① | mpi | Verify | failure | ② | - | - | - | - | 本人認証失敗 | 本人認証処理に失敗しています。認証不可のケースと処理自体が失敗しているケースがあります。②の値を確認し、ご対応ください。 |
success | ② | - | - | - | - | 本人認証失敗 → カード決済未実施 |
本人認証処理には成功していますが、カード決済が実施されていません。本人認証から再実施する必要があります。 | ||||
card | Verify | pending | ③ | 本人認証成功 → カード決済保留 |
本人認証処理には成功していますが、カード決済が保留となりました。③の値を確認し、ご対応ください。 | ||||||
failure | ③ | 本人認証成功 → カード決済失敗 |
本人認証処理には成功していますが、カード決済が失敗しました。③の値を確認し、ご対応ください。 | ||||||||
success | ③ | 本人認証成功 → カード決済成功 |
本人認証処理、カード決済のいずれも成功しています。 |
{ "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" }
シナリオ別コード一覧
マーチャント様サイトにて、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 |
クレジットカードでの失敗系テストに関しましては、[稼働確認]に記載の有効期限を設定して下さい。
- G001=本人認証実行可能です。
- G002=決済実行可能です。(条件付成功)
- G003=決済実行可能です。(条件付成功)
- G004=決済実行可能です。(条件付成功)
- G005=決済実行可能です。(条件付成功)
成功系・verify処理
- G011=本人認証に成功しました。
- G012=本人認証に成功しました。(条件付成功)
- G013=本人認証に成功しました。(条件付成功)
- G014=本人認証に成功しました。(条件付成功)
- GE01=本人認証実行不可です。(MPIキャッシュにてイシュア未参加)
- GE02=本人認証実行不可です。(イシュアまたは会員が未参加)
- GE03=本人認証実行不可です。(未対応デバイス(携帯・未対応ブラウザ)又はACS障害)
- GE04=本人認証実行不可です。(MPIライブラリでエラー発生)
- GE05=本人認証実行不可です。(センタ接続通信エラーが発生({0}))
失敗系・verify処理
- GE11=本人認証に失敗しました。(パスワード間違い、キャンセル)
- GE12=暫定的に認証成功とみなされました。(決済不可)
- GE13=本人認証に失敗しました。(不正PAReq、他技術的要因)
- GE14=本人認証に失敗しました。(MPIライブラリでエラー発生)
- GE15=本人認証に失敗しました。(センタ接続通信エラーが発生({0}))
PUSH通知
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_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 } ] }
- Prev:< [APIパラメータ]を見る