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

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