DGFT Veritrans4G開発ガイド

お問い合わせ
  • TOP
  • MDK(SDK)導入ガイド
  • 開発環境へのMDK(SDK)導入
  • PHP8

MDKチュートリアル(PHP8)

はじめに

VeriTrans4Gは、ECなどオンラインサービスからリアル店舗までマルチチャネルに対応可能な総合決済サービスを提供します。
MDKを利用することで、多彩な決済手段を導入可能となりますが、ここではMDKとサンプルプログラムを利用してクレジットカード決済の簡単な動作確認を行います。
お客様の環境へのMDKインストールにあたってはインストールガイド(URL)を参照の上実施してください。

【MDK】Merchant Development Kit
EC店舗サイトと各決済会社間の決済処理を安全に行うためのオンライン決済ソフトウェア

テストアカウントの申請

下記サイトにてMDKのテスト利用申請を行います。
URL: 無料テスト利用プログラム お申し込み

管理サイト(MAP)へのログイン

管理サイトにログインを行いMDKを利用する上で必要となる以下の情報を取得します。

URL: MAP

  • マーチャントCCID
  • マーチャント認証鍵
  • Token Api Key

上記情報は [ 管理サイト -> ダッシュボード -> API設定情報 ] から取得します。

MAP(Merchant Administration Portal)
ご契約情報および各取引を検索いただくための管理サイト

実行環境の確認

MDKの利用には、使用言語ごとに以下の環境をご準備ください

PHP 7.4以上 または 8.0以上
Composer 2.0.8以上
ご利用上の注意
  • チュートリアルでは説明していませんが、WebアプリケーションのサンプルプログラムはPHP8以上を対象としており、PHP7.4では動作しませんのでご注意ください。
  • チュートリアルではUNIXコマンドを用いて説明しますので、環境に合わせて読み替えてください。

MDKダウンロード

テストを実行する言語のMDKを以下のダウンロードページから取得し、展開します。

MDKダウンロード
$ curl -OL https://www.veritrans.co.jp/trial/4g/Mdk4G-php8-X.X.X.tar.gz
$ tar zxvf Mdk4G-php8-X.X.X.tar.gz

MDKの確認

展開したMDKには以下のファイルが含まれています。

veritrans-tgmdk/
├── README.txt                         MDKの導入前にお読みください
├── composer.json                      プロジェクトの依存情報が記述されています
│   composer.lock                      依存パッケージのバージョンリストが記述されています
│   resources
│   └── cert.pem                       CA証明書ストアファイル
└── src
    └── tgMdk                          MDK本体が格納されています
        ├── 3GPSMDK.properties         MDK設定ファイル
        └── dto                        各API要求、応答データクラスが格納されています

チュートリアルでは後続の手順でサンプルプログラム内のディレクトリにコピーし実行に必要な項目のみ設定を行います

詳細は[4G MDK インストールガイド(PHP8)] を参照してください

MDKサンプルプログラムダウンロード

テストを実施する言語のMDKサンプルプログラム以下のダウンロードページから取得し展開します。

MDKダウンロード
$ curl -OL https://www.veritrans.co.jp/trial/4g/Mdk4G-Sample-php8-X.X.X.tar.gz
$ tar zxvf Mdk4G-Sample-php8-X.X.X.tar.gz

MDKサンプルプログラムの利用準備

サンプルプログラムへのMDKのコピー

ダウンロードしたMDKをサンプルプログラム内にコピーします

$ cp -pr veritrans-tgmdk veritrans-mdk-sample/local_packages/

MDKの設定

3GPSMDK.propertiesファイルに以下の項目を設定します。

  • CA_CERT_FILE
  • MERCHANT_CC_ID
  • MERCHANT_SECRET_KEY
<MDK Sample 展開ディレクトリ>/veritrans-mdk-sample/local_packages/veritrans-tgmdk/src/tgMdk/3GPSMDK.properties
...
20  ; SSL暗号用 CA証明書ファイル名
21  CA_CERT_FILE         = "../../resources/cert.pem"
...
30  ; マーチャントCCID。VeriTrans指定のものを設定して下さい。
31  MERCHANT_CC_ID        = <管理サイト(MAP)で確認を行ったマーチャントCCIDを指定します>
32  ; マーチャントパスワード。VeriTrans指定のものを設定して下さい。
33  MERCHANT_SECRET_KEY      = <管理サイト(MAP)で確認を行ったマーチャント認証鍵を指定します>
...

Composer 依存関係のインストール

command ディレクトリに移動し、composer コマンドで依存関係をインストールします

$ cd veritrans-mdk-sample/command/
$ composer install

決済の実行

このチュートリアルでは以下の順序でクレジットカードの決済を行います。

  1. token
  2. authorize
  3. capture
  4. cancel
  5. search

クレジットカード情報をECサイト等に保存しないために、カード情報をトークン化しトークンを利用して Authorize(与信) 処理を実施します。

※ 通常この処理はクライアント側でJavaScript等を利用し実施しますが、 チュートリアルではcurlコマンドを利用しトークンの発行を行います。

< Token API Key >には管理サイト(MAP)で確認を行ったToken Api Keyを設定します
$ curl -X POST "https://api.veritrans.co.jp:443/4gtoken" \
-H 'Accept:application/json' \
-H 'Content-Type:application/json' \
-d \
'{
    "card_number":"4111111111111111",
    "card_expire":"01/20",
    "security_code":"123",
    "cardholder_name":"TARO YAMADA",
    "token_api_key":"< Token API Key >",
    "lang":"en"
}'
  • トークンサーバーから取得したトークンは一度しかご利用いただけません。(ワンタイムトークン)
  • 取得したトークンには有効期限(15分)があり、有効期限を過ぎるとそのトークンはご利用いただけなくなります。
  • 次の手順(Authorize(与信)の実行)が完了すると、クレジットカード情報は再利用可能な状態で当社に保管されます。

成功した場合以下のような出力が表示されます。

{
    "token": "aea5facd-8c53-497a-a0f3-8e1ad3e6a6a5",
    "token_expire_date": "20221130145717",
    "req_card_number": "411111********11",
    "status": "success",
    "code": "success",
    "message": "Token has been successfully created."
}

レスポンスとして戻った token を利用し与信、決済を実行します。

与信サンプルプログラム 「CLI_CardAuthorize.php」 に前項で取得したトークンを設定します。

<MDK Sample 展開ディレクトリ>/veritrans-mdk-sample/command/app/card/CLI_CardAuthorize.php
...
44  /**
45  * トークン
46  */
47  $token = "aea5facd-8c53-497a-a0f3-8e1ad3e6a6a5";
... 73  $request_data->setToken($token);        // コメントアウトを外し有効化します
...

下記のコマンドを実行し与信を行います。

$ cd <MDK Sample 展開ディレクトリ>/veritrans-mdk-sample/command/app/card/
$ php -f CLI_CardAuthorize.php

Transaction Successfully Complete
[Result Code]: A001000000000000
[Order ID]: dummy1669954544
[Center Reference Number]:

売上サンプルプログラム 「CLI_CardCapture.php」 に前項で利用した order_id を設定します

<MDK Sample 展開ディレクトリ>/veritrans-mdk-sample/command/app/card/CLI_CardCapture.php
24  /**
25  * 取引ID
26  * 与信完了取引のIDを指定
27  */
28  $order_id = "dummy1669954544";

下記のコマンドを実行し、与信を実施した order_id を指定して売上を実施します

$ php -f CLI_CardCapture.php

Transaction Successfully Complete
[Result Code]: A001000000000000
[Center Reference Number]:

キャンセルサンプルプログラム 「CLI_CardCancel.php」 に前項で利用した order_id を設定します

<MDK Sample 展開ディレクトリ>/veritrans-mdk-sample/command/app/card/CLI_CardCancel.php
...
24  /**
25  * 取引ID
26  * 与信完了または売上完了状態の取引のIDを指定
27  */
28  $order_id = "dummy1669954544";
...

下記のコマンドを実行し、売上を実施した order_id を指定してキャンセルを実施します

$ cd <MDK Sample 展開ディレクトリ>/veritrans-mdk-sample/command/app/card/
$ php -f CLI_CardCancel.php
Transaction Successfully Complete
[Result Code]: A001000000000000
[Center Reference Number]:
								

検索サンプルプログラム 「CLI_Search.php」 に前項で利用した order_id を設定します。

<MDK Sample 展開ディレクトリ>veritrans-mdk-sample/command/app/search/CLI_Search.php
...
142  /**
143  * 1. 取引ID
144  */
145  $order_id = "dummy1669954544";
...

下記のコマンドを実行し、与信、売上、キャンセルを実施した order_id を指定して取引検索を実施します

$ cd <MDK Sample 展開ディレクトリ>/veritrans-mdk-sample/command/app/search/
$ php -f CLI_Search.php
Transaction Successfully Complete
[Result Code]: N001000000000000
[Search Count]: 1

----- Search Results -----

*---------**---------*
Index: 0
Service Type: card
Order ID: dummy1669954544
Order Status: end
Card Transaction ID: 82033649
Currency:
----
Transaction ID: 82033649
Executed Command: Authorize
Transaction Status: success
Transaction Result Code: A001000000000000
Execute Time: 2023-01-02 10:25:52.662
Settlement Amount: 5
Card Transaction Type: a
Gateway Request Date: 20230102102552
Gateway Response Date: 20230102102552
Center Request Date: 20230102102552
Center Response Date: 20230102102552
Center Request Number:
Center Reference Number:
Request Auth Code:
----
Transaction ID: 82033672
Executed Command: Capture
Transaction Status: success
Transaction Result Code: A001000000000000
Execute Time: 2023-01-02 10:39:36.247
Settlement Amount: 5
Card Transaction Type: pa
Gateway Request Date: 20230102103936
Gateway Response Date: 20230102103936
Center Request Date:
Center Response Date:
Center Request Number:
Center Reference Number:
Request Auth Code:
----
Transaction ID: 82033682
Executed Command: Cancel
Transaction Status: success
Transaction Result Code: A001000000000000
Execute Time: 2023-01-02 10:45:09.323
Settlement Amount: 5
Card Transaction Type: vpa
Gateway Request Date: 20230102104508
Gateway Response Date: 20230102104509
Center Request Date: 20230102104508
Center Response Date: 20230102104508
Center Request Number:
Center Reference Number:
Request Auth Code:

このチュートリアルで実行したAuthorize(与信)、Capture(売上)、Cancel(キャンセル)の結果が表示されていることを確認してください。