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

Revision 16844, 17.7 KB checked in by adachi, 16 years ago (diff)

GMO決済モジュール暫定コミット

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
9class LC_Page {
10    function LC_Page() {
11        $this->tpl_css = '/css/layout/shopping/card.css';
12
13        if (GC_MobileUserAgent::isMobile()) {
14            $this->tpl_mainpage = MODULE_PATH . "mdl_gmo-pg/gmo-pg_credit_mobile.tpl";
15        } else {
16            $this->tpl_mainpage = MODULE_PATH . "mdl_gmo-pg/gmo-pg_credit.tpl";
17        }
18        global $arrPayMethod;
19        $this->arrPayMethod = $arrPayMethod;
20        /**
21         * session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
22         * ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìɽ¼¨¤òÍÞÀ©¤¹¤ë¡£
23         * private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
24         */
25        session_cache_limiter('private-no-expire');
26    }
27}
28
29$objPage = new LC_Page();
30$objView = GC_MobileUserAgent::isMobile() ? new SC_MobileView() : new SC_SiteView();
31$objSiteSess = new SC_SiteSession();
32$objCartSess = new SC_CartSession();
33$arrInfo     = sf_getBasisData();
34$arrGMOConf  = sfGetPaymentDB();
35
36// ¥¢¥¯¥»¥¹¤ÎÀµÅöÀ­¤ÎȽÄê
37$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
38
39// ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
40$objFormParam = lfInitParam();
41
42switch(lfGetMode()) {
43// ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó²¡²¼»þ
44case 'regist':
45    gfPrintLog('### GMO PG MODULE Start ###', GMO_LOG_PATH);
46    // ÆþÎÏÃͤÎÊÑ´¹
47    $objFormParam->convParam();
48    $arrErr = $objFormParam->checkError();
49
50    // ÆþÎÏ¥¨¥é¡¼¤ÎȽÄê
51    if (!empty($arrErr)) {
52        $objPage->arrErr = $arrErr;
53        break;
54    }
55
56    // ¥«¡¼¥È½¸·×½èÍý
57    $objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
58    // °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆɹþ
59    $arrData = sfGetOrderTemp($uniqid);
60    // ¥«¡¼¥È½¸·×¤ò¸µ¤ËºÇ½ª·×»»
61    $arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
62    // POST¥Ç¡¼¥¿¤ò¼èÆÀ
63    $arrVal = $objFormParam->getHashArray();
64
65    // ¥¨¥é¡¼¥Õ¥é¥°
66    $err_flg = false;
67    // ÄÌ¿®¥¨¥é¡¼¤ÎȽÄê
68    $access_err = false;
69    // ŹÊÞ¾ðÊ󥨥顼¤ÎȽÄê
70    $credit_err = false;
71    // ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸
72    $gmo_err_msg = "";
73
74    // ¥¢¥¯¥»¥¹ID¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢EntryTrain¤Ø¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤¹¤ë
75    if(empty($_SESSION['GMO']['ACCESS_ID'])) {
76        gfPrintLog('-> EntryTrain Start.', GMO_LOG_PATH);
77        // ŹÊÞ¾ðÊó¤ÎÁ÷¿®
78        $arrEntryRet = lfSendGMOEntry($arrData['order_id'], $arrData['payment_total']);
79        if (empty($arrEntryRet)) {
80            gfPrintLog('-> EntryTrain failed. access error.', GMO_LOG_PATH);
81            $access_err = true;
82        }
83
84        // ŹÊÞ¾ðÊ󥨥顼¤ÎȽÄê
85        if ($arrEntryRet['ERR_CODE'] == '0' && $arrEntryRet['ERR_INFO'] == 'OK') {
86            gfPrintLog('-> EntryTrain success.', GMO_LOG_PATH);
87            $_SESSION['GMO']['ACCESS_ID'] = $arrEntryRet['ACCESS_ID'];
88            $_SESSION['GMO']['ACCESS_PASS'] = $arrEntryRet['ACCESS_PASS'];
89        } else {
90            gfPrintLog('-> EntryTrain failed. credit error.', GMO_LOG_PATH);
91            unset($_SESSION['GMO']['ACCESS_ID']);
92            unset($_SESSION['GMO']['ACCESS_PASS']);
93            $credit_err = true;
94            $detail_code01 = substr($arrEntryRet['ERR_INFO'], 0, 5);
95            $detail_code02 = substr($arrEntryRet['ERR_INFO'], 5, 4);
96            $gmo_err_msg = $detail_code01 . "-" . $detail_code02;
97        }
98    }
99
100    // EntryTrain¤Ç¥¨¥é¡¼¤Ê¤·¤Î¾ì¹ç¤ÏExecTrain¤ò¼Â¹Ô¤¹¤ë
101    if(!$access_err && !$credit_err) {
102        gfPrintLog('-> ACESS_ID check Start.', GMO_LOG_PATH);
103        // ŹÊÞ¾ðÊóÁ÷¿®·ë²Ì
104        $sqlval['memo04'] = $arrEntryRet['ERR_CODE'];
105        $sqlval['memo05'] = $arrEntryRet['ERR_INFO'];
106
107        // ŹÊÞ¾ðÊ󥨥顼¤ÎȽÄê
108        if(!empty($_SESSION['GMO']['ACCESS_ID']) && !empty($_SESSION['GMO']['ACCESS_PASS'])) {
109            gfPrintLog('-> ACESS_ID check OK.', GMO_LOG_PATH);
110            gfPrintLog('-> ExecTrain Start.', GMO_LOG_PATH);
111            // ·èºÑ¾ðÊó¤ÎÁ÷¿®
112            $arrExecRet = lfSendGMOExec(
113                $_SESSION['GMO']['ACCESS_ID'],
114                $_SESSION['GMO']['ACCESS_PASS'],
115                $arrData['order_id'],
116                $arrVal['card_no01'],
117                $arrVal['card_no02'],
118                $arrVal['card_no03'],
119                $arrVal['card_no04'],
120                $arrVal['card_month'],
121                $arrVal['card_year'],
122                $arrVal['paymethod']
123            );
124            if (empty($arrExecRet)) {
125                gfPrintLog('-> ExecTrain failed. access error.', GMO_LOG_PATH);
126                $access_err = true;
127            } else {
128                gfPrintLog('-> ExecTrain success.', GMO_LOG_PATH);
129            }
130        } else {
131            gfPrintLog('-> ACESS_ID check failed.', GMO_LOG_PATH);
132        }
133    }
134
135    // ExecTrain¤ÇÄÌ¿®¥¨¥é¡¼¤Ê¤·¤Î¾ì¹ç
136    if (!$access_err && !$credit_err) {
137        // 3D¥»¥­¥å¥¢¤¬Í­¸ú¤Ê¾ì¹ç¤Ï¥ê¥À¥¤¥ì¥¯¥È¥Ú¡¼¥¸¤ò½ÐÎϤ¹¤ë
138        if (isset($arrGMOConf[0]['gmo_3d']) && $arrGMOConf[0]['gmo_3d'] == '1') {
139            gfPrintLog('-> 3D secure is enable.', GMO_LOG_PATH);
140            $objPage->tpl_onload = 'OnLoadEvent();';
141            // TODO mobile
142            $objPage->tpl_mainpage = MODULE_PATH . "mdl_gmo-pg/gmo-pg-3d.tpl";
143            $objPage->ACSUrl = $arrExecRet['ACSUrl'];
144            $objPage->PaReq = $arrExecRet['PaReq'];;
145            $objPage->TermUrl = GMO_RETURL;
146            $objPage->MD = $arrExecRet['MD'];
147            break;
148
149        // 3D¥»¥­¥å¥¢Ìµ¸ú»þ¤Ï¡¢¥¨¥é¡¼¥Á¥§¥Ã¥¯¡¦¹ØÆþ´°Î»¥Ú¡¼¥¸¤Ø¥ê¥À¥¤¥ì¥¯¥È
150        } else {
151            gfPrintLog('-> 3D secure is not enable.', GMO_LOG_PATH);
152            // ÄɲþðÊó¤Ï¤Ê¤¤¤¿¤á¥À¥ß¡¼¥Ç¡¼¥¿¤ò³ÊǼ
153            $sqlval['memo02'] = serialize(array());
154            // ±þÅúÆâÍƤε­Ï¿
155            $sqlval['memo03'] = $arrVal['card_name01'] . " " . $arrVal['card_name02'];
156            // ·èºÑ¾ðÊóÁ÷¿®·ë²Ì
157            $sqlval['memo06'] = $arrExecRet['ErrType'];
158            $sqlval['memo07'] = $arrExecRet['ErrInfo'];
159
160            $objQuery = new SC_Query();
161            $objQuery->update("dtb_order_temp", $sqlval, "order_temp_id = ?", array($uniqid));
162
163            // Í¿¿®½èÍýÀ®¸ù¤Î¾ì¹ç
164            if($arrExecRet['Html'] == "Receipt" && empty($arrExecRet['ErrType']) && empty($arrExecRet['ErrInfo'])) {
165                gfPrintLog('-> ExecTrain results success.', GMO_LOG_PATH);
166                // Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
167                $objSiteSess->setRegistFlag();
168                // ¥¢¥¯¥»¥¹ID¤ò¥¯¥ê¥¢¤¹¤ë¡£
169                unset($_SESSION['GMO']['ACCESS_ID']);
170                unset($_SESSION['GMO']['ACCESS_PASS']);
171                // ½èÍý´°Î»¥Ú¡¼¥¸¤Ø
172                if (GC_MobileUserAgent::isMobile()) {
173                    header("Location: " . gfAddSessionId(URL_SHOP_COMPLETE));
174                } else {
175                    header("Location: " . URL_SHOP_COMPLETE);
176                }
177            } else {
178                gfPrintLog('-> ExecTrain results error.', GMO_LOG_PATH);
179                $credit_err = true;
180                $detail_code01 = substr($arrExecRet['ErrInfo'], 0, 5);
181                $detail_code02 = substr($arrExecRet['ErrInfo'], 5, 4);
182                $gmo_err_msg = $detail_code01 . "-" . $detail_code02;
183            }
184        }
185    }
186
187    if($access_err || $credit_err) {
188        if ($access_err) {
189            $objPage->tpl_error = "¢¨ ¥¯¥ì¥¸¥Ã¥È¾µÇ§¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡§ÄÌ¿®¥¨¥é¡¼";
190        } else {
191            if (!empty($gmo_err_msg)) {
192                $objPage->tpl_error = "¢¨ ¥¯¥ì¥¸¥Ã¥È¾µÇ§¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡§" . $gmo_err_msg;
193            } else {
194                $objPage->tpl_error = "¢¨ ¥¯¥ì¥¸¥Ã¥È¾µÇ§¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡§ÉÔÌÀ¤Ê¥¨¥é¡¼";
195            }
196        }
197    }
198
199    break;
200
201// 3Dǧ¾Ú·ë²Ì¤ò¼õ¤±¼è¤ë
202case '3dVerify':
203    gfPrintLog('-> 3D secure Post param check start.', GMO_LOG_PATH);
204    if (PEAR::isError($e = lfValidate3dVerify())) {
205        $objPage->tpl_error = $e->getMessage();
206        gfPrintLog('-> 3D secure Post param check error.', GMO_LOG_PATH);
207        break;
208    }
209    gfPrintLog('-> 3D secure Post param check success.', GMO_LOG_PATH);
210    gfPrintLog('-> 3dVerify start.', GMO_LOG_PATH);
211    $arr3dRet = lfSend3dVerify();
212
213    if (PEAR::isError($e = lf3dVerifyIsSuccess($arr3dRet))) {
214        gfPrintLog('-> 3dVerify failed. ' . $e->getMessage(), GMO_LOG_PATH);
215        $objPage->tpl_error = $e->getMessage();
216        break;
217    }
218    gfPrintLog('-> 3dVerify success.', GMO_LOG_PATH);
219
220    // ÄɲþðÊó¤Ï¤Ê¤¤¤¿¤á¥À¥ß¡¼¥Ç¡¼¥¿¤ò³ÊǼ
221    $sqlval['memo02'] = serialize(array());
222
223    // ·èºÑ¾ðÊóÁ÷¿®·ë²Ì
224    $sqlval['memo06'] = $arr3dRet['ErrType'];
225    $sqlval['memo07'] = $arr3dRet['ErrInfo'];
226
227    $objQuery = new SC_Query();
228    $objQuery->update("dtb_order_temp", $sqlval, "order_temp_id = ?", array($uniqid));
229
230    // Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
231    $objSiteSess->setRegistFlag();
232    // ¥¢¥¯¥»¥¹ID¤ò¥¯¥ê¥¢¤¹¤ë¡£
233    unset($_SESSION['GMO']['ACCESS_ID']);
234    unset($_SESSION['GMO']['ACCESS_PASS']);
235    // ½èÍý´°Î»¥Ú¡¼¥¸¤Ø
236    if (GC_MobileUserAgent::isMobile()) {
237        header("Location: " . gfAddSessionId(URL_SHOP_COMPLETE));
238    } else {
239        header("Location: " . URL_SHOP_COMPLETE);
240    }
241
242break;
243
244// ³Îǧ¥Ú¡¼¥¸¤ËÌá¤ë
245case 'return':
246    // Àµ¾ï¤Ê¿ä°Ü¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
247    $objSiteSess->setRegistFlag();
248    header("Location: " . URL_SHOP_CONFIRM);
249    exit;
250
251default:
252    break;
253}
254
255$objDate = new SC_Date();
256$objDate->setStartYear(RELEASE_YEAR);
257$objDate->setEndYear(RELEASE_YEAR + CREDIT_ADD_YEAR);
258$objPage->arrYear = $objDate->getZeroYear();
259$objPage->arrMonth = $objDate->getZeroMonth();
260
261$objPage->arrForm = $objFormParam->getFormParamList();
262
263// ¶¦Ä̤Îɽ¼¨½àÈ÷
264$objPage = sfGmoDisp($objPage, $payment_id);
265
266$objView->assignobj($objPage);
267$objView->display(SITE_FRAME);
268
269/**
270 * mode¤ò¼èÆÀ¤¹¤ë.
271 *
272 * @retrun string
273 */
274function lfGetMode() {
275    $mode = '';
276
277    if (isset($_POST['PaRes']) && isset($_POST['MD'])) {
278        $mode = '3dVerify';
279    } elseif (isset($_POST['mode'])) {
280        $mode = $_POST['mode'];
281    }
282
283    return $mode;
284}
285
286/**
287 * ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
288 *
289 * @return SC_FormParam
290 */
291function lfInitParam() {
292    $objFormParam = new SC_FormParam();
293    $objFormParam->addParam("¥«¡¼¥ÉÈÖ¹æ1", "card_no01", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
294    $objFormParam->addParam("¥«¡¼¥ÉÈÖ¹æ2", "card_no02", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
295    $objFormParam->addParam("¥«¡¼¥ÉÈÖ¹æ3", "card_no03", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
296    $objFormParam->addParam("¥«¡¼¥ÉÈÖ¹æ4", "card_no04", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
297    $objFormParam->addParam("¥«¡¼¥É´ü¸Âǯ", "card_year", 2, "n", array("EXIST_CHECK", "NUM_COUNT_CHECK", "NUM_CHECK"));
298    $objFormParam->addParam("¥«¡¼¥É´ü¸Â·î", "card_month", 2, "n", array("EXIST_CHECK", "NUM_COUNT_CHECK", "NUM_CHECK"));
299    $objFormParam->addParam("À«", "card_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALPHA_CHECK"));
300    $objFormParam->addParam("̾", "card_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALPHA_CHECK"));
301    $objFormParam->addParam("»ÙʧÊýË¡", "paymethod", STEXT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
302
303    $objFormParam->setParam($_POST);
304
305    return $objFormParam;
306}
307
308/**
309 * ¼õÃí¾ðÊó¤òÅÐÏ¿¤¹¤ë.
310 *
311 * @param integer $order_id
312 * @param integer $amount
313 * @param integer $tax
314 * @return array
315 */
316function lfSendGMOEntry($order_id, $amount, $tax = 0) {
317    $arrGMOConf = sfGetPaymentDB();
318
319    $TdTenantName = '';
320    // 3D¥»¥­¥å¥¢¤¬Í­¸ú¤Ê¾ì¹ç¤Ï¡¢Å¹ÊÞ̾¤òÀßÄꤹ¤ë
321    if (!empty($arrGMOConf[0]['gmo_3d'])) {
322        $arrSiteInfo = sf_getBasisData();
323        $TdTenantName = base64_encode($arrSiteInfo['shop_name']);
324    }
325
326    $arrSendData = array(
327        'OrderId' => $order_id,                      // ŹÊÞ¤´¤È¤Ë°ì°Õ¤ÊÃíʸID¤òÁ÷¿®¤¹¤ë¡£
328        'TdTenantName' => $TdTenantName,             // 3Dǧ¾Ú»þɽ¼¨ÍÑŹÊÞ̾
329        'TdFlag' => $arrGMOConf[0]['gmo_3d'],        // 3D¥Õ¥é¥°
330        'ShopId' => $arrGMOConf[0]['gmo_shopid'],    // ¥·¥ç¥Ã¥×ID
331        'ShopPass' => $arrGMOConf[0]['gmo_shoppass'],// ¥·¥ç¥Ã¥×¥Ñ¥¹¥ï¡¼¥É
332        'Currency' => 'JPN',                         // Ä̲ߥ³¡¼¥É
333        'Amount' => $amount,                         // ¶â³Û
334        'Tax' => $tax,                               // ¾ÃÈñÀÇ
335        'JobCd' => 'AUTH',                           // ½èÍý¶èʬ
336        'TenantNo' => $arrGMOConf[0]['gmo_tenantno'],// ŹÊÞID¤òÁ÷¿®¤¹¤ë¡£
337    );
338gfPrintLog('EntryTrain Request', GMO_LOG_PATH);
339gfPrintLog(print_r($arrSendData, true), GMO_LOG_PATH);
340    $req = new HTTP_Request(GMO_ENTRY_URL);
341    $req->setMethod(HTTP_REQUEST_METHOD_POST);
342    $req->addPostDataArray($arrSendData);
343
344    if (!PEAR::isError($req->sendRequest())) {
345        $respBody = $req->getResponseBody();
346    }
347gfPrintLog('EntryTrain Response', GMO_LOG_PATH);
348gfPrintLog(print_r(lfGetPostArray($respBody), true), GMO_LOG_PATH);
349    return lfGetPostArray($respBody);
350}
351
352/**
353 * ·èºÑ¤Î¼Â¹Ô
354 *
355 * @param string $access_id
356 * @param string $access_pass
357 * @param integer $order_id
358 * @param integer $cardno1
359 * @param integer $cardno2
360 * @param integer $cardno3
361 * @param integer $cardno4
362 * @param integer $ex_mm
363 * @param integer $ex_yy
364 * @param integer $paymethod
365 * @return array
366 */
367function lfSendGMOExec($access_id, $access_pass, $order_id, $cardno1, $cardno2, $cardno3, $cardno4, $ex_mm, $ex_yy, $paymethod) {
368
369    // »ÙʧÊýË¡¡¢²ó¿ô¤Î¼èÆÀ
370    list($method, $paytimes) = split("-", $paymethod);
371
372    if(!($paytimes > 0)) {
373        $paytimes = "";
374    }
375
376    $arrData = array(
377        'AccessId' => $access_id,
378        'AccessPass' => $access_pass,
379        'OrderId' => $order_id,
380        'RetURL' => GMO_RETURL,
381        'CardType' => 'VISA, 11111, 111111111111111111111111111111111111, 1111111111',
382        'Method' => $method,
383        'PayTimes' => $paytimes,
384        'CardNo' => $cardno1 . $cardno2 . $cardno3 . $cardno4,
385        //'CardNo1' => $cardno1,
386        //'CardNo2' => $cardno2,
387        //'CardNo3' => $cardno3,
388        //'CardNo4' => $cardno4,
389        'ExpireYYMM' => $ex_yy . $ex_mm ,
390        //'ExpireYY' => $ex_yy,
391        'ClientFieldFlag' => '1',
392        'ClientField1' => 'f1',
393        'ClientField2' => 'f2',
394        'ClientField3' => 'f3',
395        'ModiFlag' => '1',
396        'HTTP_ACCEPT' => $_SERVER['HTTP_ACCEPT'],
397        'HTTP_USER_AGENT' => $_SERVER['HTTP_USER_AGENT']
398    );
399gfPrintLog('ExecTrain Request', GMO_LOG_PATH);
400gfPrintLog(print_r($arrData, true), GMO_LOG_PATH);
401    $req = new HTTP_Request(GMO_EXEC_URL);
402    $req->setMethod(HTTP_REQUEST_METHOD_POST);
403
404    $req->addPostDataArray($arrData);
405
406    if (!PEAR::isError($req->sendRequest())) {
407        $response = $req->getResponseBody();
408    }
409
410    $arrRet = lfParseExecResponse($response);
411gfPrintLog('ExecTrain Response', GMO_LOG_PATH);
412gfPrintLog(print_r($arrRet, true), GMO_LOG_PATH);
413gfPrintLog($response, GMO_LOG_PATH);
414    return $arrRet;
415}
416
417function lfGetPostArray($text) {
418    $arrRet = array();
419    if($text != "") {
420        $text = ereg_replace("[\n\r]", "", $text);
421        $arrTemp = split("&", $text);
422        foreach($arrTemp as $ret) {
423            list($key, $val) = split("=", $ret);
424            $arrRet[$key] = $val;
425        }
426    }
427    return $arrRet;
428}
429
430function lfParseExecResponse($queryString) {
431    // 3D¥»¥­¥å¥¢¤Ç¤Ê¤¤¾ì¹ç¤ÏlfGetPostArray()¤Çparse¤¹¤ë
432    if (!lfEnable3D()) {
433        return lfGetPostArray($queryString);
434    }
435
436    $arrRet = array();
437    // 3D¥»¥­¥å¥¢¤ò»ÈÍѤ¹¤ë¾ì¹ç¤ÏÀµµ¬É½¸½¤Ç¡£
438    if (!empty($queryString)) {
439        $queryString = trim($queryString);
440        $regex = '|^ACSUrl\=(.+?)&PaReq\=(.+?)&MD\=(.+?)$|';
441        $ret = preg_match_all($regex, $queryString, $matches);
442
443        gfPrintLog(print_r($matches, true), GMO_LOG_PATH);
444
445        if ($ret !== false && $ret > 0) {
446            gfPrintLog('REG STATUS:' . $ret, GMO_LOG_PATH);
447            $arrRet['ACSUrl'] = $matches[1][0];
448            $arrRet['PaReq']  = $matches[2][0];
449            $arrRet['MD']     = $matches[3][0];
450        } else {
451            gfPrintLog(' STATUS:Failed', GMO_LOG_PATH);
452        }
453    }
454
455    return $arrRet;
456}
457
458
459/**
460 * 3D¥Ù¥ê¥Õ¥¡¥¤»þ¤Î¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤ò¸¡¾Ú¤¹¤ë
461 *
462 * @return array
463 */
464function lfValidate3dVerify() {
465
466}
467/**
468 * 3D¥Ù¥ê¥Õ¥¡¥¤¤ò¼Â¹Ô¤¹¤ë
469 *
470 * @return array
471 */
472function lfSend3dVerify() {
473    $arrSendData = array(
474        'PaRes' => $_POST['PaRes'],
475        'MD'    => $_POST['MD']
476    );
477    $objReq =& new HTTP_Request(GMO_3D_URL);
478    $objReq->setMethod('POST');
479    $objReq->addPostDataArray($arrSendData);
480
481    $respBody = '';
482
483    if (!PEAR::isError($objReq->sendRequest())) {
484        $respBody = $objReq->getResponseBody();
485    }
486
487    return lfGetPostArray($respBody);
488}
489
490/**
491 * 3D¥Ù¥ê¥Õ¥¡¥¤¤Î¼Â¹Ô·ë²Ì¤òȽÄꤹ¤ë
492 *
493 * @param array $arr3dRet
494 * @return boolean|PEAR::ERROR À®¸ù»þ:true|¼ºÇÔ»þ:PEAR::ERROR¥ª¥Ö¥¸¥§¥¯¥È
495 */
496function lf3dVerifyIsSuccess($arr3dRet) {
497    // ÄÌ¿®¥¨¥é¡¼
498    if (empty($arr3dRet)) {
499        return PEAR::raiseError('ÄÌ¿®¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£');
500    }
501
502    // À®¸ù
503    if ($arr3dRet['Html'] == "Receipt"
504        && empty($arr3dRet['ErrType'])
505        && empty($arr3dRet['ErrInfo'])) {
506
507        return true;
508
509    // ¼ºÇÔ
510    } else {
511        $detail_code01 = substr($arr3dRet['ErrInfo'], 0, 5);
512        $detail_code02 = substr($arr3dRet['ErrInfo'], 5, 4);
513        $gmo_err_msg = $detail_code01 . "-" . $detail_code02;
514
515        return PEAR::raiseError('ÄÌ¿®¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£¥¨¥é¡¼¥³¡¼¥É¡§' . $gmo_err_msg);
516    }
517}
518
519function lfEnable3D() {
520    global $arrGMOConf;
521    if (isset($arrGMOConf[0]['gmo_3d']) && $arrGMOConf[0]['gmo_3d'] == '1') {
522        return true;
523    }
524    return false;
525}
526?>
Note: See TracBrowser for help on using the repository browser.