source: branches/feature-module-paygent/data/downloads/module/mdl_paygent/mdl_paygent.inc @ 16597

Revision 16597, 24.6 KB checked in by naka, 14 years ago (diff)

差分照会の修正

Line 
1<?php
2/**
3 *
4 * @copyright   2000-2006 LOCKON CO.,LTD. All Rights Reserved.
5 * @version CVS: $Id: mdl_epsilon.inc 7162 2006-11-18 09:53:33Z kakinaka $
6 * @link        http://www.lockon.co.jp/
7 *
8 */
9$paygent_credit_php_dir = realpath(dirname( __FILE__));
10// include_path¤Ëmdl_paygent¤Î¥Ñ¥¹¤ò´Þ¤á¤ë
11ini_set('include_path', $paygent_credit_php_dir . PATH_SEPARATOR . ini_get('include_path'));
12
13$paygent_module_dir = "jp/co/ks/merchanttool/connectmodule/";
14
15// ¥â¥¸¥å¡¼¥ë¥Õ¥¡¥¤¥ë¤Î¸ºß¥Á¥§¥Ã¥¯
16if(!file_exists($paygent_credit_php_dir . "/" . $paygent_module_dir)) {
17    print("¥Ú¥¤¥¸¥§¥ó¥ÈÄ󶡥⥸¥å¡¼¥ë¤òÀßÃÖ¤·¤Æ¤¯¤À¤µ¤¤¡£");
18    exit;
19}
20
21// paygent¥â¥¸¥å¡¼¥ë¤ÎÆɹþ
22include_once($paygent_module_dir . "entity/ResponseDataFactory.php");
23include_once($paygent_module_dir . "system/PaygentB2BModule.php");
24include_once($paygent_module_dir . "exception/PaygentB2BModuleConnectException.php");
25include_once($paygent_module_dir . "exception/PaygentB2BModuleException.php");
26
27// ¥Ú¥¤¥¸¥§¥ó¥È·èºÑ¤Î¥â¥¸¥å¡¼¥ëID¡Êdtb_module¤È¹ç¤ï¤»¤ë¡Ë
28define("MDL_PAYGENT_ID", 9);
29
30// ¥Ú¥¤¥¸¥§¥ó¥È¤Î³Æʧ¹þ¤ÎÂбþÈÖ¹æ
31/*
32    ÅÅʸ¼ïÊ̤òɽ¤¹¶èʬ
33    010¡§ATM·èºÑ¿½¹þ
34    020¡§Ž¶Ž°ŽÄŽÞ·èºÑŽµŽ°Ž¿ŽØ
35    021¡§Ž¶Ž°ŽÄŽÞ·èºÑŽµŽ°Ž¿ŽØŽ·Ž¬ŽÝŽ¾ŽÙ
36    022¡§Ž¶Ž°ŽÄŽÞ·èºÑÇä¾å
37    023¡§Ž¶Ž°ŽÄŽÞ·èºÑÇä¾åŽ·Ž¬ŽÝŽ¾ŽÙ
38    024¡§Ž¶Ž°ŽÄŽÞ·èºÑ3DŽµŽ°Ž¿ŽØ
39    030¡§ŽºŽÝŽËŽÞŽÆ·èºÑ(ÈÖ¹æÊý¼°)¿½¹þ
40    040¡§ŽºŽÝŽËŽÞŽÆ·èºÑ(ʧ¹þɼÊý¼°)¿½¹þ
41    050¡§¶ä¹ÔŽÈŽ¯ŽÄ·èºÑ¿½¹þ
42    060¡§¶ä¹Ô¥Í¥Ã¥È·èºÑASP
43    090¡§·èºÑ¾ðÊó¾È²ñ
44    091¡§º¹Ê¬¾È²ñ
45*/
46define("PAYGENT_BANK", '060');
47define("PAYGENT_ATM", '010');
48define("PAYGENT_CONVENI", '030');
49define("PAYGENT_CREDIT", '020');
50// ¥Ð¥Ã¥Á¤Ç»ÈÍѤ¹¤ë¡£
51define("PAYGENT_REF", '091');
52
53define("PAYGENT_AUTH_CANCEL", '021');
54define("PAYGENT_CARD_COMMIT", '022');
55define("PAYGENT_CARD_COMMIT_CANCEL", '023');
56
57// ̵¸Â¥ë¡¼¥×¤òÈò¤±¤ë
58define("PAYGENT_REF_LOOP", 1000);
59
60$arrDispKind = array(
61    PAYGENT_AUTH_CANCEL => '¥ª¡¼¥½¥ê¥­¥ã¥ó¥»¥ë',
62    PAYGENT_CARD_COMMIT => 'Çä¾å',
63    PAYGENT_CARD_COMMIT_CANCEL => 'Çä¾å¥­¥ã¥ó¥»¥ë',
64);
65
66// ¼õÃí»þ¤Î½é´ü¥¹¥Æ¡¼¥¿¥¹
67$arrInitStatus = array(
68    PAYGENT_CREDIT => ORDER_NEW,        // ¥¯¥ì¥¸¥Ã¥È¤Ï¿·µ¬¼õÉÕ
69    PAYGENT_ATM => ORDER_PAY_WAIT,      // ATM·èºÑ¤ÏÆþ¶âÂÔ¤Á
70    PAYGENT_CONVENI => ORDER_PAY_WAIT,  // ¥³¥ó¥Ó¥Ë¤ÏÆþ¶âÂÔ¤Á
71    PAYGENT_BANK => ORDER_NEW,          // ¶ä¹Ô¤Ï¿·µ¬¼õÉÕ
72);
73
74define ("CHARGE_MAX", 500000);
75define ("SEVEN_CHARGE_MAX", 300000);
76
77// ÅÅʸ¥Ð¡¼¥¸¥ç¥ó
78define ("TELEGRAM_VERSION", '1.0');
79
80//¥³¥ó¥Ó¥Ë¤Î¼ïÎà
81$arrConvenience = array(
82    '00C016' => '¥»¥¤¥³¡¼¥Þ¡¼¥È',
83    '00C002' => '¥í¡¼¥½¥ó',
84    '00C004' => '¥ß¥Ë¥¹¥È¥Ã¥×',
85    '00C005' => '¥Õ¥¡¥ß¥ê¡¼¥Þ¡¼¥È',
86    '00C006' => '¥µ¥ó¥¯¥¹',
87    '00C007' => '¥µ¡¼¥¯¥ëK',
88    '00C014' => '¥Ç¥¤¥ê¡¼¥ä¥Þ¥¶¥­',
89    '00C001' => '¥»¥Ö¥ó¥¤¥ì¥Ö¥ó'
90);
91   
92// ¥Í¥Ã¥È¥Ð¥ó¥¯¤Î¼ïÎà
93$arrNetBank = array(
94    'D005' => 'e-payment',
95    'D008' => '¥Í¥Ã¥È¿¶¹þEDI',
96    'D009' => 'One\'s ¥À¥¤¥ì¥¯¥È',
97    'D033' => '¥¸¥ã¥Ñ¥ó¥Í¥Ã¥È¶ä¹Ô',
98    'D036' => '¥¤¡¼¥Ð¥ó¥¯' 
99);
100   
101// ¥¯¥ì¥¸¥Ã¥Èʬ³ä²ó¿ô
102$arrPaymentClass = array(
103    '10' => '°ì³çʧ¤¤',
104    '61-2' => 'ʬ³ä2²óʧ¤¤',
105    '61-3' => 'ʬ³ä3²óʧ¤¤',
106    '61-6' => 'ʬ³ä6²óʧ¤¤',
107    '61-10' => 'ʬ³ä10²óʧ¤¤',
108    '61-15' => 'ʬ³ä15²óʧ¤¤',
109    '61-20' => 'ʬ³ä20²óʧ¤¤',
110    '80' => '¥ê¥Üʧ¤¤'
111);
112
113/**************************************************************************************************************
114 * ´Ø¿ô̾   ¡§sfGetPaygentShare
115 * ½èÍýÆâÍÆ ¡§¥Ú¥¤¥¸¥§¥ó¥È¾ðÊóÁ÷¿®¤Î¶¦Ä̽èÍý
116 * °ú¿ô1    ¡§
117 * °ú¿ô2    ¡§
118 * °ú¿ô3    ¡§
119 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
120 **************************************************************************************************************/
121function sfGetPaygentShare($telegram_kind, $order_id, $arrParam) {
122   
123    /** ¶¦ÄÌÅÅʸ **/   
124    // ¥Þ¡¼¥Á¥ã¥ó¥ÈID
125    $arrSend['merchant_id'] = $arrParam['merchant_id'];
126    // ÀܳID
127    $arrSend['connect_id'] = $arrParam['connect_id'];
128    // Àܳ¥Ñ¥¹¥ï¡¼¥É
129    $arrSend['connect_password'] = $arrParam['connect_password'];
130    // ÅÅʸ¼ïÊÌID
131    $arrSend['telegram_kind'] = $telegram_kind;
132    // ÅÅʸ¥Ð¡¼¥¸¥ç¥ó
133    $arrSend['telegram_version'] = TELEGRAM_VERSION;
134    // ¥Þ¡¼¥Á¥ã¥ó¥È¼è°úID
135    $arrSend['trading_id'] = $order_id;
136    // EC-CUBE¤«¤é¤ÎÅÅʸ¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£
137    $arrSend['partner'] = 'lockon';
138   
139    return $arrSend;
140}
141   
142/**************************************************************************************************************
143 * ´Ø¿ô̾   ¡§sfSendPaygentCredit
144 * ½èÍýÆâÍÆ ¡§¥¯¥ì¥¸¥Ã¥È¾ðÊó¤ÎÁ÷¿®
145 * °ú¿ô1    ¡§
146 * °ú¿ô2    ¡§
147 * °ú¿ô3    ¡§
148 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
149 **************************************************************************************************************/
150function sfSendPaygentCredit($arrData, $arrInput, $uniqid) {
151    // Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
152    $p = new PaygentB2BModule();
153    $p->init();
154   
155    //¡¡¥¯¥ì¥¸¥Ã¥ÈÍѥѥé¥á¡¼¥¿¤Î¼èÆÀ
156    $arrPaymentDB = sfGetPaymentDB(MDL_PAYGENT_ID, "AND memo03 = 1");
157    $arrOtherParam = unserialize($arrPaymentDB[0]['other_param']);
158   
159    // ¶¦Ḁ̈ǡ¼¥¿¤Î¼èÆÀ
160    $arrSend = sfGetPaygentShare(PAYGENT_CREDIT, $arrData['order_id'], $arrPaymentDB[0]);
161   
162    /** ¸ÄÊÌÅÅʸ **/
163   
164    // ·èºÑ¶â³Û
165    $arrSend['payment_amount'] = $arrData['payment_total'];
166    // ¥«¡¼¥ÉÈÖ¹æ
167    $arrSend['card_number'] = $arrInput['card_no01'].$arrInput['card_no02'].$arrInput['card_no03'].$arrInput['card_no04'];
168    // ¥«¡¼¥ÉÍ­¸ú´ü¸Â(MMYY)
169    $arrSend['card_valid_term'] = $arrInput['card_month'].$arrInput['card_year'];
170    // »Ùʧ¤¤¶èʬ¡¢Ê¬³ä²ó¿ô¤Î¼èÆÀ
171    list($payment_class, $split_count) = split("-", $arrInput['payment_class']);
172       
173    // »Ùʧ¤¤¶èʬ
174    /*
175     * 10:1²ó
176     * 23:¥Ü¡¼¥Ê¥¹1²ó
177     * 61:ʬ³ä
178     * 80:¥ê¥Ü¥ë¥Ó¥ó¥°
179     */
180    $arrSend['payment_class'] = $payment_class;
181    // ʬ³ä²ó¿ô
182    $arrSend['split_count'] = $split_count;
183    // 3D¥»¥­¥å¥¢ÉÞÍܶèʬ
184    $arrSend['3dsecure_ryaku'] = '1';
185   
186    // ÅÅʸ¤ÎÁ÷ÉÕ
187    foreach($arrSend as $key => $val) {
188        $p->reqPut($key, $val);
189    }
190   
191    // ÅÅʸ¤ÎÁ÷¿®
192    $p->post();
193
194    // ±þÅú¤ò½èÍý
195    $arrRet = sfPaygentResponse(PAYGENT_CREDIT, $p, $uniqid);
196   
197    return $arrRet;
198}
199
200/**************************************************************************************************************
201 * ´Ø¿ô̾   ¡§sfSendPaygentConveni
202 * ½èÍýÆâÍÆ ¡§¥³¥ó¥Ó¥Ë¾ðÊó¤ÎÁ÷¿®
203 * °ú¿ô1    ¡§
204 * °ú¿ô2    ¡§
205 * °ú¿ô3    ¡§
206 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
207 **************************************************************************************************************/
208function sfSendPaygentConveni($arrData, $arrInput, $uniqid) {
209// Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
210    $p = new PaygentB2BModule();
211    $p->init();
212   
213    //¡¡¥³¥ó¥Ó¥ËÍѥѥé¥á¡¼¥¿¤Î¼èÆÀ
214    $arrPaymentDB = sfGetPaymentDB(MDL_PAYGENT_ID, "AND memo03 = 2");
215    $arrOtherParam = unserialize($arrPaymentDB[0]['other_param']);
216   
217    // ¶¦Ḁ̈ǡ¼¥¿¤Î¼èÆÀ
218    $arrSend = sfGetPaygentShare(PAYGENT_CONVENI, $arrData['order_id'], $arrPaymentDB[0]);
219   
220    /** ¸ÄÊÌÅÅʸ **/
221   
222    // ·èºÑ¶â³Û
223    $arrSend['payment_amount'] = $arrData['payment_total'];
224    // ÍøÍѼÔÀ«
225    $arrSend['customer_family_name'] = $arrInput['customer_family_name'];
226    // ÍøÍѼÔ̾
227    $arrSend['customer_name'] = $arrInput['customer_name'];
228    // ÍøÍѼÔÀ«È¾³Ñ¥«¥Ê
229    $arrSend['customer_family_name_kana'] = mb_convert_kana($arrInput['customer_family_name_kana'],'k');
230    // ÍøÍѼÔ̾Ⱦ³Ñ¥«¥Ê
231    $arrSend['customer_name_kana'] = mb_convert_kana($arrInput['customer_name_kana'],'k');
232    // ÍøÍѼÔÅÅÏÃÈÖ¹æ
233    $arrSend['customer_tel'] = $arrInput['customer_tel'];
234    // »Ùʧ´ü¸ÂÆü
235    $arrSend['payment_limit_date'] = $arrOtherParam['payment_limit_date'];
236    // ¥³¥ó¥Ó¥Ë´ë¶È¥³¡¼¥É
237    $arrSend['cvs_company_id'] = $arrInput['cvs_company_id'];
238    // »Ùʧ¼ïÊÌ
239    $arrSend['sales_type'] = '1';
240   
241    // ÅÅʸ¤ÎÁ÷ÉÕ
242    foreach($arrSend as $key => $val) {
243        // Shift-JIS¤Ë¥¨¥ó¥³¡¼¥É¤¹¤ëɬÍפ¢¤ê
244        $enc_val = mb_convert_encoding($val, "Shift-JIS", CHAR_CODE);       
245        $p->reqPut($key, $enc_val);
246    }
247   
248    // ÅÅʸ¤ÎÁ÷¿®
249    $p->post();
250
251    // ±þÅú¤ò½èÍý
252    $arrRet = sfPaygentResponse(PAYGENT_CONVENI, $p, $uniqid);
253       
254    return $arrRet;
255}
256
257/**************************************************************************************************************
258 * ´Ø¿ô̾   ¡§sfSendPaygentATM
259 * ½èÍýÆâÍÆ ¡§ATM·èºÑ¾ðÊó¤ÎÁ÷¿®
260 * °ú¿ô1    ¡§
261 * °ú¿ô2    ¡§
262 * °ú¿ô3    ¡§
263 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
264 **************************************************************************************************************/
265function sfSendPaygentATM($arrData, $arrInput, $uniqid) {
266// Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
267    $p = new PaygentB2BModule();
268    $p->init();
269   
270    //¡¡ATM·èºÑÍѥѥé¥á¡¼¥¿¤Î¼èÆÀ
271    $arrPaymentDB = sfGetPaymentDB(MDL_PAYGENT_ID, "AND memo03 = 3");
272    $arrOtherParam = unserialize($arrPaymentDB[0]['other_param']);
273   
274    // ¶¦Ḁ̈ǡ¼¥¿¤Î¼èÆÀ
275    $arrSend = sfGetPaygentShare(PAYGENT_ATM, $arrData['order_id'], $arrPaymentDB[0]);
276   
277   
278    /** ¸ÄÊÌÅÅʸ **/
279   
280    // ·èºÑ¶â³Û
281    $arrSend['payment_amount'] = $arrData['payment_total'];
282
283    // ÍøÍѼÔÀ«
284    $arrSend['customer_family_name'] = $arrInput['customer_family_name'];
285    // ÍøÍѼÔ̾
286    $arrSend['customer_name'] = $arrInput['customer_name'];
287    // ÍøÍѼÔÀ«È¾³Ñ¥«¥Ê
288    $arrSend['customer_family_name_kana'] = mb_convert_kana($arrInput['customer_family_name_kana'],'k');
289    // ÍøÍѼÔ̾Ⱦ³Ñ¥«¥Ê
290    $arrSend['customer_name_kana'] = mb_convert_kana($arrInput['customer_name_kana'],'k');
291    // ·èºÑÆâÍÆ
292    $arrSend['payment_detail'] = $arrOtherParam['payment_detail'];
293    // ·èºÑÆâÍÆȾ³Ñ¥«¥Ê
294    $arrSend['payment_detail_kana'] = mb_convert_kana($arrOtherParam['payment_detail'],'k');
295    // »Ùʧ´ü¸ÂÆü
296    $arrSend['payment_limit_date'] = $arrOtherParam['payment_limit_date'];
297   
298    // ÅÅʸ¤ÎÁ÷ÉÕ
299    foreach($arrSend as $key => $val) {
300        // Shift-JIS¤Ë¥¨¥ó¥³¡¼¥É¤¹¤ëɬÍפ¢¤ê
301        $enc_val = mb_convert_encoding($val, "Shift-JIS", CHAR_CODE);       
302        $p->reqPut($key, $enc_val);
303    }
304   
305    // ÅÅʸ¤ÎÁ÷¿®
306    $p->post();
307   
308    // ±þÅú¤ò½èÍý
309    $arrRet = sfPaygentResponse(PAYGENT_ATM, $p, $uniqid);
310   
311    return $arrRet;
312}
313
314/**************************************************************************************************************
315 * ´Ø¿ô̾   ¡§sfSendPaygentBANK
316 * ½èÍýÆâÍÆ ¡§¶ä¹ÔNET·èºÑ¾ðÊó¤ÎÁ÷¿®
317 * °ú¿ô1    ¡§
318 * °ú¿ô2    ¡§
319 * °ú¿ô3    ¡§
320 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
321 **************************************************************************************************************/
322function sfSendPaygentBANK($arrData, $arrInput, $uniqid) {
323// Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
324    $p = new PaygentB2BModule();
325    $p->init();
326   
327    //¡¡¶ä¹ÔNETÍѥѥé¥á¡¼¥¿¤Î¼èÆÀ
328    $arrPaymentDB = sfGetPaymentDB(MDL_PAYGENT_ID, "AND memo03 = 4");
329    $arrOtherParam = unserialize($arrPaymentDB[0]['other_param']);
330   
331    // ¶¦Ḁ̈ǡ¼¥¿¤Î¼èÆÀ
332    $arrSend = sfGetPaygentShare(PAYGENT_BANK, $arrData['order_id'], $arrPaymentDB[0]);
333
334    /** ¸ÄÊÌÅÅʸ **/
335   
336    //$arrSend['bank_code'] = $arrInput['bank_code'];   
337    // ·èºÑ¶â³Û
338    $arrSend['amount'] = $arrData['payment_total'];
339    // ÀÁµáÆâÍÆ¥«¥Ê
340    $arrSend['claim_kana'] = $arrOtherParam['claim_kana'];
341    // ÀÁµáÆâÍÆ´Á»ú
342    $arrSend['claim_kanji'] = $arrOtherParam['claim_kanji'];   
343    // ÍøÍѼÔÀ«
344    $arrSend['customer_family_name'] = $arrInput['customer_family_name'];
345    // ÍøÍѼÔ̾
346    $arrSend['customer_name'] = $arrInput['customer_name'];
347    // ÍøÍѼÔÀ«È¾³Ñ¥«¥Ê
348    $arrSend['customer_family_name_kana'] = mb_convert_kana($arrInput['customer_family_name_kana'],'k');
349    // ÍøÍѼÔ̾Ⱦ³Ñ¥«¥Ê
350    $arrSend['customer_name_kana'] = mb_convert_kana($arrInput['customer_name_kana'],'k');
351    // PC-Mobile¶èʬ
352    /*
353     * 0:PC
354     * 1:docomo
355     * 2:au
356     * 3:softbank
357     */
358    $arrSend['pc_mobile_type'] = '0';
359    // ŹÊÞ̾
360    $arrSend['merchant_name'] = $arrOtherParam['claim_kanji']; 
361    // ´°Î»¸å¤ÎÌá¤ê£Õ£Ò£Ì
362    $arrSend['return_url'] = SSL_URL . "shopping/load_payment_module.php";
363    // Ìá¤ê¥Ü¥¿¥ó£Õ£Ò£Ì
364    $arrSend['stop_return_url'] = SSL_URL . "shopping/load_payment_module.php";
365   
366    // ¥³¥Ô¡¼¥é¥¤¥È
367    $arrSend['copy_right'] = $arrOtherParam['copy_right'];
368    // ¼«Í³¥á¥âÍó
369    $arrSend['free_memo'] = $arrOtherParam['free_memo'];
370    // »Ùʧ´ü´Ö(0DDhhmm)
371    $arrSend['asp_payment_term'] = sprintf("0%02d0000", $arrOtherParam['asp_payment_term']);
372   
373    // ÅÅʸ¤ÎÁ÷ÉÕ
374    foreach($arrSend as $key => $val) {
375        // Shift-JIS¤Ë¥¨¥ó¥³¡¼¥É¤¹¤ëɬÍפ¢¤ê
376        $enc_val = mb_convert_encoding($val, "Shift-JIS", CHAR_CODE);
377        $p->reqPut($key, $enc_val);
378    }
379   
380    // ÅÅʸ¤ÎÁ÷¿®
381    $p->post();
382   
383    // ±þÅú¤ò½èÍý
384    $arrRet = sfPaygentResponse(PAYGENT_BANK, $p, $uniqid);
385   
386    return $arrRet;
387}
388
389/**************************************************************************************************************
390 * ´Ø¿ô̾   ¡§sfPaygentResponse
391 * ½èÍýÆâÍÆ ¡§±þÅú¤ò½èÍý¤¹¤ë
392 * °ú¿ô1    ¡§
393 * °ú¿ô2    ¡§
394 * °ú¿ô3    ¡§
395 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
396 **************************************************************************************************************/
397
398function sfPaygentResponse($telegram_kind, $objPaygent, $uniqid) {
399    global $arrConvenience;
400    global $arrInitStatus;
401   
402    // ½èÍý·ë²Ì¼èÆÀ¡Ê¶¦ÄÌ¡Ë
403    $resultStatus = $objPaygent->getResultStatus(); # ½èÍý·ë²Ì 0=Àµ¾ï½ªÎ», 1=°Û¾ï½ªÎ»
404    $responseCode = $objPaygent->getResponseCode(); # °Û¾ï½ªÎ»»þ¡¢¥ì¥¹¥Ý¥ó¥¹¥³¡¼¥É¤¬¼èÆÀ¤Ç¤­¤ë
405    $responseDetail = $objPaygent->getResponseDetail(); # °Û¾ï½ªÎ»»þ¡¢¥ì¥¹¥Ý¥ó¥¹¾ÜºÙ¤¬¼èÆÀ¤Ç¤­¤ë
406
407    // Shift-JIS¤Ç±þÅú¤¬¤¢¤ë¤Î¤Ç¡¢¥¨¥ó¥³¡¼¥É¤¹¤ë¡£
408    $responseDetail = mb_convert_encoding($responseDetail, CHAR_CODE, "Shift-JIS");
409   
410    $arrResOther['result'] = $resultStatus;
411    $arrResOther['code'] = $responseCode;
412    $arrResOther['detail'] = $responseDetail;
413   
414    // ¼èÆÀ¤·¤¿Ãͤò¥í¥°¤ËÊݸ¤¹¤ë¡£
415    foreach($arrResOther as $key => $val) {
416        gfPrintLog($key."->".$val);
417    }
418       
419    // ¥ì¥¹¥Ý¥ó¥¹¤Î¼èÆÀ
420    while($objPaygent->hasResNext()) {
421        # ¥Ç¡¼¥¿¤¬Â¸ºß¤¹¤ë¸Â¤ê¡¢¼èÆÀ
422        $arrRes[] = $objPaygent->resNext(); # Í×µá·ë²Ì¼èÆÀ
423    }
424   
425    $arrRes[0]['result'] = $resultStatus;
426   
427    // ¼èÆÀ¤·¤¿Ãͤò¥í¥°¤ËÊݸ¤¹¤ë¡£
428    foreach($arrRes[0] as $key => $val) {
429        gfPrintLog($key."->".$val);
430    }
431   
432    // ·èºÑËè¤Ë°Û¤Ê¤ë½èÍý
433    switch($telegram_kind) {
434    // ¥¯¥ì¥¸¥Ã¥È·èºÑ¤Î¾ì¹ç
435    case PAYGENT_CREDIT:
436        // ½é´ü¥¹¥Æ¡¼¥¿¥¹¤òÀßÄꤹ¤ë¡£
437        $arrVal["status"] = $arrInitStatus[PAYGENT_CREDIT];
438        // ¶õ¤ÎÇÛÎó¤ò³ÊǼ¤·¤Æ¤ª¤¯
439        $arrVal["memo02"] = serialize(array());     
440        break;
441    // ¥³¥ó¥Ó¥Ë·èºÑ¤Î¾ì¹ç
442    case PAYGENT_CONVENI:       
443        // ¥¿¥¤¥È¥ë¤òÀßÄꤹ¤ë
444        $arrMemo['title'] = sfSetConvMSG("¥³¥ó¥Ó¥Ë¤ª»Ùʧ¾ðÊó", true);   
445        //ʧ¹þɼURL(PC)
446        if($arrRes[0]['receipt_print_url'] != "") {
447            $arrMemo['receipt_print_url'] = sfSetConvMSG("ʧ¹þɼURL", $arrRes[0]['receipt_print_url']);
448        }
449        //ʧ¹þɼÈÖ¹æ
450        $arrMemo['receipt_number'] = sfSetConvMSG("ʧ¹þɼÈÖ¹æ", $arrRes[0]['receipt_number']);
451        $arrCVS = split("-", $arrRes[0]['usable_cvs_company_id']);
452        foreach($arrCVS as $val) {
453            if($cvsLine != "") {
454                $cvsLine.= ",".$arrConvenience[$val];               
455            } else {
456                $cvsLine = $arrConvenience[$val];
457            }
458        }
459        //Âоݥ³¥ó¥Ó¥Ë
460        $arrMemo['usable_cvs_company_id'] = sfSetConvMSG("¤ª»Ùʧ²Äǽ¤Ê¥³¥ó¥Ó¥Ë", $cvsLine);         
461        // »Ùʧ´üÆü
462        $arrMemo['payment_limit_date'] = sfSetConvMSG("¤ª»Ùʧ´üÆü", date("Yǯm·îdÆü", strtotime($arrRes[0]['payment_limit_date'])));
463        // ¼õÃí¥Æ¡¼¥Ö¥ë¤ËÊݸ
464        $arrVal["memo02"] = serialize($arrMemo);
465        // ½é´ü¥¹¥Æ¡¼¥¿¥¹¤òÀßÄꤹ¤ë¡£
466        $arrVal["status"] = $arrInitStatus[PAYGENT_CONVENI];       
467        break;
468    // ATM·èºÑ¤Î¾ì¹ç
469    case PAYGENT_ATM:
470        // ¥¿¥¤¥È¥ë¤òÀßÄꤹ¤ë
471        $arrMemo['title'] = sfSetConvMSG("ATM¤ª»Ùʧ¾ðÊó", true);   
472        $arrMemo['pay_center_number'] = sfSetConvMSG("¼ýǼµ¡´ØÈÖ¹æ", $arrRes[0]['pay_center_number']);
473        $arrMemo['customer_number'] = sfSetConvMSG("¤ªµÒÍÍÈÖ¹æ", $arrRes[0]['customer_number']);
474        $arrMemo['conf_number'] = sfSetConvMSG("³ÎǧÈÖ¹æ", $arrRes[0]['conf_number']);
475        // »Ùʧ´üÆü
476        $arrMemo['payment_limit_date'] = sfSetConvMSG("¤ª»Ùʧ´üÆü", date("Yǯm·îdÆü", strtotime($arrRes[0]['payment_limit_date'])));
477        // ¼õÃí¥Æ¡¼¥Ö¥ë¤ËÊݸ
478        $arrVal["memo02"] = serialize($arrMemo);
479        // ½é´ü¥¹¥Æ¡¼¥¿¥¹¤òÀßÄꤹ¤ë¡£
480        $arrVal["status"] = $arrInitStatus[PAYGENT_ATM];       
481        break;
482    // ¶ä¹Ô¥Í¥Ã¥È¤Î¾ì¹ç
483    case PAYGENT_BANK:
484        // ½é´ü¥¹¥Æ¡¼¥¿¥¹¤òÀßÄꤹ¤ë¡£
485        $arrVal["status"] = $arrInitStatus[PAYGENT_BANK];
486        // ¶õ¤ÎÇÛÎó¤ò³ÊǼ¤·¤Æ¤ª¤¯
487        $arrVal["memo02"] = serialize(array());
488        break;
489    default:
490        break;
491    }
492   
493    // ¼õÃí¥Æ¡¼¥Ö¥ë¤Ëµ­Ï¿¤¹¤ë
494    $arrVal["memo01"] = MDL_PAYGENT_ID;     // ½èÍý·ë²Ì
495       
496    // memo02¤Ï¡¢»Ùʧ¾ðÊó¤ò³ÊǼ¤¹¤ë¡£
497    $arrVal["memo03"] = $resultStatus;      // ½èÍý·ë²Ì
498    $arrVal["memo04"] = $responseCode;      // ¥ì¥¹¥Ý¥ó¥¹¥³¡¼¥É
499    $arrVal["memo05"] = $responseDetail;    // ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸
500    $arrVal["memo06"] = $arrRes[0]['payment_id'];       // ¾µÇ§ÈÖ¹æ
501    $arrVal["memo07"] = "";                 // ¥¹¥Æ¡¼¥¿¥¹¼èÆÀ¤Ç»ÈÍÑ
502    $arrVal["memo08"] = $telegram_kind;
503    $arrVal["memo09"] = "";                 // ¥«¡¼¥É·èºÑÏ¢·È¤Ç»ÈÍÑ
504    $arrVal["memo10"] = "";                 // ¾È²ñID
505   
506    // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Ë¹¹¿·
507    sfRegistTempOrder($uniqid, $arrVal);
508   
509    // ¾µÇ§ÈÖ¹æ¤È¥á¥Ã¥»¡¼¥¸¤òÊÖ¤¹
510    return $arrRes[0];
511}
512
513/**************************************************************************************************************
514 * ´Ø¿ô̾   ¡§sfSetConvMSG
515 * ½èÍýÆâÍÆ ¡§¥³¥ó¥Ó¥Ë¾ðÊóɽ¼¨ÍÑ
516 * °ú¿ô1    ¡§
517 * °ú¿ô2    ¡§
518 * °ú¿ô3    ¡§
519 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
520 **************************************************************************************************************/
521function sfSetConvMSG($name, $value){
522    return array("name" => $name, "value" => $value);
523}
524
525/**************************************************************************************************************
526 * ´Ø¿ô̾   ¡§sfPaygentDisp
527 * ½èÍýÆâÍÆ ¡§¶¦Ä̤Îɽ¼¨½èÍý
528 * °ú¿ô1    ¡§
529 * °ú¿ô2    ¡§
530 * °ú¿ô3    ¡§
531 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
532 **************************************************************************************************************/
533function sfPaygentDisp($objPage, $payment_id) {
534    $objQuery = new SC_Query();
535    // »Ùʧ¤¤ÊýË¡¤ÎÀâÌÀ²èÁü¤ò¼èÆÀ¤¹¤ë¡£
536    $arrRet = $objQuery->select("payment_method, payment_image", "dtb_payment", "payment_id = ?", array($payment_id));
537    $objPage->tpl_payment_method = $arrRet[0]['payment_method'];
538    $objPage->tpl_payment_image = $arrRet[0]['payment_image'];
539    return $objPage;
540}
541
542/**************************************************************************************************************
543 * ´Ø¿ô̾   ¡§sfGetPaymentDB
544 * ½èÍýÆâÍÆ ¡§É¬Íפʥǡ¼¥¿¤ò¼èÆÀ¤¹¤ë¡£
545 * °ú¿ô1    ¡§
546 * °ú¿ô2    ¡§
547 * °ú¿ô3    ¡§
548 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
549 **************************************************************************************************************/
550function sfGetPaymentDB($module_id, $where = "", $arrWhereVal = array()){
551    $objQuery = new SC_Query();
552       
553    $arrVal = array($module_id);
554    $arrVal = array_merge($arrVal, $arrWhereVal);
555   
556    $arrRet = array();
557    $sql = "SELECT
558                module_id,
559                memo01 as merchant_id,
560                memo02 as connect_id,
561                memo03 as payment,
562                memo04 as connect_password,
563                memo05 as other_param
564            FROM dtb_payment WHERE module_id = ? " . $where;
565    $arrRet = $objQuery->getall($sql, $arrVal);
566
567    return $arrRet;
568}
569
570/**************************************************************************************************************
571 * ´Ø¿ô̾   ¡§sfPaygentBatch
572 * ½èÍýÆâÍÆ ¡§Æþ¶â¥¹¥Æ¡¼¥¿¥¹³Îǧ¥Ð¥Ã¥Á
573 * °ú¿ô1    ¡§
574 * °ú¿ô2    ¡§
575 * °ú¿ô3    ¡§
576 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
577 **************************************************************************************************************/
578function sfPaygentBatch() {
579    $objQuery = new SC_Query();
580   
581    // Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
582    $objPaygent = new PaygentB2BModule();
583    $objPaygent->init();
584   
585    //¡¡ÀßÄê¥Ñ¥é¥á¡¼¥¿¤Î¼èÆÀ
586    $arrPaymentDB = sfGetPaymentDB(MDL_PAYGENT_ID);
587
588    $where = "memo01 = ? AND status = ?";
589    $arrOrder = $objQuery->select("order_id", "dtb_order", $where, array(MDL_PAYGENT_ID, ORDER_PAY_WAIT));
590   
591    // ¶¦Ḁ̈ǡ¼¥¿¤Î¼èÆÀ
592    $arrSend = sfGetPaygentShare(PAYGENT_REF, 0, $arrPaymentDB[0]);
593       
594    if(count($arrOrder) > 0) {
595        sfUpdatePaymentStatus($objPaygent, $arrSend);
596    }
597}
598
599/**************************************************************************************************************
600 * ´Ø¿ô̾   ¡§sfPaygentTest
601 * ½èÍýÆâÍÆ ¡§Àܳ¥Æ¥¹¥È
602 * °ú¿ô1    ¡§
603 * °ú¿ô2    ¡§
604 * °ú¿ô3    ¡§
605 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
606 **************************************************************************************************************/
607function sfPaygentTest($arrParam) {
608    $objQuery = new SC_Query();
609   
610    // Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
611    $objPaygent = new PaygentB2BModule();
612    $objPaygent->init();
613       
614    // ¶¦Ḁ̈ǡ¼¥¿¤Î¼èÆÀ
615    $arrSend = sfGetPaygentShare(PAYGENT_REF, '0', $arrParam);
616
617    // ÅÅʸ¤ÎÁ÷ÉÕ
618    foreach($arrSend as $key => $val) {
619        $objPaygent->reqPut($key, $val);
620    }
621    // ÅÅʸ¤ÎÁ÷¿®
622    $objPaygent->post();
623   
624    // ½èÍý·ë²Ì¼èÆÀ¡Ê¶¦ÄÌ¡Ë
625    $resultStatus = $objPaygent->getResultStatus(); # ½èÍý·ë²Ì 0=Àµ¾ï½ªÎ», 1=°Û¾ï½ªÎ»
626           
627    if($resultStatus == 0) {
628        return true;
629    } else {
630        return false;
631    }
632}
633
634/**************************************************************************************************************
635 * ´Ø¿ô̾   ¡§sfUpdatePaymentStatus
636 * ½èÍýÆâÍÆ ¡§Æþ¶â¥¹¥Æ¡¼¥¿¥¹º¹Ê¬¾È²ñ¥Ð¥Ã¥Á
637 * °ú¿ô1    ¡§
638 * °ú¿ô2    ¡§
639 * °ú¿ô3    ¡§
640 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
641 **************************************************************************************************************/
642function sfUpdatePaymentStatus($objPaygent, $arrSend) {
643    $objQuery = new SC_Query();
644    $i = 0;
645    // ¥¹¥Æ¡¼¥¿¥¹¤Î¼èÆÀ
646    while($i < 1000) {
647        $arrRet = sfGetPaymentStatus($objPaygent, $arrSend);
648       
649        // ¼èÆÀ¼ºÇÔ
650        if($arrRet['success_code'] == '1' || !isset($arrRet['success_code'])) {
651            gfPrintLog("º¹Ê¬¤Î¼èÆÀ¤Ê¤·");
652            return;
653        }
654       
655        // ¼èÆÀÀ®¸ù     
656        if($arrRet['success_code'] == '0') {
657            if($arrRet['trading_id'] != "") {
658                // »Ùʧ¥¹¥Æ¡¼¥¿¥¹¤Î¹¹¿·
659                /*
660                 * 10:¿½¹þºÑ
661                 * 12:»Ùʧ´ü¸ÂÀÚ¤ì
662                 * 15:¿½¹þÃæÃÇ
663                 * 40:¾Ã¹þºÑ
664                 * 43:®Êó¸¡ÃκÑ
665                 * 61:®Êó¼è¾ÃºÑ
666                 * etc
667                 */
668                /*
669                    ¡Ú»Ø¼¨¥á¥â¡Û   
670               
671                    ¸½¾õ¡¢EC-CUBE¤Ç¤Ï¥³¥ó¥ÓÆó·èºÑ¡¦¥»¥Ö¥ó¥¤¥ì¥Ö¥ó¤Ë¤Ä¤¤¤Æ
672                    ³ÎÊó¤ò¼õ¤±¤ÆÆþ¶âºÑ¤ß¤È¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¤¬¡¢
673                    ¥»¥Ö¥ó¤Î¾ì¹ç¤ÏÆþ¶â¸å¨»þ¤Ë®Êó¤¬ÊÀ¼Ò¦¤ËÆϤ­¡¢
674                    Æþ¶â¸å£²¢·£³Æü¸å¤Ë³ÎÊó¤¬ÆϤ¯¤è¤¦¤Ê»ÅÍͤȤʤäƤª¤ê¤Þ¤¹¡£
675                   
676                    ¥»¥Ö¥ó¤Ç¤Î·èºÑ¤Î¾ì¹ç¤Ï¡Ö®Êó¸¡ÃκѤߡÊ43¡Ë¡×¤ò¼õ¤±¤Æ
677                    Æþ¶âºÑ¤ß¤È¤¹¤ë¤è¤¦¤Ë²þ½¤¤·¤Æ¤¤¤¿¤À¤±¤Þ¤»¤ó¤Ç¤·¤ç¤¦¤«¡£
678                 */
679                if($arrRet['payment_status'] == '40' || $arrRet['payment_status'] == '43') {
680                    // Æþ¶âºÑ¤ß¤ËÊѹ¹¤¹¤ë¡£
681                    $arrVal['status'] = ORDER_PRE_END;
682                }
683                $arrVal['memo07'] = $arrRes[0]['payment_status'];
684                // ºÆÅپȲñ¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ¹¤ë¡£
685                $arrVal['memo10'] = $arrRes[0]['payment_notice_id'];               
686                $objQuery->update("dtb_order", $arrVal, "order_id = ?", array($arrRet['trading_id']));
687            }
688        }   
689        $i++;
690    }
691   
692   
693}
694/**************************************************************************************************************
695 * ´Ø¿ô̾   ¡§sfGetPaymentStatus
696 * ½èÍýÆâÍÆ ¡§Æþ¶â¥¹¥Æ¡¼¥¿¥¹º¹Ê¬¾È²ñ¡Êº¹Ê¬¾È²ñ¤Ç¤ÏÊѹ¹¤Î¤¢¤Ã¤¿¤â¤Î¤À¤±¼èÆÀ¤¹¤ë¤¿¤áorder_id¤ÏÉÔÍסË
697 * °ú¿ô1    ¡§
698 * °ú¿ô2    ¡§
699 * °ú¿ô3    ¡§
700 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
701 **************************************************************************************************************/
702function sfGetPaymentStatus($objPaygent, $arrSend) {
703    $objQuery = new SC_Query();
704    // ÅÅʸ¤ÎÁ÷ÉÕ
705    foreach($arrSend as $key => $val) {
706        $objPaygent->reqPut($key, $val);
707    }
708    // ÅÅʸ¤ÎÁ÷¿®
709    $objPaygent->post();
710   
711    // ¥ì¥¹¥Ý¥ó¥¹¤Î¼èÆÀ
712    while($objPaygent->hasResNext()) {
713        # ¥Ç¡¼¥¿¤¬Â¸ºß¤¹¤ë¸Â¤ê¡¢¼èÆÀ
714        $arrRes[] = $objPaygent->resNext(); # Í×µá·ë²Ì¼èÆÀ
715    }
716       
717    foreach($arrRes[0] as $key => $val) {
718        // Shift-JIS¤Ç±þÅú¤¬¤¢¤ë¤Î¤Ç¡¢¥¨¥ó¥³¡¼¥É¤¹¤ë¡£
719        $arrRes[0][$key] = mb_convert_encoding($val, CHAR_CODE, "Shift-JIS");
720        gfPrintLog($key."->".$arrRes[0][$key]);
721    }
722    return $arrRes[0];
723}
724
725/**************************************************************************************************************
726 * ´Ø¿ô̾   ¡§sfPaygentOrder($paygent_type)
727 * ½èÍýÆâÍÆ ¡§¼õÃíÏ¢·È
728 * °ú¿ô1    ¡§
729 * °ú¿ô2    ¡§
730 * °ú¿ô3    ¡§
731 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
732 **************************************************************************************************************/
733function sfPaygentOrder($paygent_type, $order_id) {
734    global $arrDispKind;
735   
736    // Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
737    $objPaygent = new PaygentB2BModule();
738    $objPaygent->init();
739   
740    //¡¡ÀßÄê¥Ñ¥é¥á¡¼¥¿¤Î¼èÆÀ
741    $arrPaymentDB = sfGetPaymentDB(MDL_PAYGENT_ID);
742   
743    switch($paygent_type) {
744    case 'auth_cancel':
745        $kind = PAYGENT_AUTH_CANCEL;
746        break;
747    case 'card_commit':
748        $kind = PAYGENT_CARD_COMMIT;
749        break;
750    case 'card_commit_cancel':
751        $kind = PAYGENT_CARD_COMMIT_CANCEL;
752        break;
753    }
754    $arrSend = sfGetPaygentShare($kind, $order_id, $arrPaymentDB[0]);
755   
756    // ÅÅʸ¤ÎÁ÷ÉÕ
757    foreach($arrSend as $key => $val) {
758        $objPaygent->reqPut($key, $val);
759    }
760    // ÅÅʸ¤ÎÁ÷¿®
761    $objPaygent->post();
762
763    // ¥ì¥¹¥Ý¥ó¥¹¤Î¼èÆÀ
764    while($objPaygent->hasResNext()) {
765        # ¥Ç¡¼¥¿¤¬Â¸ºß¤¹¤ë¸Â¤ê¡¢¼èÆÀ
766        $arrRes[] = $objPaygent->resNext(); # Í×µá·ë²Ì¼èÆÀ
767    }
768
769    $resultStatus = $objPaygent->getResultStatus(); # ½èÍý·ë²Ì 0=Àµ¾ï½ªÎ», 1=°Û¾ï½ªÎ»
770    gfPrintLog('result'."->".$resultStatus);
771   
772    foreach($arrRes[0] as $key => $val) {
773        // Shift-JIS¤Ç±þÅú¤¬¤¢¤ë¤Î¤Ç¡¢¥¨¥ó¥³¡¼¥É¤¹¤ë¡£
774        $arrRes[0][$key] = mb_convert_encoding($val, CHAR_CODE, "Shift-JIS");
775        gfPrintLog($key."->".$arrRes[0][$key]);
776    }
777   
778    // Àµ¾ï½ªÎ»
779    if($resultStatus == '0') {
780        $objQuery = new SC_Query();
781        $arrVal['memo09'] = $kind;
782        $objQuery->update("dtb_order", $arrVal, "order_id = ?", array($order_id));
783        $arrReturn['return'] = true;   
784    } else {
785        $arrReturn['return'] = false;
786    }
787    $arrReturn['kind'] = $kind;
788    return $arrReturn;
789}
790
791/**************************************************************************************************************
792 * ´Ø¿ô̾   ¡§sfPaygentOrderPage($objPage)
793 * ½èÍýÆâÍÆ ¡§É½¼¨Íѥѥ顼¥á¡¼¥¿¤òÄɲ乤롣
794 * °ú¿ô1    ¡§
795 * °ú¿ô2    ¡§
796 * °ú¿ô3    ¡§
797 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
798 **************************************************************************************************************/
799function sfPaygentOrderPage($objPage) {
800    global $arrDispKind;
801    $objPage->arrDispKind = $arrDispKind;
802    return $objPage;
803}
804?>
Note: See TracBrowser for help on using the repository browser.