導入
概要
- 消費者様は購入操作を実施します。
- ECサイトはPOPのAPIにリクエストを送信し
payment_key
を取得します。- POPはレスポンスで
payment_key
を返戻します。- ECサイトはhtmlページを作成し、消費者様のブラウザへ返戻します。
- 消費者様は注文の詳細を確認し、支払ボタンをクリックします。ECサイトが作成したJavaScriptで
pop.pay(payment_key, options)
を呼び出します。消費者様は決済情報を入力し、確認ボタンをクリックします。POP JSは決済情報をPOPに送信します。- POPは決済情報を元に処理を行い、決済結果を返戻します。このとき、POP JSは、ECサイトが作成したJavaScriptコールバックまたはリクエストパラメータで指定されたURLを呼び出します。
- POPは決済結果をECサイトに通知します。
準備
VeriTransに登録を行い、MAP(Merchant Administration Portal)にログインするためのIDとパスワードを取得する必要があります。
アプリケーションの開発にあたって、VeriTransが発行するPOP_SERVER_KEY
とPOP_CLIENT_KEY
をご利用いただく必要があります。これらはMAPのAPI設定から取得可能です。
バックエンド
ECサイトではPOPからpayment_key
を取得してください。
payment_key
を取得後、フロントエンドに進むことができます。
POPとの連携
ECサイトはPOPと通信し、概要のステップ #2 を実現します。
消費者様が購入操作を実施した際に、ECサイトでは決済に必要な情報をリクエストとしてPOPのAPI呼び出しを行ってください。
POPは、レスポンスでpayment_key
を返戻します。
payment_key
はフロントエンドで使用します。
エンドポイント
Payment Key
https://pay3.veritrans.co.jp/pop/v1/payment-key
リクエスト
ECサイトがPOPからpayment_key
を取得するためのリクエストパラメータについて説明します。
HTTPメソッド
POST
リクエストヘッダ
POP_SERVER_KEY = "Test-POP-Server-Key";
AUTH_STRING = Base64("Test-POP-Server-Key:");
AUTH_STRING = "VGVzdC1QT1AtU2VydmVyLUtleTo=";
次の2つのヘッダをHTTPリクエストに設定します。
Content-Type: application/json; charset=utf-8
Authorization: Basic AUTH_STRING
POPはBASIC認証によりHTTPリクエストの検証を行います。ユーザ名にPOP_SERVER_KEY
を、パスワードは空文字を設定してください。
API設定からPOP_SERVER_KEY
をご確認いただけます。
Authorization
ヘッダの値はAUTH_STRING
で記載しております。
AUTH_STRING
はユーザ名とパスワードをbase64でエンコードした文字列です。
AUTH_STRING
= Base64(POP_SERVER_KEY
+ :
)
リクエストパラメータ
必要最小限のパラメータを指定した場合は以下の通りです。
{
"order_id" : "ORDER-0001",
"gross_amount" : 10000
}
指定可能なパラメータを全て指定した場合は以下の通りです。
{
"order_id" : "ORDER-0001",
"gross_amount" : 10050,
"shipping_amount" : 50,
"dummy" : true,
"capture" : true,
"payment_key_expiry_duration" : 1440,
"success_url" : "https://example.com/success",
"failure_url" : "https://example.com/failure",
"incomplete_url" : "https://example.com/incomplete",
"push_url" : "https://example.com/push",
"enabled_payment_types" : [
"card",
"cvs",
"bank"
],
"card" : {
"mpi" : false,
"paynow_account_id" : "TEST-ACCOUNT-101",
"save_card" : "always",
"skip_card_selection" : false
},
"cvs" : [
{
"payment_sub_type" : "sej",
"payment_expiry_duration" : 60
},
{
"payment_sub_type" : "econ",
"payment_expiry_date" : "20200401"
},
{
"payment_sub_type" : "other",
"payment_expiry_date" : "20200401",
"payment_expiry_hhmm" : "2359"
}
],
"bank" : {
"payment_type" : [
{
"payment_sub_type" : "atm",
"payment_expiry_duration" : 60
}
],
"contents" : "テスト請求",
"contents_kana" : "テストセイキュウ"
},
"email" : {
"customer_name" : "スミス ジョン",
"customer_email_address" : "smith.john@example.com"
},
"items" : [
{
"id" : "ITEM-0001",
"name" : "ITEM NAME *",
"price" : 10000,
"quantity" : 1
}
],
"custom_message" : {
"show_items_additional_message" : true,
"items_additional_message" : "[*] サンプルメッセージ"
}
}
リクエストには、以下のパラメータが指定可能です。
パラメータ | 説明 |
---|---|
order_id string(100) (required) |
取引ID。取引毎に一意になるように指定してください。半角英数字と ‘-'(ハイフン)と ’_‘(アンダースコア)のみ指定可能です。他の文字は使用できません。 |
gross_amount number(10) (required) |
送料を含む合計金額。 必ず0より大きい値となるよう設定してください。 |
shipping_amount number(8) (optional) |
配送料。 |
dummy boolean (optional) |
ダミー取引を実施するために設定します。ダミーリクエストでは実際の決済処理が発生いたしません。VeriTransとの結合テスト用にご利用ください。 Values: true or false (Default: false ) |
success_url string(256) (optional) |
決済成功時のリダイレクトURL。指定されていない場合、MAPのPOP設定の「システム設定」タブにある「決済成功時URL」に設定の値を使用します。 |
failure_url string(256) (optional) |
決済失敗時のリダイレクトURL。指定されていない場合、MAPのPOP設定の「システム設定」タブにある「決済失敗時URL」に設定の値を使用します。 |
incomplete_url string(256) (optional) |
通信エラーや途中離脱によりPOPの画面遷移が未完了により決済結果不明時(決済ゲートウェイは、決済結果成立、決済結果失敗、決済未実施)のリダイレクトURL。指定されていない場合、MAPのPOP設定の「システム設定」タブにある「決済未完了時URL」に設定の値を使用します。 |
push_url string(256) (optional) |
PUSH通知送信用URL。指定されていない場合、MAPのPOP設定の「システム設定」タブにある「PUSH通知送信先URL」に設定の値を使用します。 |
enabled_payment_types array (optional) |
利用可能にする決済方法を配列で指定します。指定されていない場合、MAPのPOP設定の「システム設定」タブにある「有効な決済方法」に設定の値を使用します。 Values: card - カード決済cvs - コンビニ決済bank - 銀行決済 |
capture boolean (optional) |
売上フラグ。与信取得と売上を同時に実行するかどうかを決定します。 Values: true or false (Default: true ) |
payment_key_expiry_duration number(6) (optional) |
payment_key が生成されてから利用不可となるまでの有効期間を「分」で指定します。Maximum value: 129600 (90日) Default: 1440 (1日) |
card object (optional) カード決済用パラメータ |
カード決済専用のパラメータです。 |
cvs array (optional) コンビニ決済用パラメータ |
コンビニ決済専用のパラメータです。 |
bank array (optional) 銀行決済用パラメータ |
銀行決済専用のパラメータです。 |
email object (optional) 消費者様へのメール通知用パラメータ |
消費者様の名前とメールアドレスを指定するためのパラメータです。 |
items array (optional) 商品情報 |
注文情報に含まれる商品情報の配列です。指定されていない場合、注文情報画面と決済確認画面で商品情報が表示されません。 |
custom_message object (optional) カスタムメッセージ |
商品補足説明文の表示と内容を指定するためのパラメータです。 |
カード決済用パラメータ
{
"card" : {
"mpi" : false,
"paynow_account_id" : "TEST-ACCOUNT-101",
"save_card" : "always",
"skip_card_selection" : false
}
}
{
"card" : {
"mpi" : true,
"3ds_version" : "2",
"paynow_account_id" : "TEST-ACCOUNT-101",
"save_card" : "always",
"skip_card_selection" : false,
"cardholderEmail" : "smith.john@example.com",
"cardholderHomePhoneNumber" : "0312345678",
"cardholderHomePhoneNumberCountry" : "81",
"cardholderMobilePhoneNumber" : "08012345678",
"cardholderMobilePhoneNumberCountry" : "81",
"cardholderWorkPhoneNumber" : "08012345678",
"cardholderWorkPhoneNumberCountry" : "81"
}
}
以下はカード決済専用のパラメータです。
パラメータ | 説明 |
---|---|
mpi boolean (optional) |
注文に対して3Dセキュア(本人認証)を実行するかどうかを決定します。設定されていない場合、MAPのPOP設定の「システム設定」タブにある"本人認証"に設定の値を使用します。 Values: true or false |
paynow_account_id string(100) (optional) |
消費者様毎に一意の会員ID。 該当する会員情報が存在しない場合は、カードが登録された場合に限り、指定されたIDで新規に会員情報を作成します。 ※別途ワンクリック継続課金の契約が必要です。 |
save_card string(20) (optional) |
消費者様が未登録のカードで決済を行う際に、カード情報を登録するかどうかを、消費者様に選択させるかどうかを決定します。paynow_account_id を設定している場合のみ、このパラメータを設定できます。Values: always : 未登録のカードは常に登録されます。 optional : 消費者様は未登録のカード情報を登録するかどうかを選択できます。 Default: always |
skip_card_selection boolean (optional) |
登録済みのカードを選択する画面をスキップして、初期選択カードで決済を行うようにするフラグです。paynow_account_id を設定している場合のみ、このパラメータを設定できます。 Values: true : 登録済みのカード一覧は表示されず、初期選択カードが自動的に選択されます。 false : 登録済みのカード一覧が表示され、消費者様は登録済みのカード、または新しく別のカードを選択可能です。 Default: false |
3ds_version string(1) (optional) |
mpiがtrueに指定されている場合、本人認証バージョンを設定することが可能です。 このパラメータが指定されていない場合、MAPのPOP設定の「システム設定」タブにある「本人認証バージョン」に設定の値を使用します。 Values: 1 or 2 |
cardholderEmail string(254) (optional) |
カード保有者メールアドレス。3Dセキュア(本人認証)の処理で使用されます。 3Dセキュア(本人認証)が有効の場合、指定が必要になります。 mpi パラメータの説明もあわせてご確認ください。 |
cardholderHomePhoneNumber string(15) (optional) |
カード保有者自宅電話番号。3Dセキュア(本人認証)の処理で使用されます。 このパラメータには半角数字のみ使用可能です。(ハイフン使用不可) 3Dセキュア(本人認証)が有効の場合、指定が必要になります。 mpi パラメータの説明もあわせてご確認ください。 |
cardholderHomePhoneNumberCountry string(3) (optional) |
カード保有者自宅電話番号の国コード。3Dセキュア(本人認証)の処理で使用されます。 このパラメータには半角数字のみ使用可能です。(ITU-T E.164 で規定された地域別国コードを指定) Default: 81 (※日本の国コード)電話番号を設定した場合は、必ず国コードが必要になります。 日本の番号はデフォルト値がセットされますので設定不要ですが、海外の番号をセットした場合は必ず正しい国コードを設定してください。 |
cardholderMobilePhoneNumber string(15) (optional) |
カード保有者携帯電話番号。3Dセキュア(本人認証)の処理で使用されます。 このパラメータには半角数字のみ使用可能です。(ハイフン使用不可) 3Dセキュア(本人認証)が有効の場合、指定が必要になります。 mpi パラメータの説明もあわせてご確認ください。 |
cardholderMobilePhoneNumberCountry string(3) (optional) |
カード保有者携帯電話番号の国コード。3Dセキュア(本人認証)の処理で使用されます。 このパラメータには半角数字のみ使用可能です。(ITU-T E.164 で規定された地域別国コードを指定) Default: 81 (※日本の国コード)電話番号を設定した場合は、必ず国コードが必要になります。 日本の番号はデフォルト値がセットされますので設定不要ですが、海外の番号をセットした場合は必ず正しい国コードを設定してください。 |
cardholderWorkPhoneNumber string(15) (optional) |
カード保有者勤務先電話番号。3Dセキュア(本人認証)の処理で使用されます。 このパラメータには半角数字のみ使用可能です。(ハイフン使用不可) 3Dセキュア(本人認証)が有効の場合、指定が必要になります。 mpi パラメータの説明もあわせてご確認ください。 |
cardholderWorkPhoneNumberCountry string(3) (optional) |
カード保有者勤務先電話番号の国コード。3Dセキュア(本人認証)の処理で使用されます。 このパラメータには半角数字のみ使用可能です。(ITU-T E.164 で規定された地域別国コードを指定) Default: 81 (※日本の国コード)電話番号を設定した場合は、必ず国コードが必要になります。 日本の番号はデフォルト値がセットされますので設定不要ですが、海外の番号をセットした場合は必ず正しい国コードを設定してください。 |
コンビニ決済用パラメータ
{
"cvs" : [
{
"payment_sub_type" : "sej",
"payment_expiry_duration" : 60
},
{
"payment_sub_type" : "econ",
"payment_expiry_date" : "20200401"
},
{
"payment_sub_type" : "other",
"payment_expiry_date" : "20200401",
"payment_expiry_hhmm" : "2359"
}
]
}
以下はコンビニ決済専用のパラメータです。
パラメータ | 説明 |
---|---|
payment_sub_type string (required) |
消費者様が決済する際に選択可能なコンビニ名やグループ名を設定します。 cvs パラメータが存在する場合は、少なくとも1つはpayment_sub_type を設定する必要があります。cvs パラメータが存在しない場合は、MAPのPOP設定の「システム設定」タブにある「コンビニ決済情報」の「有効な決済サブタイプ」に設定の値を使用します。Values: sej - セブン-イレブンlawson - ローソン・ミニストップ・セイコーマートfamima - ファミリーマートecon - ローソン・ファミリーマート・ミニストップ・セイコーマートother - デイリーヤマザキ・ヤマザキデイリーストア |
payment_expiry_duration number (optional) |
payment_key を取得してからお支払いが有効な期間を日数で設定します。このパラメータとpayment_expiry_date が未指定の場合は、以下のデフォルト値が適用されます。sej : 60 日econ : 60日lawson : 60日famima : 60日other : 60 日 |
payment_expiry_date string(8) (optional) |
お支払い有効期限。 (YYYYMMDD 形式)payment_expiry_duration の最大値を超える期限を設定することはできません。 |
payment_expiry_hhmm string(4) (optional) |
お支払い有効期限時分。 (hhmm 形式)payment_expiry_date が設定されている場合のみ設定可能です。Default:2359 |
銀行決済用パラメータ
{
"bank" : {
"payment_type" : [
{
"payment_sub_type" : "atm",
"payment_expiry_duration" : 60
}
],
"contents" : "テスト請求",
"contents_kana" : "テストセイキュウ"
}
}
以下は銀行決済専用のパラメータです。
パラメータ | 説明 |
---|---|
payment_type array (optional) |
銀行決済情報の配列。 |
payment_type.payment_sub_type string(3) (required) |
消費者様が決済する際に選択可能な銀行決済の利用方式を設定します。payment_type パラメータが存在しない場合は、MAPのPOP設定の「システム設定」タブにある「銀行情報」の「有効な決済サブタイプ」に設定の値を使用します。Value: atm - ATM決済(ペイジー) |
payment_type.payment_expiry_duration number(2) (optional) |
payment_key を取得してからお支払いが有効な期間を日数で設定します。Maximum value: 60 (Default: 60) |
payment_type.payment_expiry_date string(8) (optional) |
お支払い有効期限。 (YYYYMMDD 形式)payment_expiry_duration の最大値を超える期限を設定することはできません。 |
contents string(12) (required) |
インフォメーションとしてATM等に表示する請求内容。 |
contents_kana string(24) (required) |
インフォメーションとしてATM等に表示する請求内容(カナ)。 このパラメータには全角カナ文字が使用可能です。 |
消費者様へのメール通知用パラメータ
{
"email" : {
"customer_name" : "スミス ジョン",
"customer_email_address" : "smith.john@example.com"
}
}
以下は消費者様へのメール通知専用のパラメータです。
パラメータ | 説明 |
---|---|
customer_name string(256) (optional) |
メール通知の際に表示される消費者様の名前を設定します。このパラメータには全角/半角文字が使用可能です。 |
customer_email_address string(256) (optional) |
消費者様へのメール通知を送信する宛先のメールアドレスを設定します。 |
商品情報
{
"items" : [
{
"id" : "ITEM-0001",
"name" : "ITEM 1 NAME",
"price" : 10000,
"quantity" : 1
},
{
"id" : "ITEM-0002",
"name" : "ITEM 2 NAME",
"price" : 10000,
"quantity" : 2
}
]
}
以下のパラメータで複数の商品項目を追加できます。quantity
とprice
パラメータはgross_amount
の値を計算するために使用されます。
パラメータ | 説明 |
---|---|
id string(20) (required) |
注文内で一意となる商品ID。 |
name string(200) (required) |
商品名。 このパラメータには全角/半角文字が使用可能です。 |
price number(8) (required) |
商品金額。 |
quantity number(9) (required) |
商品個数。 必ず0より大きい値となるよう設定してください。 |
カスタムメッセージ
{
"custom_message" : {
"show_items_additional_message" : true,
"items_additional_message" : "[*] サンプルメッセージ"
}
}
以下はカスタムメッセージ専用のパラメータです。
パラメータ | 説明 |
---|---|
show_items_additional_message boolean (optional) |
商品補足説明をPOPクライアント上と決済結果の通知メールに表示させるかどうかを決定します。設定されていない場合、MAPのPOP設定の「システム設定」タブにある"商品補足説明表示"に設定の値を使用します。 Values: true or false |
items_additional_message string(200) (optional) |
商品補足説明。items が設定されていない場合、POPクライアント上と決済結果の通知メールに表示されません。設定されていない場合、MAPのPOP設定の「システム設定」タブにある"商品補足説明"に設定の値を使用します。このパラメータには全角/半角文字が使用可能です。 |
レスポンス
レスポンスパラメータ
payment_key取得成功時のレスポンス
{
"payment_key" : "28GTzdVOZNeImaHMDeQF1319",
"result_code" : "R000",
"status" : "success",
"message" : "\"Payment Key\" has been generated successfully",
"payment_key_expiry_time" : "20200401000000"
}
payment_key取得失敗時のレスポンス
{
"result_code" : "RC01",
"status" : "failure",
"message" : "Invalid \"Order ID\""
}
POPは、ECサイトからリクエストを受信した場合、以下のパラメータをレスポンスとして返戻します。
パラメータ | 説明 |
---|---|
payment_key string(24) (optional) |
決済リクエストに対してPOPが生成した一意のpayment_key 。エラー発生時は返戻されません。 |
result_code string(4) (required) |
成功または失敗の具体的な理由を示す4文字の結果コード。 |
status string(7) (required) |
処理のステータス。 Values: success or failure |
message string(256) (required) |
処理結果の詳細を表すメッセージ。 |
payment_key_expiry_time string(14) (optional) |
payment_key の有効期限。(YYYYMMDDhhmmss 形式)エラー発生時は返戻されません。 |
HTTPステータスコード
POPはレスポンスで以下のHTTPステータスコードを返戻します。
ステータスコード | 説明 |
---|---|
201 Created |
リクエストは成功しました。 |
400 Bad Request |
リクエストパラメータのバリデーションに失敗しました。詳細についてはレスポンスパラメータのresult_code とmessage を参照してください。 |
401 Unauthorized |
マーチャント認証に失敗しました。 |
500 Internal Server Error |
POPで原因不明のエラーが発生しました。 |
フロントエンド
フロントエンドでは、ECサイト上にPOPのページを表示させる必要があります。 POPクライアントを消費者様のブラウザにロードさせることで、POPと通信を行います。 POPクライアント単体で、一連の決済処理を行うことが可能です。
POPクライアント導入手順
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
<script type="text/javascript"
src="<pop.js URL>"
data-client-key="<POP_CLIENT_KEY>">
</script>
</head>
<body>
<input type="button"
id="pay-button"
class="btn"
value="Pay">
<script type="text/javascript">
var options = {};
var payButton = document.getElementById('pay-button');
payButton.addEventListener('click', function() {
pop.pay("<payment-key>", options);
});
</script>
</body>
</html>
POPクライアントは、バックエンドにて、POPから payment_key
を取得後に開始されます。
- POPから
payment_key
を取得後、ブラウザに返戻するページにpop.js
をインクルードします。 - MAP(Merchant Administration Portal)から取得した
POP_CLIENT_KEY
を、pop.js
scriptタグのdata-client-key
属性の値に設定します。 pop.pay
関数をpayment_key
を引数に渡して呼び出すことで、決済処理が開始されます。
POP JS
POP JSは、pay
、accountManagement
、show
、hide
の4つの関数を公開しています。
pop.js
URL
https://pay3.veritrans.co.jp/pop/v1/javascripts/pop.js
pay(paymentKey, options)
POPクライアントの決済画面を表示するための関数です。
パラメータ:
名前 | 説明 |
---|---|
paymentKey string (required) |
バックエンドでPOPから取得したpayment_key です。 |
options.onSuccess function (optional) |
決済成功時コールバック関数。リクエストで設定されたsuccess_url をオーバーライドします。 |
options.onFailure function (optional) |
決済失敗時コールバック関数。リクエストで設定されたfailure_url をオーバーライドします。 |
options.onIncomplete function (optional) |
決済未完了時コールバック関数。リクエストに設定された incomplete_url をオーバーライドします。 |
options.skipOrderSummary boolean (optional) |
「true」の場合は、注文情報画面は表示されません。 Values: true or false (Default: false ) |
options.autoReturn boolean (optional) |
POPクライアントの決済完了画面を自動的に閉じるかどうかを決定します。 true : autoReturnDelay で指定された秒数が経過すると、決済完了画面を自動的に閉じます。 false : 決済完了画面は自動的に閉じられません。 Values: true or false (Default: false ) |
options.autoReturnDelay number (optional) |
決済完了画面が自動的に閉じるまでの時間(秒単位)。autoReturn = true の場合にのみ適用されます。 (Default: 0、すなわち決済完了画面がすぐに終了します) |
options.language string (optional) |
POPクライアントでの表示言語。対応している値は en 、ja 、zh です。 (Default: ja ) |
onSuccess
, onFailure
および onIncomplete
では、決済結果として、引数で一つのパラメータを受け取ることができます。
accountManagement(account_mgmt_key, options)
POPクライアントの会員管理画面を表示するための関数です。
名前 | 説明 |
---|---|
account_mgmt_key string (required) |
会員管理機能 - バックエンドによって、POPから受け取ったaccount_mgmt_key です。 |
options.language string (optional) |
POPクライアントでの表示言語。対応している値は en 、ja 、zh です。 (Default: ja ) |
show()
AJAXにより payment_key
を取得している間、ロード中であることを表示するためのヘルパー関数です。
AJAX成功後、決済処理を続行するためにpop.pay()
を呼び出します。AJAXが失敗した場合には、ロード中の表示を終了するためにpop.hide()
を呼び出します。
hide()
POPクライアントのロード中の表示を非表示にします。
AJAXでpayment_key
を取得中、pop.show()
がロード中の画面を表示した際に使用する、pop.show()
の補完的な関数です。
function ajaxGetPaymentKey(transactionData, callback){
var paymentKey;
// ECサイトにPayment Keyを取得するためのリクエストを送信し、結果をpaymentKey変数に保存する
if(paymentKey){ // Payment Keyの取得に成功
callback(null, paymentKey);
} else { // エラーメッセージを表示
callback(new Error('Failed to fetch Payment Key'), null);
}
}
// ECサイトのお支払いボタンのclickイベントで呼び出されるコード
payButton.onclick(function(){
pop.show();
ajaxGetPaymentKey(transactionData, function(error, paymentKey){
if(error){
pop.hide();
} else {
pop.pay(paymentKey);
}
});
});
JSコールバック
pop.pay(payment_key, {
onSuccess: function(result){console.log('success');console.log(result);},
onFailure: function(result){console.log('failure');console.log(result);},
onIncomplete: function(result){console.log('incomplete');console.log(result);}
})
pop.js
のpop.pay()
関数では、決済結果通知のstatus
にそれぞれ対応したコールバック関数を指定することができます。
これらのコールバック関数はリクエストで指定したリダイレクトURLよりも優先されます。
コールバック関数に渡されるresult
オブジェクトは、決済結果通知に記載されている値と同じです。
決済結果
POPが決済結果をECサイトにどのように提供するかについて説明します。
- ECサイトが指定したURLへのリダイレクト
- MAP(Merchant Administration Portal)での確認
リダイレクトによる決済結果通知
POPクライアントでの処理が終了した後、以下のパラメータがECサイトが指定したURLに送信されます。(リクエスト セクションに記載されている、success_url
または failure_url
がこれに該当します)
これらのパラメータは、name1=value1&name2=value2 という形式で、ECサイトが指定したURLにPOSTされます。
各決済共通で返戻されるパラメータと、決済毎に異なるパラメータが存在します。
パラメータの改ざんチェック方法につきましては、結果通知受信処理のセクションをご覧ください。
共通パラメータ
パラメータ | 説明 |
---|---|
merchant_id string(22) (required) |
マーチャントID。 |
order_id string(100) (required) |
取引ID。 |
status string(10) (required) |
決済結果。 Values: success or failure |
result_code string(4) (required) |
成功または失敗の具体的な理由を示す4文字の結果コード。 |
m_status string(10) (optional) |
決済ゲートウェイの決済結果。 決済ゲートウェイへのリクエスト送信前にエラーが発生した場合、返戻されません。 Values: success , failure or pending |
v_result_code string(16) (optional) |
決済ゲートウェイの結果コード。 決済ゲートウェイへのリクエスト送信前にエラーが発生した場合、返戻されません。 決済ゲートウェイが返戻する結果コードの詳細につきましては、こちらから「結果コード一覧」を参照してください。 |
payment_type string(15) (optional) |
消費者様が選択した決済種別。 Values: card , mpi , cvs or bank |
transaction_datetime string(14) (optional) |
取引日時。(YYYYMMDDhhmmss 形式) |
dummy boolean (required) |
ダミー取引かどうかを示す値。 Values: true or false |
signature string(128) (required) |
改ざんチェック用の署名。詳しくは結果通知受信処理をご覧ください。 |
カード決済パラメータ
カード決済時に共通パラメータと合わせて返戻されるパラメータです。
パラメータ | 説明 |
---|---|
acquirer_code string(2) (optional) |
仕向け先コード。 |
auth_code string(7) (optional) |
応答承認番号。 |
masked_card_number string(20) (optional) |
取引で使用された、マスクされたカード番号。カード番号は 000000*00 という形式で返戻されます(上6桁下2桁のみ数字表示され、その他は ‘*'(アスタリスク)に変換されます)。 |
コンビニ決済パラメータ
コンビニ決済時に共通パラメータと合わせて返戻されるパラメータです。
パラメータ | 説明 |
---|---|
result_type string (optional) |
結果通知の種別を表す値。 Value: applied - 決済申込時の結果通知の際に設定される値。 |
payment_sub_type string(5) (optional) |
消費者様が選択したコンビニ。 Values: sej - セブン-イレブンlawson - ローソン・ミニストップ・セイコーマートfamima - ファミリーマートecon - ローソン・ファミリーマート・ミニストップ・セイコーマートother - デイリーヤマザキ・ヤマザキデイリーストア |
receipt_number string(32) (optional) |
コンビニから返戻される受付番号。消費者様がお支払いをする際に必要となります。 |
haraikomi_url string(256) (optional) |
払込票を表示するためのURL。消費者様は払込票を使用してお支払いを行うことも可能です(payment_sub_type がsej またはother の場合のみ)。 |
銀行決済パラメータ
銀行決済時に共通パラメータと合わせて返戻されるパラメータです。
パラメータ | 説明 |
---|---|
result_type string (optional) |
結果通知の種別を表す値。 Value: applied - 決済申込時の結果通知の際に設定される値。 |
payment_sub_type string(5) (optional) |
消費者様が選択した銀行決済の利用方式。 Value: atm - ATM決済(ペイジー) |
agency_code string(8) (optional) |
収納機関番号。消費者様がお支払いをする際に必要となります。 |
customer_no string(20) (optional) |
お客様番号。消費者様がお支払いをする際に必要となります。 |
confirm_no string(6) (optional) |
確認番号。消費者様がお支払いをする際に必要となります。 |
会員ID決済パラメータ
会員情報が取引で使用された際は、追加のパラメータが返戻されます。
パラメータ | 説明 |
---|---|
paynow_account_id string(100) (optional) |
POPにリクエストされた会員IDが返戻されます。 |
paynow_status string(10) (optional) |
決済時の会員ID決済機能の処理結果。 Values: success or failure |
MAP(Merchant Administration Portal)
取引の状態については、MAP(Merchant Administration Portal)の「取引検索」メニューで検索を実施することで確認できます。
通知
POPは、ECサイトに以下の通知を非同期で実施します。
PUSH通知
POPは、リクエストで指定されたpush_url
にPUSH通知を送信することで、ECサイトに決済の結果を通知します。
パラメータはJSON形式で、ECサイトがリクエストで指定したpush_url
にPOSTされます。
push_url
で受信したパラメータの改ざんチェック方法につきましては、結果通知受信処理のセクションをご覧ください。
PUSH通知パラメータは、リダイレクトによる決済結果通知パラメータとおよそ共通しており、各決済共通で返戻されるパラメータと、決済毎に異なるパラメータが存在します。
共通パラメータ
リダイレクトによる決済結果通知の共通パラメータを参照してください。
カード決済パラメータ
リダイレクトによる決済結果通知のカード決済パラメータを参照してください。
カード決済パラメータ - 不正検知
不正検知機能の詳細につきましては、VeriTransまでお問い合わせください。
カード決済パラメータ - 会員ID決済
会員IDでの決済が行われた際に追加されるパラメータは、リダイレクトによる決済結果通知の会員ID決済パラメータを参照してください。
また、カード情報が登録・使用された場合、以下のパラメータが追加で返戻されます。
パラメータ | 説明 |
---|---|
card_id string(100) (optional) |
会員IDに紐づくカード情報のカードID。 MAPのPOP設定の「システム設定」タブにある「カード決済情報」の「PUSH通知付加情報」の「カードID」の設定が有効の場合のみ返戻されます。 |
コンビニ決済パラメータ
コンビニ決済では申込と入金のそれぞれに対し、ECサイトへの決済結果通知が行われます。
1. 決済申込完了通知: 決済申込が完了し、消費者様がお支払いに必要な情報を受け取ったことを通知します。
2. 入金完了通知: 消費者様のお支払いが完了したことを通知します。
決済申込完了通知
パラメータ | 説明 |
---|---|
result_type string (required) |
結果通知の種別を表す値。 Value: applied - 決済申込時の結果通知の際に設定される値。 |
payment_sub_type string(5) (required) |
消費者様が選択したコンビニ。 Values: sej - セブン-イレブンlawson - ローソン・ミニストップ・セイコーマートfamima - ファミリーマートecon - ローソン・ファミリーマート・ミニストップ・セイコーマートother - デイリーヤマザキ・ヤマザキデイリーストア |
receipt_number string(32) (optional) |
コンビニから返戻される受付番号。消費者様がお支払いをする際に必要となります。 |
haraikomi_url string(256) (optional) |
払込票を表示するためのURL。消費者様は払込票を使用してお支払いを行うことも可能です(payment_sub_type がsej またはother の場合のみ)。 |
first_name string(20) (optional) |
消費者様がPOPクライアント上で入力した名。MAPのPOP設定の「システム設定」タブにある「コンビニ決済情報」の「PUSH通知付加情報」の「氏名」の設定が有効の場合のみ返戻されます。 |
last_name string(20) (optional) |
消費者様がPOPクライアント上で入力した姓。MAPのPOP設定の「システム設定」タブにある「コンビニ決済情報」の「PUSH通知付加情報」の「氏名」の設定が有効の場合のみ返戻されます。 |
telephoneno string(11) (optional) |
消費者様がPOPクライアント上で入力した電話番号。MAPのPOP設定の「システム設定」タブにある「コンビニ決済情報」の「PUSH通知付加情報」の「電話番号」の設定が有効の場合のみ返戻されます。 |
入金完了通知
パラメータ | 説明 |
---|---|
result_type string (required) |
結果通知の種別を表す値。 Values paid - 消費者様の入金が完了した際に設定される値。 |
payment_sub_type string(5) (required) |
消費者様が選択したコンビニ。 Values: sej - セブン-イレブンlawson - ローソン・ミニストップ・セイコーマートfamima - ファミリーマートecon - ローソン・ファミリーマート・ミニストップ・セイコーマートother - デイリーヤマザキ・ヤマザキデイリーストア |
receipt_number string(32) (required) |
消費者様がお支払いの際に使用した受付番号。 |
cvs_type string(10) (required) |
消費者様が実際にお支払いを行ったコンビニ店舗。 Values: sej - セブン-イレブンecon-lw - ローソンecon-fm - ファミリーマートecon-mini - ミニストップecon-other - セイコーマートother - その他(デイリーヤマザキ) |
received_amount string(6) (required) |
消費者様がお支払いした金額。 |
銀行決済
銀行決済では申込と入金のそれぞれに対し、ECサイトへの決済結果通知が行われます。
1. 決済申込完了通知: 決済申込が完了し、消費者様がお支払いに必要な情報を受け取ったことを通知します。
2. 入金完了通知: 消費者様のお支払いが完了したことを通知します。
決済申込完了通知
パラメータ | 説明 |
---|---|
result_type string (required) |
結果通知の種別を表す値。 Value: applied - 決済申込時の結果通知の際に設定される値。 |
payment_sub_type string(5) (required) |
消費者様が選択した銀行決済の利用方式。 Value: atm - ATM決済(ペイジー) |
agency_code string(8) (optional) |
収納機関番号。消費者様がお支払いをする際に必要となります。 |
customer_no string(20) (optional) |
お客様番号。消費者様がお支払いをする際に必要となります。 |
confirm_no string(6) (optional) |
確認番号。消費者様がお支払いをする際に必要となります。 |
first_name string(20) (optional) |
消費者様がPOPクライアント上で入力した名。MAPのPOP設定の「システム設定」タブにある「銀行情報」の「PUSH通知付加情報」の「氏名」の設定が有効の場合のみ返戻されます。 |
last_name string(20) (optional) |
消費者様がPOPクライアント上で入力した姓。MAPのPOP設定の「システム設定」タブにある「銀行情報」の「PUSH通知付加情報」の「氏名」の設定が有効の場合のみ返戻されます。 |
first_name_kana string(20) (optional) |
消費者様がPOPクライアント上で入力した名(カナ)。MAPのPOP設定の「システム設定」タブにある「銀行情報」の「PUSH通知付加情報」の「氏名」の設定が有効の場合のみ返戻されます。 |
last_name_kana string(20) (optional) |
消費者様がPOPクライアント上で入力した姓(カナ)。MAPのPOP設定の「システム設定」タブにある「銀行情報」の「PUSH通知付加情報」の「氏名」の設定が有効の場合のみ返戻されます。 |
入金完了通知
パラメータ | 説明 |
---|---|
result_type string (required) |
結果通知の種別を表す値。 Value: paid - 消費者様の入金が完了した際に設定される値。 |
payment_sub_type string(5) (required) |
消費者様が選択した銀行決済の利用方式。 Value: atm - ATM決済(ペイジー) |
transaction_datetime string(14) (required) |
入金日時。(YYYYMMDDhhmm 形式) |
received_amount string(10) (required) |
入金金額。 |
agency_code string(8) (required) |
収納機関コード。 |
customer_no string(20) (required) |
お客様番号。 |
confirm_no string(6) (required) |
確認番号。 |
company_code string(5) (required) |
収納企業コード。 |
メール通知
マーチャント様と消費者様への決済結果のメール通知について説明します。
マーチャント様へのメール通知
マーチャント様へのメール通知機能が有効になっており、マーチャント様のメールアドレスが登録されている場合、POPは決済毎に以下のタイミングでメールを送信します。
カード決済 - 決済の結果が成功または失敗の時、POPは1回メールを送信します。
コンビニ決済、銀行決済 - POPは最大2回メールを送信します。
1. 決済申込の結果が成功または失敗の時。
2. 消費者様のお支払いが完了した時。
消費者様へのメール通知
消費者様へのメール通知機能が有効になっており、リクエストのcustomer_email_address
が設定されている場合、POPは決済毎に以下のタイミングでメールを送信します。
カード決済 - 決済の結果が成功の時、POPは1回メールを送信します。
コンビニ決済、銀行決済 - POPは最大2回メールを送信します。
1. 決済申込の結果が成功の時。
2. 消費者様のお支払いが完了した時。
消費者様へのメールのfromには、MAPのPOP設定の「システム設定」タブに登録された送信元メールアドレスが設定されますが、メールは弊社ドメイン(veritrans.co.jp)から送信されます。送信元ドメインと送信元メールアドレスのドメインが異なっていると、メール受信先がなりすましメール対策を行っている場合、受信が拒否される可能性があります。
受信を拒否されないようにするため、以下の対策を行ってください。
送信元メールアドレスに指定したドメインのDNSにSPFレコードを追加し、SPFレコードに、ベリトランスのメールサーバーの情報「cvs.veritrans.co.jp」を登録します。
本対策に関しましては、ドメインのネットワーク管理者にご相談ください。
結果通知受信処理
// Step 1 - 全パラメータとその値を取得してください。
// Step 2 - signatureパラメータを除いた全てのパラメータをアルファベット順にソートしてください。
// Step 3 - パラメータを name=value の形式にし、`POP_SERVER_KEY`を後ろに付加した文字列を生成してください。
// booleanのパラメータは"true"または"false"の文字列をvalueとして使用してください。
inputString = ( name1=value1&name2=value2&...&nameN=valueN )
+ ":" + POP_SERVER_KEY;
// Step 4 - SHA512ハッシュ関数により署名を生成してください。
signature = SHA512( inputString );
// Step 5 - 結果通知で受信したsignatureパラメータと、他のパラメータから生成した署名の値を比較してください。
POPは、リダイレクトによる決済結果通知とPUSH通知の両方で、パラメータにsignature
を追加します。
signature
は通知に含まれるパラメータ名とその値により生成されます。
ECサイトで同様のロジックにより署名を生成し、POPから受け取ったsignature
と比較してください。両方の署名が一致している場合にのみ、ECサイトで後続処理を行ってください。
リンク生成機能
POPは通常のPOPクライアントに加え、決済画面のリンクURL生成機能も提供しています。 ECサイトは取得したURLを電子メールやSMSのメッセージ機能等を使って消費者様に送信し、POPが生成した決済画面に誘導することが可能です。その決済画面からPOPクライアントが表示されます。リダイレクト機能やPOP JSのオプションは使用できません。本機能はMAP(Merchant Administration Portal)からもご利用いただけます。
エンドポイント
Payment Link
https://pay3.veritrans.co.jp/pop/v1/link-pay
リクエスト
HTTPメソッド
POST
リクエストヘッダ
リクエストに設定するヘッダの詳細はリクエストヘッダを参照してください。
リクエストパラメータ
以下のパラメータを除いて、バックエンドのリクエストパラメータのすべてのパラメータを設定できます。
success_url
failure_url
incomplete_url
レスポンス
POPは有効なリクエストに対して、バックエンドのレスポンスパラメータに加えて、以下の表のパラメータをレスポンスとして返戻します。 リクエストに失敗した際にPOPから返戻される結果コードについては、結果コードを参照してください。
成功時のレスポンス
{
"payment_key" : "28GTzdVOZNeImaHMDeQF1319",
"result_code" : "R000",
"status" : "success",
"message" : "\"Payment Key\" has been generated successfully",
"payment_key_expiry_time" : "20200401000000",
"pay_link_url" : "https://pay3.veritrans.co.jp/pop/v1/payment-link?payment_key=28GTzdVOZNeImaHMDeQF1319&client_key=client101"
}
失敗時のレスポンス
{
"result_code" : "RC01",
"status" : "failure",
"message" : "Invalid \"Order ID\""
}
レスポンスパラメータ
パラメータ | 説明 |
---|---|
pay_link_url string(256) (optional) |
POPが生成した決済画面のリンクURL。 エラー発生時は返戻されません。 |
HTTPステータスコード
POPから返戻されるHTTPステータスコードについては、HTTPステータスコードを参照してください。
会員管理機能
会員管理機能のご利用により、ECサイトの会員(消費者様)が利用するカード情報をVeriTransに登録し、次回の購入時には登録済みのカード情報で決済させることが可能になります。カード情報の登録・更新・削除の画面は、POPが消費者様に提供しますので、ECサイトでは会員が利用するカード情報を意識する必要はございません。
この機能は、POPの決済処理と同じ要領で実装できます。詳しくは、概要, バックエンドおよびフロントエンドを参照してください。
※別途ワンクリック継続課金の契約が必要です。
開発手順
- 消費者様は、カード情報の管理画面を開くための操作を行います。
- ECサイトはPOPのAPIにリクエストし、
account_mgmt_key
を取得します。 - POPはレスポンスで
account_mgmt_key
を返戻します。 - ECサイトはhtmlページを作成し、消費者様のブラウザへ返戻します。
- htmlファイルは
pop.accountManagement(<account_mgmt_key>, options)
を呼び出します。これにより、消費者様はブラウザに表示された画面から、カード情報の登録・更新・削除を行うことが可能です。
バックエンド
ECサイトはPOPにリクエストを送信して、account_mgmt_key
を取得します。POPより返戻されたaccount_mgmt_key
は会員管理機能 - フロントエンドで使用します。
エンドポイント
Account Management Key
https://pay3.veritrans.co.jp/pop/v1/paynow-acctmgmt-key
リクエスト
HTTPメソッド
POST
リクエストヘッダ
リクエストに設定するヘッダの詳細はリクエストヘッダを参照してください。
リクエストパラメータ
{
"paynow_account_id" : "TEST-ACCOUNT-101",
"dummy" : true,
"account_mgmt_key_expiry_duration" : 1440
}
リクエストには、以下のパラメータが指定可能です。
パラメータ | 説明 |
---|---|
paynow_account_id string(100) (required) |
会員ID。消費者様毎に一意になるように指定してください。該当する会員情報が存在しない場合は、カードが登録された場合に限り、指定されたIDで新規に会員情報を作成します。 |
dummy boolean (optional) |
ダミー会員に対し会員管理機能を利用するために設定します。VeriTransとの結合テスト用にご利用ください。 Values: true or false (Default: false ) |
account_mgmt_key_expiry_duration number(6) (optional) |
account_mgmt_key が生成されてから利用不可となるまでの有効期間を「分」で指定します。Maximum value: 129600 (Default: 1440) |
レスポンス
POPは有効なリクエストに対して、会員管理機能 - フロントエンドに必要なaccount_mgmt_key
を返戻します。
リクエストに失敗した際にPOPから返戻される結果コードについては、結果コードを参照してください。
レスポンスパラメータ
成功時のレスポンス
{
"account_mgmt_key" : "uxhn7T0eWt22XHycTNr11702",
"result_code" : "R000",
"status" : "success",
"message" : "Success",
"account_mgmt_key_expiry_time" : "20200401000000"
}
失敗時のレスポンス
{
"result_code" : "RC2B",
"status" : "failure",
"message" : "Invalid value for \"Account Management Key Expiry Duration\""
}
パラメータ | 説明 |
---|---|
account_mgmt_key string(24) (optional) |
リクエストに対してPOPが生成した一意のaccount_mgmt_key 。エラー発生時は返戻されません。 |
result_code string(4) (required) |
成功または失敗の具体的な理由を示す4文字の結果コード。 |
status string(7) (required) |
処理のステータス。 Values: success or failure |
message string(256) (required) |
処理結果の詳細を表すメッセージ。 |
account_mgmt_key_expiry_time string(14) (optional) |
account_mgmt_key の有効期限。(YYYYMMDDhhmmss 形式)エラー発生時は返戻されません。 |
HTTPステータスコード
POPから返戻されるHTTPステータスコードについては、HTTPステータスコードを参照してください。
フロントエンド
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
<script type="text/javascript"
src="<pop.js URL>"
data-client-key="<POP_CLIENT_KEY>">
</script>
</head>
<body>
<input type="button"
id="manage-paynowid-button"
class="btn"
value="Managing PayNowID">
<script type="text/javascript">
var options = {};
var managePayNowIDButton = document.getElementById('manage-paynowid-button');
managePayNowIDButton.addEventListener('click', function() {
pop.accountManagement("<account_mgmt_key>", options);
});
</script>
</body>
</html>
POPクライアントは、会員管理機能 - バックエンドにて、POPからaccount_mgmt_key
を取得後に開始されます。
- POPから
account_mgmt_key
を取得後、ブラウザに返戻するページにpop.js
をインクルードします。 - MAP(Merchant Administration Portal)から取得した
POP_CLIENT_KEY
をpop.js
scriptタグのdata-client-key
属性の値に設定します。 pop.accountManagement
関数をaccount_mgmt_key
を引数に渡して呼び出すことで、カード情報の管理画面が表示されます。
稼働確認
マーチャント様専用のアカウントに設定されているPOP_SERVER_KEY
とPOP_CLIENT_KEY
をご利用いただく場合、
リクエストにて、dummy
をtrue
に設定していただくことで、ダミーモードでの取引が実施可能となります。
また、POPでは共用のテストアカウントもご用意しております。
共用のテストアカウントをご利用いただく際には、こちらから「テスト利用情報通知書」を参照してください。
「テスト利用情報通知書」には、共通アカウントのMAPログイン情報が記載されております。
準備のセクションもあわせてご確認ください。
決済別のテスト仕様
POPとの連携が問題なく実施できているかを確認するため、ECサイトでは以下の確認項目を実施していただく必要があります。全ての確認項目で問題がなければ、ECサイトの本番運用の準備が整います。
バックエンド
確認項目 | 期待される結果 |
---|---|
POPに対しPayment Keyをリクエストする | POPがPayment Keyを返戻する。 |
フロントエンド
確認項目 | 期待される結果 |
---|---|
POPクライアント導入手順に従いHTMLを取得する | POPの決済画面がブラウザ上に表示される。 |
決済結果
確認項目 | 期待される結果 |
---|---|
success_url へのリダイレクト |
取引成功後、POPがリクエストで指定された決済成功時URLに、リダイレクトによる決済結果通知に記載されているパラメータを伴って消費者様を遷移させる。 |
failure_url へのリダイレクト |
取引失敗後、POPがリクエストで指定された決済失敗時URLに、リダイレクトによる決済結果通知に記載されているパラメータを伴って消費者様を遷移させる。 |
incomplete_url へのリダイレクト |
取引の途中でPOP画面を閉じた後、POPがリクエストで指定された決済未完了時URLに、リダイレクトによる決済結果通知に記載されているパラメータを伴って消費者様を遷移させる。 |
MAPで取引が更新されていることの確認 | ダミー取引実施後、取引情報がMAPに表示されている。 |
決済結果通知
確認項目 | 期待される結果 |
---|---|
push_url への決済結果の送信 |
取引完了後、POPがリクエストで指定された決済結果通知URLに、PUSH通知に記載されているパラメータを送信する。 |
設定したメールアドレスへのメール送信 | 取引完了後、設定したメールアドレスに取引の内容が記載されたメールが送信される。 |
クレジットカード
カード決済の与信取得および3Dセキュア(本人認証)のテストについて説明します。
クレジットカード決済
クレジットカード決済のテスト方法について説明します。
カード番号
以下のテストカード番号と任意の有効期限(一部を除く)および任意のセキュリティコードを設定いただくと、成功レスポンスが戻ります。
実在のクレジットカードを用いた場合はすべてエラーとなりますのでご注意ください。
テストカード以外で取引を実施された場合、v_result_code
はAC09
となります。
3Dセキュアのテストを実施する場合は以下のカード番号ではなく3Dセキュア用のカード番号を使用してください。
Brand | Card Number |
---|---|
Visa | 4111111111111111 |
MasterCard | 5555555555554444 |
JCB | 3528000000000007 |
AMEX | 378282246310005 |
Diners | 36666666666660 |
カード有効期限
任意の有効期限(MM/YY)が設定可能です。 なお、テストカード番号と合わせて以下の有効期限を入力いただくことで、エラーレスポンスが戻ります。
Expiration Date | vResultCode | Expiration Date | vResultCode |
---|---|---|---|
01/99 | AG33 |
09/99 | AG61 |
02/99 | AG41 |
10/99 | AG49 |
03/99 | AG64 |
11/99 | AG48 |
04/99 | AG39 |
12/99 | AG44 |
05/99 | AG45 |
01/98 | AG47 |
06/99 | AG70 |
02/98 | AG71 |
07/99 | AG46 |
03/98 | AG51 |
08/99 | AG72 |
セキュリティコード
任意の3桁あるいは4桁の数値が設定可能です。
3Dセキュア(本人認証)
3Dセキュアでは、本人認証タイプ毎に認証結果の判定方法(カード決済を行う/行わないの判定)が異なります。そのため、本人認証タイプ毎に想定されるシナリオ(認証成功/みなし認証成功/不正疑いによる認証NG/システム障害による認証不可等)をテストできるようにしています。
それぞれのシナリオについて3Dセキュア用のテストカード番号を準備しております。 カード番号により、3Dセキュア(本人認証)成功、失敗、認証不可、異常終了等のシナリオテストが実施可能です。
3Dセキュア用のテストカード番号は、3DS2.0補足資料の「B.シナリオ別コード一覧」に記載しております。「B.シナリオ別コード一覧」に記載のないカード番号で取引を実施された場合、v_result_codeはNH02となりますのでご注意ください。
3DS2.0補足資料(B.シナリオ別コード一覧)はこちらからダウンロードしてください。
コンビニエンスストア
コンビニ決済では、決済申込成功と決済申込失敗のテストが実施できます。
確認項目 | 期待される結果 |
---|---|
コンビニ決済(成功) 電話番号の上2桁に 09, 08, 07, 06, 05のいずれかを指定してください |
取引が成功していること |
コンビニ決済(失敗) 電話番号の上2桁に 00, 01, 02, 03, 04のいずれかを指定してください |
取引が失敗していること |
銀行
銀行決済では、決済申込成功と決済申込失敗のテストが実施できます。
確認項目 | 期待される結果 |
---|---|
銀行決済(成功) 合計金額の下1桁に0を指定してください |
取引が成功していること |
銀行決済(失敗) 合計金額の下1桁に0以外を指定してください |
取引が失敗していること |
本番運用の開始
VeriTransより発行された、マーチャント様専用のPOP_SERVER_KEY
とPOP_CLIENT_KEY
をご利用ください。
リクエストにて、dummy
の値をtrue
に設定してテストを実施していただき、動作に問題がないことを十分に確認していただいた後、
dummy
の値をfalse
に設定していただくことで、切り替えが完了となります。
切り替えのタイミングは、マーチャント様の任意のタイミングで実施可能です。 なお、接続先のURLは特に変更していただく必要はございません。
結果コード
バックエンドとフロントエンドでの処理結果に応じて、POPから結果コードが返戻されます。
フロントエンドにおける結果コードについては、リダイレクトによる決済結果通知とPUSH通知にて返戻されます。
また、リダイレクトによる決済結果通知のv_result_code
パラメータでは、決済ゲートウェイの結果コードについて確認することが可能です。
共通
以下の結果コードは共通であり、どのステップでも返戻される可能性があります。
結果コード | 説明 |
---|---|
R000 |
Successful transaction |
RA01 |
Application Error - VeriTransで原因不明のエラーが発生した場合 |
RD01 |
Database Error - VeriTransのデータベース処理でエラーが発生した場合 |
バックエンド
結果コード | 説明 |
---|---|
RC01 |
“Order ID"が無効です |
RC03 |
"Gross Amount"が無効です |
RC04 |
"Shipping Amount"が無効です |
RC06 |
"Enabled Payment Types"が無効です |
RC07 |
"Success URL"が無効です |
RC08 |
"Failure URL"が無効です |
RC09 |
"Incomplete URL"が無効です |
RC10 |
"Push URL"が無効です |
RC12 |
“Payment Key Expiry Duration”が無効です |
RC13 |
"Item - ID"が無効です |
RC14 |
"Item - Name"が無効です |
RC15 |
"Item - Price"が無効です |
RC16 |
"Item - Quantity"が無効です |
RC17 |
マーチャント認証に失敗しました。POP_SERVER_KEY をご確認ください |
RC19 |
"CVS - Payment Sub Type"が無効です |
RC20 |
取引がすでに存在しています |
RC21 |
利用できない決済方法です |
RC22 |
3Dセキュア(本人認証)は契約が無いため、ご利用いただけません |
RC26 |
"Dummy"が無効です |
RC27 |
"Capture"が無効です |
RC28 |
"Card - MPI"が無効です |
RC29 |
"Enabled Payment Types"が重複しています |
RC30 |
サポートしていない"Media Type"です |
RC31 |
必須パラメータが不足しています |
RC32 |
GETメソッドは対応していません |
RC33 |
商品リストが正しくありません |
RC43 |
JSON文字列が無効です |
RC44 |
テストアカウントでは、"Dummy"に"true"を設定してください |
RC46 |
"CVS - Payment Expiry Duration"が無効です |
RC50 |
利用できない"CVS - Payment Sub Type"です |
RC51 |
"CVS - Payment Sub Type"が重複しています |
RC5E |
"CVS - Payment Expiry Date"が無効です |
RC5F |
"CVS - Payment Expiry Duration"と"CVS - Payment Expiry Date"を同時に設定することはできません |
RC0Y |
"Enable Fraud Detection"が無効です |
RC2A |
"PayNow Account ID"が無効です |
RC2B |
“Account Management Key Expiry Duration”が無効です |
RC2D |
"Save Card"が無効です |
RC2E |
"Skip Card Selection"が無効です |
RC2N |
リクエストパラメータの "Save Card"および"Skip Card Selection"を設定する際は、"PayNow Account ID"を設定してください |
RC5A |
"Customer Email Address"が無効です |
RC5B |
"Customer Name"が無効です |
RC1L |
利用できない"Bank - Payment Subtype"です |
RC1M |
"Bank - Payment Expiry Duration"が無効です |
RC1N |
"Bank - Payment Subtype"が無効です |
RC1O |
"Bank - Payment Subtype"が重複しています |
RC1R |
"Bank - Contents"が無効です |
RC1S |
"Bank - Kana contents"が無効です |
RC1V |
"Bank - Payment Expiry Date"が無効です |
RC1W |
"Bank - Payment Expiry Duration"と"Bank - Payment Expiry Date"を同時に設定することはできません |
RC1X |
"CVS - Payment Expiry HHMM"が無効です |
RC5G |
"Custom Message - Show Items Additional Message"が無効です |
RC5H |
"Custom Message - Items Additional Message"が無効です |
RC5J |
"Card - 3D Secure Version"が無効です |
RC5M |
"Cardholder Email Address"が無効です |
RC5N |
"Cardholder Home Phone Number"が無効です |
RC5O |
"Cardholder Mobile Phone Number"が無効です |
RC5P |
"Cardholder Work Phone Number"が無効です |
RC5Q |
"Cardholder Home Phone Number Country Code"が無効です |
RC5R |
"Cardholder Mobile Phone Number Country Code"が無効です |
RC5S |
"Cardholder Work Phone Number Country Code"が無効です |
フロントエンド
以下の結果コードは、フロントエンドステップで返戻されます。
結果コード | 説明 |
---|---|
RC17 |
認証に失敗しました。POP_CLIENT_KEY をご確認ください |
RC18 |
payment_key が無効もしくは登録されていません |
RC25 |
payment_key ステータスが無効です。現在の注文ステータスと一致しないPOPクライアントからのリクエストがある場合に発生します |
RC34 |
payment_key は期限切れです |
RC5C |
3Dセキュア(本人認証)を行うための時間が確保できません。3Dセキュア(本人認証)が有効かつPOP上で決済を実施したタイミングでpayment_key の残り有効期限が1分未満の場合に発生します |
RT01 |
カード情報の送信に失敗しました |
RM01 |
決済ゲートウェイでエラーが発生しました |
RM03 |
POPから決済ゲートウェイへのリクエスト中にエラーが発生しました。 |
FAQ
よくあるご質問については、こちらから「接続方式」の「POP(4G)」をご参照ください。
改訂履歴
v1.8.1
2025/4/9
「通知」の「PUSH通知」の「カード決済パラメータ - 会員ID決済」にcard_id
パラメータを追加しました。
v1.8
2024/5/29
「バックエンド」の「リクエスト」の「カード決済用パラメータ」に3Dセキュア(本人認証)に関する記載を追加しました。
mpi
パラメータの説明に注意文を追加。cardholderEmail
、cardholderHomePhoneNumber
、cardholderHomePhoneNumberCountry
、cardholderMobilePhoneNumber
、cardholderMobilePhoneNumberCountry
、cardholderWorkPhoneNumber
、cardholderWorkPhoneNumberCountry
のパラメータを追加。
結果コードを更新しました。
RC5M
、RC5N
、RC5O
、RC5P
、RC5Q
、RC5R
、RC5S
を追加。
v1.7.6
2024/3/13
「決済結果」の「リダイレクトによる決済結果通知」の「カード決済パラメータ」のauth_code
の桁数を変更しました。
「通知」の「結果通知受信処理」の手順から「step2a」を削除しました。
「リンク生成機能」の「エンドポイント」に注意点を追加しました。
「フロントエンド」の「POPクライアント導入手順」および「会員管理機能」の「フロントエンド」に記載のサンプルコードの「src」タグを更新しました。
「稼働確認」の「クレジットカード」の「カード番号」に3Dセキュア実施時の説明を追加しました。
「稼働確認」の「クレジットカード」の「3Dセキュア(本人認証)」にシナリオに関する説明を追加しました。
接続先ドメインをpay3.veritrans.co.jp
に変更しました。
- 「バックエンド」の「エンドポイント」の「Payment Key」。
- 「フロントエンド」の「POP JS」の「pop.js URL」。
- 「リンク生成機能」の「エンドポイント」の「Payment Link」。
- 「リンク生成機能」の「レスポンス」サンプルコードの「pay_link_url」。
- 「会員管理機能」の「バックエンド」の「Account Management Key」。
MAP(Merchant Administration Portal)のリンクの接続先ドメインをadmin3.veritrans.co.jp
に変更しました。
v1.7.5
2023/7/5
「バックエンド」の「リクエスト」のpayment_key_expiry_duration
に説明を追加しました。
「バックエンド」の「リクエスト」にコンビニ決済に関する記載を追加しました。
payment_expiry_duration
にlawson
とfamima
のデフォルト値と最大値を追加しました。payment_expiry_hhmm
パラメータを追加。
v1.7.4
2022/11/24
「バックエンド」の「リクエスト」のincomplete_url
に説明を追加しました。
コンビニ決済に関してlawson
、famima
の記載を追加しました。
- 「バックエンド」の「リクエスト」の「コンビニ決済用パラメータ」に
payment_sub_type
の説明を更新しました。 - 「決済結果」の「リダイレクトによる決済結果通知」に記載の「コンビニ決済パラメータ」に
payment_sub_type
の説明を更新しました。 - 「通知」の「PUSH通知」の「決済申込完了通知」、「入金完了通知」の説明を更新しました。
v1.7.3
2021/10/25
「バックエンド」の「リクエスト」の「カード決済用パラメータ」に3ds_version
の記載を追加しました。
「通知」の「PUSH通知」の補足情報に、PUSHリトライオーバー通知機能の翌日送信について記載を追加しました。
Aegisサービス終了に伴い、enable_fraud_detection
パラメータに関連する記載を削除しました。
3ds_version
に関する結果コードを追加しました。
結果コードのRM03
の説明を更新しました。
「通知」の「PUSH通知」の「コンビニ決済パラメータ」の「決済申込完了通知」のresult_type
パラメータをoptionalからrequiredに修正しました。
v1.7.2
2020/12/15
「通知」の「メール通知」にメールのなりすまし対策への対策SFPレコードについて記載を追加しました。
v1.7.1
2020/8/4
「バックエンド」の「リクエスト」のコンビニ決済用および銀行決済のpayment_expiry_durationパラメーターの記載を追加しました。
v1.7
2020/1/20
銀行決済の記載を追加しました。
リンク生成機能の記載を追加しました。
カスタムメッセージパラメータの記載を追加しました。
コンビニ決済に関する記載を追加しました。
- 「バックエンド」の「リクエスト」のパラメータに
payment_expiry_date
を追加。 - 「通知」の「PUSH通知」のパラメータに
first_name
、last_name
およびtelephoneno
の記載を追加。
TLSのサポート対象を変更しました。
v1.6
2019/3/27
payment_key
とaccount_mgmt_key
の有効期限を設定するパラメータpayment_key_expiry_duration
とaccount_mgmt_key_expiry_duration
の記載を追加しました。
payment_key_expiry_duration
とaccount_mgmt_key_expiry_duration
に関する結果コードを追加しました。
PUSHリトライオーバー通知機能の記載を追加しました。
広告ブロックの拡張機能の記載を追加しました。
v1.5
2018/7/12
3Dセキュア(本人認証)利用時に不正検知を実施可能になりました。
不正検知に関する記載を更新しました。
- 「バックエンド」の「リクエスト」に記載の
enable_fraud_detection
の説明を更新。 - 「通知」の「PUSH通知」に記載の「カード決済パラメータ - 不正検知」の説明を更新。
v1.4
2018/5/18
消費者様へのメール通知機能の記載を追加しました。
FAQを追加しました。
MAP(Merchant Administration Portal)のリンクを更新しました。
バックエンドにHTTPステータスコードの記載を追加しました。
v1.3
2017/12/21
カード決済に会員ID決済の記載を追加しました。
会員管理機能の記載を追加しました。
v1.2
2017/8/31
カード決済に不正検知の記載を追加しました。
v1.1
2017/6/27
コンビニ決済の記載を追加しました。
pop.js
URLを変更しました。
v1.0
2017/3/31
カード決済の実装方法について記載しています。