source: branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs_credit.php @ 17224

Revision 17224, 19.9 KB checked in by adachi, 16 years ago (diff)

サイバーソース決済モジュール暫定コミット

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-httpd-php
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_cybs/mdl_cybs.inc";
8require_once MODULE_PATH . "mdl_cybs/class/mdl_cybs_config.php";
9require_once MODULE_PATH . "mdl_cybs/class/mdl_cybs_request.php";
10
11// extension¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¥¨¥é¡¼²èÌÌɽ¼¨
12if (!lfLoadModCybs()) {
13    sfDispSiteError(FREE_ERROR_MSG, '', false,
14        '¤³¤Î·èºÑ¤Ï»ÈÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£<br>¤ª¼ê¿ô¤Ç¤¹¤¬¤ª»Ùʧ¤¤ÊýË¡¤òÁªÂò¤·Ä¾¤·¤Æ²¼¤µ¤¤¡£');
15}
16
17class LC_Page {
18    function LC_Page() {
19        $this->tpl_mainpage = MODULE_PATH . 'mdl_cybs/mdl_cybs_credit.tpl';
20        // »Ùʧ¤¤ÊýË¡
21        global $arrPayMethod;
22        $this->arrPayMethod = $arrPayMethod;
23        // ¥«¡¼¥É²ñ¼Ò¼ïÎà
24        global $arrCardCompany;
25        $this->arrCardCompany = $arrCardCompany;
26        /**
27         * session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
28         * ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìɽ¼¨¤òÍÞÀ©¤¹¤ë¡£
29         * private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
30         */
31        session_cache_limiter('private-no-expire');
32    }
33}
34
35$objPage = new LC_Page();
36$objView = new SC_SiteView();
37$objSiteSess = new SC_SiteSession();
38$objCartSess = new SC_CartSession();
39$objCampaignSess = new SC_CampaignSession();
40$arrInfo = sf_getBasisData();
41
42$objCybs =& Mdl_Cybs_Config::getInstanse();
43$objPage->enable_ondemand = $objCybs->enableOndemand(); //¥ª¥ó¥Ç¥Þ¥ó¥É²Ý¶â¤Î»ÈÍѲÄÈÝ
44$objPage->tpl_payment_method = '¥µ¥¤¥Ð¡¼¥½¡¼¥¹·èºÑ';
45
46$objDate = new SC_Date();
47$objDate->setStartYear(RELEASE_YEAR);
48$objDate->setEndYear(RELEASE_YEAR + CREDIT_ADD_YEAR);
49$objPage->arrYear = $objDate->getZeroYear();
50$objPage->arrMonth = $objDate->getZeroMonth();
51
52// ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ¤È¹ØÆþ¾õÂÖ¤ÎÀµÅöÀ­¤ò¥Á¥§¥Ã¥¯
53$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
54
55$objForm = lfInitParam($_POST);
56$objPage->arrForm = $objForm->getFormParamList();
57
58switch(lfGetMode()) {
59
60case 'register':
61    // ÆþÎϹàÌܤθ¡¾Ú
62    if ($arrErr = $objForm->checkError()) {
63        $objPage->arrErr = $arrErr;
64        break;
65    }
66
67    // ¥«¡¼¥È½¸·×½èÍý
68    $objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
69    // °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆɹþ
70    $arrData = sfGetOrderTemp($uniqid);
71    // ¥«¡¼¥È½¸·×¤ò¸µ¤ËºÇ½ª·×»»
72    $arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
73
74    /**
75     * ¥ª¥ó¥Ç¥Þ¥ó¥É²Ý¶â¤¬Í­¸ú¤Ç¡¢¤«¤Ä¥«¡¼¥É¤òÅÐÏ¿¤¹¤ë¤Ë¥Á¥§¥Ã¥¯¤¬Æþ¤Ã¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢
76     * ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥ó¤òºîÀ®¤¹¤ë
77     */
78    if ($objCybs->enableOndemand() && $objForm->getValue('register_ondemand')) {
79        // ÅÐÏ¿·ï¿ô¤Î¥Á¥§¥Ã¥¯
80        if (!$objCybs->canAddSubsId()) {
81            $objPage->tpl_error = 'ÅÐÏ¿½ÐÍè¤ë¥«¡¼¥É¤Î·ï¿ô¤Ï' . MDL_CYBS_SUBS_ID_MAX . "·ï¤Þ¤Ç¤Ç¤¹¡£\n";
82            gfPrintLog(' -> ondemand error: over card max', MDL_CYBS_LOG);
83            break;
84        }
85        // ¥ª¥ó¥Ç¥Þ¥ó¥É²Ý¶â¤Î¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤¹¤ë
86        $arrResults = lfSendRequest(lfCreateOndemandParam($objForm->getHashArray(), $arrData));
87        if (PEAR::isError($e = lfIsError($arrResults))) {
88            $objPage->tpl_error = $e->getMessage();
89            gfPrintLog(' -> ondemand error: ' . $e->getMessage(), MDL_CYBS_LOG);
90            gfPrintLog(print_r($arrResults, true), MDL_CYBS_LOG);
91            break;
92        }
93        // ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥óID¤ò¸ÜµÒ¥Æ¡¼¥Ö¥ë¤ØÄɲ乤ë
94        $subsId = $arrResults['pay_subscription_create_subscription_id'];
95        $objCybs->addSubsId($subsId);
96    }
97
98    $authAddParam = null; // ¥Á¥ã¡¼¥¸¥Ð¥Ã¥¯ÍÑÄɲåѥé¥á¡¼¥¿
99
100    // 3D¥»¥­¥å¥¢»ÈÍÑÀßÄêȽÄê
101    if ($objCybs->use3D() && !$objCybs->enableOndemand()) {
102        // 3D¥»¥­¥å¥¢¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤¹¤ë
103        $arrResults = lfSendRequest(lfCreateEnrollParam($objForm->getHashArray(), $arrData));
104        // ¥¨¥é¡¼½èÍý
105        if (PEAR::isError($e = lfIsError($arrResults))) {
106            $objPage->tpl_error = $e->getMessage();
107            gfPrintLog(' -> 3d(enroll) error: ' . $e->getMessage(), MDL_CYBS_LOG);
108            gfPrintLog(print_r($arrResults, true), MDL_CYBS_LOG);
109            break;
110        }
111
112        /**
113         * ÅÐÏ¿Í­¤ê¤Î¾ì¹ç¤Ï¥ê¥À¥¤¥ì¥¯¥ÈHTML¤ò½ÐÎϤ¹¤ë.
114         * ÅÐϿ̵¤·¤Ç¤«¤ÄÍ¿¿®¤Ø¿Ê¤á¤ë¾ì¹ç(¾åµ­¥¨¥é¡¼È½Äê¤ÇSOK¤Î¾ì¹ç)¤Ï,
115         * ¥Á¥ã¡¼¥¸¥Ð¥Ã¥¯ÍѤΥѥé¥á¡¼¥¿¤òÄɲä·¼¡¤ÎÍ¿¿®¥ê¥¯¥¨¥¹¥È¤Ø¿Ê¤à.
116         */
117        if (isset($arrResults['pa_enroll_rflag']) && $arrResults['pa_enroll_rflag'] == 'DAUTHENTICATE') {
118            $objPage->AcsUrl  = $arrResults['pa_enroll_acs_url'];
119            $objPage->TermUrl = SSL_URL . 'shopping/load_payment_module.php';
120            $objPage->PaReq   = $arrResults['pa_enroll_pareq'];
121            $objPage->MD      = base64_encode(serialize($objForm->getHashArray())); // POST¥Ç¡¼¥¿¤òMD¤ËÊÝ»ý
122            $objPage->tpl_onload   = 'OnLoadEvent()';
123            $objPage->tpl_mainpage = MODULE_PATH . 'mdl_cybs/mdl_cybs_credit_3d.tpl'; // ¥ê¥À¥¤¥ì¥¯¥ÈHTML
124            $objSiteSess->setRegistFlag();
125            break;
126        }
127        // ¥Á¥ã¡¼¥¸¥Ð¥Ã¥¯ÍÑÄɲåѥé¥á¡¼¥¿
128        $authAddParam = array(
129            'e_commerce_indicator' => $arrResults['pa_enroll_e_commerce_indicator'],
130            'eci_raw'              => '06',
131        );
132        // ¥Þ¥¹¥¿¡¼¥«¡¼¥É¤Î¤ß¤Î¥Ñ¥é¥á¡¼¥¿
133        if ($objForm->getValue('card_company') === '002') $authAddParam['ucaf_collection_indicator'] = '1';
134    }
135
136    $arrSendParam = array();
137    // ¥ª¥ó¥Ç¥Þ¥ó¥É·èºÑ»þ¤Î¥Ñ¥é¥á¡¼¥¿¹½ÃÛ
138    if ($objCybs->enableOndemand() && $objForm->getValue('register_ondemand')) {
139        $arrSendParam = lfCreateAuthParam($objForm->getHashArray(), $arrData);
140        $arrSendParam = lfCreateOndemandAuthParam($subsId, $arrSendParam);
141
142    // Ä̾ï·èºÑ¤Î¥Ñ¥é¥á¡¼¥¿¹½ÃÛ
143    } else {
144        $arrSendParam = lfCreateAuthParam($objForm->getHashArray(), $arrData, $authAddParam);
145    }
146
147    // Í¿¿®¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤¹¤ë
148    $arrResults = lfSendRequest($arrSendParam);
149    if (PEAR::isError($e = lfIsError($arrResults))) {
150        $objPage->tpl_error = $e->getMessage();
151        gfPrintLog(' -> auth error: ' . $e->getMessage(), MDL_CYBS_LOG);
152        gfPrintLog(print_r($arrResults, true), MDL_CYBS_LOG);
153        break;
154    }
155
156    $objSiteSess->setRegistFlag();
157    //lfRegisterOrderTemp($uniqid, $objForm->getHashArray(), $arrResults);
158    header("Location: " . URL_SHOP_COMPLETE);
159    exit;
160
161// ¥Ñ¥¹¥ï¡¼¥ÉÆþÎϤ«¤é¤ÎÌá¤ê
162case 'verify3d':
163    // ¥«¡¼¥È½¸·×½èÍý
164    $objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
165    // °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆɹþ
166    $arrData = sfGetOrderTemp($uniqid);
167    // ¥«¡¼¥È½¸·×¤ò¸µ¤ËºÇ½ª·×»»
168    $arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
169
170    // ¸¡¾Ú+Í¿¿®¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤¹¤ë
171    $obj3DForm = lfInit3DParam($_POST);
172    $arrResults = lfSendRequest(lfCreateValidateParam($obj3DForm->getHashArray(), $arrData));
173    if (PEAR::isError($e = lfIsError($arrResults))) {
174        $objPage->tpl_error = $e->getMessage();
175        gfPrintLog(' -> error: ' . $e->getMessage(), MDL_CYBS_LOG);
176        gfPrintLog(print_r($arrResults, true), MDL_CYBS_LOG);
177        break;
178    }
179
180    $objSiteSess->setRegistFlag();
181    header("Location: " . URL_SHOP_COMPLETE);
182    break;
183
184// Ìá¤ë¥Ü¥¿¥ó²¡²¼»þ
185case 'return':
186    $objSiteSess->setRegistFlag();
187    header("Location: " . URL_SHOP_CONFIRM);
188    exit;
189
190// Ä̾ïɽ¼¨
191default:
192    // TODO ¥ª¥ó¥Ç¥Þ¥ó¥É¼èÆÀ
193
194}
195
196$objView->assignobj($objPage);
197$objView->display(SITE_FRAME);
198sfPrintR($_POST, 'blue');
199sfPrintR($objPage, 'red');
200/**
201 * ¥â¡¼¥É¤ò¼èÆÀ¤¹¤ë
202 *
203 * @return string
204 */
205
206function lfGetMode() {
207    $mode = isset($_POST['mode']) ? $_POST['mode'] : '';
208
209    // 3D¥»¥­¥å¥¢¤ÎÌá¤êÍÑ¡£¥«¡¼¥É²ñ¼Ò¤Î¥Ñ¥¹¥ï¡¼¥ÉÆþÎϲèÌ̤«¤éÁ«°Ü¤¹¤ë
210    $obj3dForm = lfInit3DParam($_POST);
211    if (!$obj3dForm->checkError()) {
212        $mode = 'verify3d';
213    }
214
215    return $mode;
216}
217
218/**
219 * 3D¥»¥­¥å¥¢Ìá¤êÍѥѥé¥á¡¼¥¿¤Î½é´ü²½
220 *
221 * @param array $arrParam
222 * @return SC_FormParam
223 */
224function lfInit3DParam($arrParam) {
225    $objForm = new SC_FormParam;
226    $objForm->addParam("PaRes", "PaRes", '', "", array("EXIST_CHECK"));
227    $objForm->addParam("MD", "MD", '', "", array("EXIST_CHECK"));
228    $objForm->setParam($arrParam);
229    return $objForm;
230}
231
232/**
233 * ¥Ñ¥é¥á¡¼¥¿¤Î½é´ü²½
234 *
235 * @return SC_FormParam
236 */
237function lfInitParam($arrParam) {
238    $objForm = new SC_FormParam;
239    $objForm->addParam("¥«¡¼¥ÉÈÖ¹æ1", "card_no01", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
240    $objForm->addParam("¥«¡¼¥ÉÈÖ¹æ2", "card_no02", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
241    $objForm->addParam("¥«¡¼¥ÉÈÖ¹æ3", "card_no03", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
242    $objForm->addParam("¥«¡¼¥ÉÈÖ¹æ4", "card_no04", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
243    $objForm->addParam("¥«¡¼¥É²ñ¼Ò", "card_company", 3, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
244    $objForm->addParam("¥«¡¼¥É´ü¸Âǯ", "card_year", 2, "n", array("EXIST_CHECK", "NUM_COUNT_CHECK", "NUM_CHECK"));
245    $objForm->addParam("¥«¡¼¥É´ü¸Â·î", "card_month", 2, "n", array("EXIST_CHECK", "NUM_COUNT_CHECK", "NUM_CHECK"));
246    $objForm->addParam("À«", "card_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALPHA_CHECK"));
247    $objForm->addParam("̾", "card_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALPHA_CHECK"));
248    $objForm->addParam("»ÙʧÊýË¡", "paymethod", STEXT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
249    $objForm->addParam("¥«¡¼¥É¾ðÊó¤ÎÅÐÏ¿", "register_ondemand", 1, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK"));
250    $objForm->setParam($arrParam);
251    $objForm->convParam();
252    return $objForm;
253}
254
255/**
256 * ¥µ¥¤¥Ð¡¼¥½¡¼¥¹¤Ë¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤¹¤ë.
257 * °ú¿ô¤ÎÁ÷¿®¥Ñ¥é¥á¡¼¥¿¤ÏlfCreateParam***()¤ÇÀ¸À®¤¹¤ë.
258 *
259 * @param array $arrSendParam
260 * @return array
261 */
262function lfSendRequest($arrSendParam) {
263    $objRequest = new CYBS_REQ;
264
265    gfPrintLog('### send request param ###', MDL_CYBS_LOG);
266    gfPrintLog(print_r($arrSendParam, true), MDL_CYBS_LOG);
267
268    foreach ($arrSendParam as $key => $value) {
269        $objRequest->add_request($key, $value);
270    }
271
272    if ( ($result = cybs_send($objRequest->requests)) == false ) {
273        sfDispSiteError('');
274        gfPrintLog(' -> error: cybs_send() function.' , MDL_CYBS_LOG);
275    }
276
277    return $result;
278}
279
280/**
281 * ics_auth¥Ñ¥é¥á¡¼¥¿¤ò¹½ÃÛ¤¹¤ë.
282 *
283 * @param array $arrForm
284 * @param array $arrData
285 */
286function lfCreateAuthParam($arrForm, $arrData, $addData = null) {
287    global $arrCybsRequestURL;
288    global $arrPref;
289
290    $objConfig =& Mdl_Cybs_Config::getInstanse();
291    $arrConfig = $objConfig->getConfig();
292
293    $cardNo = $arrForm['card_no01'] . $arrForm['card_no02'] . $arrForm['card_no03'] . $arrForm['card_no04'];
294    $expMo = $arrForm['card_month'];
295    $expYr = '20' . $arrForm['card_year'];
296    $phoneNo = $arrData['order_tel01'] . $arrData['order_tel02'] . $arrData['order_tel03'];
297
298    $arrSendParam = array(
299        "ics_applications"    => "ics_auth",
300        "server_host"         => $arrCybsRequestURL[$arrConfig['cybs_request_url']],
301        "server_port"         => "80",
302        "card_type"           => $arrForm['card_company'],
303        "customer_cc_number"  => $cardNo,
304        "customer_cc_expmo"   => $expMo,
305        "customer_cc_expyr"   => $expYr,
306        "customer_firstname"  => lfToSjis($arrData['order_name02']),
307        "customer_lastname"   => lfToSjis($arrData['order_name01']),
308        "customer_email"      => $arrData['order_email'],
309        "customer_phone"      => $phoneNo,
310        "bill_address1"       => lfToSjis($arrData['order_addr02']),
311        "bill_city"           => lfToSjis($arrData['order_addr01']),
312        "bill_state"          => lfToSjis($arrPref[$arrData['order_pref']]),
313        "bill_zip"            => $arrData['order_zip01'] . $arrData['order_zip02'],
314        "bill_country"        => "JP",
315        "merchant_id"         => $arrConfig['cybs_merchant_id'],
316        "merchant_ref_number" => $arrData['order_id'],
317        "currency"            => "JPY",
318        /**
319        "ship_to_address1"    => lfToSjis($arrData['deliv_addr02']),
320        "ship_to_city"        => lfToSjis($arrData['deliv_addr01']),
321        "ship_to_country"     => lfToSjis($arrPref[$arrData['deliv_pref']]),
322        "ship_to_state"       => $arrData['deliv_zip01'] . $arrData['deliv_zip02'],
323        "ship_to_zip"         => "JP",
324        */
325    );
326
327    // »Ùʧ¤¤ÊýË¡
328    list($method, $paytimes) = split("-", $arrForm['paymethod']);
329    $arrSendParam["jpo_payment_method"] = $method;
330
331    // ʬ³ä²ó¿ô
332    if ($paytimes > 0) $arrSendParam["jpo_installments"] = $paytimes;
333
334    $arrSendParam["offer0"] = "amount:" . $arrData['payment_total'];
335
336    if (is_array($addData)) {
337        $arrSendParam = array_merge($arrSendParam, $addData);
338    }
339    return $arrSendParam;
340}
341
342/**
343 * ¥ª¥ó¥Ç¥Þ¥ó¥É²Ý¶â+Í¿¿®¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤ò¹½ÃÛ¤¹¤ë.
344 *
345 * @param string $subsId
346 * @param array $arrAuthParam
347 * @return array
348 */
349function lfCreateOndemandAuthParam($subsId, $arrAuthParam) {
350    return array(
351        'subscription_id'     => $subsId,
352        "ics_applications"    => "ics_auth",
353        "server_host"         => $arrAuthParam['server_host'],
354        "server_port"         => $arrAuthParam["server_port"],
355        'merchant_id'         => $arrAuthParam['merchant_id'],
356        'merchant_ref_number' => $arrAuthParam['merchant_ref_number'],
357        'currency'            => $arrAuthParam['currency'],
358        'offer0'              => $arrAuthParam['offer0']
359    );
360}
361
362/**
363 * ics_pa_enroll¥Ñ¥é¥á¡¼¥¿¤ò¹½ÃÛ¤¹¤ë.
364 *
365 * @param array $arrForm
366 * @param array $arrData
367 */
368function lfCreateEnrollParam($arrForm, $arrData) {
369    global $arrInfo;
370    global $arrCybsRequestURL;
371
372    $objCustomer = new SC_Customer;
373
374    $cardNo  = $arrForm['card_no01'] . $arrForm['card_no02'] . $arrForm['card_no03'] . $arrForm['card_no04'];
375    $expMo   = $arrForm['card_month'];
376    $expYr   = '20' . $arrForm['card_year'];
377    $phoneNo = $arrData['order_tel01'] . $arrData['order_tel02'] . $arrData['order_tel03'];
378
379    $objConfig =& Mdl_Cybs_Config::getInstanse();
380    $arrConfig = $objConfig->getConfig();
381
382    $arrSendParam = array(
383        "ics_applications"    => "ics_pa_enroll",
384        "server_host"         => $arrCybsRequestURL[$arrConfig['cybs_request_url']],
385        "server_port"         => "80",
386        'card_type'           => $arrForm['card_company'],
387        'customer_account_id' => $objCustomer->getValue('customer_id'),
388        "currency"            => "JPY",
389        "customer_cc_expmo"   => $expMo,
390        "customer_cc_expyr"   => $expYr,
391        'customer_cc_number'  => $cardNo,
392        "merchant_id"         => $arrConfig['cybs_merchant_id'],
393        "merchant_ref_number" => $arrData['order_id'],
394        'pa_http_accept'      => $_SERVER['HTTP_ACCEPT'],
395        'pa_http_user_agent'  => $_SERVER['HTTP_USER_AGENT'],
396        'pa_merchant_country_code' => 'JP',
397        //'pa_merchant_id'      => $arrConfig['cybs_merchant_id'], // ¥µ¥¤¥Ð¡¼¥½¡¼¥¹¤Î¥Þ¡¼¥Á¥ã¥ó¥ÈID¤È¤ÏÊÌ
398        'pa_merchant_name'    => lfToSjis($arrInfo['shop_name']),
399        'pa_merchant_url'     => SSL_URL,
400        'offer0'              => "amount:" . $arrData['payment_total']
401    );
402    return $arrSendParam;
403}
404
405/**
406 * ics_pa_validate¥Ñ¥é¥á¡¼¥¿¤ò¹½ÃÛ¤¹¤ë
407 * ics_auth¥Ñ¥é¥á¡¼¥¿¤È¥Þ¡¼¥¸¤¹¤ë
408 *
409 * @param array $arrForm MDµÚ¤ÓPaReq¤¬´Þ¤Þ¤ì¤ëÇÛÎó
410 * @param array $arrData °ì»þ¼õÃí¥Ç¡¼¥¿
411 * @return array
412 */
413function lfCreateValidateParam($arrForm, $arrData) {
414    global $arrCybsRequestURL;
415    $objCustomer = new SC_Customer;
416
417    $objConfig =& Mdl_Cybs_Config::getInstanse();
418    $arrConfig = $objConfig->getConfig();
419
420    $arrCardData = unserialize(base64_decode($arrForm['MD']));
421
422    $arrSendParam = array(
423        "server_host"         => $arrCybsRequestURL[$arrConfig['cybs_request_url']],
424        "server_port"         => "80",
425        'card_type'           => $arrCardData['card_company'],
426        'customer_account_id' => $objCustomer->getValue('customer_id'),
427        "currency"            => "JPY",
428        "merchant_id"         => $arrConfig['cybs_merchant_id'],
429        "merchant_ref_number" => $arrData['order_id'],
430        'pa_signedpares'      => trim($arrForm['PaRes']),
431        'offer0'              => "amount:" . $arrData['payment_total']
432    );
433
434    $arrSendParam = lfCreateAuthParam($arrCardData, $arrData, $arrSendParam);
435    $arrSendParam["ics_applications"] = "ics_pa_validate,ics_auth";
436
437    return $arrSendParam;
438}
439
440/**
441 * ¥ª¥ó¥Ç¥Þ¥ó¥É²Ý¶â¤Î¥Ñ¥é¥á¡¼¥¿¤ò¹½ÃÛ¤¹¤ë
442 *
443 * @param array $arrForm ¥Õ¥©¡¼¥à¥Ñ¥é¥á¡¼¥¿(¥«¡¼¥É¾ðÊó¤Ê¤É)
444 * @param array $arrData °ì»þ¼õÃí¥Ç¡¼¥¿
445 * @return array
446 */
447
448function lfCreateOndemandParam($arrForm, $arrData) {
449    global $arrCybsRequestURL;
450    global $arrPref;
451    $objCustomer = new SC_Customer;
452
453    $objConfig =& Mdl_Cybs_Config::getInstanse();
454    $arrConfig = $objConfig->getConfig();
455
456    $cardNo = $arrForm['card_no01'] . $arrForm['card_no02'] . $arrForm['card_no03'] . $arrForm['card_no04'];
457    $expMo = $arrForm['card_month'];
458    $expYr = '20' . $arrForm['card_year'];
459    $phoneNo = $arrData['order_tel01'] . $arrData['order_tel02'] . $arrData['order_tel03'];
460
461    $arrSendParam = array(
462        "ics_applications"    => "ics_pay_subscription_create",
463        "server_host"         => $arrCybsRequestURL[$arrConfig['cybs_request_url']],
464        "server_port"         => "80",
465        "customer_account_id" => $objCustomer->getValue('customer_id'),
466        "customer_cc_number"  => $cardNo,
467        "customer_cc_expmo"   => $expMo,
468        "customer_cc_expyr"   => $expYr,
469        "customer_firstname"  => lfToSjis($arrData['order_name02']),
470        "customer_lastname"   => lfToSjis($arrData['order_name01']),
471        "customer_email"      => $arrData['order_email'],
472        "customer_phone"      => $phoneNo,
473        "bill_address1"       => lfToSjis($arrData['order_addr02']),
474        "bill_city"           => lfToSjis($arrData['order_addr01']),
475        "bill_state"          => lfToSjis($arrPref[$arrData['order_pref']]),
476        "bill_zip"            => $arrData['order_zip01'] . $arrData['order_zip02'],
477        "bill_country"        => "JP",
478        "merchant_id"         => $arrConfig['cybs_merchant_id'],
479        "merchant_ref_number" => $arrData['order_id'],
480        "currency"            => "JPY",
481        /**
482        "ship_to_address1"    => lfToSjis($arrData['deliv_addr02']),
483        "ship_to_city"        => lfToSjis($arrData['deliv_addr01']),
484        "ship_to_country"     => lfToSjis($arrPref[$arrData['deliv_pref']]),
485        "ship_to_state"       => $arrData['deliv_zip01'] . $arrData['deliv_zip02'],
486        "ship_to_zip"         => "JP",
487        */
488        "recurring_disable_auto_auth" => 'Y',
489        "recurring_frequency" => 'on-demand',
490        "card_type"           => $arrForm['card_company'],
491    );
492
493    return $arrSendParam;
494}
495
496
497/**
498 * ¥ì¥¹¥Ý¥ó¥¹¤Î¥¨¥é¡¼¥Á¥§¥Ã¥¯
499 *
500 * @param array $arrResults
501 * @return boolean|PEAR::Error
502 */
503function lfIsError($arrResults) {
504    global $arrIcsErr;
505    $ret = null;
506
507    switch ($arrResults['ics_rcode']) {
508    // À®¸ù
509    case '1':
510        $ret = true;
511        break;
512    case '0':
513        // 3D¥»¥­¥å¥¢¤Î¾ì¹ç¡¢ics_rflag¤¬DAUTHENTICATE¤Ç¤¢¤ì¤ÐÅÐÏ¿¤¢¤ê
514        if (isset($arrResults['pa_enroll_rflag'])
515            && $arrResults['pa_enroll_rflag'] == 'DAUTHENTICATE') {
516
517            $ret = true;
518            break;
519        }
520        $msg = "½èÍý¤¬µñÈݤµ¤ì¤Þ¤·¤¿¡£\n¥¨¥é¡¼¥³¡¼¥É¡§${arrResults['ics_rflag']}\n";
521        $ret = PEAR::raiseError($msg);
522        break;
523    case '-1':
524        $msg = "¥·¥¹¥Æ¥à¤Þ¤¿¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤Ë¤è¤ê½èÍý¤¬¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤·¤¿¡£\n¥¨¥é¡¼¥³¡¼¥É¡§${arrResults['ics_rflag']}\n";
525        $ret = PEAR::raiseError($msg);
526        break;
527    default:
528        $ret = PEAR::raiseError("ÉÔÌÀ¤Ê¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£\n");
529    }
530
531    return $ret;
532}
533
534/**
535 * SJIS¤ØÊÑ´¹¤¹¤ë
536 *
537 * @param string $str
538 * @return string
539 */
540function lfToSjis($str) {
541    return mb_convert_encoding($str, 'SJIS', CHAR_CODE);
542}
543
544/**
545 * ÆþÎϾðÊó¤ò°ìÉôµ­Ï¿
546 *
547 * @param string $uniqid
548 * @param array $arrForm
549 */
550function lfRegisterOrderTemp($uniqid, $arrForm, $arrResults) {
551    $sqlval = array();
552    $sqlval['memo03'] = $arrForm['card_name01'] . " " . $arrForm['card_name02'];
553    //$sqlval['memo02'] = serialize($arrResults['auth_auth_code']);
554
555    $objQuery = new SC_Query;
556    $objQuery->update("dtb_order_temp", $sqlval, "order_temp_id = ?", array($uniqid));
557}
558?>
Note: See TracBrowser for help on using the repository browser.