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

Revision 15552, 20.0 KB checked in by naka, 17 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 */
45define("PAYGENT_BANK", '060');
46define("PAYGENT_ATM", '010');
47define("PAYGENT_CONVENI", '030');
48define("PAYGENT_CREDIT", '020');
49// ¥Ð¥Ã¥Á¤Ç»ÈÍѤ¹¤ë¡£
50define("PAYGENT_REF", '090');
51
52// ¼õÃí»þ¤Î½é´ü¥¹¥Æ¡¼¥¿¥¹
53$arrInitStatus = array(
54    PAYGENT_CREDIT => ORDER_NEW,        // ¥¯¥ì¥¸¥Ã¥È¤Ï¿·µ¬¼õÉÕ
55    PAYGENT_ATM => ORDER_PAY_WAIT,      // ATM·èºÑ¤ÏÆþ¶âÂÔ¤Á
56    PAYGENT_CONVENI => ORDER_PAY_WAIT,  // ¥³¥ó¥Ó¥Ë¤ÏÆþ¶âÂÔ¤Á
57    PAYGENT_BANK => ORDER_NEW,          // ¶ä¹Ô¤Ï¿·µ¬¼õÉÕ
58);
59
60define ("CHARGE_MAX", 500000);
61define ("SEVEN_CHARGE_MAX", 300000);
62
63// ÅÅʸ¥Ð¡¼¥¸¥ç¥ó
64define ("TELEGRAM_VERSION", '1.0');
65
66//¥³¥ó¥Ó¥Ë¤Î¼ïÎà
67$arrConvenience = array(
68    '00C016' => '¥»¥¤¥³¡¼¥Þ¡¼¥È',
69    '00C002' => '¥í¡¼¥½¥ó',
70    '00C004' => '¥ß¥Ë¥¹¥È¥Ã¥×',
71    '00C005' => '¥Õ¥¡¥ß¥ê¡¼¥Þ¡¼¥È',
72    '00C006' => '¥µ¥ó¥¯¥¹',
73    '00C007' => '¥µ¡¼¥¯¥ëK',
74    '00C014' => '¥Ç¥¤¥ê¡¼¥ä¥Þ¥¶¥­',
75    '00C001' => '¥»¥Ö¥ó¥¤¥ì¥Ö¥ó'
76);
77   
78// ¥Í¥Ã¥È¥Ð¥ó¥¯¤Î¼ïÎà
79$arrNetBank = array(
80    'D005' => 'e-payment',
81    'D008' => '¥Í¥Ã¥È¿¶¹þEDI',
82    'D009' => 'One\'s ¥À¥¤¥ì¥¯¥È',
83    'D033' => '¥¸¥ã¥Ñ¥ó¥Í¥Ã¥È¶ä¹Ô',
84    'D036' => '¥¤¡¼¥Ð¥ó¥¯' 
85);
86   
87// ¥¯¥ì¥¸¥Ã¥Èʬ³ä²ó¿ô
88$arrPaymentClass = array(
89    '10' => '°ì³çʧ¤¤',
90    '61-2' => 'ʬ³ä2²óʧ¤¤',
91    '61-3' => 'ʬ³ä3²óʧ¤¤',
92    '61-6' => 'ʬ³ä6²óʧ¤¤',
93    '61-10' => 'ʬ³ä10²óʧ¤¤',
94    '61-15' => 'ʬ³ä15²óʧ¤¤',
95    '61-20' => 'ʬ³ä20²óʧ¤¤',
96    '80' => '¥ê¥Üʧ¤¤'
97);
98
99/**************************************************************************************************************
100 * ´Ø¿ô̾   ¡§sfGetPaygentShare
101 * ½èÍýÆâÍÆ ¡§¥Ú¥¤¥¸¥§¥ó¥È¾ðÊóÁ÷¿®¤Î¶¦Ä̽èÍý
102 * °ú¿ô1    ¡§
103 * °ú¿ô2    ¡§
104 * °ú¿ô3    ¡§
105 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
106 **************************************************************************************************************/
107function sfGetPaygentShare($telegram_kind, $order_id, $arrParam) {
108   
109    /** ¶¦ÄÌÅÅʸ **/   
110    // ¥Þ¡¼¥Á¥ã¥ó¥ÈID
111    $arrSend['merchant_id'] = $arrParam['merchant_id'];
112    // ÀܳID
113    $arrSend['connect_id'] = $arrParam['connect_id'];
114    // Àܳ¥Ñ¥¹¥ï¡¼¥É
115    $arrSend['connect_password'] = $arrParam['connect_password'];
116    // ÅÅʸ¼ïÊÌID
117    $arrSend['telegram_kind'] = $telegram_kind;
118    // ÅÅʸ¥Ð¡¼¥¸¥ç¥ó
119    $arrSend['telegram_version'] = TELEGRAM_VERSION;
120    // ¥Þ¡¼¥Á¥ã¥ó¥È¼è°úID
121    $arrSend['trading_id'] = $order_id;
122    // EC-CUBE¤«¤é¤ÎÅÅʸ¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£
123    $arrSend['partner'] = 'lockon';
124
125    return $arrSend;
126}
127   
128/**************************************************************************************************************
129 * ´Ø¿ô̾   ¡§sfSendPaygentCredit
130 * ½èÍýÆâÍÆ ¡§¥¯¥ì¥¸¥Ã¥È¾ðÊó¤ÎÁ÷¿®
131 * °ú¿ô1    ¡§
132 * °ú¿ô2    ¡§
133 * °ú¿ô3    ¡§
134 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
135 **************************************************************************************************************/
136function sfSendPaygentCredit($arrData, $arrInput, $uniqid) {
137// Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
138    $p = new PaygentB2BModule();
139    $p->init();
140   
141    //¡¡¥¯¥ì¥¸¥Ã¥ÈÍѥѥé¥á¡¼¥¿¤Î¼èÆÀ
142    $arrPaymentDB = sfGetPaymentDB(MDL_PAYGENT_ID, "AND memo03 = 1");
143    $arrOtherParam = unserialize($arrPaymentDB[0]['other_param']);
144   
145    // ¶¦Ḁ̈ǡ¼¥¿¤Î¼èÆÀ
146    $arrSend = sfGetPaygentShare(PAYGENT_CREDIT, $arrData['order_id'], $arrPaymentDB[0]);
147   
148    /** ¸ÄÊÌÅÅʸ **/
149   
150    // ·èºÑ¶â³Û
151    $arrSend['payment_amount'] = $arrData['payment_total'];
152    // ¥«¡¼¥ÉÈÖ¹æ
153    $arrSend['card_number'] = $arrInput['card_no01'].$arrInput['card_no02'].$arrInput['card_no03'].$arrInput['card_no04'];
154    // ¥«¡¼¥ÉÍ­¸ú´ü¸Â(MMYY)
155    $arrSend['card_valid_term'] = $arrInput['card_month'].$arrInput['card_year'];
156    // »Ùʧ¤¤¶èʬ¡¢Ê¬³ä²ó¿ô¤Î¼èÆÀ
157    list($payment_class, $split_count) = split("-", $arrInput['payment_class']);
158       
159    // »Ùʧ¤¤¶èʬ
160    /*
161     * 10:1²ó
162     * 23:¥Ü¡¼¥Ê¥¹1²ó
163     * 61:ʬ³ä
164     * 80:¥ê¥Ü¥ë¥Ó¥ó¥°
165     */
166    $arrSend['payment_class'] = $payment_class;
167    // ʬ³ä²ó¿ô
168    $arrSend['split_count'] = $split_count;
169    // 3D¥»¥­¥å¥¢ÉÞÍܶèʬ
170    $arrSend['3dsecure_ryaku'] = '1';
171   
172    // ÅÅʸ¤ÎÁ÷ÉÕ
173    foreach($arrSend as $key => $val) {
174        $p->reqPut($key, $val);
175    }
176   
177    // ÅÅʸ¤ÎÁ÷¿®
178    $p->post();
179
180    // ±þÅú¤ò½èÍý
181    $arrRet = sfPaygentResponse(PAYGENT_CREDIT, $p, $uniqid);
182   
183    return $arrRet;
184}
185
186/**************************************************************************************************************
187 * ´Ø¿ô̾   ¡§sfSendPaygentConveni
188 * ½èÍýÆâÍÆ ¡§¥³¥ó¥Ó¥Ë¾ðÊó¤ÎÁ÷¿®
189 * °ú¿ô1    ¡§
190 * °ú¿ô2    ¡§
191 * °ú¿ô3    ¡§
192 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
193 **************************************************************************************************************/
194function sfSendPaygentConveni($arrData, $arrInput, $uniqid) {
195// Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
196    $p = new PaygentB2BModule();
197    $p->init();
198   
199    //¡¡¥³¥ó¥Ó¥ËÍѥѥé¥á¡¼¥¿¤Î¼èÆÀ
200    $arrPaymentDB = sfGetPaymentDB(MDL_PAYGENT_ID, "AND memo03 = 2");
201    $arrOtherParam = unserialize($arrPaymentDB[0]['other_param']);
202   
203    // ¶¦Ḁ̈ǡ¼¥¿¤Î¼èÆÀ
204    $arrSend = sfGetPaygentShare(PAYGENT_CONVENI, $arrData['order_id'], $arrPaymentDB[0]);
205   
206    /** ¸ÄÊÌÅÅʸ **/
207   
208    // ·èºÑ¶â³Û
209    $arrSend['payment_amount'] = $arrData['payment_total'];
210    // ÍøÍѼÔÀ«
211    $arrSend['customer_family_name'] = $arrInput['customer_family_name'];
212    // ÍøÍѼÔ̾
213    $arrSend['customer_name'] = $arrInput['customer_name'];
214    // ÍøÍѼÔÀ«È¾³Ñ¥«¥Ê
215    $arrSend['customer_family_name_kana'] = mb_convert_kana($arrInput['customer_family_name_kana'],'k');
216    // ÍøÍѼÔ̾Ⱦ³Ñ¥«¥Ê
217    $arrSend['customer_name_kana'] = mb_convert_kana($arrInput['customer_name_kana'],'k');
218    // ÍøÍѼÔÅÅÏÃÈÖ¹æ
219    $arrSend['customer_tel'] = $arrInput['customer_tel'];
220    // »Ùʧ´ü¸ÂÆü
221    $arrSend['payment_limit_date'] = $arrOtherParam['payment_limit_date'];
222    // ¥³¥ó¥Ó¥Ë´ë¶È¥³¡¼¥É
223    $arrSend['cvs_company_id'] = $arrInput['cvs_company_id'];
224    // »Ùʧ¼ïÊÌ
225    $arrSend['sales_type'] = '1';
226   
227    // ÅÅʸ¤ÎÁ÷ÉÕ
228    foreach($arrSend as $key => $val) {
229        // Shift-JIS¤Ë¥¨¥ó¥³¡¼¥É¤¹¤ëɬÍפ¢¤ê
230        $enc_val = mb_convert_encoding($val, "Shift-JIS", CHAR_CODE);       
231        $p->reqPut($key, $enc_val);
232    }
233   
234    // ÅÅʸ¤ÎÁ÷¿®
235    $p->post();
236
237    // ±þÅú¤ò½èÍý
238    $arrRet = sfPaygentResponse(PAYGENT_CONVENI, $p, $uniqid);
239       
240    return $arrRet;
241}
242
243/**************************************************************************************************************
244 * ´Ø¿ô̾   ¡§sfSendPaygentATM
245 * ½èÍýÆâÍÆ ¡§ATM·èºÑ¾ðÊó¤ÎÁ÷¿®
246 * °ú¿ô1    ¡§
247 * °ú¿ô2    ¡§
248 * °ú¿ô3    ¡§
249 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
250 **************************************************************************************************************/
251function sfSendPaygentATM($arrData, $arrInput, $uniqid) {
252// Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
253    $p = new PaygentB2BModule();
254    $p->init();
255   
256    //¡¡ATM·èºÑÍѥѥé¥á¡¼¥¿¤Î¼èÆÀ
257    $arrPaymentDB = sfGetPaymentDB(MDL_PAYGENT_ID, "AND memo03 = 3");
258    $arrOtherParam = unserialize($arrPaymentDB[0]['other_param']);
259   
260    // ¶¦Ḁ̈ǡ¼¥¿¤Î¼èÆÀ
261    $arrSend = sfGetPaygentShare(PAYGENT_ATM, $arrData['order_id'], $arrPaymentDB[0]);
262   
263   
264    /** ¸ÄÊÌÅÅʸ **/
265   
266    // ·èºÑ¶â³Û
267    $arrSend['payment_amount'] = $arrData['payment_total'];
268
269    // ÍøÍѼÔÀ«
270    $arrSend['customer_family_name'] = $arrInput['customer_family_name'];
271    // ÍøÍѼÔ̾
272    $arrSend['customer_name'] = $arrInput['customer_name'];
273    // ÍøÍѼÔÀ«È¾³Ñ¥«¥Ê
274    $arrSend['customer_family_name_kana'] = mb_convert_kana($arrInput['customer_family_name_kana'],'k');
275    // ÍøÍѼÔ̾Ⱦ³Ñ¥«¥Ê
276    $arrSend['customer_name_kana'] = mb_convert_kana($arrInput['customer_name_kana'],'k');
277    // ·èºÑÆâÍÆ
278    $arrSend['payment_detail'] = $arrOtherParam['payment_detail'];
279    // ·èºÑÆâÍÆȾ³Ñ¥«¥Ê
280    $arrSend['payment_detail_kana'] = mb_convert_kana($arrOtherParam['payment_detail'],'k');
281    // »Ùʧ´ü¸ÂÆü
282    $arrSend['payment_limit_date'] = $arrOtherParam['payment_limit_date'];
283   
284    // ÅÅʸ¤ÎÁ÷ÉÕ
285    foreach($arrSend as $key => $val) {
286        // Shift-JIS¤Ë¥¨¥ó¥³¡¼¥É¤¹¤ëɬÍפ¢¤ê
287        $enc_val = mb_convert_encoding($val, "Shift-JIS", CHAR_CODE);       
288        $p->reqPut($key, $enc_val);
289    }
290   
291    // ÅÅʸ¤ÎÁ÷¿®
292    $p->post();
293   
294    // ±þÅú¤ò½èÍý
295    $arrRet = sfPaygentResponse(PAYGENT_ATM, $p, $uniqid);
296   
297    return $arrRet;
298}
299
300/**************************************************************************************************************
301 * ´Ø¿ô̾   ¡§sfSendPaygentBANK
302 * ½èÍýÆâÍÆ ¡§¶ä¹ÔNET·èºÑ¾ðÊó¤ÎÁ÷¿®
303 * °ú¿ô1    ¡§
304 * °ú¿ô2    ¡§
305 * °ú¿ô3    ¡§
306 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
307 **************************************************************************************************************/
308function sfSendPaygentBANK($arrData, $arrInput, $uniqid) {
309// Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
310    $p = new PaygentB2BModule();
311    $p->init();
312   
313    //¡¡¶ä¹ÔNETÍѥѥé¥á¡¼¥¿¤Î¼èÆÀ
314    $arrPaymentDB = sfGetPaymentDB(MDL_PAYGENT_ID, "AND memo03 = 4");
315    $arrOtherParam = unserialize($arrPaymentDB[0]['other_param']);
316   
317    // ¶¦Ḁ̈ǡ¼¥¿¤Î¼èÆÀ
318    $arrSend = sfGetPaygentShare(PAYGENT_BANK, $arrData['order_id'], $arrPaymentDB[0]);
319
320    /** ¸ÄÊÌÅÅʸ **/
321   
322    //$arrSend['bank_code'] = $arrInput['bank_code'];   
323    // ·èºÑ¶â³Û
324    $arrSend['amount'] = $arrData['payment_total'];
325    // ÀÁµáÆâÍÆ¥«¥Ê
326    $arrSend['claim_kana'] = $arrOtherParam['claim_kana'];
327    // ÀÁµáÆâÍÆ´Á»ú
328    $arrSend['claim_kanji'] = $arrOtherParam['claim_kanji'];   
329    // ÍøÍѼÔÀ«
330    $arrSend['customer_family_name'] = $arrInput['customer_family_name'];
331    // ÍøÍѼÔ̾
332    $arrSend['customer_name'] = $arrInput['customer_name'];
333    // ÍøÍѼÔÀ«È¾³Ñ¥«¥Ê
334    $arrSend['customer_family_name_kana'] = mb_convert_kana($arrInput['customer_family_name_kana'],'k');
335    // ÍøÍѼÔ̾Ⱦ³Ñ¥«¥Ê
336    $arrSend['customer_name_kana'] = mb_convert_kana($arrInput['customer_name_kana'],'k');
337    // PC-Mobile¶èʬ
338    /*
339     * 0:PC
340     * 1:docomo
341     * 2:au
342     * 3:softbank
343     */
344    $arrSend['pc_mobile_type'] = '0';
345    // ŹÊÞ̾
346    $arrSend['merchant_name'] = $arrOtherParam['claim_kanji']; 
347    // ´°Î»¸å¤ÎÌá¤ê£Õ£Ò£Ì
348    $arrSend['return_url'] = SSL_URL . "shopping/load_payment_module.php";
349    // Ìá¤ê¥Ü¥¿¥ó£Õ£Ò£Ì
350    $arrSend['stop_return_url'] = SSL_URL . "shopping/load_payment_module.php";
351   
352    // ¥³¥Ô¡¼¥é¥¤¥È
353    $arrSend['copy_right'] = $arrOtherParam['copy_right'];
354    // ¼«Í³¥á¥âÍó
355    $arrSend['free_memo'] = $arrOtherParam['free_memo'];
356    // »Ùʧ´ü´Ö(0DDhhmm)
357    $arrSend['asp_payment_term'] = sprintf("0%02d0000", $arrOtherParam['asp_payment_term']);
358   
359    // ÅÅʸ¤ÎÁ÷ÉÕ
360    foreach($arrSend as $key => $val) {
361        // Shift-JIS¤Ë¥¨¥ó¥³¡¼¥É¤¹¤ëɬÍפ¢¤ê
362        $enc_val = mb_convert_encoding($val, "Shift-JIS", CHAR_CODE);
363        $p->reqPut($key, $enc_val);
364    }
365   
366    // ÅÅʸ¤ÎÁ÷¿®
367    $p->post();
368   
369    // ±þÅú¤ò½èÍý
370    $arrRet = sfPaygentResponse(PAYGENT_BANK, $p, $uniqid);
371   
372    return $arrRet;
373}
374
375/**************************************************************************************************************
376 * ´Ø¿ô̾   ¡§sfPaygentResponse
377 * ½èÍýÆâÍÆ ¡§±þÅú¤ò½èÍý¤¹¤ë
378 * °ú¿ô1    ¡§
379 * °ú¿ô2    ¡§
380 * °ú¿ô3    ¡§
381 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
382 **************************************************************************************************************/
383
384function sfPaygentResponse($telegram_kind, $objPaygent, $uniqid) {
385    global $arrConvenience;
386    global $arrInitStatus;
387   
388    // ½èÍý·ë²Ì¼èÆÀ¡Ê¶¦ÄÌ¡Ë
389    $resultStatus = $objPaygent->getResultStatus(); # ½èÍý·ë²Ì 0=Àµ¾ï½ªÎ», 1=°Û¾ï½ªÎ»
390    $responseCode = $objPaygent->getResponseCode(); # °Û¾ï½ªÎ»»þ¡¢¥ì¥¹¥Ý¥ó¥¹¥³¡¼¥É¤¬¼èÆÀ¤Ç¤­¤ë
391    $responseDetail = $objPaygent->getResponseDetail(); # °Û¾ï½ªÎ»»þ¡¢¥ì¥¹¥Ý¥ó¥¹¾ÜºÙ¤¬¼èÆÀ¤Ç¤­¤ë
392
393    // Shift-JIS¤Ç±þÅú¤¬¤¢¤ë¤Î¤Ç¡¢¥¨¥ó¥³¡¼¥É¤¹¤ë¡£
394    $responseDetail = mb_convert_encoding($responseDetail, CHAR_CODE, "Shift-JIS");
395       
396   
397    // ¥ì¥¹¥Ý¥ó¥¹¤Î¼èÆÀ
398    while($objPaygent->hasResNext()) {
399        # ¥Ç¡¼¥¿¤¬Â¸ºß¤¹¤ë¸Â¤ê¡¢¼èÆÀ
400        $arrRes[] = $objPaygent->resNext(); # Í×µá·ë²Ì¼èÆÀ
401    }
402   
403    // ·èºÑËè¤Ë°Û¤Ê¤ë½èÍý
404    switch($telegram_kind) {
405    // ¥¯¥ì¥¸¥Ã¥È·èºÑ¤Î¾ì¹ç
406    case PAYGENT_CREDIT:
407        // ½é´ü¥¹¥Æ¡¼¥¿¥¹¤òÀßÄꤹ¤ë¡£
408        $arrVal["status"] = $arrInitStatus[PAYGENT_CREDIT];
409        // ¶õ¤ÎÇÛÎó¤ò³ÊǼ¤·¤Æ¤ª¤¯
410        $arrVal["memo02"] = serialize(array());     
411        break;
412    // ¥³¥ó¥Ó¥Ë·èºÑ¤Î¾ì¹ç
413    case PAYGENT_CONVENI:       
414        // ¥¿¥¤¥È¥ë¤òÀßÄꤹ¤ë
415        $arrMemo['title'] = sfSetConvMSG("¥³¥ó¥Ó¥Ë¤ª»Ùʧ¾ðÊó", true);   
416        //ʧ¹þɼURL(PC)
417        if($arrRes[0]['receipt_print_url'] != "") {
418            $arrMemo['receipt_print_url'] = sfSetConvMSG("ʧ¹þɼURL", $arrRes[0]['receipt_print_url']);
419        }
420        //ʧ¹þɼÈÖ¹æ
421        $arrMemo['receipt_number'] = sfSetConvMSG("ʧ¹þɼÈÖ¹æ", $arrRes[0]['receipt_number']);
422        $arrCVS = split("-", $arrRes[0]['usable_cvs_company_id']);
423        foreach($arrCVS as $val) {
424            if($cvsLine != "") {
425                $cvsLine.= ",".$arrConvenience[$val];               
426            } else {
427                $cvsLine = $arrConvenience[$val];
428            }
429        }
430        //Âоݥ³¥ó¥Ó¥Ë
431        $arrMemo['usable_cvs_company_id'] = sfSetConvMSG("¤ª»Ùʧ²Äǽ¤Ê¥³¥ó¥Ó¥Ë", $cvsLine);         
432        // »Ùʧ´üÆü
433        $arrMemo['payment_limit_date'] = sfSetConvMSG("¤ª»Ùʧ´üÆü", date("Yǯm·îdÆü", strtotime($arrRes[0]['payment_limit_date'])));
434        // ¼õÃí¥Æ¡¼¥Ö¥ë¤ËÊݸ
435        $arrVal["memo02"] = serialize($arrMemo);
436        // ½é´ü¥¹¥Æ¡¼¥¿¥¹¤òÀßÄꤹ¤ë¡£
437        $arrVal["status"] = $arrInitStatus[PAYGENT_CONVENI];       
438        break;
439    // ATM·èºÑ¤Î¾ì¹ç
440    case PAYGENT_ATM:
441        // ¥¿¥¤¥È¥ë¤òÀßÄꤹ¤ë
442        $arrMemo['title'] = sfSetConvMSG("ATM¤ª»Ùʧ¾ðÊó", true);   
443        $arrMemo['pay_center_number'] = sfSetConvMSG("¼ýǼµ¡´ØÈÖ¹æ", $arrRes[0]['pay_center_number']);
444        $arrMemo['customer_number'] = sfSetConvMSG("¤ªµÒÍÍÈÖ¹æ", $arrRes[0]['customer_number']);
445        $arrMemo['conf_number'] = sfSetConvMSG("³ÎǧÈÖ¹æ", $arrRes[0]['pay_center_number']);
446        // »Ùʧ´üÆü
447        $arrMemo['payment_limit_date'] = sfSetConvMSG("¤ª»Ùʧ´üÆü", date("Yǯm·îdÆü", strtotime($arrRes[0]['payment_limit_date'])));
448        // ¼õÃí¥Æ¡¼¥Ö¥ë¤ËÊݸ
449        $arrVal["memo02"] = serialize($arrMemo);
450        // ½é´ü¥¹¥Æ¡¼¥¿¥¹¤òÀßÄꤹ¤ë¡£
451        $arrVal["status"] = $arrInitStatus[PAYGENT_ATM];       
452        break;
453    // ¶ä¹Ô¥Í¥Ã¥È¤Î¾ì¹ç
454    case PAYGENT_BANK:
455        // ½é´ü¥¹¥Æ¡¼¥¿¥¹¤òÀßÄꤹ¤ë¡£
456        $arrVal["status"] = $arrInitStatus[PAYGENT_BANK];
457        // ¶õ¤ÎÇÛÎó¤ò³ÊǼ¤·¤Æ¤ª¤¯
458        $arrVal["memo02"] = serialize(array());
459        break;
460    default:
461        break;
462    }
463   
464    // ¼õÃí¥Æ¡¼¥Ö¥ë¤Ëµ­Ï¿¤¹¤ë
465    $arrVal["memo01"] = MDL_PAYGENT_ID;     // ½èÍý·ë²Ì
466       
467    // memo02¤Ï¡¢»Ùʧ¾ðÊó¤ò³ÊǼ¤¹¤ë¡£
468    $arrVal["memo03"] = $resultStatus;      // ½èÍý·ë²Ì
469    $arrVal["memo04"] = $responseCode;      // ¥ì¥¹¥Ý¥ó¥¹¥³¡¼¥É
470    $arrVal["memo05"] = $responseDetail;    // ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸
471    $arrVal["memo06"] = $arrRes[0]['payment_id'];       // ¾µÇ§ÈÖ¹æ
472
473    // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Ë¹¹¿·
474    sfRegistTempOrder($uniqid, $arrVal);
475   
476    // ¾µÇ§ÈÖ¹æ¤È¥á¥Ã¥»¡¼¥¸¤òÊÖ¤¹
477    return $arrRes[0];
478}
479
480/**************************************************************************************************************
481 * ´Ø¿ô̾   ¡§sfSetConvMSG
482 * ½èÍýÆâÍÆ ¡§¥³¥ó¥Ó¥Ë¾ðÊóɽ¼¨ÍÑ
483 * °ú¿ô1    ¡§
484 * °ú¿ô2    ¡§
485 * °ú¿ô3    ¡§
486 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
487 **************************************************************************************************************/
488function sfSetConvMSG($name, $value){
489    return array("name" => $name, "value" => $value);
490}
491
492/**************************************************************************************************************
493 * ´Ø¿ô̾   ¡§sfPaygentDisp
494 * ½èÍýÆâÍÆ ¡§¶¦Ä̤Îɽ¼¨½èÍý
495 * °ú¿ô1    ¡§
496 * °ú¿ô2    ¡§
497 * °ú¿ô3    ¡§
498 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
499 **************************************************************************************************************/
500function sfPaygentDisp($objPage, $payment_id) {
501    $objQuery = new SC_Query();
502    // »Ùʧ¤¤ÊýË¡¤ÎÀâÌÀ²èÁü¤ò¼èÆÀ¤¹¤ë¡£
503    $arrRet = $objQuery->select("payment_method, payment_image", "dtb_payment", "payment_id = ?", array($payment_id));
504    $objPage->tpl_payment_method = $arrRet[0]['payment_method'];
505    $objPage->tpl_payment_image = $arrRet[0]['payment_image'];
506    return $objPage;
507}
508
509/**************************************************************************************************************
510 * ´Ø¿ô̾   ¡§sfGetPaymentDB
511 * ½èÍýÆâÍÆ ¡§É¬Íפʥǡ¼¥¿¤ò¼èÆÀ¤¹¤ë¡£
512 * °ú¿ô1    ¡§
513 * °ú¿ô2    ¡§
514 * °ú¿ô3    ¡§
515 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
516 **************************************************************************************************************/
517function sfGetPaymentDB($module_id, $where = "", $arrWhereVal = array()){
518    $objQuery = new SC_Query();
519       
520    $arrVal = array($module_id);
521    $arrVal = array_merge($arrVal, $arrWhereVal);
522   
523    $arrRet = array();
524    $sql = "SELECT
525                module_id,
526                memo01 as merchant_id,
527                memo02 as connect_id,
528                memo03 as payment,
529                memo04 as connect_password,
530                memo05 as other_param
531            FROM dtb_payment WHERE module_id = ? " . $where;
532    $arrRet = $objQuery->getall($sql, $arrVal);
533
534    return $arrRet;
535}
536
537/**************************************************************************************************************
538 * ´Ø¿ô̾   ¡§sfPaygentBatch
539 * ½èÍýÆâÍÆ ¡§Æþ¶â¥¹¥Æ¡¼¥¿¥¹³Îǧ¥Ð¥Ã¥Á
540 * °ú¿ô1    ¡§
541 * °ú¿ô2    ¡§
542 * °ú¿ô3    ¡§
543 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
544 **************************************************************************************************************/
545function sfPaygentBatch() {
546    $objQuery = new SC_Query();
547   
548    // Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
549    $objPaygent = new PaygentB2BModule();
550    $objPaygent->init();
551   
552    //¡¡ÀßÄê¥Ñ¥é¥á¡¼¥¿¤Î¼èÆÀ
553    $arrPaymentDB = sfGetPaymentDB(MDL_PAYGENT_ID);
554
555    $where = "memo01 = ? AND status = ?";
556    $arrOrder = $objQuery->select("order_id", "dtb_order", $where, array(MDL_PAYGENT_ID, ORDER_PAY_WAIT));
557   
558    // ¶¦Ḁ̈ǡ¼¥¿¤Î¼èÆÀ
559    $arrSend = sfGetPaygentShare(PAYGENT_REF, 0, $arrPaymentDB[0]);
560   
561    for($i = 0; $i < count($arrOrder); $i++) {
562        $arrRet = sfUpdatePaymentStatus($objPaygent, $arrOrder[$i]['order_id'], $arrSend);
563    }
564       
565    return $arrRet;
566}
567
568/**************************************************************************************************************
569 * ´Ø¿ô̾   ¡§sfPaygentTest
570 * ½èÍýÆâÍÆ ¡§Àܳ¥Æ¥¹¥È
571 * °ú¿ô1    ¡§
572 * °ú¿ô2    ¡§
573 * °ú¿ô3    ¡§
574 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
575 **************************************************************************************************************/
576function sfPaygentTest($arrParam) {
577    $objQuery = new SC_Query();
578   
579    // Àܳ¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¼èÆÀ (¥³¥ó¥¹¥È¥é¥¯¥¿)¤È½é´ü²½
580    $objPaygent = new PaygentB2BModule();
581    $objPaygent->init();
582       
583    // ¶¦Ḁ̈ǡ¼¥¿¤Î¼èÆÀ
584    $arrSend = sfGetPaygentShare(PAYGENT_REF, '0', $arrParam);
585
586    // ÅÅʸ¤ÎÁ÷ÉÕ
587    foreach($arrSend as $key => $val) {
588        $objPaygent->reqPut($key, $val);
589    }
590    // ÅÅʸ¤ÎÁ÷¿®
591    $objPaygent->post();
592   
593    // ½èÍý·ë²Ì¼èÆÀ¡Ê¶¦ÄÌ¡Ë
594    $resultStatus = $objPaygent->getResultStatus(); # ½èÍý·ë²Ì 0=Àµ¾ï½ªÎ», 1=°Û¾ï½ªÎ»
595           
596    if($resultStatus == 0) {
597        return true;
598    } else {
599        return false;
600    }
601}
602
603/**************************************************************************************************************
604 * ´Ø¿ô̾   ¡§sfCheckPaymentStatus
605 * ½èÍýÆâÍÆ ¡§Æþ¶â¥¹¥Æ¡¼¥¿¥¹³Îǧ¥Ð¥Ã¥Á
606 * °ú¿ô1    ¡§
607 * °ú¿ô2    ¡§
608 * °ú¿ô3    ¡§
609 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì
610 **************************************************************************************************************/
611function sfUpdatePaymentStatus($objPaygent, $order_id, $arrSend) {
612    $objQuery = new SC_Query();
613       
614    // ¥Þ¡¼¥Á¥ã¥ó¥È¼è°úID¤ÎÆþ¤ìÂؤ¨
615    $arrSend['trading_id'] = $order_id;
616   
617    // ÅÅʸ¤ÎÁ÷ÉÕ
618    foreach($arrSend as $key => $val) {
619        $objPaygent->reqPut($key, $val);
620    }
621    // ÅÅʸ¤ÎÁ÷¿®
622    $objPaygent->post();
623   
624    // ¥ì¥¹¥Ý¥ó¥¹¤Î¼èÆÀ
625    while($objPaygent->hasResNext()) {
626        # ¥Ç¡¼¥¿¤¬Â¸ºß¤¹¤ë¸Â¤ê¡¢¼èÆÀ
627        $arrRes[] = $objPaygent->resNext(); # Í×µá·ë²Ì¼èÆÀ
628    }
629   
630    foreach($arrRes[0] as $key => $val) {
631        // Shift-JIS¤Ç±þÅú¤¬¤¢¤ë¤Î¤Ç¡¢¥¨¥ó¥³¡¼¥É¤¹¤ë¡£
632        $arrRes[0][$key] = mb_convert_encoding($val, CHAR_CODE, "Shift-JIS");   
633    }
634   
635    // »Ùʧ¥¹¥Æ¡¼¥¿¥¹¤Î¹¹¿·
636    /*
637     * 10:¿½¹þºÑ
638     * 12:»Ùʧ´ü¸ÂÀÚ¤ì
639     * 15:¿½¹þÃæÃÇ
640     * 40:¾Ã¹þºÑ
641     * 43:®Êó¸¡ÃκÑ
642     * 61:®Êó¼è¾ÃºÑ
643     * etc
644     */
645    if($arrRes[0][payment_status] == '40') {
646        $arrVal['status'] = ORDER_PRE_END;
647    }
648   
649    $arrVal['memo07'] = $arrRes[0][payment_status];
650    $objQuery->update("dtb_order", $arrVal, "order_id = ?", array($order_id));
651   
652    return $arrRes[0];
653}
654
655?>
Note: See TracBrowser for help on using the repository browser.