tpl_mainpage = MODULE_PATH . "mdl_remise/convenience.tpl"; $this->tpl_title = "コンビニ決済"; /* session_start時のno-cacheヘッダーを抑制することで 「戻る」ボタン使用時の有効期限切れ表示を抑制する。 private-no-expire:クライアントのキャッシュを許可する。 */ session_cache_limiter('private-no-expire'); } } global $arrConvenience; global $arrConveni_message; $objPage = new LC_Page(); $objView = new SC_SiteView(); $objSiteInfo = $objView->objSiteInfo; $arrInfo = $objSiteInfo->data; // パラメータ管理クラス $objFormParam = new SC_FormParam(); // POST値の取得 $objFormParam->setParam($_POST); // ユーザユニークIDの取得と購入状態の正当性をチェック $uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess); // カート集計処理 $objPage = sfTotalCart($objPage, $objCartSess, $arrInfo); // 一時受注テーブルの読込 $arrData = sfGetOrderTemp($uniqid); // カート集計を元に最終計算 $arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo); // 代表商品情報 $arrMainProduct = $objPage->arrProductsClass[0]; // 支払い情報を取得 $arrPayment = $objQuery->getall("SELECT module_id, memo01, memo02, memo03, memo04, memo05, memo06, memo07, memo08, memo09, memo10 FROM dtb_payment WHERE payment_id = ? ", array($arrData["payment_id"])); // 確認画面に戻る switch($_POST["mode"]){ //戻る case 'return': // 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); // 確認ページへ移動 header("Location: " . URL_SHOP_CONFIRM); exit; break; } // ルミーズからの返信があった場合 if (isset($_POST["X-R_CODE"])) { $err_detail = ""; // 通信時エラー if ($_POST["X-R_CODE"] != $arrRemiseErrorWord["OK"]) { $err_detail = $_POST["X-R_CODE"]; sfDispSiteError(FREE_ERROR_MSG, "", false, "購入処理中に以下のエラーが発生しました。


・" . $err_detail); // 通信結果正常 } else { $log_path = DATA_PATH . "logs/remise_cv_finish.log"; gfPrintLog("remise conveni finish start----------", $log_path); foreach($_POST as $key => $val){ gfPrintLog( "\t" . $key . " => " . $val, $log_path); } gfPrintLog("remise conveni finish end ----------", $log_path); // 金額の整合性チェック if ($arrData["payment_total"] != $_POST["X-TOTAL"]) { sfDispSiteError(FREE_ERROR_MSG, "", false, "購入処理中に以下のエラーが発生しました。


・請求金額と支払い金額が違います。"); } // 正常な推移であることを記録しておく $objSiteSess->setRegistFlag(); // ルミーズからの値の取得 $job_id = lfSetConvMSG("ジョブID(REMISE)", $_POST["X-JOB_ID"]); $payment_limit = lfSetConvMSG("支払い期限", $_POST["X-PAYDATE"]); $conveni_type = lfSetConvMSG("支払いコンビニ", $arrConvenience[$_POST["X-PAY_CSV"]]); $payment_total = lfSetConvMSG("合計金額", $_POST["X-TOTAL"]); $receipt_no = lfSetConvMSG("コンビニ払い出し番号", $_POST["X-PAY_NO1"]); // ファミリーマートのみURLがない if ($_POST["X-PAY_CSV"] != "D030") { $payment_url = lfSetConvMSG("コンビニ払い出しURL", $_POST["X-PAY_NO2"]); } else { $payment_url = lfSetConvMSG("注文番号", $_POST["X-PAY_NO2"]); } $arrRet['cv_type'] = $conveni_type; // コンビニの種類 $arrRet['cv_payment_url'] = $payment_url; // 払込票URL(PC) $arrRet['cv_receipt_no'] = $receipt_no; // 払込票番号 $arrRet['cv_payment_limit'] = $payment_limit; // 支払い期限 $arrRet['title'] = lfSetConvMSG("コンビニ決済", true); // 決済送信データ作成 $arrModule['module_id'] = MDL_REMISE_ID; $arrModule['payment_total'] = $arrData["payment_total"]; $arrModule['payment_id'] = PAYMENT_CONVENIENCE_ID; // ステータスは未入金にする $sqlval['status'] = 2; // コンビニ決済情報を格納 $sqlval['conveni_data'] = serialize($arrRet); $sqlval['memo01'] = PAYMENT_CONVENIENCE_ID; $sqlval['memo02'] = serialize($arrRet); $sqlval['memo03'] = $arrPayment[0]["module_id"]; $sqlval['memo04'] = $_POST["X-JOB_ID"]; $sqlval['memo05'] = serialize($arrModule); // 受注一時テーブルに更新 sfRegistTempOrder($uniqid, $sqlval); header("Location: " . URL_SHOP_COMPLETE); } } // EC-CUBE側の通知用URL $retUrl = SITE_URL . 'shopping/load_payment_module.php?module_id=' . MDL_REMISE_ID; $exitUrl = SITE_URL . 'shopping/load_payment_module.php'; $tel = $arrData["order_tel01"].$arrData["order_tel02"].$arrData["order_tel03"]; // 住所整形 $pref = $arrPref[$arrData["order_pref"]]; $address1 = mb_convert_kana($arrData["order_addr01"], "ASKHV"); $address2 = mb_convert_kana($arrData["order_addr02"], "ASKHV"); // 商品名整形(最大7個のため、商品代金として全体で出力する) $itemName = "商品代金"; $itemPlace = $arrData["payment_total"] - $arrData["deliv_fee"]; $arrSendData = array( 'SEND_URL' => $arrPayment[0]["memo05"], // 接続先URL 'S_TORIHIKI_NO' => $arrData["order_id"], // 請求番号(EC-CUBE) 'MAIL' => $arrData["order_email"], // メールアドレス 'NAME1' => $arrData["order_name01"], // ユーザー名1 'NAME2' => $arrData["order_name02"], // ユーザー名2 'KANA1' => $arrData["order_kana01"], // ユーザー名(カナ)1 'KANA2' => $arrData["order_kana02"], // ユーザー名(カナ)2 'TEL' => $tel, // 電話番号 'YUBIN1' => $arrData["order_zip01"], // 郵便番号1 'YUBIN2' => $arrData["order_zip02"], // 郵便番号2 'ADD1' => $pref, // 住所1 'ADD2' => $address1, // 住所2 'ADD3' => $address2, // 住所3 'MSUM_01' => $arrData["subtotal"], // 金額 'TAX' => $arrData["deliv_fee"], // 送料 + 税 'TOTAL' => $arrData["payment_total"], // 合計金額 'SHOPCO' => $arrPayment[0]["memo01"], // 店舗コード 'HOSTID' => $arrPayment[0]["memo02"], // ホストID 'RETURL' => $retUrl, // 完了通知URL 'NG_RETURL' => $retUrl, // NG完了通知URL 'EXITURL' => $exitUrl, // 戻り先URL 'MNAME_01' => $itemName, // 商品名 'MSUM_01' => $itemPlace, // 商品代金合計(送料+税以外) 'REMARKS3' => MDL_REMISE_POST_VALUE ); $objPage->arrSendData = $arrSendData; $objPage->arrForm =$objFormParam->getHashArray(); $objView->assignobj($objPage); // 出力内容をSJISにする(ルミーズ対応) mb_http_output(REMISE_SEND_ENCODE); $objView->display(MODULE_PATH . "mdl_remise/convenience.tpl"); //--------------------------------------------------------------------------------------------------------------------------------------------------------- function lfSetConvMSG($name, $value){ return array("name" => $name, "value" => $value); } ?>