GMO |コンビニ|支払停止


概要

GMO の支払い停止する API です。

コンビニの再指定金額の変更 など一度登録した取引に変更を与える際、

すでに登録していた取引を停止させるための API です。


資料

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


エンドポイント

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

リクエストパラメーター

パラメーター名 必須 項目名 特記
version CHAR 3 バージョン パラメータバージョン
(予約項目のため、省略してください。)
shopID CHAR 13 ショップ ID 弊社が発行する値を設定します。
shopPass CHAR 8 ショップパスワード 弊社が発行する値を設定します。
accessID CHAR 32 取引 ID 【取引登録】で発行された値を設定します。
accessPass CHAR 32 取引パスワード 【取引登録】で発行された値を設定します。
orderID CHAR 27 オーダー ID 【取引登録】で指定した値を設定します。

※  GMOAPI から必要であろうパラメーターのみ記載しています。

{
    "shopID"              :"tshop11223344",
    "shopPass"            :"9xxyifua",
    "accessID"            : "8867bfeec7b7fc35f78320d01c9a6c10",
    "accessPass"          : "c07822acefba90d95417ae37beb198de",
    "orderID"             : "TEST-20190628-133057",
}

レスポンス

正常時

ステータスコード:200

パラメーター名 項目名 特記
orderID CHAR 27 オーダー ID 【決済実行】呼出時に指定した値を返却します。
status CHAR - 現状態 成功時はCANCELが返却されます。
{
    "orderID"         : "TEST-20190628-115812",
    "status"          : "CANCEL",
}
失敗時

ステータスコード:不明

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

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

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

{warning} 成功か失敗かはステータスコードで判別できる


サンプルソース

// リクエストコネクションの設定
$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/CvsCancel.idPass' );
$param = [
    'ShopID'     => 'YourShopId',
    'ShopPass'   => 'YourShopPassword',
    'AccessID'   => 'SampleAccessID',
    'AccessPass' => 'SampleAccessPass',
    'OrderID'    => 'SampleOrderID'
];
// リクエストボディの生成
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;