source: branches/feature-module-gmo-pg/data/downloads/module/mdl_gmo-pg/gmo-pg_credit.php @ 16902

Revision 16902, 10.2 KB checked in by adachi, 16 years ago (diff)

#16844取り消し

Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once(MODULE_PATH . "mdl_gmo-pg/mdl_gmo-pg.inc");
8
9/*
10
11»ÙʧÊýË¡¤òɽ¤¹¥³¡¼¥É
12
131¡§ °ì³çʧ¤¤
142¡§ ʬ³äʧ¤¤
153¡§ ¥Ü¡¼¥Ê¥¹°ì³çʧ¤¤
164¡§ ¥Ü¡¼¥Ê¥¹Ê¬³äʧ¤¤
175¡§ ¥ê¥Üʧ¤¤
18
19 */
20
21$arrPayMethod = array(
22    '1-0' => "°ì³çʧ¤¤",
23    '2-3' => "ʬ³ä3²óʧ¤¤",
24    '2-6' => "ʬ³ä6²óʧ¤¤",
25    '2-10'=> "ʬ³ä10²óʧ¤¤",
26    '2-15'=> "ʬ³ä15²óʧ¤¤",
27    '2-20'=> "ʬ³ä20²óʧ¤¤",
28    '5-0' => "¥ê¥Üʧ¤¤"
29);
30
31class LC_Page {
32    function LC_Page() {
33        /** ɬ¤º»ØÄꤹ¤ë **/
34        $this->tpl_css = '/css/layout/shopping/card.css';   // ¥á¥¤¥óCSS¥Ñ¥¹
35        if (GC_MobileUserAgent::isMobile()) {
36            $this->tpl_mainpage = MODULE_PATH . "mdl_gmo-pg/gmo-pg_credit_mobile.tpl";
37        } else {
38            $this->tpl_mainpage = MODULE_PATH . "mdl_gmo-pg/gmo-pg_credit.tpl";
39        }
40        global $arrPayMethod;
41        $this->arrPayMethod = $arrPayMethod;
42        /*
43         session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
44         ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìɽ¼¨¤òÍÞÀ©¤¹¤ë¡£
45         private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
46        */
47        session_cache_limiter('private-no-expire');     
48    }
49}
50
51$objPage = new LC_Page();
52$objView = (GC_MobileUserAgent::isMobile()) ? new SC_MobileView() : new SC_SiteView();
53$objSiteSess = new SC_SiteSession();
54$objCartSess = new SC_CartSession();
55$objSiteInfo = $objView->objSiteInfo;
56$arrInfo = $objSiteInfo->data;
57
58// ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
59$objFormParam = new SC_FormParam();
60// ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
61lfInitParam();
62// POSTÃͤμèÆÀ
63$objFormParam->setParam($_POST);
64
65// ¥¢¥¯¥»¥¹¤ÎÀµÅöÀ­¤ÎȽÄê
66$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
67
68switch($_POST['mode']) {
69// ÅÐÏ¿
70case 'regist':
71    // ÆþÎÏÃͤÎÊÑ´¹
72    $objFormParam->convParam();
73    $objPage->arrErr = lfCheckError($arrRet);
74
75    // ÆþÎÏ¥¨¥é¡¼¤Ê¤·¤Î¾ì¹ç
76    if(count($objPage->arrErr) == 0) {
77        // ¥¨¥é¡¼¥Õ¥é¥°
78        $err_flg = false;
79       
80        // ¥«¡¼¥È½¸·×½èÍý
81        $objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
82        // °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆɹþ
83        $arrData = sfGetOrderTemp($uniqid);
84        // ¥«¡¼¥È½¸·×¤ò¸µ¤ËºÇ½ª·×»»
85        $arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
86        // ¥«¡¼¥É¤Îǧ¾Ú¤ò¹Ô¤¦
87        $arrVal = $objFormParam->getHashArray();
88       
89                // ÄÌ¿®¥¨¥é¡¼¤ÎȽÄê
90        $access_err = false;
91        // ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸
92        $credit_err = false;
93        $gmo_err_msg = "";
94       
95        // ¥¢¥¯¥»¥¹ID¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç
96        if($_SESSION['GMO']['ACCESS_ID'] == "") {
97            // ŹÊÞ¾ðÊó¤ÎÁ÷¿®
98            $arrEntryRet = lfSendGMOEntry($arrData['order_id'], $arrData['payment_total']);
99            if($arrEntryRet == NULL) {
100                $access_err = true;
101            }
102           
103            // ŹÊÞ¾ðÊ󥨥顼¤ÎȽÄê
104            if($arrEntryRet['ERR_CODE'] == '0' && $arrEntryRet['ERR_INFO'] == 'OK') {
105                $_SESSION['GMO']['ACCESS_ID'] = $arrEntryRet['ACCESS_ID'];
106                $_SESSION['GMO']['ACCESS_PASS'] = $arrEntryRet['ACCESS_PASS'];
107            } else {
108                $_SESSION['GMO']['ACCESS_ID'] = "";
109                $_SESSION['GMO']['ACCESS_PASS'] = "";               
110                $credit_err = true;
111                $detail_code01 = substr($arrEntryRet['ERR_INFO'], 0, 5);
112                $detail_code02 = substr($arrEntryRet['ERR_INFO'], 5, 4);
113                $gmo_err_msg = $detail_code01 . "-" . $detail_code02;
114            }
115        }
116       
117        // ¥¨¥é¡¼¤Ê¤·¤Î¾ì¹ç
118        if(!$access_err && !$credit_err) {
119            // ŹÊÞ¾ðÊóÁ÷¿®·ë²Ì
120            $sqlval['memo04'] = $arrEntryRet['ERR_CODE'];
121            $sqlval['memo05'] = $arrEntryRet['ERR_INFO'];
122           
123            // ŹÊÞ¾ðÊ󥨥顼¤ÎȽÄê
124            if($_SESSION['GMO']['ACCESS_ID'] != "" && $_SESSION['GMO']['ACCESS_PASS'] != "" ) {
125                // ·èºÑ¾ðÊó¤ÎÁ÷¿®
126                $arrExecRet = lfSendGMOExec($_SESSION['GMO']['ACCESS_ID'], $_SESSION['GMO']['ACCESS_PASS'], $arrData['order_id'], $arrVal['card_no01'], $arrVal['card_no02'], $arrVal['card_no03'], $arrVal['card_no04'], $arrVal['card_month'], $arrVal['card_year'], $arrVal['paymethod']);
127                if($arrExecRet == NULL) {
128                    $access_err = true;
129                }
130            }
131        }
132       
133        // ¥¨¥é¡¼¤Ê¤·¤Î¾ì¹ç
134        if(!$access_err && !$credit_err) {
135            // ÄɲþðÊó¤Ï¤Ê¤¤¤¿¤á¥À¥ß¡¼¥Ç¡¼¥¿¤ò³ÊǼ
136            $sqlval['memo02'] = serialize(array());
137                   
138            // ±þÅúÆâÍƤε­Ï¿
139            $sqlval['memo03'] = $arrVal['card_name01'] . " " . $arrVal['card_name02'];
140   
141            // ·èºÑ¾ðÊóÁ÷¿®·ë²Ì
142            $sqlval['memo06'] = $arrExecRet['ErrType'];
143            $sqlval['memo07'] = $arrExecRet['ErrInfo'];
144           
145            $objQuery = new SC_Query();
146            $objQuery->update("dtb_order_temp", $sqlval, "order_temp_id = ?", array($uniqid));
147       
148            // Í¿¿®½èÍýÀ®¸ù¤Î¾ì¹ç
149            if($arrExecRet['Html'] == "Receipt" && $arrExecRet['ErrType'] == "" && $arrExecRet['ErrInfo'] == "") {
150                // Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
151                $objSiteSess->setRegistFlag();
152                // ¥¢¥¯¥»¥¹ID¤ò¥¯¥ê¥¢¤¹¤ë¡£
153                $_SESSION['GMO']['ACCESS_ID'] = "";
154                $_SESSION['GMO']['ACCESS_PASS'] = "";   
155                // ½èÍý´°Î»¥Ú¡¼¥¸¤Ø
156                if (GC_MobileUserAgent::isMobile()) {
157                    header("Location: " . gfAddSessionId(URL_SHOP_COMPLETE));
158                } else {
159                    header("Location: " . URL_SHOP_COMPLETE);
160                }
161            } else {
162                $credit_err = true;
163                $detail_code01 = substr($arrExecRet['ErrInfo'], 0, 5);
164                $detail_code02 = substr($arrExecRet['ErrInfo'], 5, 4);
165                $gmo_err_msg = $detail_code01 . "-" . $detail_code02;
166            }
167        }
168       
169        if($access_err || $credit_err) {
170            if($access_err) {
171                $objPage->tpl_error = "¢¨ ¥¯¥ì¥¸¥Ã¥È¾µÇ§¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡§ÄÌ¿®¥¨¥é¡¼";               
172            } else {
173                if($gmo_err_msg != "") {
174                    $objPage->tpl_error = "¢¨ ¥¯¥ì¥¸¥Ã¥È¾µÇ§¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡§".$gmo_err_msg;             
175                } else {
176                    $objPage->tpl_error = "¢¨ ¥¯¥ì¥¸¥Ã¥È¾µÇ§¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡§ÉÔÌÀ¤Ê¥¨¥é¡¼";                             
177                }
178            }
179        }
180    }
181    break;
182// Á°¤Î¥Ú¡¼¥¸¤ËÌá¤ë
183case 'return':
184    // Àµ¾ï¤Ê¿ä°Ü¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
185    $objSiteSess->setRegistFlag();
186    header("Location: " . URL_SHOP_CONFIRM);
187    exit;
188default:
189   
190    break;
191}
192
193$objDate = new SC_Date();
194$objDate->setStartYear(RELEASE_YEAR);
195$objDate->setEndYear(RELEASE_YEAR + CREDIT_ADD_YEAR);
196$objPage->arrYear = $objDate->getZeroYear();
197$objPage->arrMonth = $objDate->getZeroMonth();
198
199$objPage->arrForm = $objFormParam->getFormParamList();
200
201// ¶¦Ä̤Îɽ¼¨½àÈ÷
202$objPage = sfGmoDisp($objPage, $payment_id);
203
204$objView->assignobj($objPage);
205$objView->display(SITE_FRAME);
206//-----------------------------------------------------------------------------------------------------------------------------------
207/* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */
208function lfInitParam() {
209    global $objFormParam;
210    $objFormParam->addParam("¥«¡¼¥ÉÈÖ¹æ1", "card_no01", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
211    $objFormParam->addParam("¥«¡¼¥ÉÈÖ¹æ2", "card_no02", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
212    $objFormParam->addParam("¥«¡¼¥ÉÈÖ¹æ3", "card_no03", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
213    $objFormParam->addParam("¥«¡¼¥ÉÈÖ¹æ4", "card_no04", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
214    $objFormParam->addParam("¥«¡¼¥É´ü¸Âǯ", "card_year", 2, "n", array("EXIST_CHECK", "NUM_COUNT_CHECK", "NUM_CHECK"));
215    $objFormParam->addParam("¥«¡¼¥É´ü¸Â·î", "card_month", 2, "n", array("EXIST_CHECK", "NUM_COUNT_CHECK", "NUM_CHECK"));
216    $objFormParam->addParam("À«", "card_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALPHA_CHECK"));
217    $objFormParam->addParam("̾", "card_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALPHA_CHECK"));
218    $objFormParam->addParam("»ÙʧÊýË¡", "paymethod", STEXT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
219}
220
221/* ÆþÎÏÆâÍƤΥÁ¥§¥Ã¥¯ */
222function lfCheckError() {
223    global $objFormParam;
224    // ÆþÎϥǡ¼¥¿¤òÅϤ¹¡£
225    $arrRet =  $objFormParam->getHashArray();
226    $objErr = new SC_CheckError($arrRet);
227    $objErr->arrErr = $objFormParam->checkError();
228   
229    return $objErr->arrErr;
230}
231
232// ŹÊÞ¾ðÊó¤ÎÁ÷¿®
233function lfSendGMOEntry($order_id, $amount, $tax = 0) {
234   
235    $arrRet = sfGetPaymentDB();
236       
237    $arrData = array(
238        'OrderId' => $order_id,     // ŹÊÞ¤´¤È¤Ë°ì°Õ¤ÊÃíʸID¤òÁ÷¿®¤¹¤ë¡£
239        'TdTenantName' => '',       // 3Dǧ¾Ú»þɽ¼¨ÍÑŹÊÞ̾
240        'TdFlag' => '',             // 3D¥Õ¥é¥°
241        'ShopId' => $arrRet[0]['gmo_shopid'],       // ¥·¥ç¥Ã¥×ID
242        'ShopPass' => $arrRet[0]['gmo_shoppass'],   // ¥·¥ç¥Ã¥×¥Ñ¥¹¥ï¡¼¥É
243        'Currency' => 'JPN',        // Ä̲ߥ³¡¼¥É
244        'Amount' => $amount,        // ¶â³Û
245        'Tax' => $tax,              // ¾ÃÈñÀÇ
246        'JobCd' => 'AUTH',          // ½èÍý¶èʬ
247        'TenantNo' => $arrRet[0]['gmo_tenantno'],   // ŹÊÞID¤òÁ÷¿®¤¹¤ë¡£
248    );
249   
250    $req = new HTTP_Request(GMO_ENTRY_URL);
251    $req->setMethod(HTTP_REQUEST_METHOD_POST);
252    $req->addPostDataArray($arrData);
253   
254    if (!PEAR::isError($req->sendRequest())) {
255        $response = $req->getResponseBody();
256    }
257    $req->clearPostData();
258    $arrRet = lfGetPostArray($response);
259   
260    return $arrRet;
261}
262
263function lfSendGMOExec($access_id, $access_pass, $order_id, $cardno1, $cardno2, $cardno3, $cardno4, $ex_mm, $ex_yy, $paymethod) {
264   
265    // »ÙʧÊýË¡¡¢²ó¿ô¤Î¼èÆÀ
266    list($method, $paytimes) = split("-", $paymethod);
267   
268    if(!($paytimes > 0)) {
269        $paytimes = "";
270    }
271           
272    $arrData = array(
273    'AccessId' => $access_id,
274    'AccessPass' => $access_pass,
275    'OrderId' => $order_id,
276    'RetURL' => GMO_RETURL,
277    // ¥×¥í¥Ñ¡¼¥«¡¼¥É¤ò°·¤ï¤Ê¤¤¾ì¹ç¤ÏVISA¸ÇÄê¤ÇOK
278    'CardType' => 'VISA, 11111, 111111111111111111111111111111111111, 1111111111',
279    // »Ùʧ¤¤ÊýË¡
280    /*
281        1:°ì³ç
282        2:ʬ³ä
283        3:¥Ü¡¼¥Ê¥¹°ì³ç
284        4:¥Ü¡¼¥Ê¥¹Ê¬³ä
285        5:¥ê¥Üʧ¤¤
286     */
287    'Method' => $method,
288    // »Ùʧ²ó¿ô
289    'PayTimes' => $paytimes,
290    // ¥«¡¼¥ÉÈÖ¹æ
291    /*
292        »î¸³ÍÑ¥«¡¼¥ÉÈÖ¹æ¤Ï¡¢4111-1111-1111-1111
293     */
294    'CardNo1' => $cardno1,
295    'CardNo2' => $cardno2,
296    'CardNo3' => $cardno3,
297    'CardNo4' => $cardno4,
298    'ExpireMM' => $ex_mm,
299    'ExpireYY' => $ex_yy,
300    // ²ÃÌÁŹ¼«Í³¹àÌÜÊֵѥե饰
301    'ClientFieldFlag' => '1',
302    'ClientField1' => 'f1',
303    'ClientField2' => 'f2',
304    'ClientField3' => 'f3',
305    // ¥ê¥À¥¤¥ì¥¯¥È¥Ú¡¼¥¸¤Ç¤Î±þÅú¤ò¼õ¤±¼è¤é¤Ê¤¤
306    /*
307        0: HTML ¥ê¥À¥¤¥ì¥¯¥È¥Ú¡¼¥¸¡ÊDefault ÃÍ¡Ë
308        1: ¥Æ¥­¥¹¥È
309     */
310    'ModiFlag' => '1', 
311    );
312   
313    $req = new HTTP_Request(GMO_EXEC_URL);
314    $req->setMethod(HTTP_REQUEST_METHOD_POST);
315   
316    $req->addPostDataArray($arrData);
317   
318    if (!PEAR::isError($req->sendRequest())) {
319        $response = $req->getResponseBody();
320    }
321    $req->clearPostData();
322   
323    $arrRet = lfGetPostArray($response);
324   
325    return $arrRet;
326}
327
328function lfGetPostArray($text) {
329    $arrRet = array();
330    if($text != "") {
331        $text = ereg_replace("[\n\r]", "", $text);
332        $arrTemp = split("&", $text);
333        foreach($arrTemp as $ret) {
334            list($key, $val) = split("=", $ret);
335            $arrRet[$key] = $val;
336        }
337    }
338    return $arrRet;
339}
340?>
Note: See TracBrowser for help on using the repository browser.