GMOの決済実行するAPIです。
コンビニの指定、メールアドレスの指定、支払期限の指定をして
「受付番号・確認番号・決済完了メール・支払期限」を設定した決済情報を発行します。
名前がわずらわしいので注意。実行ではなく、発行の意図で捉えて問題ありません。
| メソッド | URI | Headers |
|---|---|---|
{GmoApiUrl}/ExecTranCvs |
Default |
| パラメーター名 | 必須 | 型 | 桁 | 項目名 | 特記 |
|---|---|---|---|---|---|
| version | CHAR | 3 | バージョン | パラメータバージョン (予約項目のため、省略してください。) |
|
| accessID | 〇 | CHAR | 32 | 取引ID | 【取引登録】で発行された値を設定します。 |
| accessPass | 〇 | CHAR | 32 | 取引パスワード | 【取引登録】で発行された値を設定します。 |
| orderID | 〇 | CHAR | 27 | オーダーID | 【取引登録】で指定した値を設定します。 |
| convenience | 〇 | CHAR | 5 | 支払先コンビニコード | Enum参照 |
| customerName | 〇 | CHAR | 40 | 氏名 | お客様の氏名 セブンイレブンを指定した場合は、半角記号は使用できません。 |
| customerKana | 〇 | CHAR | 40 | フリガナ | お客様のフリガナ |
| telNo | 〇 | CHAR | 13 | 電話番号 | お客様の電話番号 |
| paymentTermDay | CHAR | 2 | 支払期限日数 | 省略時は、ショップ情報に設定された支払期限日数で処理されます。 セブンイレブンを指定した場合注意 | |
| mailAddress | CHAR | 256 | 結果通知先メールアドレス | お客様の結果通知先メールアドレスを設定してください。 | |
| registerDisp1 | CHAR | 32 | POSレジ表示欄1 | ショップ名称を設定してください。[技能実習生管理システムKIZUNA] |
|
| receiptsDisp1 | CHAR | 60 | レシート表示欄1 | レシートに表示されます。 [お支払い誠に有難うございます。] |
|
| receiptsDisp11 | 〇 | CHAR | 42 | お問い合わせ先 | Loppi・Famiポートを使用した際にバウチャー受領書に表示されます。[コンパス株式会社] |
| receiptsDisp12 | 〇 | CHAR | 12 | お問い合わせ先電話番号 | Loppi・Famiポートを使用した際にバウチャー受領書に表示されます。[03-5809-1497] |
| receiptsDisp13 | 〇 | CHAR | 11 | お問い合わせ先受付時間 | Loppi・Famiポートを使用した際にバウチャー受領書に表示されます。[11:00-17:00] |
※ GMOAPIから必要であろうパラメーターのみ記載しています。
{
"accessID" : "8867bfeec7b7fc35f78320d01c9a6c10",
"accessPass" : "c07822acefba90d95417ae37beb198de",
"orderID" : "TEST-20190628-133057",
"convenience" : "12345",
"customerName" : "テスト太郎",
"customerKana" : "テストタロウ",
"telNo" : "090-0000-0000",
"paymentTermDay" : "0",
"mailAddress" : "test@example.com",
"registerDisp1" : "技能実習生管理システムKIZUNA",
"receiptsDisp1" : "お支払い誠に有難うございます。",
"receiptsDisp11" : "コンパス株式会社",
"receiptsDisp12" : "03-5809-1497",
"receiptsDisp13" : "11:00-17:00",
}
ステータスコード:200
| パラメーター名 | 型 | 桁 | 項目名 | 特記 |
|---|---|---|---|---|
| orderID | CHAR | 27 | オーダーID | 【決済実行】呼出時に指定した値を返却します。 |
| convenience | CHAR | 5 | 支払先コンビニコード | 【決済実行】呼び出し時に指定した値、または弊社側で変換された値を返却します。 |
| confNo | CHAR | 20 | 確認番号 | お客様が支払い時に使用する番号を返却します。 |
| receiptNo | CHAR | 32 | 受付番号 | お客様が支払い時に使用する番号を返却します。 |
| paymentTerm | CHAR | 14 | 支払期限日時 | お客様の払込期限を返却します。yyyyMMddHHmmss書式 |
| tranDate | CHAR | 14 | 決済日付 | 決済依頼を実施した日時を返却します。yyyyMMddHHmmss書式 |
| receiptUrl | CHAR | 256 | 払込票URL | セブンイレブンの場合のみ返却されます。 |
| checkString | CHAR | 32 | MD5ハッシュ | OrderID~TranDate+ショップパスワードのハッシュ値(※1)を返却します。 |
| clientField1 | CHAR | 100 | 加盟店自由項目1 | 入力パラメータの加盟店自由項目返却フラグの値が”1"(返却する)の場合のみ返却します。 |
| clientField2 | CHAR | 100 | 加盟店自由項目2 | |
| clientField3 | CHAR | 100 | 加盟店自由項目3 |
{
"orderID" : "TEST-20190628-115812",
"convenience" : "12345",
"confNo" : "12345678",
"receiptNo" : "1234567890123",
"paymentTerm" : "20211205",
"tranDate" : "",
"receiptUrl" : "",
"checkString" : "6bff1f1547394b9fc37407dfc0d49c31",
}
ステータスコード:不明
| パラメーター名 | 型 | 桁 | 項目名 | 特記 |
|---|---|---|---|---|
| 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/ExecTranCvs.idPass' );
$param = [
'AccessID' => 'YourAccessID',
'AccessPass' => 'YourAccessPass',
'OrderID' => 'SampleOrderid',
'Convenience' => 'SampleConvenience',
'CustomerName' => 'SampleCustomerName',
'CustomerKana' => 'SampleCustomerKana',
'TelNo' => '03xxxxxxxx',
'PaymentTermDay' => 'SamplePaymentTermDay',
'MailAddress' => 'SampleMailAddress',
'ShopMailAddress' => 'SampleShopMailAddress',
'ReserveNo' => 'SampleReserveNo',
'MemberNo' => 'SampleMemberNo',
'RegisterDisp1' => 'SampleRegisterDisp1',
'RegisterDisp2' => 'SampleRegisterDisp2',
'RegisterDisp3' => 'SampleRegisterDisp3',
'RegisterDisp4' => 'SampleRegisterDisp4',
'RegisterDisp5' => 'SampleRegisterDisp5',
'RegisterDisp6' => 'SampleRegisterDisp6',
'RegisterDisp7' => 'SampleRegisterDisp7',
'RegisterDisp8' => 'SampleRegisterDisp8',
'ReceiptsDisp1' => 'SampleReceiptsDisp1',
'ReceiptsDisp2' => 'SampleReceiptsDisp2',
'ReceiptsDisp3' => 'SampleReceiptsDisp3',
'ReceiptsDisp4' => 'SampleReceiptsDisp4',
'ReceiptsDisp5' => 'SampleReceiptsDisp5',
'ReceiptsDisp6' => 'SampleReceiptsDisp6',
'ReceiptsDisp7' => 'SampleReceiptsDisp7',
'ReceiptsDisp8' => 'SampleReceiptsDisp8',
'ReceiptsDisp9' => 'SampleReceiptsDisp9',
'ReceiptsDisp10' => 'SampleReceiptsDisp10',
'ReceiptsDisp11' => 'SampleReceiptsDisp11',
'ReceiptsDisp12' => 'SampleReceiptsDisp12',
'ReceiptsDisp13' => 'SampleReceiptsDisp13',
'ClientField1' => 'SampleClientField1',
'ClientField2' => 'SampleClientField2',
'ClientField3' => 'SampleClientField3',
'ClientFieldFlag' => '0'
];
// リクエストボディの生成
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;