source: branches/feature-module-update/data/downloads/module/mdl_remise/card.php @ 15079

Revision 15079, 5.7 KB checked in by nanasess, 17 years ago (diff)

svn:mime-type application/x-httpd-php; charset=UTF-8 設定

  • Property svn:mime-type set to application/x-httpd-php; charset=UTF-8
Line 
1<?php
2/*
3 * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../require.php");
8require_once(DATA_PATH . "module/Request.php");
9require_once(MODULE_PATH . "mdl_remise/mdl_remise.inc");
10
11class LC_Page {
12    function LC_Page() {
13        /** 必ず指定する **/
14        $this->tpl_mainpage = MODULE_PATH . 'mdl_remise/card.tpl';          // メインテンプレート
15        $this->tpl_title = "カード決済";
16        /*
17         session_start時のno-cacheヘッダーを抑制することで
18         「戻る」ボタン使用時の有効期限切れ表示を抑制する。
19         private-no-expire:クライアントのキャッシュを許可する。
20        */
21        session_cache_limiter('private-no-expire');     
22    }
23}
24
25$objPage = new LC_Page();
26$objView = new SC_SiteView();
27$objSiteInfo = $objView->objSiteInfo;
28$arrInfo = $objSiteInfo->data;
29
30// パラメータ管理クラス
31$objFormParam = new SC_FormParam();
32// パラメータ情報の初期化
33lfInitParam();
34// POST値の取得
35$objFormParam->setParam($_POST);
36
37// ユーザユニークIDの取得と購入状態の正当性をチェック
38$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
39
40// カート集計処理
41$objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
42
43// 一時受注テーブルの読込
44$arrData = sfGetOrderTemp($uniqid);
45
46// カート集計を元に最終計算
47$arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
48
49$sql = "SELECT module_id, memo01, memo02, memo03, memo04, memo05, memo06, memo07, memo08, memo09, memo10 ".
50    "FROM dtb_payment WHERE payment_id = ? ";
51
52// 支払い情報を取得
53$arrPayment = $objQuery->getall($sql, array($arrData["payment_id"]));
54
55// 画面遷移判定
56switch($_POST["mode"]){
57    //戻る
58    case 'return':
59        // 正常に登録されたことを記録しておく
60        $objSiteSess->setRegistFlag();
61        // 確認ページへ移動
62        header("Location: " . URL_SHOP_CONFIRM);
63        exit;
64        break;
65}
66
67// ルミーズからの返信があった場合
68if (isset($_POST["X-R_CODE"])) {
69   
70    $err_detail = "";
71   
72    // 通信時エラー
73    if ($_POST["X-R_CODE"] != $arrRemiseErrorWord["OK"]) {
74        $err_detail = $_POST["X-R_CODE"];
75        sfDispSiteError(FREE_ERROR_MSG, "", false, "購入処理中に以下のエラーが発生しました。<br /><br /><br />・" . $err_detail);
76       
77    // 通信結果正常
78    } else {
79       
80        $log_path = DATA_PATH . "logs/remise_card_finish.log";
81        gfPrintLog("remise card finish start----------", $log_path);
82        foreach($_POST as $key => $val){
83            gfPrintLog( "\t" . $key . " => " . $val, $log_path);
84        }
85        gfPrintLog("remise card finish end  ----------", $log_path);
86   
87        // 金額の整合性チェック
88        if ($arrData["payment_total"] != $_POST["X-TOTAL"] && $arrData["credit_result"] != $_POST["X-TRANID"]) {
89            sfDispSiteError(FREE_ERROR_MSG, "", false, "購入処理中に以下のエラーが発生しました。<br /><br /><br />・請求金額と支払い金額が違います。");
90        }
91       
92        // 正常な推移であることを記録しておく
93        $objSiteSess->setRegistFlag();
94       
95        // POSTデータを保存
96        $arrVal["credit_result"] = $_POST["X-TRANID"];
97        $arrVal["memo01"] = PAYMENT_CREDIT_ID;
98        $arrVal["memo03"] = $arrPayment[0]["module_id"];
99        $arrVal["memo04"] = $_POST["X-TRANID"];
100       
101        // トランザクションコード
102        $arrMemo["trans_code"] = array("name"=>"Remiseトランザクションコード", "value" => $_POST["X-TRANID"]);
103        $arrVal["memo02"] = serialize($arrMemo);
104       
105        // 決済送信データ作成
106        $arrModule['module_id'] = MDL_REMISE_ID;
107        $arrModule['payment_total'] = $arrData["payment_total"];
108        $arrModule['payment_id'] = PAYMENT_CREDIT_ID;
109        $arrVal['memo05'] = serialize($arrModule);
110       
111        // 受注一時テーブルに更新
112        sfRegistTempOrder($uniqid, $arrVal);
113
114        // 完了画面へ
115        header("Location: " .  URL_SHOP_COMPLETE);
116    }
117}
118
119// EC-CUBE側の通知用URL
120$retUrl = SITE_URL . 'shopping/load_payment_module.php?module_id=' . MDL_REMISE_ID;
121$exitUrl = SITE_URL . 'shopping/load_payment_module.php';
122
123$arrSendData = array(
124    'SEND_URL' => $arrPayment[0]["memo04"], // 接続先URL
125    'S_TORIHIKI_NO' => $arrData["order_id"],    // オーダー番号
126    'MAIL' => $arrData["order_email"],          // メールアドレス
127    'AMOUNT' => $arrData["subtotal"],           // 金額
128    'TAX' => $arrData["deliv_fee"],             // 送料 + 税
129    'TOTAL' => $arrData["payment_total"],       // 合計金額
130    'SHOPCO' => $arrPayment[0]["memo01"],       // 店舗コード
131    'HOSTID' => $arrPayment[0]["memo02"],       // ホストID
132    'JOB' => REMISE_PAYMENT_JOB_CODE,           // ジョブコード
133    'ITEM' => '0000120',                        // 商品コード(ルミーズ固定)
134    'RETURL' => $retUrl,                        // 完了通知URL
135    'NG_RETURL' => $retUrl,                 // NG完了通知URL
136    'EXITURL' => $exitUrl,                      // 戻り先URL
137    'REMARKS3' => MDL_REMISE_POST_VALUE
138);
139
140// 支払い方法表示処理
141$objFormParam->setValue("credit_method", $arrPayment[0]["memo08"]);
142$objFormParam->splitParamCheckBoxes("credit_method");
143$arrUseCreMet = $objFormParam->getValue("credit_method");
144
145foreach($arrUseCreMet as $key => $val) {
146    $arrCreMet[$val] = $arrCredit[$val];
147}
148
149// 分割回数表示処理(管理画面での設定回数以内まで表示)
150foreach($arrCreditDivide as $key => $val) {
151    if ($arrPayment[0]["memo09"] >= $val) {
152        $arrCreDiv[$val] = $val;
153    }
154}
155
156$objPage->arrCreMet = $arrCreMet;
157$objPage->arrCreDiv = $arrCreDiv;
158$objPage->arrSendData = $arrSendData;
159
160$objView->assignobj($objPage);
161
162// 出力内容をSJISにする(ルミーズ対応)
163mb_http_output(REMISE_SEND_ENCODE);
164$objView->display(MODULE_PATH . "mdl_remise/card.tpl");
165
166//---------------------------------------------------------------------------------------------------------------------------------------------------------
167
168//パラメータの初期化
169function lfInitParam() {
170    global $objFormParam;
171    $objFormParam->addParam("支払い方法", "credit_method");
172}
173
174?>
Note: See TracBrowser for help on using the repository browser.