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

Revision 17230, 22.3 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// ¥«¡¼¥È½¸·×½èÍý
56$objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
57// °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆɹþ
58$arrData = sfGetOrderTemp($uniqid);
59// ¥«¡¼¥È½¸·×¤ò¸µ¤ËºÇ½ª·×»»
60$arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
61
62$objForm = lfInitParam($_POST);
63$objPage->arrForm = $objForm->getFormParamList();
64
65switch(lfGetMode()) {
66
67case 'register':
68    // ÆþÎϹàÌܤθ¡¾Ú
69    if ($arrErr = $objForm->checkError()) {
70        $objPage->arrErr = $arrErr;
71        break;
72    }
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, $arrResults['merchant_ref_number']);
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    break;
161
162// ÅÐÏ¿¥«¡¼¥É¤Î»ÈÍÑ
163case 'ondemand':
164    // ÆþÎϹàÌܤθ¡¾Ú
165    $subsId = $objForm->getValue('subs_id');
166    $arrErr = $objForm->checkError();
167    if (empty($subsId) || !empty($arrErr['subs_id'])) {
168        $objPage->arrErr['subs_id'] = '¢¨¡¡»ÈÍѤ¹¤ë¥«¡¼¥É¤òÁªÂò¤·¤Æ²¼¤µ¤¤¡£';
169        break;
170    }
171
172    $arrSendParam = lfCreateAuthParam($objForm->getHashArray(), $arrData);
173    $arrSendParam = lfCreateOndemandAuthParam($subsId, $arrSendParam);
174    $arrResults = lfSendRequest($arrSendParam);
175    if (PEAR::isError($e = lfIsError($arrResults))) {
176        $objPage->tpl_error = $e->getMessage();
177        gfPrintLog(' -> auth error: ' . $e->getMessage(), MDL_CYBS_LOG);
178        gfPrintLog(print_r($arrResults, true), MDL_CYBS_LOG);
179        break;
180    }
181
182    $objSiteSess->setRegistFlag();
183    lfRegisterOrderTemp($uniqid, $objForm->getHashArray(), $arrResults);
184    header("Location: " . URL_SHOP_COMPLETE);
185    exit;
186    break;
187
188// ¥Ñ¥¹¥ï¡¼¥ÉÆþÎϤ«¤é¤ÎÌá¤ê
189case 'verify3d':
190    // ¸¡¾Ú+Í¿¿®¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤¹¤ë
191    $obj3DForm = lfInit3DParam($_POST);
192    $arrResults = lfSendRequest(lfCreateValidateParam($obj3DForm->getHashArray(), $arrData));
193    if (PEAR::isError($e = lfIsError($arrResults))) {
194        $objPage->tpl_error = $e->getMessage();
195        gfPrintLog(' -> error: ' . $e->getMessage(), MDL_CYBS_LOG);
196        gfPrintLog(print_r($arrResults, true), MDL_CYBS_LOG);
197        break;
198    }
199
200    $objSiteSess->setRegistFlag();
201    lfRegisterOrderTemp($uniqid, $objForm->getHashArray(), $arrResults);
202    header("Location: " . URL_SHOP_COMPLETE);
203    exit;
204    break;
205
206// Ìá¤ë¥Ü¥¿¥ó²¡²¼»þ
207case 'return':
208    $objSiteSess->setRegistFlag();
209    header("Location: " . URL_SHOP_CONFIRM);
210    exit;
211
212// Ä̾ïɽ¼¨
213default:
214}
215
216lfSetCardInfo($objPage); // ÅÐÏ¿ºÑ¤ß¥«¡¼¥É¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë
217
218$objView->assignobj($objPage);
219$objView->display(SITE_FRAME);
220
221sfPrintR($_POST, 'blue');
222sfPrintR($objPage, 'red');
223
224function lfSetCardInfo(&$objPage) {
225    $objCybs =& Mdl_Cybs_Config::getInstanse();
226    // ¥ª¥ó¥Ç¥Þ¥ó¥É²Ý¶â¤¬Ìµ¸ú¤Ê¤éreturn
227    if (!$objCybs->enableOndemand()) {
228        return;
229    }
230
231    // ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥óID¤ò¼èÆÀ
232    $arrSubsIds = $objCybs->getSubsIds();
233    $objPage->cardCount = 0; // ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥ó¤ÎÅÐÏ¿·ï¿ô
234    foreach ($arrSubsIds as $subs) {
235        $arrResults = lfSendRequest(lfCreateOndemandRetParam($subs['subs_id'], $subs['merchant_ref_number']));
236
237        if (PEAR::isError($e = lfIsError($arrResults))) {
238            $objPage->tpl_error = $e->getMessage();
239            gfPrintLog(' -> get subs info error: ' . $e->getMessage(), MDL_CYBS_LOG);
240            gfPrintLog(print_r($arrResults, true), MDL_CYBS_LOG);
241            return;
242        }
243        $objPage->cardCount++;
244        $objPage->arrCard[] = $arrResults; // ¥«¡¼¥É¾ðÊó¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Øassign
245    }
246}
247
248/**
249 * ¥â¡¼¥É¤ò¼èÆÀ¤¹¤ë
250 *
251 * @return string
252 */
253
254function lfGetMode() {
255    $mode = isset($_POST['mode']) ? $_POST['mode'] : '';
256
257    // 3D¥»¥­¥å¥¢¤ÎÌá¤êÍÑ¡£¥«¡¼¥É²ñ¼Ò¤Î¥Ñ¥¹¥ï¡¼¥ÉÆþÎϲèÌ̤«¤éÁ«°Ü¤¹¤ë
258    $obj3dForm = lfInit3DParam($_POST);
259    if (!$obj3dForm->checkError()) {
260        $mode = 'verify3d';
261    }
262
263    return $mode;
264}
265
266/**
267 * 3D¥»¥­¥å¥¢Ìá¤êÍѥѥé¥á¡¼¥¿¤Î½é´ü²½
268 *
269 * @param array $arrParam
270 * @return SC_FormParam
271 */
272function lfInit3DParam($arrParam) {
273    $objForm = new SC_FormParam;
274    $objForm->addParam("PaRes", "PaRes", '', "", array("EXIST_CHECK"));
275    $objForm->addParam("MD", "MD", '', "", array("EXIST_CHECK"));
276    $objForm->setParam($arrParam);
277    return $objForm;
278}
279
280/**
281 * ¥Ñ¥é¥á¡¼¥¿¤Î½é´ü²½
282 *
283 * @return SC_FormParam
284 */
285function lfInitParam($arrParam) {
286    $objForm = new SC_FormParam;
287    $objForm->addParam("¥«¡¼¥ÉÈÖ¹æ1", "card_no01", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
288    $objForm->addParam("¥«¡¼¥ÉÈÖ¹æ2", "card_no02", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
289    $objForm->addParam("¥«¡¼¥ÉÈÖ¹æ3", "card_no03", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
290    $objForm->addParam("¥«¡¼¥ÉÈÖ¹æ4", "card_no04", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
291    $objForm->addParam("¥«¡¼¥É²ñ¼Ò", "card_company", 3, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
292    $objForm->addParam("¥«¡¼¥É´ü¸Âǯ", "card_year", 2, "n", array("EXIST_CHECK", "NUM_COUNT_CHECK", "NUM_CHECK"));
293    $objForm->addParam("¥«¡¼¥É´ü¸Â·î", "card_month", 2, "n", array("EXIST_CHECK", "NUM_COUNT_CHECK", "NUM_CHECK"));
294    $objForm->addParam("À«", "card_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALPHA_CHECK"));
295    $objForm->addParam("̾", "card_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALPHA_CHECK"));
296    $objForm->addParam("»ÙʧÊýË¡", "paymethod", STEXT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
297    $objForm->addParam("¥«¡¼¥É¾ðÊó¤ÎÅÐÏ¿", "register_ondemand", 1, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK"));
298    $objForm->addParam("»ÈÍѤ¹¤ë¥«¡¼¥É", "subs_id", MTEXT_LEN, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK"));
299    $objForm->setParam($arrParam);
300    $objForm->convParam();
301    return $objForm;
302}
303
304/**
305 * ¥µ¥¤¥Ð¡¼¥½¡¼¥¹¤Ë¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤¹¤ë.
306 * °ú¿ô¤ÎÁ÷¿®¥Ñ¥é¥á¡¼¥¿¤ÏlfCreateParam***()¤ÇÀ¸À®¤¹¤ë.
307 *
308 * @param array $arrSendParam
309 * @return array
310 */
311function lfSendRequest($arrSendParam) {
312    $objRequest = new CYBS_REQ;
313
314    foreach ($arrSendParam as $key => $value) {
315        $objRequest->add_request($key, $value);
316    }
317
318    $arrSendParam['customer_cc_number'] = ''; // ¥«¡¼¥ÉÈÖ¹æ¤Ï¥í¥°Êݸ¤·¤Ê¤¤¡£
319    gfPrintLog('### send request param ###', MDL_CYBS_LOG);
320    gfPrintLog(print_r($arrSendParam, true), MDL_CYBS_LOG);
321
322    if ( ($result = cybs_send($objRequest->requests)) == false ) {
323        sfDispSiteError('');
324        gfPrintLog(' -> error: cybs_send() function.' , MDL_CYBS_LOG);
325    }
326
327    return $result;
328}
329
330/**
331 * ics_auth¥Ñ¥é¥á¡¼¥¿¤ò¹½ÃÛ¤¹¤ë.
332 *
333 * @param array $arrForm
334 * @param array $arrData
335 */
336function lfCreateAuthParam($arrForm, $arrData, $addData = null) {
337    global $arrCybsRequestURL;
338    global $arrPref;
339
340    $objConfig =& Mdl_Cybs_Config::getInstanse();
341    $arrConfig = $objConfig->getConfig();
342
343    $cardNo = $arrForm['card_no01'] . $arrForm['card_no02'] . $arrForm['card_no03'] . $arrForm['card_no04'];
344    $expMo = $arrForm['card_month'];
345    $expYr = '20' . $arrForm['card_year'];
346    $phoneNo = $arrData['order_tel01'] . $arrData['order_tel02'] . $arrData['order_tel03'];
347
348    $arrSendParam = array(
349        "ics_applications"    => "ics_auth",
350        "server_host"         => $arrCybsRequestURL[$arrConfig['cybs_request_url']],
351        "server_port"         => "80",
352        "card_type"           => $arrForm['card_company'],
353        "customer_cc_number"  => $cardNo,
354        "customer_cc_expmo"   => $expMo,
355        "customer_cc_expyr"   => $expYr,
356        "customer_firstname"  => lfToSjis($arrData['order_name02']),
357        "customer_lastname"   => lfToSjis($arrData['order_name01']),
358        "customer_email"      => $arrData['order_email'],
359        "customer_phone"      => $phoneNo,
360        "bill_address1"       => lfToSjis($arrData['order_addr02']),
361        "bill_city"           => lfToSjis($arrData['order_addr01']),
362        "bill_state"          => lfToSjis($arrPref[$arrData['order_pref']]),
363        "bill_zip"            => $arrData['order_zip01'] . $arrData['order_zip02'],
364        "bill_country"        => "JP",
365        "merchant_id"         => $arrConfig['cybs_merchant_id'],
366        "merchant_ref_number" => $arrData['order_id'],
367        "currency"            => "JPY",
368        /**
369        "ship_to_address1"    => lfToSjis($arrData['deliv_addr02']),
370        "ship_to_city"        => lfToSjis($arrData['deliv_addr01']),
371        "ship_to_country"     => lfToSjis($arrPref[$arrData['deliv_pref']]),
372        "ship_to_state"       => $arrData['deliv_zip01'] . $arrData['deliv_zip02'],
373        "ship_to_zip"         => "JP",
374        */
375    );
376
377    // »Ùʧ¤¤ÊýË¡
378    list($method, $paytimes) = split("-", $arrForm['paymethod']);
379    $arrSendParam["jpo_payment_method"] = $method;
380
381    // ʬ³ä²ó¿ô
382    if ($paytimes > 0) $arrSendParam["jpo_installments"] = $paytimes;
383
384    $arrSendParam["offer0"] = "amount:" . $arrData['payment_total'];
385
386    if (is_array($addData)) {
387        $arrSendParam = array_merge($arrSendParam, $addData);
388    }
389    return $arrSendParam;
390}
391
392/**
393 * ¥ª¥ó¥Ç¥Þ¥ó¥É²Ý¶â+Í¿¿®¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤ò¹½ÃÛ¤¹¤ë.
394 *
395 * @param string $subsId
396 * @param array $arrAuthParam
397 * @return array
398 */
399function lfCreateOndemandAuthParam($subsId, $arrAuthParam) {
400    return array(
401        'subscription_id'     => $subsId,
402        "ics_applications"    => "ics_auth",
403        "server_host"         => $arrAuthParam['server_host'],
404        "server_port"         => $arrAuthParam["server_port"],
405        'merchant_id'         => $arrAuthParam['merchant_id'],
406        'merchant_ref_number' => $arrAuthParam['merchant_ref_number'],
407        'currency'            => $arrAuthParam['currency'],
408        'offer0'              => $arrAuthParam['offer0']
409    );
410}
411
412function lfCreateOndemandRetParam($subsId, $merchant_ref_number) {
413    global $arrCybsRequestURL;
414
415    $objConfig =& Mdl_Cybs_Config::getInstanse();
416    $arrConfig = $objConfig->getConfig();
417
418    return array(
419        'subscription_id'     => $subsId,
420        "ics_applications"    => "ics_pay_subscription_retrieve",
421        "server_host"         => $arrCybsRequestURL[$arrConfig['cybs_request_url']],
422        "server_port"         => "80",
423        'merchant_id'         => $arrConfig['cybs_merchant_id'],
424        'merchant_ref_number' => $merchant_ref_number,
425    );
426}
427/**
428 * ics_pa_enroll¥Ñ¥é¥á¡¼¥¿¤ò¹½ÃÛ¤¹¤ë.
429 *
430 * @param array $arrForm
431 * @param array $arrData
432 */
433function lfCreateEnrollParam($arrForm, $arrData) {
434    global $arrInfo;
435    global $arrCybsRequestURL;
436
437    $objCustomer = new SC_Customer;
438
439    $cardNo  = $arrForm['card_no01'] . $arrForm['card_no02'] . $arrForm['card_no03'] . $arrForm['card_no04'];
440    $expMo   = $arrForm['card_month'];
441    $expYr   = '20' . $arrForm['card_year'];
442    $phoneNo = $arrData['order_tel01'] . $arrData['order_tel02'] . $arrData['order_tel03'];
443
444    $objConfig =& Mdl_Cybs_Config::getInstanse();
445    $arrConfig = $objConfig->getConfig();
446
447    $arrSendParam = array(
448        "ics_applications"    => "ics_pa_enroll",
449        "server_host"         => $arrCybsRequestURL[$arrConfig['cybs_request_url']],
450        "server_port"         => "80",
451        'card_type'           => $arrForm['card_company'],
452        'customer_account_id' => $objCustomer->getValue('customer_id'),
453        "currency"            => "JPY",
454        "customer_cc_expmo"   => $expMo,
455        "customer_cc_expyr"   => $expYr,
456        'customer_cc_number'  => $cardNo,
457        "merchant_id"         => $arrConfig['cybs_merchant_id'],
458        "merchant_ref_number" => $arrData['order_id'],
459        'pa_http_accept'      => $_SERVER['HTTP_ACCEPT'],
460        'pa_http_user_agent'  => $_SERVER['HTTP_USER_AGENT'],
461        'pa_merchant_country_code' => 'JP',
462        //'pa_merchant_id'      => $arrConfig['cybs_merchant_id'], // ¥µ¥¤¥Ð¡¼¥½¡¼¥¹¤Î¥Þ¡¼¥Á¥ã¥ó¥ÈID¤È¤ÏÊÌ
463        'pa_merchant_name'    => lfToSjis($arrInfo['shop_name']),
464        'pa_merchant_url'     => SSL_URL,
465        'offer0'              => "amount:" . $arrData['payment_total']
466    );
467    return $arrSendParam;
468}
469
470/**
471 * ics_pa_validate¥Ñ¥é¥á¡¼¥¿¤ò¹½ÃÛ¤¹¤ë
472 * ics_auth¥Ñ¥é¥á¡¼¥¿¤È¥Þ¡¼¥¸¤¹¤ë
473 *
474 * @param array $arrForm MDµÚ¤ÓPaReq¤¬´Þ¤Þ¤ì¤ëÇÛÎó
475 * @param array $arrData °ì»þ¼õÃí¥Ç¡¼¥¿
476 * @return array
477 */
478function lfCreateValidateParam($arrForm, $arrData) {
479    global $arrCybsRequestURL;
480    $objCustomer = new SC_Customer;
481
482    $objConfig =& Mdl_Cybs_Config::getInstanse();
483    $arrConfig = $objConfig->getConfig();
484
485    $arrCardData = unserialize(base64_decode($arrForm['MD']));
486
487    $arrSendParam = array(
488        "server_host"         => $arrCybsRequestURL[$arrConfig['cybs_request_url']],
489        "server_port"         => "80",
490        'card_type'           => $arrCardData['card_company'],
491        'customer_account_id' => $objCustomer->getValue('customer_id'),
492        "currency"            => "JPY",
493        "merchant_id"         => $arrConfig['cybs_merchant_id'],
494        "merchant_ref_number" => $arrData['order_id'],
495        'pa_signedpares'      => trim($arrForm['PaRes']),
496        'offer0'              => "amount:" . $arrData['payment_total']
497    );
498
499    $arrSendParam = lfCreateAuthParam($arrCardData, $arrData, $arrSendParam);
500    $arrSendParam["ics_applications"] = "ics_pa_validate,ics_auth";
501
502    return $arrSendParam;
503}
504
505/**
506 * ¥ª¥ó¥Ç¥Þ¥ó¥É²Ý¶â¤Î¥Ñ¥é¥á¡¼¥¿¤ò¹½ÃÛ¤¹¤ë
507 *
508 * @param array $arrForm ¥Õ¥©¡¼¥à¥Ñ¥é¥á¡¼¥¿(¥«¡¼¥É¾ðÊó¤Ê¤É)
509 * @param array $arrData °ì»þ¼õÃí¥Ç¡¼¥¿
510 * @return array
511 */
512
513function lfCreateOndemandParam($arrForm, $arrData) {
514    global $arrCybsRequestURL;
515    global $arrPref;
516    $objCustomer = new SC_Customer;
517
518    $objConfig =& Mdl_Cybs_Config::getInstanse();
519    $arrConfig = $objConfig->getConfig();
520
521    $cardNo = $arrForm['card_no01'] . $arrForm['card_no02'] . $arrForm['card_no03'] . $arrForm['card_no04'];
522    $expMo = $arrForm['card_month'];
523    $expYr = '20' . $arrForm['card_year'];
524    $phoneNo = $arrData['order_tel01'] . $arrData['order_tel02'] . $arrData['order_tel03'];
525
526    $arrSendParam = array(
527        "ics_applications"    => "ics_pay_subscription_create",
528        "server_host"         => $arrCybsRequestURL[$arrConfig['cybs_request_url']],
529        "server_port"         => "80",
530        "customer_account_id" => $objCustomer->getValue('customer_id'),
531        "customer_cc_number"  => $cardNo,
532        "customer_cc_expmo"   => $expMo,
533        "customer_cc_expyr"   => $expYr,
534        "customer_firstname"  => lfToSjis($arrData['order_name02']),
535        "customer_lastname"   => lfToSjis($arrData['order_name01']),
536        "customer_email"      => $arrData['order_email'],
537        "customer_phone"      => $phoneNo,
538        "bill_address1"       => lfToSjis($arrData['order_addr02']),
539        "bill_city"           => lfToSjis($arrData['order_addr01']),
540        "bill_state"          => lfToSjis($arrPref[$arrData['order_pref']]),
541        "bill_zip"            => $arrData['order_zip01'] . $arrData['order_zip02'],
542        "bill_country"        => "JP",
543        "merchant_id"         => $arrConfig['cybs_merchant_id'],
544        "merchant_ref_number" => $arrData['order_id'],
545        "currency"            => "JPY",
546        /**
547        "ship_to_address1"    => lfToSjis($arrData['deliv_addr02']),
548        "ship_to_city"        => lfToSjis($arrData['deliv_addr01']),
549        "ship_to_country"     => lfToSjis($arrPref[$arrData['deliv_pref']]),
550        "ship_to_state"       => $arrData['deliv_zip01'] . $arrData['deliv_zip02'],
551        "ship_to_zip"         => "JP",
552        */
553        "recurring_disable_auto_auth" => 'Y',
554        "recurring_frequency" => 'on-demand',
555        "card_type"           => $arrForm['card_company'],
556    );
557
558    return $arrSendParam;
559}
560
561
562/**
563 * ¥ì¥¹¥Ý¥ó¥¹¤Î¥¨¥é¡¼¥Á¥§¥Ã¥¯
564 *
565 * @param array $arrResults
566 * @return boolean|PEAR::Error
567 */
568function lfIsError($arrResults) {
569    global $arrIcsErr;
570    $ret = null;
571
572    switch ($arrResults['ics_rcode']) {
573    // À®¸ù
574    case '1':
575        $ret = true;
576        break;
577    case '0':
578        // 3D¥»¥­¥å¥¢¤Î¾ì¹ç¡¢ics_rflag¤¬DAUTHENTICATE¤Ç¤¢¤ì¤ÐÅÐÏ¿¤¢¤ê
579        if (isset($arrResults['pa_enroll_rflag'])
580            && $arrResults['pa_enroll_rflag'] == 'DAUTHENTICATE') {
581
582            $ret = true;
583            break;
584        }
585        $msg = "½èÍý¤¬µñÈݤµ¤ì¤Þ¤·¤¿¡£\n¥¨¥é¡¼¥³¡¼¥É¡§${arrResults['ics_rflag']}\n";
586        $ret = PEAR::raiseError($msg);
587        break;
588    case '-1':
589        $msg = "¥·¥¹¥Æ¥à¤Þ¤¿¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤Ë¤è¤ê½èÍý¤¬¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤·¤¿¡£\n¥¨¥é¡¼¥³¡¼¥É¡§${arrResults['ics_rflag']}\n";
590        $ret = PEAR::raiseError($msg);
591        break;
592    default:
593        $ret = PEAR::raiseError("ÉÔÌÀ¤Ê¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£\n");
594    }
595
596    return $ret;
597}
598
599/**
600 * SJIS¤ØÊÑ´¹¤¹¤ë
601 *
602 * @param string $str
603 * @return string
604 */
605function lfToSjis($str) {
606    return mb_convert_encoding($str, 'SJIS', CHAR_CODE);
607}
608
609/**
610 * ÆþÎϾðÊó¤ò°ìÉôµ­Ï¿
611 *
612 * @param string $uniqid
613 * @param array $arrForm
614 */
615function lfRegisterOrderTemp($uniqid, $arrForm, $arrResults) {
616    $sqlval = array(
617        'memo06' => 1,
618        'memo07' => $arrResults['request_token'],
619        'memo08' => $arrResults['request_id'],
620        //'memo08' => $arrResults[''],
621        //'memo09' => $arrResults[''],
622        //'memo10' => $arrResults[''],
623    );
624
625    $objQuery = new SC_Query;
626    $objQuery->update("dtb_order_temp", $sqlval, "order_temp_id = ?", array($uniqid));
627}
628?>
Note: See TracBrowser for help on using the repository browser.