source: branches/version-1/data/downloads/module/mdl_remise/mdl_remise.php @ 17079

Revision 17079, 13.9 KB checked in by adachi, 14 years ago (diff)

バージョン番号を1.3へ変更

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id
Line 
1<?php
2/**
3 *
4 * @copyright   2000-2007 LOCKON CO.,LTD. All Rights Reserved.
5 * ¥â¥¸¥å¡¼¥ë¥Ð¡¼¥¸¥ç¥óɽµ­
6 * @version ### ### 1.3
7 * @link        http://www.lockon.co.jp/
8 *
9 */
10require_once(MODULE_PATH . "mdl_remise/mdl_remise.inc");
11
12// ǧ¾Ú½èÍý
13sfIsSuccess(new SC_Session);
14
15//¥Ú¡¼¥¸´ÉÍý¥¯¥é¥¹
16class LC_Page {
17    //¥³¥ó¥¹¥È¥é¥¯¥¿
18    function LC_Page() {
19        //¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤Î»ØÄê
20        $this->tpl_mainpage = MODULE_PATH . 'mdl_remise/mdl_remise.tpl';
21        $this->tpl_subtitle = '¥ë¥ß¡¼¥º·èºÑ¥â¥¸¥å¡¼¥ë';
22        global $arrPayment;
23        $this->arrPayment = $arrPayment;
24        global $arrCredit;
25        $this->arrCredit = $arrCredit;
26        global $arrCreditDivide;
27        $this->arrCreditDivide = $arrCreditDivide;
28    }
29}
30
31$objPage = new LC_Page();
32$objView = new SC_AdminView();
33
34// ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
35$objFormParam = lfInitParam($objFormParam);
36
37// ÈÆÍѹàÌܤòÄɲÃ(ɬ¿Ü¡ª¡ª)
38sfAlterMemo();
39
40$mode = isset($_POST['mode']) ? $_POST['mode'] : '';
41
42switch($mode) {
43    case 'edit':
44        // ÆþÎÏ¥¨¥é¡¼È½Äê
45        $objPage->arrErr = lfCheckError();
46
47        // ¥¨¥é¡¼¤Ê¤·¤Î¾ì¹ç¤Ë¤Ï¥Ç¡¼¥¿¤ò¹¹¿·
48        if (count($objPage->arrErr) == 0) {
49            // ¥Ç¡¼¥¿¹¹¿·
50            lfUpdPaymentDB();
51            // ·èºÑ·ë²Ì¼õÉÕ¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼
52            copy(MODULE_PATH . "mdl_remise/remise_recv.php", HTML_PATH . "user_data/remise_recv.php");
53            // javascript¼Â¹Ô
54            $objPage->tpl_onload = 'alert("ÅÐÏ¿´°Î»¤·¤Þ¤·¤¿¡£\n´ðËܾðÊó¡ä»ÙʧÊýË¡ÀßÄê¤è¤ê¾ÜºÙÀßÄê¤ò¤·¤Æ¤¯¤À¤µ¤¤¡£"); window.close();';
55        }
56        break;
57    case 'module_del':
58        // ÈÆÍѹàÌܤθºß¥Á¥§¥Ã¥¯
59        if (sfColumnExists("dtb_payment", "memo01")) {
60            // ¥Ç¡¼¥¿¤Îºï½ü¥Õ¥é¥°¤ò¤¿¤Æ¤ë
61            $objQuery->query("UPDATE dtb_payment SET del_flg = 1 WHERE module_id = ?", array(MDL_REMISE_ID));
62        }
63        break;
64    default:
65        // ¥Ç¡¼¥¿¤Î¥í¡¼¥É
66        lfLoadData();
67        break;
68}
69
70$objPage->arrForm = $objFormParam->getFormParamList();
71
72$objView->assignobj($objPage);                  //ÊÑ¿ô¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¥¢¥µ¥¤¥ó¤¹¤ë
73$objView->display($objPage->tpl_mainpage);      //¥Æ¥ó¥×¥ì¡¼¥È¤Î½ÐÎÏ
74//-------------------------------------------------------------------------------------------------------
75
76/**
77 * ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
78 *
79 * @param unknown_type $objFormParam
80 * @return unknown
81 */
82function lfInitParam($objFormParam) {
83    $objFormParam = new SC_FormParam();
84    $objFormParam->addParam("²ÃÌÁŹ¥³¡¼¥É", "code", INT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
85    $objFormParam->addParam("¥Û¥¹¥ÈÈÖ¹æ", "host_id", INT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
86    $objFormParam->addParam("¥¯¥ì¥¸¥Ã¥ÈÀܳÀèURL(PC)", "credit_url", URL_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "URL_CHECK"));
87    $objFormParam->addParam("¥¯¥ì¥¸¥Ã¥ÈÀܳÀèURL(¥â¥Ð¥¤¥ë)", "mobile_credit_url");
88    $objFormParam->addParam("»Ùʧ¤¤ÊýË¡", "credit_method");
89    $objFormParam->addParam("¥ª¥×¥·¥ç¥ó", "payment");
90    $objFormParam->addParam("¥³¥ó¥Ó¥ËÀܳÀèURL(PC)", "convenience_url");
91    $objFormParam->addParam("¥³¥ó¥Ó¥ËÀܳÀèURL(¥â¥Ð¥¤¥ë)", "mobile_convenience_url");
92    $objFormParam->setParam($_POST);
93    $objFormParam->convParam();
94    return $objFormParam;
95}
96
97/**
98 *  ¥¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦
99 *
100 * @param unknown_type $objFormParam
101 * @return unknown
102 */
103function lfCheckError(){
104    global $objFormParam;
105
106    $arrErr = $objFormParam->checkError();
107
108    // ÍøÍÑ¥¯¥ì¥¸¥Ã¥È¡¢ÍøÍÑ¥³¥ó¥Ó¥Ë¤Î¥¨¥é¡¼¥Á¥§¥Ã¥¯
109    $arrChkPay = $_POST["payment"];
110
111    // ¥¯¥ì¥¸¥Ã¥È¤Î»Ùʧ¤¤ÊýË¡
112    if (count($_POST["credit_method"]) <= 0) {
113        $arrErr["credit_method"] = "»Ùʧ¤¤ÊýË¡¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£<br />";
114    }
115
116    // ÍøÍÑ¥³¥ó¥Ó¥Ë
117    if (isset($arrChkPay)) {
118        if ($_POST["convenience_url"] == "" && $_POST["mobile_convenience_url"] == "") {
119            $arrErr["convenience_url"] = "¥³¥ó¥Ó¥ËÀܳÀèURL(PC)¤Þ¤¿¤Ï¥³¥ó¥Ó¥ËÀܳÀèURL(¥â¥Ð¥¤¥ë)¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£<br />";
120        }
121    }
122
123    return $arrErr;
124}
125
126// ÅÐÏ¿¥Ç¡¼¥¿¤òÆɤ߹þ¤à
127function lfLoadData(){
128    global $objFormParam;
129
130    //¥Ç¡¼¥¿¤ò¼èÆÀ
131    $arrRet = lfGetPaymentDB(" AND del_flg = '0'");
132
133    // Ãͤò¥»¥Ã¥È
134    $objFormParam->setParam($arrRet[0]);
135
136    // ²èÌÌɽ¼¨ÍѤ˥ǡ¼¥¿¤òÊÑ´¹
137    $arrDisp = array();
138    $arrDisp["payment"][0] = 0;
139
140    foreach($arrRet as $key => $val) {
141        // ¥¯¥ì¥¸¥Ã¥È¤Î·èºÑ¶èʬ¤ò¼èÆÀ
142        if($val["payment"] == 1) {
143            $credit = $val["payment_code"];
144            $arrDisp["credit_url"] = $val["credit_url"];
145            $arrDisp["mobile_credit_url"] = $val["mobile_credit_url"];
146            $arrDisp["credit_method"] = $val["credit_method"];
147        }
148
149        // ¥³¥ó¥Ó¥Ë¤Î·èºÑ¶èʬ¤ò¼èÆÀ
150        if($val["payment"] == 2) {
151            $arrDisp["convenience"] = $val["convenience"];
152            $arrDisp["payment"][0] = 1;
153            $arrDisp["convenience_url"] = $val["convenience_url"];
154            $arrDisp["mobile_convenience_url"] = $val["mobile_convenience_url"];
155        }
156    }
157
158    $objFormParam->setParam($arrDisp);
159    $objFormParam->splitParamCheckBoxes("credit_method");
160
161    // ¥¯¥ì¥¸¥Ã¥È»Ùʧ¤¤¶èʬ
162    //$objFormParam->splitParamCheckBoxes("credit_method");
163}
164
165// DB¤«¤é¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë
166function lfGetPaymentDB($where = "", $arrWhereVal = array()){
167    $objQuery = new SC_Query;
168
169    $arrVal = array(MDL_REMISE_ID);
170    $arrVal = array_merge($arrVal, $arrWhereVal);
171
172    $arrRet = array();
173    $sql = "SELECT
174                module_id,
175                memo01 as code,
176                memo02 as host_id,
177                memo03 as payment,
178                memo04 as credit_url,
179                memo05 as convenience_url,
180                memo06 as mobile_credit_url,
181                memo07 as mobile_convenience_url,
182                memo08 as credit_method,
183                memo09 as credit_divide
184            FROM dtb_payment WHERE module_id = ? " . $where;
185    $arrRet = $objQuery->getall($sql, $arrVal);
186
187    return $arrRet;
188}
189
190
191// ¥Ç¡¼¥¿¤Î¹¹¿·½èÍý
192function lfUpdPaymentDB(){
193    $objQuery = new SC_Query;
194    $objSess = new SC_Session;
195
196    // »Ùʧ¤¤ÊýË¡¤Ë¥Á¥§¥Ã¥¯¤¬Æþ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥Ï¥¤¥Õ¥ó¶èÀÚ¤ê¤ËÊÔ½¸¤¹¤ë
197    $convCnt = count($_POST["credit_method"]);
198    if ($convCnt > 0) {
199        $credit_method = $_POST["credit_method"][0];
200        for ($i = 1 ; $i < $convCnt ; $i++) {
201            $credit_method .= "-" . $_POST["credit_method"][$i];
202        }
203    }
204
205    // del_flg¤òºï½ü¤Ë¤·¤Æ¤ª¤¯
206    $del_sql = "UPDATE dtb_payment SET del_flg = 1 WHERE module_id = ? ";
207    $arrDel = array(MDL_REMISE_ID);
208    $objQuery->query($del_sql, $arrDel);
209
210    $arrEntry = array('1');
211
212    if (count($_POST["payment"]) > 0) {
213        $arrEntry[] = '2';
214    }
215
216    foreach($arrEntry as $key => $val){
217        // ¥é¥ó¥¯¤ÎºÇÂçÃͤò¼èÆÀ¤¹¤ë
218        $max_rank = $objQuery->getone("SELECT max(rank) FROM dtb_payment");
219
220        // »ÙʧÊýË¡¥Ç¡¼¥¿¤ò¼èÆÀ
221        $arrPaymentData = lfGetPaymentDB("AND memo03 = ?", array($val));
222
223        // ¥¯¥ì¥¸¥Ã¥È·èºÑÅÐÏ¿
224        if($val == 1) {
225
226            $arrData = array(
227                "payment_method" => "remise¥¯¥ì¥¸¥Ã¥È"
228                ,"fix" => 3
229                ,"creator_id" => $objSess->member_id
230                ,"create_date" => "now()"
231                ,"update_date" => "now()"
232                ,"upper_rule" => REMISE_CREDIT_UPPER
233                ,"module_id" => MDL_REMISE_ID
234                ,"module_path" => MODULE_PATH . "mdl_remise/card.php"
235                ,"memo01" => $_POST["code"]
236                ,"memo02" => $_POST["host_id"]
237                ,"memo03" => $val
238                ,"memo04" => $_POST["credit_url"]
239                ,"memo06" => $_POST["mobile_credit_url"]
240                ,"memo08" => $credit_method
241                ,"memo09" => REMISE_PAYMENT_DIVIDE_MAX
242                ,"del_flg" => "0"
243                ,"charge_flg" => "2"
244                ,"upper_rule_max" => REMISE_CREDIT_UPPER
245            );
246        }
247
248        // ¥³¥ó¥Ó¥Ë¤Ë¥Á¥§¥Ã¥¯¤¬Æþ¤Ã¤Æ¤¤¤ì¤Ð¥³¥ó¥Ó¥Ë¤òÅÐÏ¿¤¹¤ë
249        if($val == 2) {
250
251            $arrData = array(
252                "payment_method" => "remise¥³¥ó¥Ó¥Ë"
253                ,"fix" => 3
254                ,"creator_id" => $objSess->member_id
255                ,"create_date" => "now()"
256                ,"update_date" => "now()"
257                ,"upper_rule" => REMISE_CONVENIENCE_UPPER
258                ,"module_id" => MDL_REMISE_ID
259                ,"module_path" => MODULE_PATH . "mdl_remise/convenience.php"
260                ,"memo01" => $_POST["code"]
261                ,"memo02" => $_POST["host_id"]
262                ,"memo03" => $val
263                ,"memo05" => $_POST["convenience_url"]
264                ,"memo07" => $_POST["mobile_convenience_url"]
265                ,"del_flg" => "0"
266                ,"charge_flg" => "1"
267                ,"upper_rule_max" => REMISE_CONVENIENCE_UPPER
268                ,"rule_min" => REMISE_CONVENIENCE_BOTTOM
269            );
270        }
271
272        // ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤ì¤ÐUPDATE¡¢Ìµ¤±¤ì¤ÐINSERT
273        if (count($arrPaymentData) > 0) {
274            $objQuery->update("dtb_payment", $arrData, " module_id = '" . MDL_REMISE_ID . "' AND memo03 = '" . $val ."'");
275        } else {
276            $arrData["rank"] = $max_rank + 1;
277            $objQuery->insert("dtb_payment", $arrData);
278        }
279    }
280}
281
282// ¥ë¥ß¡¼¥º¥«¡¼¥É¥¯¥ì¥¸¥Ã¥È·èºÑ·ë²ÌÄÌÃνèÍý
283function lfRemiseCreditResultCheck(){
284    $objQuery = new SC_Query;
285
286    $log_path = DATA_PATH . "logs/remise_card_result.log";
287    gfPrintLog("remise card result : ".$_POST["X-TRANID"] , $log_path);
288
289    // TRAN_ID ¤ò»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢¥«¡¼¥É¾ðÊ󤬤¢¤ë¾ì¹ç
290    if (isset($_POST["X-TRANID"]) && isset($_POST["X-PARTOFCARD"])) {
291
292        $errFlg = FALSE;
293
294        gfPrintLog("remise card result start----------", $log_path);
295        foreach($_POST as $key => $val){
296            gfPrintLog( "\t" . $key . " => " . $val, $log_path);
297        }
298        gfPrintLog("remise credit result end  ----------", $log_path);
299
300        // IP¥¢¥É¥ì¥¹À©¸æ¤¹¤ë¾ì¹ç
301        if (REMISE_IP_ADDRESS_DENY == 1) {
302            gfPrintLog("remise remoto ip address : ".$_SERVER["REMOTE_HOST"]."-".$_SERVER["REMOTE_ADDR"], $log_path);
303            if (!isset($_SERVER["REMOTE_ADDR"]) || !lfIpAddressDenyCheck($_SERVER["REMOTE_ADDR"])) {
304                print("NOT REMISE SERVER");
305                exit;
306            }
307        }
308
309        // ÀÁµáÈÖ¹æ¤È¶â³Û¤Î¼èÆÀ
310        $order_id = 0;
311        $payment_total = 0;
312
313        if (isset($_POST["X-S_TORIHIKI_NO"])) {
314            $order_id = $_POST["X-S_TORIHIKI_NO"];
315        }
316
317        if (isset($_POST["X-TOTAL"])) {
318            $payment_total = $_POST["X-TOTAL"];
319        }
320
321        gfPrintLog("order_id : ".$order_id, $log_path);
322        gfPrintLog("payment_total : ".$payment_total, $log_path);
323
324        // Ãíʸ¥Ç¡¼¥¿¼èÆÀ
325        $arrTempOrder = $objQuery->getall("SELECT payment_total FROM dtb_order_temp WHERE order_id = ? ", array($order_id));
326
327        // ¶â³Û¤ÎÁê°ã
328        if (count($arrTempOrder) > 0) {
329            gfPrintLog("ORDER payment_total : ".$arrTempOrder[0]['payment_total'], $log_path);
330            if ($arrTempOrder[0]['payment_total'] == $payment_total) {
331                $errFlg = TRUE;
332            }
333        }
334
335        if ($errFlg) {
336            print(REMISE_PAYMENT_CHARGE_OK);
337            exit;
338        }
339        print("ERROR");
340        exit;
341    }
342}
343
344/**
345 * ¥³¥ó¥Ó¥ËÆþ¶â³Îǧ½èÍý
346 * user_data/remise_recv.php¤Ø°Ü¹Ô.»ÈÍѤ·¤Ê¤¤.
347 */
348function lfRemiseConveniCheck(){
349    $objQuery = new SC_Query;
350
351    $log_path = DATA_PATH . "logs/remise_cv_charge.log";
352    gfPrintLog("remise conveni result : ".$_POST["JOB_ID"] , $log_path);
353
354    // ɬÍפʥǡ¼¥¿¤¬Á÷¿®¤µ¤ì¤Æ¤¤¤Æ¡¢¼ýǼÄÌÃΤμ«Æ°¼õ¿®¤òµö²Ä¤·¤Æ¤¤¤ë¾ì¹ç
355    if(isset($_POST["JOB_ID"]) && isset($_POST["REC_FLG"]) && REMISE_CONVENIENCE_RECIVE == 1){
356
357        $errFlg = FALSE;
358
359        // ¼ýǼºÑ¤ß¤Î¾ì¹ç
360        if ($_POST["REC_FLG"] == REMISE_CONVENIENCE_CHARGE) {
361            // POST¤ÎÆâÍƤòÁ´¤Æ¥í¥°Êݸ
362            gfPrintLog("remise conveni charge start----------", $log_path);
363            foreach($_POST as $key => $val){
364                gfPrintLog( "\t" . $key . " => " . $val, $log_path);
365            }
366            gfPrintLog("remise conveni charge end  ----------", $log_path);
367
368            // IP¥¢¥É¥ì¥¹À©¸æ¤¹¤ë¾ì¹ç
369            if (REMISE_IP_ADDRESS_DENY == 1) {
370                gfPrintLog("remise remoto ip address : ".$_SERVER["REMOTE_HOST"]."-".$_SERVER["REMOTE_ADDR"], $log_path);
371                if (!isset($_SERVER["REMOTE_ADDR"]) || !lfIpAddressDenyCheck($_SERVER["REMOTE_ADDR"])) {
372                    print("NOT REMISE SERVER");
373                    exit;
374                }
375            }
376
377            // ÀÁµáÈÖ¹æ¤È¶â³Û¤Î¼èÆÀ
378            $order_id = 0;
379            $payment_total = 0;
380
381            if (isset($_POST["S_TORIHIKI_NO"])) {
382                $order_id = $_POST["S_TORIHIKI_NO"];
383            }
384
385            if (isset($_POST["TOTAL"])) {
386                $payment_total = $_POST["TOTAL"];
387            }
388
389            gfPrintLog("order_id : ".$order_id, $log_path);
390            gfPrintLog("payment_total : ".$payment_total, $log_path);
391
392            // Ãíʸ¥Ç¡¼¥¿¼èÆÀ
393            $arrTempOrder = $objQuery->getall("SELECT payment_total FROM dtb_order_temp WHERE order_id = ? ", array($order_id));
394
395            // ¶â³Û¤ÎÁê°ã
396            if (count($arrTempOrder) > 0) {
397                gfPrintLog("ORDER payment_total : ".$arrTempOrder[0]['payment_total'], $log_path);
398                if ($arrTempOrder[0]['payment_total'] == $payment_total) {
399                    $errFlg = TRUE;
400                }
401            }
402
403            // JOB_ID¤ÈÀÁµáÈֹ档Æþ¶â¶â³Û¤¬°ìÃפ¹¤ë¾ì¹ç¤Î¤ß¡¢¥¹¥Æ¡¼¥¿¥¹¤òÆþ¶âºÑ¤ß¤ËÊѹ¹¤¹¤ë
404            if ($errFlg) {
405                $sql = "UPDATE dtb_order SET status = 6, update_date = now() ".
406                    "WHERE order_id = ? AND memo04 = ? ";
407                $objQuery->query($sql, array($order_id, $_POST["JOB_ID"]));
408
409                //±þÅú·ë²Ì¤òɽ¼¨
410                print(REMISE_CONVENIENCE_CHARGE_OK);
411                exit;
412            }
413        }
414        print("ERROR");
415        exit;
416    }
417}
418
419/**
420 * IP¥¢¥É¥ì¥¹ÂÓ°è¥Á¥§¥Ã¥¯
421 * @param $ip IP¥¢¥É¥ì¥¹
422 * @return boolean
423 */
424function lfIpAddressDenyCheck($ip) {
425
426    // IP¥¢¥É¥ì¥¹ÈϰϤËÆþ¤Ã¤Æ¤Ê¤¤¾ì¹ç
427    if (ip2long(REMISE_IP_ADDRESS_S) > ip2long($ip) ||
428        ip2long(REMISE_IP_ADDRESS_E) < ip2long($ip)) {
429        return FALSE;
430    }
431    return TRUE;
432}
433
434?>
Note: See TracBrowser for help on using the repository browser.