source: branches/beta/data/downloads/module/mdl_remise/mdl_remise.php @ 17010

Revision 17010, 11.7 KB checked in by adachi, 16 years ago (diff)

バージョンを1.2へ変更

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