DGFT VeriTrans4G開発ガイド

MDK(SDK)共通開発ガイド

導入の前に

本ガイドの内容

本ガイドは、(株)DGフィナンシャルテクノロジーが提供するVeriTrans4Gを利用するための専用ソフトウェアMDK(Merchant Development Kit)をインターネット店舗などに導入する開発者向けのガイドです。

開発の際の参考となるサンプルや、提供ライブラリの説明、電文フォーマットなどについて記載しています。

MDK(Merchant Development Kit)について

MDKは、店舗様サイトに組み込んで頂く、ライブラリモジュールの総称です。Java、PHP等 複数言語のMDKをご用意しております。MDKのサポートページからサーバー環境に合ったMDKをダウンロードして下さい。

店舗様サイトに組み込み、設定・カスタマイズを行うことによって、ご契約のサービスで決済を行うことができます。複数のサービスを同時に利用可能です。

動作環境については『MDK インストールガイド』をご参照ください。

Ruby / Java / .NET / PHP8

サービス概要

利用可能な決済手段

利用可能な決済手段は下表のとおりです。

表 2-1-1 決済サービス一覧
決済サービス名 説明
クレジットカード決済 各種ブランド、カード会社等発行のクレジットカードでのお支払いが可能です。
3Dセキュア クレジットカード決済と連動する、3-D Secureによる認証サービスです。
コンビニ決済 セブン-イレブン、ローソン、ファミリーマート等のコンビニエンスストア店舗でのお支払いが可能です。
電子マネー決済 電子マネー(Suica、Edy、WAON)を利用したECでのお支払いが可能です。
銀行決済 銀行、信用金庫等の金融機関のATMでの支払い、および、ネットバンキングでのお支払いが可能です。
銀聯ネット決済(UPOP) 銀聯カードでのお支払いが可能なオンラインサービスです。
PayPal決済 PayPalのアカウント(メールアドレス)によるお支払いが可能です。
Alipay決済 Alipayのアカウントを利用したお支払いが可能です。EC向けのオンライン決済だけでなく、リアル店舗でのバーコードを利用した決済が可能です。
キャリア決済 通信キャリアの通信料金と合算して支払うことができるサービスです。
4つの通信キャリア(ドコモケータイ払い、au PAY(auかんたん決済)/au PAY(ネット支払い)、ソフトバンクまとめて支払い(B)/ソフトバンクまとめて支払い(A))による支払いが可能です。
楽天ペイ(オンライン決済) 楽天ペイ(オンライン決済) 楽天会員IDを利用して決済できるサービスです。
楽天ポイントを利用したお支払いが可能です。
リクルートかんたん支払い リクルートIDを利用して決済できるサービスです。 リクルートポイントや、クーポンを利用したお支払いが可能です。
LINE Pay LINEのユーザIDを利用して決済できるサービスです。 LINE Payに登録したクレジットカードか、チャージした金額にてお支払いが可能です。 リアル店舗向けのバーコードを利用した決済も可能です。

各決済のシステムフローは、『概略システムフロー図』をご参照ください。

ワンクリック継続課金サービスについて

会員管理機能を利用することで、店舗様が運営するECサイト等の利用会員(消費者)と、決済に利用するクレジットカード情報、取引結果等を関連付けて管理することが可能です。この「会員管理機能」と「継続課金機能」を組み合わせることで、定期購入の代金やサービスの月額会費等の支払いのための、定期的な決済を行うことができます。

これらのサービスの総称を「ワンクリック継続課金サービス」と呼びます。

ワンクリック継続課金サービスを導入することで、以下の機能をご利用になれます。

  • 会員管理(ID管理)

    サイトの利用会員(消費者)のIDと、クレジットカード情報、継続課金のスケジュールを登録します。
    登録した情報は変更(更新)、削除が可能です。

  • 会員IDを利用した決済

    カード決済要求時に会員IDを指定し、会員IDに紐付いたクレジットカード情報で決済します。
    カード以外の決済時にも、会員IDを指定することにより、決済結果と会員IDを関連付けることができます。

  • 継続課金

    定期購入の代金やサービスの月額会費等の支払いのために、定期的に決済を実行します。

  • クレジットカード洗替

    クレジットカード番号や有効期限の有効性を確認し、新しい情報に更新します。

詳しくは、『ワンクリック継続課金サービス ご利用ガイド』を参照して下さい。

不正検知サービスについて

従来のクレジットカード決済に不正検知機能を統合した「完全一体型」のサービスで、店舗様の不正対策業務を支援いたします。店舗様のニーズに合わせて、複数の不正検知エンジンの中から利用するエンジンを選択可能です。

  • カード会社への与信要求と並行して不正判定エンジンによる解析を実行し、与信結果(成功/失敗)と不正判定結果(許可/保留/拒否)を併せて店舗様のシステムに返戻します。
  • 不正検知の判定結果は、管理ツール(MAP)の取引情報画面で確認できます。

不正検知サービスのご利用には、別途お申込みが必要です。詳しくは、『不正検知サービス ご利用ガイド』をご参照のうえ、弊社の営業担当までお問い合わせください。

MDK(Merchant Development Kit)の導入

MDKの導入手順

MDKの導入手順について説明します。

No. 作業 作業内容 備考
1 MDKの入手 ベリトランスのサポートページより、店舗様の導入環境に適応するMDKと、関連するドキュメント類をダウンロードします。 https://www.veritrans.co.jp/trial/login/  
2 外部リソースの入手 MDKの導入環境情報を参照し、導入に必要なソフトウェアやライブラリをダウンロード/入手します。

『MDKインストールガイド』を参照して下さい。

Ruby / Java / .NET / PHP8

3 外部リソースの配置・環境の設定 ダウンロードしたソフトウェアやライブラリの配置・設定を行います。
4 MDKのインストール ダウンロードしたファイルを解凍し、インストールします。
認証のために必要なAPI設定情報を管理ツール(MAP)より入手し、MDK設定ファイルに必要な設定を行います。
5 通信テスト(テスト環境) ベリトランス折り返しの通信テストを実施します。
ダミーモードを"ON"に設定し、MDKの動作確認、ベリトランスと通信が可能かを確認します。テスト専用アカウントの配布も可能です。
『導入テストガイド』を参照して下さい。
6 通信テスト(本番環境) 各決済センターまでの通信テストを実施します。
ダミーモードを"OFF"に設定し、本番の決済が可能か確認します。

※この通信は本番取引としてトランザクション料が課金されますのでご注意ください。

※開発言語ごとにMDKが動作する実行環境の要件が定められています。詳細は、弊社ホームページ、または『MDKインストールガイド』をご参照ください。
Ruby / Java / .NET / PHP8

※弊社動作確認済み環境に合致しない環境(OS等)に導入される場合にはサポートを致しかねる場合がございます。
また、以下の項目については原則としてサポートは致しかねますので、予めご了承ください。

  • 独自にカスタマイズされたOS(カーネル)上での動作確認
  • 独自にカスタマイズされたプログラムに関するお問い合わせ
  • MDKとは関連のないサーバー環境設定等

利用可能なMDKコマンド

表 3-2-1 利用可能なMDKコマンド
コマンド名 Authorize ReAuthorize Capture Cancel Refund その他 Search
決済サービス名 クレジットカード決済 ○ ○ ○ ○     ○
与信 再取引 売上 キャンセル     検索

3Dセキュア

○ ○ ※カード決済の売上、キャンセルを実行します。     ○
本人認証 再取引     検索
コンビニ決済 ○   △ ○     ○
申込   (入金通知) キャンセル     検索
電子マネー決済 ○   △ ○ ○   ○
申込   (入金通知) キャンセル 返金   検索
銀行決済 ○   △       ○
申込   (入金通知)       検索
銀聯ネット決済(UPOP) ○   ○ ○ ○   ○
与信   売上 キャンセル 返金   検索
PayPal決済 ○   ○ ○ ○   ○
与信   売上 キャンセル 返金   検索
Alipay決済 ○       ○ Confirm ○
与信同時売上       返金/返金申込 決済ステータス確認 検索
キャリア決済 ○   ○ ○   Terminate ○
与信または 継続課金申込   売上 キャンセル   継続課金終了 検索
ショッピング
クレジット決済
○   ○       ○
画面表示   (審査結果通知)       検索
楽天ペイ(オンライン決済) ○   ○ ○     ○
申込   売上 キャンセル     検索
リクルート かんたん支払い ○   ○ ○   ExpandAuth ○
申込   売上 キャンセル   与信期限延長 検索
LINE Pay ○   ○ ○     ○
申込   売上 キャンセル     検索
説明 与信や、支払の申込を要求します。 過去の取引情報を元に再度与信、や支払の申込を要求します。 与信済みの取引の売上確定を要求します。 与信・申込や売上に対する取消を行います。 売上済み取引に対し返金を要求します。 各サービスの『インターフェース詳細』 ページをご参照ください。 取引情報の検索を行います。

サービス毎に、コマンドの利用条件は異なりますので、各サービスの『インターフェース詳細』 ページをご参照ください。

Authorizeコマンド(与信、申込)

通常、決済の申込のために最初に実行するコマンドは、Authorizeです。Authorizeに失敗した場合は、決済を完了させることができませんので、消費者には決済が失敗したことをご案内し、決済の申込をやり直して頂く必要があります。

Captureコマンド(売上)

Authorizeコマンドで与信や申込が成立した場合、Captureコマンドで売上を確定する必要があります。売上を確定しないと、消費者への請求対象にはなりません。ただし、以下のケースを除きます。

  • Authorizeコマンド要求時に、「同時売上」のオプションを指定した場合は、Authorizeコマンドが成功したタイミングで売上が確定します。(クレジットカード決済等)
  • 表 3-2-1のCaptureコマンドの列に、△が記入されている決済サービス(コンビニ決済、電子マネー決済など)では、消費者の入金等のアクションにより、決済事業者が売上確定の処理を実施したタイミングで売上が確定します。この場合は、決済サーバーから店舗様システムに売上が確定したことを示す通知を送信します。
  • キャリア決済の継続課金など、弊社または決済事業者側の処理で自動的に売上が成立するケースでは、売上を要求する必要はありません。

Cancel/Refundコマンド(キャンセルおよび返金)

決済のキャンセル(取消)または返金を実行する場合、CancelコマンドとRefundコマンドの2つのコマンドを利用するサービスでは、各サービスの仕様に従い、Cancelコマンド(取消)とRefundコマンド(返金)を使い分ける必要があります。

Cancelコマンドのみを利用するサービスでは、コマンド要求時の取引の状態によって、決済サーバーまたは決済事業者側の判断で取消または返品を適切に処理しますので、店舗様システムでは取消か返金かを意識する必要はありません。

ReAuthorizeコマンド(再取引)

クレジットカード決済(3Dセキュアを含む)では、過去の取引で利用したクレジットカード情報を利用して、与信(および与信同時売上)を再実行可能です。要求時には、過去の取引ID(元取引ID)をパラメータに指定します。

再取引は、ベリトランスに取引履歴が保管されている間は実行可能です。保管期間は、取引のステータスが最後に変化した日を起算日として400日間を標準とします。

以下に、再取引可能期間を示します。

取引ステータス 再取引可能期間 ※取引履歴の保管期間
売上 売上実行日+400日
取消(返品) 取消(返品)実行日+400日
与信(与信有効期限切れ) 与信日+与信有効期間(60日)+400日

保管期間を超えると取引履歴は削除されますので、再取引に利用する元取引IDは、直近の再取引に使用した取引IDを指定することをお勧めします。

Searchコマンド(検索)

取引の状態を検索することが可能です。

検索条件は、決済サービス毎に様々な条件を指定可能ですが、原則として必ず「取引ID」を条件に含めた検索を行って頂きますようお願いします。取引IDを条件に含まない検索を実施された場合、データ量によってはレスポンス遅延や、想定外の結果が返戻される場合がございます。取引IDを含まない、複雑な条件での検索を実施される場合は、事前にテクニカルサポートまでご相談下さい。

通信エラー発生時の注意点

MDKと弊社サーバー間のネットワーク障害等で通信異常によるエラーが発生した場合、MDKは先頭が「M」で始まる結果コードを返します。このとき、決済要求が弊社サーバーに到達している可能性がありますので、該当の決済が成立しているか否かは、管理画面(MAP)の取引検索やMDKのSearchコマンド(検索)を利用してご確認ください。

  • クレジットカード決済の与信同時売上のように、1回の要求で決済が成立する決済手段をご利用の場合は、消費者への請求が発生する可能性があるため、必ずご確認ください。
  • 後払い型の決済手段(コンビニ決済や銀行決済など)については、決済の申込要求が成功しただけでは入金は成立しませんので、ご確認は必須ではございません。
  • 決済成立の可能性がある通信エラー関連の結果コードは次のとおりです。(2017年7月現在)
    MA99、MB99、MB03、MF01、MF02、MF03、MF04、MF99
    結果コードは今後新しく追加される可能性がありますので、「M」で始まるエラーの発生を検知し、決済成否を確認して頂くことをお勧めします。
  • 結果コードの詳細は、『結果コード一覧』をご参照下さい。

インターフェース詳細

決済インターフェース詳細

各サービスのインターフェース詳細

インターフェース詳細は、決済サービス毎のドキュメントを参照して下さい。

※1 経済産業省「クレジット取引セキュリティ対策協議会」より公表されている「クレジットカード取引におけるセキュリティ対策の強化に向けた実行計画」に従い、クレジットカード情報の非保持(非通過および非保持)に対応するためには、決済サーバーへの決済要求時に、トークン化したカード情報(MDKトークン)を利用する必要があります。

共通補助パラメータ

要求電文
フィールド名 項目名 書式・制限 説明 設定
memo1 取引メモ1 半角英数字100文字以内 取引に関するメモを指定します。 任意
freeKey キー情報 半角英数字256桁以内 店舗様システムで利用している任意のキー情報を設定します。 任意

全ての決済サービスで設定可能なパラメータです。それぞれ以下のような利用を想定しています。

memo1(取引メモ1)について

取引に関するメモ情報です。

memo1(取引メモ1)は、ログ出力の際にマスクされず、入力された値がそのままログファイルに出力されますので、カード番号、個人情報、および機密情報などを入力されないようお願いいたします。
freeKey(キー情報)について

取引に関するキー情報です。店舗様で別途管理しているIDと弊社取引を紐付けるためのキー情報を設定することができます。
(例:店舗様側システムの取引IDと弊社取引を紐付ける)

freeKey(キー情報)は、ログ出力の際にマスクされず、入力された値がそのままログファイルに出力されますので、カード番号、個人情報、および機密情報などを入力されないようお願いいたします。
memo1(取引メモ1)、freeKey(キー情報)の上書きについて

取引メモ1、キー情報の値は、最新のトランザクションにて指定した値で上書きされます。
最新のトランザクションで指定した取引メモ1、キー情報の値のみが保存され、以前のトランザクションで指定した取引メモ1、キー情報の値は保存されません。

  • 例1:与信/決済申込(Authorize)時、売上時とも指定した場合
    ⇒保存されている取引メモ1、キー情報の値は、売上時に設定した値です。与信/決済申込(Authorize)時に設定した値は保存されません。
  • 例2:与信/決済申込(Authorize)時は未設定、売上時に設定した場合
    ⇒保存されている取引メモ1、キー情報の値は、売上時に設定した値です。
  • 例3:与信/決済申込(Authorize)時に設定、売上時は未設定の場合
    ⇒保存されている取引メモ1、キー情報の値は、与信/決済申込(Authorize)時に指定した値です。
  • 例4:売上時に設定、その後キャンセルを実施時にも設定した場合
    ⇒保存されている取引メモ1、キー情報の値は、キャンセル時に指定した値です。売上時に設定した値は、保存されません。

決済結果通知

コンビニ決済や銀行決済のように、申込を行ってから決済が完了するまでにタイムラグが発生するサービスでは、結果の確定後に、決済サーバーから店舗様システムに向けて決済結果通知を送信します。

電文仕様

決済結果通知の電文仕様は以下の通りです。

プロトコル HTTP1.0またはHTTP1.1
メソッド POST
リクエストヘッダ content-hmac 改ざんチェック用のHMAC値
設定値: h={アルゴリズム名};s={CCID};v={HMAC値}
  • アルゴリズム名には"HmacSHA256"が設定されます。
  • CCIDには、「マーチャントCCID」が設定されます。
  • HMAC値は「MessageBody」を"h="に設定されたアルゴリズムでハッシュ化した値です。
  • HMAC算出時の鍵は、「マーチャント認証鍵」です。
content-length BODY長
Content-Type application/x-www-form-urlencoded
ポート番号 443 または 80
文字コード UTF-8
MessageBody 書式は以下のとおりです。
電文構成要素1=[値1]&電文構成要素2=[値2]&電文構成要素3=[値3]&・・・
(例) コンビニ決済の入金通知電文
numberOfNotify=2&pushTime=20170330172650&pushId=00000237&
orderId0000=ORDER001&cvsType0000=sej&amount0000=100&receiptNo0000=0000123&
receiptDate0000=20170330172505&rcvAmount0000=100&dummy0000=0&
orderId0001=ORDER002&cvsType0001=sej&amount0001=100&receiptNo0001=0000123&
receiptDate0001=20170330172505&rcvAmount0001=100&dummy0001=0
  • 電文構成要素の詳細は、各サービスの『インターフェース詳細』をご参照ください。

※ 本ドキュメントで規定しない仕様については原則としてRFC1945, RFC2616に準ずるものとします。

結果通知受信処理の結果について

決済サーバーからの結果通知に対して店舗様のシステムがHTTPステータスコード200番台を返戻した場合、決済サーバーは店舗様のシステムの処理が正常に終了したものと判断します。HTTPステータスコード200番台以外のコードを返戻した場合は、受信失敗と判断し、一定期間通知を繰り返します。

  • 通常はHTTPステータスコード"200"を返戻してください。
  • 再送は、1~10分間隔で最長8時間試行されます。
  • 規定の回数失敗した場合は、通知処理が停止します。受信できなかった取引のステータス確認には、管理ツール(MAP)またはSearch機能をご利用ください。
注意
HTTPステータスコード200番台以外を返戻する際、HTTPリダイレクト(3xxの要求)のコードは返却しないようにしてください。
3xxが返戻された場合、リダイレクト先へのアクセスが行われますが、正常にPOSTすることはできません。また、リトライも行われなくなる可能性があります。
pushId(識別ID)について

pushId(識別ID)は1つの決済サービス内ではユニークですが、複数の決済サービスをご利用の場合、サービスをまたいで同じIDが設定される場合がありますので、ユニークキーとして処理しないようにご注意下さい。

各決済の結果通知一覧

決済サービス名 与信 売上・入金 キャンセル 返金 その他
クレジットカード決済 - - - - -
3Dセキュア ●決済結果通知 - - - -
コンビニ決済 - ○入金通知 - - -
電子マネー決済 - ○入金通知 - ○返金通知 -
銀行決済 - ○入金通知 - - -
銀聯ネット決済(UPOP) ●決済結果通知 ◎決済結果通知 ◎決済結果通知 ◎決済結果通知 -
PayPal決済 - ○入金通知 - ○返金通知 ◎確報通知
(売上・返金)
Alipay決済
  オンライン決済 ●決済結果通知 - - △申込結果通知
◎決済結果通知
-
バーコード決済
(店舗スキャン型)
- - - - -
バーコード決済
(消費者スキャン型)
●決済結果通知 - - - -
キャリア決済 ○申込完了通知 - - - ○ 継続終了完了通知
◎ 継続課金結果通知
○ 継続課金抹消通知
ショッピングクレジット決済 - - - - ◎審査結果通知
楽天ペイ(オンライン決済) ○申込完了通知 ◎売上結果通知 ◎取消結果通知 - -
リクルートかんたん支払い ○申込完了通知 - - - -
LINEPay
  ブラウザを介す方式 ○申込完了通知 - - - -
サーバー間通信方式 ●申込完了通知 - - - -
ファミペイ ○決済結果通知        
Amazon Pay ◎決済申込結果通知 ◎売上結果通知 ◎キャンセル結果通知 ◎返金結果通知 ◎再与信結果通知
◎解約結果通知 抹消通知(*1)
ワンクリック継続課金 サービス - △課金結果通知 - - △洗替結果通知

※ 表中の○は、結果が成功の場合に送信されます。

※ 表中の●は、結果(成功/失敗)に関わらず送信されます。ただし、消費者のブラウザを介するサービスでは、消費者が途中で離脱し決済に進まなかった等のケースで、通知が送信されないことはございます。また、アプリを利用したサービスでは、消費者がアプリを途中で閉じた場合は、通知は送信されません。

※ 表中の◎は、結果(成功/失敗)に関わらず送信されます。

※ 表中の△は、結果が失敗の場合に送信されます。

※ 表中の(*1)は、消費者もしくは事業者によりAmazon Payの随時決済状態が終了となった場合に、失敗相当の結果で送信されます。

結果通知電文 インターフェース詳細

結果通知電文のインターフェース詳細は、各サービスの『インターフェース詳細』ページをご参照ください。

決済テスト

テスト実施にあたっての注意事項

テスト仕様の詳細につきましては、『導入テストガイド』を参照してください。
以下にテスト実施の際の主な注意事項を記載します。

  • テスト取引を行う場合はMDK設定ファイルのダミーモードを必ず"1"に設定してください
    #ダミーモート (テスト時のみ指定)
    DUMMY_REQUEST = 1
  • テスト取引を行うには決まった設定条件(所定のカード番号、所定の決済金額など)が必要です。
    テスト時の設定条件につきましては、『導入テストガイド』を参照してください。
  • 取引テスト時には、下記の事項に注意してください。
    • 取引ID(orderId):任意に設定してください。重複しないように設定する必要があります。また、テスト取引で使用した取引IDを、本番取引で再度使用することはできません。
    • 金額:有効な金額データをセットしてください。("-"(マイナス)や、小数点の入った数値は使用できません)
    • ダミーモードで実行した取引に対する本番モードでの処理要求や、本番モードで実行した取引に対するダミーモードでの処理要求は、必ずエラーになります。

MAPを利用したテスト取引の結果確認

店舗様サイトから行ったテスト取引の処理結果は、弊社が提供する管理ツールMAPにログインし、検索・参照することが可能です。
MAPのご利用方法の詳細は、MAPのヘルプ機能から『ご利用ガイド』を参照してください。

※MAPとは
Merchant Administration Portalの略で、決済の管理・運用上の各種情報・機能を提供するWeb型の管理ツールです。
URL:https://admin3.veritrans.co.jp/maps/