GMO |コンビニ決済|取引登録


概要

GMO に請求情報を登録する API です。

必ず請求情報の登録 → 決済実行の手順をとります。

自社請求レコードと必ず同一情報になるようにします。

これ以降の決済取引で必要となる取引 ID と取引パスワードの発行を行い、取引を開始します。


資料

コンビニ決済公式資料 58P


エンドポイント

メソッド URI Headers
POST {GmoApiUrl}/EntryTranCvs Default

リクエストパラメーター

パラメーター名 必須 項目名 特記
version CHAR 3 バージョン パラメータバージョン
(予約項目のため、省略してください。)
shopID CHAR 13 ショップ ID GMO が発行する値を設定します。
shopPass CHAR 10 ショップパスワード GMO が発行する値を設定します。
orderID CHAR 27 オーダー ID 加盟店様が取引を識別するための値を設定します。尚重複不可。ユニークとしてください
amount NUMBER 6 利用金額 下限金額(利用金額+税送料)は契約により異なります。税抜金額です。
Tax NUMBER 6 税送料 税額を記載してください。GMO で必須ではないですが KIZUNA で必須です。
{
    "shopID"  :"tshop11223344",
    "shopPass":"9xxyifua",
    "orderID" :"ORDER0000001",
    "amount"  :"1000",
    "tax"     :"100"
}

レスポンス

正常時

ステータスコード:200

パラメーター名 項目名 特記
accessID CHAR 32 取引 ID 発行した ID を返却します。同一オーダー ID でも決済手段が異なると、異なった「取引 ID」および「取引パスワード」が返却されます。
accessPass CHAR 32 取引パスワード 発行したパスワードを返却します。同一オーダー ID でも決済手段が異なると、異なった「取引 ID」および「取引パスワード」が返却されます。
{
    "accessID"  :"a6a6b0061347e90cdef806b39bd28705",
    "accessPass":"5e0e54b892e14ed03e8cf807a6053813"
}

{warning} このレスポンスは決済実行時に必ず必要となるため保存必須

失敗時

ステータスコード:不明

パラメーター名 項目名 特記
ErrCode CHAR 3 エラーコード エラー発生時のみ
複数ある場合は"|"で接続された文字列
ErrInfo CHAR 9 エラー詳細コード エラー発生時のみ
複数ある場合は"|"で接続された文字列

・エラー時(複数エラーがある場合は下記のような形式にて出力されます。ErrCode の n 番目と ErrInfo の n 番目は対となります)

[
  {
    "errCode":"E01",
    "errInfo":"E01010001"
  },
  {
    "errCode":"E01",
    "errInfo":"E01020001"
  },
]

サンプルソース

// リクエストコネクションの設定
$curl=curl_init();
curl_setopt( $curl, CURLOPT_POST, true );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_URL, 'https://p01.mul-pay.jp/payment/EntryTranCvs.idPass' );
$param = [
    'ShopID'    => 'YourShopId',
    'ShopPass'  => 'YourShopPassword',
    'OrderID'   => 'SampleOrderID',
    'Amount'    => '1000',
    'Tax'       => '100'
];
// リクエストボディの生成
curl_setopt( $curl, CURLOPT_POSTFIELDS, http_build_query( $param ) );

// リクエスト送信
$response = curl_exec( $curl );
$curlinfo = curl_getinfo( $curl );
curl_close( $curl );

// レスポンスチェック
if( $curlinfo[ 'http_code' ] != 200 ){
    // エラー

    return false;
}

// レスポンスのエラーチェック
$dataMap = explode('&', $response);
$data = array();
foreach ($dataMap as $value) {
    $splitArray = explode('=', $value, 2);
    if (2 == count($splitArray)) {
        $data[$splitArray[0]] = $splitArray[1];
    }
}
if( array_key_exists( 'ErrCode', $data ) ){
    // エラー

    return false;
}

// 正常

return true;