1 | <?php |
---|
2 | /** |
---|
3 | * ¥µ¥¤¥Ð¡¼¥½¡¼¥¹¥â¥¸¥å¡¼¥ë¤Ç¶¦ÄÌ»ÈÍѤ¹¤ëÄê¿ô¡¦ÇÛÎ󡦴ؿô·² |
---|
4 | * |
---|
5 | */ |
---|
6 | require_once MODULE_PATH . "mdl_cybs/class/mdl_cybs_config.php"; |
---|
7 | require_once MODULE_PATH . "mdl_cybs/class/mdl_cybs_request.php"; |
---|
8 | |
---|
9 | /** |
---|
10 | * dtb_order memo»ÅÍÍ |
---|
11 | * memo06 Í¿¿®¥¹¥Æ¡¼¥¿¥¹ $arrCybsAuthStatus»²¾È |
---|
12 | * memo07 request_token |
---|
13 | * memo08 request_id |
---|
14 | * memo09 »Ùʧ¤¤ÊýË¡¤Î¥¡¼Ì¾ $arrCybsPayMethod»²¾È |
---|
15 | * memo10 ÊÖ¶â¼Â¹ÔºÑ¤ß¥Õ¥é¥° 1:¼Â¹ÔºÑ¤ß¡¢1°Ê³°:̤¼Â¹Ô |
---|
16 | */ |
---|
17 | |
---|
18 | // ¥â¥¸¥å¡¼¥ëÈÖ¹æ |
---|
19 | define('MDL_CYBS_ID', 14); |
---|
20 | |
---|
21 | // ¥í¥°¥Ñ¥¹ |
---|
22 | define('MDL_CYBS_LOG', DATA_PATH . 'logs/cybs.log'); |
---|
23 | |
---|
24 | // ³ÈÄ¥¥â¥¸¥å¡¼¥ë̾ |
---|
25 | define('MDL_CYBS_MOD_CYBS', 'mod_cybs'); |
---|
26 | |
---|
27 | // ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥óIDÅÐÏ¿¿ô¾å¸Â |
---|
28 | define('MDL_CYBS_SUBS_ID_MAX', 5); |
---|
29 | |
---|
30 | /** |
---|
31 | * mod_cybs¤ò¥í¡¼¥É¤¹¤ë |
---|
32 | * |
---|
33 | * @return boolean |
---|
34 | */ |
---|
35 | function sfCybsLoadModCybs() { |
---|
36 | if (!extension_loaded(MDL_CYBS_MOD_CYBS)) { |
---|
37 | if (@!dl(MDL_CYBS_MOD_CYBS . ".so")) { |
---|
38 | return false; |
---|
39 | } |
---|
40 | } |
---|
41 | return true; |
---|
42 | } |
---|
43 | |
---|
44 | // ËÜÈÖURL |
---|
45 | define('MDL_CYBS_REQUEST_URL', 'ics2.ic3.com'); |
---|
46 | // ¥Æ¥¹¥ÈURL |
---|
47 | define('MDL_CYBS_REQUEST_URL_TEST', 'ics2test.ic3.com'); |
---|
48 | |
---|
49 | // ICS¥¨¥é¡¼ |
---|
50 | $arrCybsIcsErr = array( |
---|
51 | 'DCALL' => '¥«¡¼¥É²ñ¼Ò¤¬Í¿¿®È½Äê¤ò¼è¤ê¾Ã¤·¤Þ¤·¤¿¡£', |
---|
52 | 'DCARDEXPIRED' => '¥«¡¼¥É¤Î͸ú´ü¸ÂÀÚ¤ì¤Ç¤¹¡£', |
---|
53 | 'DCARDREFUSED' => '¥«¡¼¥É²ñ¼Ò¤¬Í¿¿®¤ò¾µÇ§¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£', |
---|
54 | 'DINVALIDCARD' => '¥¯¥ì¥¸¥Ã¥È¥«¡¼¥ÉÈֹ椬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£', |
---|
55 | 'DINVALIDDATA' => '¥ê¥¯¥¨¥¹¥È¤Ë´Þ¤Þ¤ì¤ë¥Ç¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£', |
---|
56 | 'DMISSINGFIELD' => '¥ê¥¯¥¨¥¹¥È¤Ëɬ¿Ü¥Õ¥£¡¼¥ë¥É¤¬·ç¤±¤Æ¤¤¤Þ¤¹¡£', |
---|
57 | 'ESYSTEM' => '¥·¥¹¥Æ¥à¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£', |
---|
58 | 'ETIMEOUT' => '¥ê¥¯¥¨¥¹¥È¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤Þ¤·¤¿¡£', |
---|
59 | ); |
---|
60 | |
---|
61 | // ¥ê¥¯¥¨¥¹¥ÈÀèURLÇÛÎó |
---|
62 | $arrCybsRequestURL = array( |
---|
63 | '1' => MDL_CYBS_REQUEST_URL_TEST, |
---|
64 | '2' => MDL_CYBS_REQUEST_URL |
---|
65 | ); |
---|
66 | |
---|
67 | /** |
---|
68 | * »Ùʧ¤¤ÊýË¡ |
---|
69 | * array( |
---|
70 | * '[»Ùʧ¤¤ÊýË¡]-[ʬ³ä²ó¿ô]' => '»Ùʧ¤¤Êýˡ̾¾Î¡¦Ê¬³ä²ó¿ô', |
---|
71 | * '[»Ùʧ¤¤ÊýË¡]-[ʬ³ä²ó¿ô]' => '»Ùʧ¤¤Êýˡ̾¾Î¡¦Ê¬³ä²ó¿ô', |
---|
72 | * ... |
---|
73 | * ); |
---|
74 | */ |
---|
75 | $arrCybsPayMethod = array( |
---|
76 | '1-0' => "°ì³çʧ¤¤", |
---|
77 | '4-3' => "ʬ³ä3²óʧ¤¤", |
---|
78 | '4-6' => "ʬ³ä6²óʧ¤¤", |
---|
79 | '4-10'=> "ʬ³ä10²óʧ¤¤", |
---|
80 | '4-15'=> "ʬ³ä15²óʧ¤¤", |
---|
81 | '4-20'=> "ʬ³ä20²óʧ¤¤", |
---|
82 | '5-0' => "¥ê¥Ü¥ë¥Ó¥ó¥°Ê§¤¤" |
---|
83 | ); |
---|
84 | |
---|
85 | // ¥«¡¼¥É²ñ¼Ò¤Î¼ïÎà |
---|
86 | $arrCybsCardCompany = array( |
---|
87 | '001' => 'Visa', |
---|
88 | '002' => 'MasterCard', |
---|
89 | '003' => 'American Express', |
---|
90 | '004' => 'Discover', |
---|
91 | '005' => 'Diners Club', |
---|
92 | '006' => 'Carte Blanche', |
---|
93 | '007' => 'JCB', |
---|
94 | '008' => 'Optima', |
---|
95 | '010' => 'Benificial Private Label', |
---|
96 | '014' => 'EnRoute', |
---|
97 | '017' => 'MBNA', |
---|
98 | '021' => 'JAL', |
---|
99 | '027' => 'Nicos', |
---|
100 | ); |
---|
101 | |
---|
102 | // Í¿¿®¥¹¥Æ¡¼¥¿¥¹ |
---|
103 | define('MDL_CYBS_AUTH_STATUS_AUTH', '1'); // Í¿¿® |
---|
104 | define('MDL_CYBS_AUTH_STATUS_AUTHCANCEL', '2'); // Í¿¿®¼è¤ê¾Ã¤· |
---|
105 | define('MDL_CYBS_AUTH_STATUS_CAPTURE', '3'); // Çä¾å |
---|
106 | define('MDL_CYBS_AUTH_STATUS_RETURN', '4'); // ÊÖ¶â |
---|
107 | $arrCybsAuthStatus = array( |
---|
108 | MDL_CYBS_AUTH_STATUS_AUTH => 'Í¿¿®', |
---|
109 | MDL_CYBS_AUTH_STATUS_AUTHCANCEL => 'Í¿¿®¼è¾Ã', |
---|
110 | MDL_CYBS_AUTH_STATUS_CAPTURE => 'Çä¾å', |
---|
111 | MDL_CYBS_AUTH_STATUS_RETURN => 'ÊÖ¶â' |
---|
112 | ); |
---|
113 | |
---|
114 | // ´ÉÍý²èÌ̤Ǽ¹Ԥ¹¤ëICS¥¢¥×¥ê¥±¡¼¥·¥ç¥ó |
---|
115 | define('MDL_CYBS_APP_REVERSAL', '1'); |
---|
116 | define('MDL_CYBS_APP_BILL', '2'); |
---|
117 | define('MDL_CYBS_APP_CREDIT', '3'); |
---|
118 | $arrCybsApp = array( |
---|
119 | MDL_CYBS_APP_REVERSAL => 'ics_auth_reversal', |
---|
120 | MDL_CYBS_APP_BILL => 'ics_bill', |
---|
121 | MDL_CYBS_APP_CREDIT => 'ics_credit' |
---|
122 | ); |
---|
123 | |
---|
124 | /** |
---|
125 | * ¥µ¥¤¥Ð¡¼¥½¡¼¥¹¤Ë¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤¹¤ë. |
---|
126 | * °ú¿ô¤ÎÁ÷¿®¥Ñ¥é¥á¡¼¥¿¤Ïlf(sf)CreateParam***()¤ÇÀ¸À®¤¹¤ë. |
---|
127 | * |
---|
128 | * @param array $arrSendParam |
---|
129 | * @return array |
---|
130 | */ |
---|
131 | function sfCybsSendRequest($arrSendParam) { |
---|
132 | $objRequest = new CYBS_REQ; |
---|
133 | |
---|
134 | foreach ($arrSendParam as $key => $value) { |
---|
135 | $objRequest->add_request($key, $value); |
---|
136 | } |
---|
137 | |
---|
138 | // ¥«¡¼¥ÉÈÖ¹æ¤Ï¥í¥°Êݸ¤·¤Ê¤¤ |
---|
139 | if (isset($arrSendParam['customer_cc_number'])) { |
---|
140 | $arrSendParam['customer_cc_number'] = '****'; |
---|
141 | } |
---|
142 | |
---|
143 | gfPrintLog('### send request param ###', MDL_CYBS_LOG); |
---|
144 | gfPrintLog(print_r($arrSendParam, true), MDL_CYBS_LOG); |
---|
145 | |
---|
146 | if ( ($result = cybs_send($objRequest->requests)) == false ) { |
---|
147 | sfDispSiteError(''); |
---|
148 | gfPrintLog(' -> error: cybs_send() function.' , MDL_CYBS_LOG); |
---|
149 | } |
---|
150 | |
---|
151 | return $result; |
---|
152 | } |
---|
153 | |
---|
154 | /** |
---|
155 | * ¥ì¥¹¥Ý¥ó¥¹¤Î¥¨¥é¡¼¥Á¥§¥Ã¥¯ |
---|
156 | * |
---|
157 | * @param array $arrResults |
---|
158 | * @return boolean|PEAR::Error |
---|
159 | */ |
---|
160 | function sfCybsIsError($arrResults) { |
---|
161 | global $arrCybsIcsErr; |
---|
162 | $ret = null; |
---|
163 | |
---|
164 | switch ($arrResults['ics_rcode']) { |
---|
165 | // À®¸ù |
---|
166 | case '1': |
---|
167 | $ret = true; |
---|
168 | break; |
---|
169 | case '0': |
---|
170 | // 3D¥»¥¥å¥¢¤Î¾ì¹ç¡¢ics_rflag¤¬DAUTHENTICATE¤Ç¤¢¤ì¤ÐÅÐÏ¿¤¢¤ê |
---|
171 | if (isset($arrResults['pa_enroll_rflag']) |
---|
172 | && $arrResults['pa_enroll_rflag'] == 'DAUTHENTICATE') { |
---|
173 | |
---|
174 | $ret = true; |
---|
175 | break; |
---|
176 | } |
---|
177 | $msg = "½èÍý¤¬µñÈݤµ¤ì¤Þ¤·¤¿¡£ÆþÎÏÆâÍƤ˴ְ㤤¤¬¤Ê¤¤¤«¤´³Îǧ¤¯¤À¤µ¤¤¡£\n"; |
---|
178 | $rflag = $arrResults['ics_rflag']; |
---|
179 | $err = isset($arrCybsIcsErr[$rflag]) ? $arrCybsIcsErr[$rflag] : "¥¨¥é¡¼¥³¡¼¥É¡§$rflag"; |
---|
180 | $ret = PEAR::raiseError($msg . $err); |
---|
181 | break; |
---|
182 | case '-1': |
---|
183 | $msg = "¥·¥¹¥Æ¥à¤Þ¤¿¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤Ë¤è¤ê½èÍý¤¬¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤·¤¿¡£\n"; |
---|
184 | $rflag = $arrResults['ics_rflag']; |
---|
185 | $err = isset($arrCybsIcsErr[$rflag]) ? $arrCybsIcsErr[$rflag] : "¥¨¥é¡¼¥³¡¼¥É¡§$rflag"; |
---|
186 | $ret = PEAR::raiseError($msg . $err); |
---|
187 | break; |
---|
188 | default: |
---|
189 | $ret = PEAR::raiseError("ÉÔÌÀ¤Ê¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£\n"); |
---|
190 | } |
---|
191 | |
---|
192 | return $ret; |
---|
193 | } |
---|
194 | |
---|
195 | /** |
---|
196 | * ¼õÃíÊÔ½¸¥Ú¡¼¥¸¤Î¥Æ¥ó¥×¥ì¡¼¥ÈÀ©¸æ |
---|
197 | * |
---|
198 | * @param LC_Page $objPage |
---|
199 | * @return LC_Page |
---|
200 | */ |
---|
201 | function sfCybsOrderPage($objPage) { |
---|
202 | $objQuery = new SC_Query; |
---|
203 | $moduleId = $objQuery->get('dtb_payment', 'module_id', 'payment_id = ?', array($objPage->arrDisp['payment_id'])); |
---|
204 | $objPage->cybs_disp = true; |
---|
205 | if ($moduleId != MDL_CYBS_ID) { |
---|
206 | $objPage->cybs_disp = false; |
---|
207 | return $objPage; |
---|
208 | } |
---|
209 | |
---|
210 | if ($objPage->disp_mode) { |
---|
211 | $objPage->cybs_disp = false; |
---|
212 | return $objPage; |
---|
213 | } |
---|
214 | |
---|
215 | global $arrCybsAuthStatus; |
---|
216 | $objPage->arrCybsAuthStatus = $arrCybsAuthStatus; |
---|
217 | |
---|
218 | |
---|
219 | $arrMemo = $objQuery->select( |
---|
220 | 'memo06, memo07, memo08, memo09, memo10', |
---|
221 | 'dtb_order', |
---|
222 | 'order_id = ?', |
---|
223 | array($objPage->tpl_order_id)); |
---|
224 | |
---|
225 | $objPage->arrCybsMemo = isset($arrMemo[0]) ? $arrMemo[0] : array(); |
---|
226 | return $objPage; |
---|
227 | } |
---|
228 | |
---|
229 | /** |
---|
230 | * EC-CUBE¦¤ÎÍ¿¿®¥¹¥Æ¡¼¥¿¥¹¤òÊѹ¹¤¹¤ë |
---|
231 | * ¥µ¥¤¥Ð¡¼¥½¡¼¥¹Â¦¤ÈÄÌ¿®¤Ï¹Ô¤ï¤Ê¤¤¡£Êѹ¹¤ÏEC-CUBE¦¤Î¤ß¡£ |
---|
232 | */ |
---|
233 | function sfCybsChangeAuthStatus($objPage, $status) { |
---|
234 | global $arrCybsAuthStatus; |
---|
235 | if (empty($arrCybsAuthStatus[$status])) { |
---|
236 | gfPrintLog('error: call sfCybsChangeAuthStatus()', MDL_CYBS_LOG); |
---|
237 | sfDispError(''); |
---|
238 | } |
---|
239 | |
---|
240 | $arrUpdate = array( |
---|
241 | 'memo06' => $status, |
---|
242 | 'update_date' => 'NOW()' |
---|
243 | ); |
---|
244 | $objQuery = new SC_Query; |
---|
245 | $objQuery->update('dtb_order', $arrUpdate, 'order_id = ?', array($objPage->tpl_order_id)); |
---|
246 | |
---|
247 | $objPage->cybs_result = "¥¹¥Æ¡¼¥¿¥¹¤ò" . $arrCybsAuthStatus[$status] . "¤ØÊѹ¹¤·¤Þ¤·¤¿¡£"; |
---|
248 | return $objPage; |
---|
249 | } |
---|
250 | |
---|
251 | /** |
---|
252 | * ICS¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¼Â¹Ô |
---|
253 | * |
---|
254 | */ |
---|
255 | function sfCybsDoIcsApplication($objPage, $ics_app) { |
---|
256 | global $arrCybsApp; |
---|
257 | if (empty($arrCybsApp[$ics_app])) { |
---|
258 | gfPrintLog('error: call sfCybsDoIcsApplication() error', MDL_CYBS_LOG); |
---|
259 | sfDispError(''); |
---|
260 | } |
---|
261 | |
---|
262 | global $arrCybsRequestURL; |
---|
263 | |
---|
264 | $objConfig =& Mdl_Cybs_Config::getInstanse(); |
---|
265 | $arrConfig = $objConfig->getConfig(); |
---|
266 | |
---|
267 | $objQuery = new SC_Query; |
---|
268 | $arrOrder = $objQuery->select('*', 'dtb_order', 'order_id = ?', array($objPage->tpl_order_id)); |
---|
269 | $arrOrder = $arrOrder[0]; |
---|
270 | |
---|
271 | // ¶¦Ḁ̈ѥé¥á¡¼¥¿ |
---|
272 | $arrSendParam = array( |
---|
273 | "server_host" => $arrCybsRequestURL[$arrConfig['cybs_request_url']], |
---|
274 | "server_port" => "80", |
---|
275 | 'currency' => 'JPY', |
---|
276 | 'merchant_id' => $arrConfig['cybs_merchant_id'], |
---|
277 | 'merchant_ref_number' => $objPage->tpl_order_id, |
---|
278 | ); |
---|
279 | |
---|
280 | $resultMessage = ''; |
---|
281 | $resultStatus = ''; |
---|
282 | |
---|
283 | switch($arrCybsApp[$ics_app]) { |
---|
284 | // Í¿¿®¼è¾Ã |
---|
285 | case 'ics_auth_reversal': |
---|
286 | $resultMessage = 'Í¿¿®¼è¾Ã½èÍý¤ÏÀ®¸ù¤·¤Þ¤·¤¿¡£'; |
---|
287 | $resultStatus = MDL_CYBS_AUTH_STATUS_AUTHCANCEL; |
---|
288 | $arrSendParam['auth_request_token'] = $arrOrder['memo07']; |
---|
289 | $arrSendParam['auth_request_id'] = $arrOrder['memo08']; |
---|
290 | $arrSendParam['ics_applications'] = "ics_auth_reversal"; |
---|
291 | $arrSendParam["offer0"] = "amount:" . $arrOrder['payment_total']; |
---|
292 | $arrResults = sfCybsSendRequest($arrSendParam); |
---|
293 | break; |
---|
294 | |
---|
295 | // Çä¾å |
---|
296 | case 'ics_bill': |
---|
297 | $resultMessage = 'Çä¾å½èÍý¤ÏÀ®¸ù¤·¤Þ¤·¤¿¡£'; |
---|
298 | $resultStatus = MDL_CYBS_AUTH_STATUS_CAPTURE; |
---|
299 | $arrSendParam['auth_request_token'] = $arrOrder['memo07']; // request_token |
---|
300 | $arrSendParam['auth_request_id'] = $arrOrder['memo08']; // request_id |
---|
301 | $arrSendParam['ics_applications'] = "ics_bill"; |
---|
302 | $arrSendParam["offer0"] = "amount:" . $arrOrder['payment_total']; |
---|
303 | list($method, $paytimes) = split("-", $arrOrder['memo09']); // paymethod 4-15 ¤Ê¤É |
---|
304 | $arrSendParam['jpo_payment_method'] = $method; |
---|
305 | if ($paytimes > 0) $arrSendParam['jpo_installments'] = $paytimes; |
---|
306 | $arrResults = sfCybsSendRequest($arrSendParam); |
---|
307 | break; |
---|
308 | |
---|
309 | // Çä¾å¼è¾Ã |
---|
310 | case 'ics_credit': |
---|
311 | // ÊÖ¶â½èÍý¤¬¼Â¹ÔºÑ¤ß¤Ê¤é¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤·¤Ê¤¤¡£ |
---|
312 | if ($arrOrder['memo10'] == '1') { |
---|
313 | $objPage->cybs_result = '´û¤ËÊֶ⤵¤ì¤Æ¤¤¤Þ¤¹¡£'; |
---|
314 | return $objPage; |
---|
315 | } |
---|
316 | $resultMessage = 'ÊÖ¶â½èÍý¤ÏÀ®¸ù¤·¤Þ¤·¤¿¡£'; |
---|
317 | $resultStatus = MDL_CYBS_AUTH_STATUS_RETURN; |
---|
318 | $arrSendParam['ics_applications'] = "ics_credit"; |
---|
319 | $arrSendParam['bill_request_token'] = $arrOrder['memo07']; // request_token |
---|
320 | $arrSendParam['bill_request_id'] = $arrOrder['memo08']; // request_id |
---|
321 | $arrSendParam["offer0"] = "amount:" . $arrOrder['payment_total']; |
---|
322 | $arrResults = sfCybsSendRequest($arrSendParam); |
---|
323 | break; |
---|
324 | } |
---|
325 | |
---|
326 | if (PEAR::isError($e = sfCybsIsError($arrResults))) { |
---|
327 | $objPage->cybs_result = $e->getMessage(); |
---|
328 | gfPrintLog(" -> " . $arrCybsApp[$ics_app] . " error: " . $e->getMessage(), MDL_CYBS_LOG); |
---|
329 | gfPrintLog(print_r($arrResults, true), MDL_CYBS_LOG); |
---|
330 | $objPage->cybs_result = $e->getMessage(); |
---|
331 | return $objPage; |
---|
332 | } |
---|
333 | |
---|
334 | // request_token, request_id¤Î¹¹¿· |
---|
335 | $arrUpdate = array( |
---|
336 | 'update_date' => 'NOW()', |
---|
337 | 'memo07' => $arrResults['request_token'], |
---|
338 | 'memo08' => $arrResults['request_id'], |
---|
339 | ); |
---|
340 | // ÊÖ¶â½èÍýÀ®¸ù»þ¤ÏÊÖ¶âºÑ¤ß¥Õ¥é¥°¤òΩ¤Æ¤ë |
---|
341 | if ($arrCybsApp[$ics_app] == 'ics_credit') { |
---|
342 | $arrUpdate['memo10'] = '1'; |
---|
343 | } |
---|
344 | $objQuery->update('dtb_order', $arrUpdate, 'order_id = ?', array($objPage->tpl_order_id)); |
---|
345 | |
---|
346 | $objPage = sfCybsChangeAuthStatus($objPage, $resultStatus); |
---|
347 | $objPage->cybs_result = $resultMessage; |
---|
348 | return $objPage; |
---|
349 | } |
---|
350 | |
---|
351 | /** |
---|
352 | * Çä¾å¥Ð¥Ã¥ÁÍÑCSV¤Î¥À¥¦¥ó¥í¡¼¥É |
---|
353 | * |
---|
354 | */ |
---|
355 | function sfCybsCSVDownload($where, $arrval) { |
---|
356 | $objQuery = new SC_Query; |
---|
357 | $objQuery->setoption('ORDER BY update_date DESC'); |
---|
358 | $arrOrder = $objQuery->select( |
---|
359 | 'order_id, payment_total, memo08 as req_id, memo07 as req_token', |
---|
360 | 'dtb_order', |
---|
361 | $where, |
---|
362 | $arrval); |
---|
363 | |
---|
364 | $line = ''; |
---|
365 | $arrayOrder = is_array($arrOrder) ? $arrOrder : array(); |
---|
366 | foreach ($arrOrder as $order) { |
---|
367 | $line .= implode(',', array( |
---|
368 | $order['order_id'], |
---|
369 | 'JPY', |
---|
370 | $order['payment_total'], |
---|
371 | $order['req_id'], |
---|
372 | $order['req_token'])) . ",,,,,,,\r\n"; |
---|
373 | } |
---|
374 | |
---|
375 | $batchId = uniqid(''); |
---|
376 | $recordCount = count($arrayOrder); |
---|
377 | |
---|
378 | $head1 = "batchID=$batchId,transactionType=capture,recordCount=$recordCount,,,,,,,,,\r\n"; |
---|
379 | $head2 = implode(',', array( |
---|
380 | 'merchantReferenceCode*', |
---|
381 | 'purchaseTotals_currency*', |
---|
382 | 'purchaseTotals_grandTotalAmount*', |
---|
383 | 'ccCaptureService_authRequestID*', |
---|
384 | 'ccCaptureService_authRequestToken', |
---|
385 | 'ccCaptureService_authType', |
---|
386 | 'ccCaptureService_verbalAuthCode', |
---|
387 | 'billTo_customerID', |
---|
388 | 'merchantDefinedData_field1', |
---|
389 | 'merchantDefinedData_field2', |
---|
390 | 'merchantDefinedData_field3', |
---|
391 | 'merchantDefinedData_field4')) . "\r\n"; |
---|
392 | |
---|
393 | $csvString = $head1 . $head2 . $line; |
---|
394 | sfCSVDownload($csvString, 'cybs_capture'); |
---|
395 | } |
---|