source: branches/feature-module-update/data/downloads/module/mdl_remise/convenience.php @ 15078

Revision 15078, 7.0 KB checked in by nanasess, 17 years ago (diff)

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
Line 
1<?php
2/*
3 * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7
8require_once("../require.php");
9require_once(DATA_PATH . "module/Request.php");
10require_once(MODULE_PATH . "mdl_remise/mdl_remise.inc");
11
12class LC_Page {
13    function LC_Page() {
14        $this->tpl_mainpage = MODULE_PATH . "mdl_remise/convenience.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
25global $arrConvenience;
26global $arrConveni_message;
27
28$objPage = new LC_Page();
29$objView = new SC_SiteView();
30$objSiteInfo = $objView->objSiteInfo;
31$arrInfo = $objSiteInfo->data;
32
33// パラメータ管理クラス
34$objFormParam = new SC_FormParam();
35
36// POST値の取得
37$objFormParam->setParam($_POST);
38
39// ユーザユニークIDの取得と購入状態の正当性をチェック
40$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
41
42// カート集計処理
43$objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
44
45// 一時受注テーブルの読込
46$arrData = sfGetOrderTemp($uniqid);
47
48// カート集計を元に最終計算
49$arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
50
51// 代表商品情報
52$arrMainProduct = $objPage->arrProductsClass[0];
53
54// 支払い情報を取得
55$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"]));
56
57// 確認画面に戻る
58switch($_POST["mode"]){
59    //戻る
60    case 'return':
61        // 正常に登録されたことを記録しておく
62        $objSiteSess->setRegistFlag();
63        // 確認ページへ移動
64        header("Location: " . URL_SHOP_CONFIRM);
65        exit;
66        break;
67}
68
69// ルミーズからの返信があった場合
70if (isset($_POST["X-R_CODE"])) {
71
72    $err_detail = "";
73   
74    // 通信時エラー
75    if ($_POST["X-R_CODE"] != $arrRemiseErrorWord["OK"]) {
76        $err_detail = $_POST["X-R_CODE"];
77        sfDispSiteError(FREE_ERROR_MSG, "", false, "購入処理中に以下のエラーが発生しました。<br /><br /><br />・" . $err_detail);
78   
79    // 通信結果正常
80    } else {
81
82        $log_path = DATA_PATH . "logs/remise_cv_finish.log";
83        gfPrintLog("remise conveni finish start----------", $log_path);
84        foreach($_POST as $key => $val){
85            gfPrintLog( "\t" . $key . " => " . $val, $log_path);
86        }
87        gfPrintLog("remise conveni finish end  ----------", $log_path);
88
89        // 金額の整合性チェック
90        if ($arrData["payment_total"] != $_POST["X-TOTAL"]) {
91            sfDispSiteError(FREE_ERROR_MSG, "", false, "購入処理中に以下のエラーが発生しました。<br /><br /><br />・請求金額と支払い金額が違います。");
92        }
93       
94        // 正常な推移であることを記録しておく
95        $objSiteSess->setRegistFlag();
96       
97        // ルミーズからの値の取得
98        $job_id = lfSetConvMSG("ジョブID(REMISE)", $_POST["X-JOB_ID"]);
99        $payment_limit = lfSetConvMSG("支払い期限", $_POST["X-PAYDATE"]);
100        $conveni_type = lfSetConvMSG("支払いコンビニ", $arrConvenience[$_POST["X-PAY_CSV"]]);
101        $payment_total = lfSetConvMSG("合計金額", $_POST["X-TOTAL"]);
102        $receipt_no = lfSetConvMSG("コンビニ払い出し番号", $_POST["X-PAY_NO1"]);
103
104        // ファミリーマートのみURLがない
105        if ($_POST["X-PAY_CSV"] != "D030") {
106            $payment_url = lfSetConvMSG("コンビニ払い出しURL", $_POST["X-PAY_NO2"]);
107        } else {
108            $payment_url = lfSetConvMSG("注文番号", $_POST["X-PAY_NO2"]);
109        }
110       
111        $arrRet['cv_type'] = $conveni_type;             // コンビニの種類
112        $arrRet['cv_payment_url'] = $payment_url;       // 払込票URL(PC)
113        $arrRet['cv_receipt_no'] = $receipt_no;         // 払込票番号
114        $arrRet['cv_payment_limit'] = $payment_limit;   // 支払い期限
115        $arrRet['title'] = lfSetConvMSG("コンビニ決済", true);
116       
117        // 決済送信データ作成
118        $arrModule['module_id'] = MDL_REMISE_ID;
119        $arrModule['payment_total'] = $arrData["payment_total"];
120        $arrModule['payment_id'] = PAYMENT_CONVENIENCE_ID;
121       
122        // ステータスは未入金にする
123        $sqlval['status'] = 2;
124       
125        // コンビニ決済情報を格納
126        $sqlval['conveni_data'] = serialize($arrRet);
127        $sqlval['memo01'] = PAYMENT_CONVENIENCE_ID;
128        $sqlval['memo02'] = serialize($arrRet);
129        $sqlval['memo03'] = $arrPayment[0]["module_id"];
130        $sqlval['memo04'] = $_POST["X-JOB_ID"];
131        $sqlval['memo05'] = serialize($arrModule);
132
133        // 受注一時テーブルに更新
134        sfRegistTempOrder($uniqid, $sqlval);
135
136        header("Location: " . URL_SHOP_COMPLETE);
137    }
138}
139
140// EC-CUBE側の通知用URL
141$retUrl = SITE_URL . 'shopping/load_payment_module.php?module_id=' . MDL_REMISE_ID;
142$exitUrl = SITE_URL . 'shopping/load_payment_module.php';
143$tel = $arrData["order_tel01"].$arrData["order_tel02"].$arrData["order_tel03"];
144
145// 住所整形
146$pref = $arrPref[$arrData["order_pref"]];
147$address1 = mb_convert_kana($arrData["order_addr01"], "ASKHV");
148$address2 = mb_convert_kana($arrData["order_addr02"], "ASKHV");
149
150// 商品名整形(最大7個のため、商品代金として全体で出力する)
151$itemName = "商品代金";
152$itemPlace = $arrData["payment_total"] - $arrData["deliv_fee"];
153
154$arrSendData = array(
155    'SEND_URL' => $arrPayment[0]["memo05"],     // 接続先URL
156    'S_TORIHIKI_NO' => $arrData["order_id"],        // 請求番号(EC-CUBE)
157    'MAIL' => $arrData["order_email"],              // メールアドレス
158    'NAME1' => $arrData["order_name01"],            // ユーザー名1
159    'NAME2' => $arrData["order_name02"],            // ユーザー名2
160    'KANA1' => $arrData["order_kana01"],            // ユーザー名(カナ)1
161    'KANA2' => $arrData["order_kana02"],            // ユーザー名(カナ)2
162    'TEL' => $tel,                                  // 電話番号
163    'YUBIN1' => $arrData["order_zip01"],            // 郵便番号1
164    'YUBIN2' => $arrData["order_zip02"],            // 郵便番号2
165    'ADD1' => $pref,                                // 住所1
166    'ADD2' => $address1,                            // 住所2
167    'ADD3' => $address2,                            // 住所3
168    'MSUM_01' => $arrData["subtotal"],              // 金額
169    'TAX' => $arrData["deliv_fee"],                 // 送料 + 税
170    'TOTAL' => $arrData["payment_total"],           // 合計金額
171    'SHOPCO' => $arrPayment[0]["memo01"],           // 店舗コード
172    'HOSTID' => $arrPayment[0]["memo02"],           // ホストID
173    'RETURL' => $retUrl,                            // 完了通知URL
174    'NG_RETURL' => $retUrl,                     // NG完了通知URL
175    'EXITURL' => $exitUrl,                          // 戻り先URL
176    'MNAME_01' => $itemName,                        // 商品名
177    'MSUM_01' => $itemPlace,                        // 商品代金合計(送料+税以外)
178    'REMARKS3' => MDL_REMISE_POST_VALUE
179);
180
181$objPage->arrSendData = $arrSendData;
182$objPage->arrForm =$objFormParam->getHashArray();
183$objView->assignobj($objPage);
184
185// 出力内容をSJISにする(ルミーズ対応)
186mb_http_output(REMISE_SEND_ENCODE);
187$objView->display(MODULE_PATH . "mdl_remise/convenience.tpl");
188
189//---------------------------------------------------------------------------------------------------------------------------------------------------------
190
191function lfSetConvMSG($name, $value){
192    return array("name" => $name, "value" => $value);
193}
194
195?>
Note: See TracBrowser for help on using the repository browser.