PluginProbe
Welcart e-Commerce / 2.11.34
Welcart e-Commerce v2.11.34
2.12.4 2.12.3 2.11.35 2.12.2 2.12.1 2.11.34 2.11.33 2.11.32 2.11.31 2.11.30 1.3.16 1.3.17 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.10 1.4.11 1.4.12 All 292 releases
usc-e-shop / functions / hoock_func.php

hoock_func.php in Welcart e-Commerce 2.11.34, at functions/hoock_func.php

902 lines 35.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Hoock functions.
4 *
5 * @package Welcart
6 */
7
8 add_action( 'usces_construct', 'usces_action_acting_construct', 10 );
9 add_action( 'usces_after_cart_instant', 'usces_action_acting_transaction', 10 );
10
11 /**
12 * Settlement Result Notification Processing.
13 * usces_construct
14 */
15 function usces_action_acting_construct() {
16 /* remise */
17 if ( isset( $_POST['X-TRANID'] ) && ! isset( $_POST['OPT'] ) ) {
18
19 $rand = wp_unslash( $_POST['X-S_TORIHIKI_NO'] );
20 $datas = array();
21 /* 決済成功の時のみセッション復帰 */
22 if ( 0 == $_POST['X-ERRLEVEL'] ) {
23 $datas = usces_get_order_acting_data( $rand );
24 $_GET['uscesid'] = $datas['sesid'];
25 if ( empty( $datas['sesid'] ) ) {
26 /* sesidが無い場合はファイルログのみ */
27 usces_log( 'remise construct : error1', 'acting_transaction.log' );
28 } else {
29 /* 復帰できた場合のログ */
30 usces_log( 'remise construct OK : ' . wp_unslash( $_POST['X-TRANID'] ), 'acting_transaction.log' );
31 }
32 }
33
34 /* digitalcheck_conv */
35 } elseif ( isset( $_POST['SID'] ) && isset( $_POST['FUKA'] ) && isset( $_POST['CVS'] ) ) {
36
37 $sid = wp_unslash( $_POST['SID'] );
38 $datas = usces_get_order_acting_data( $sid );
39 $_GET['uscesid'] = $datas['sesid'];
40 if ( empty( $datas['sesid'] ) ) {
41 $log = array(
42 'acting' => 'digitalcheck',
43 'key' => $sid,
44 'result' => 'SESSION ERROR',
45 'data' => wp_unslash( $_POST ),
46 );
47 usces_save_order_acting_error( $log );
48 usces_log( 'digitalcheck construct : error1', 'acting_transaction.log' );
49 } else {
50 usces_log( 'digitalcheck construct : ' . $sid, 'acting_transaction.log' );
51 }
52
53 /* AnotherLane */
54 } elseif ( isset( $_REQUEST['SiteId'] ) && isset( $_REQUEST['rand'] ) ) {
55
56 $rand = wp_unslash( $_REQUEST['rand'] );
57 $datas = usces_get_order_acting_data( $rand );
58 $_GET['uscesid'] = $datas['sesid'];
59 if ( empty( $datas['sesid'] ) ) {
60 $log = array(
61 'acting' => 'anotherlane',
62 'key' => $rand,
63 'result' => 'SESSION ERROR',
64 'data' => wp_unslash( $_REQUEST ),
65 );
66 usces_save_order_acting_error( $log );
67 usces_log( 'anotherlane construct : error1', 'acting_transaction.log' );
68 } else {
69 usces_log( 'anotherlane construct : ' . $rand, 'acting_transaction.log' );
70 }
71
72 /* Veritrans */
73 } elseif ( isset( $_POST['orderId'] ) && isset( $_POST['merchantEncryptionKey'] ) ) {
74
75 $orderid = wp_unslash( $_POST['orderId'] );
76 $datas = usces_get_order_acting_data( $orderid );
77 $_GET['uscesid'] = $datas['sesid'];
78 if ( empty( $datas['sesid'] ) ) {
79 $log = array(
80 'acting' => 'veritrans',
81 'key' => $orderid,
82 'result' => 'SESSION ERROR',
83 'data' => wp_unslash( $_POST ),
84 );
85 usces_save_order_acting_error( $log );
86 usces_log( 'Veritrans construct : error1', 'acting_transaction.log' );
87 } else {
88 usces_log( 'Veritrans construct : ' . $orderid, 'acting_transaction.log' );
89 }
90 }
91 }
92
93 /**
94 * 決済結果通知の送信�
95 �IPが許可リストに含まれるか判定する。
96 *
97 * @param string $remote_addr Source IP address of the notification.
98 * @param array|string $allowed Allowed IP addresses / CIDR ranges.
99 * @return bool True when the source IP is allowed.
100 */
101 function usces_acting_notice_ip_allowed( $remote_addr, $allowed ) {
102 if ( empty( $remote_addr ) || empty( $allowed ) ) {
103 return false;
104 }
105 $remote_long = ip2long( $remote_addr );
106 if ( false === $remote_long ) {
107 return false;
108 }
109 foreach ( (array) $allowed as $entry ) {
110 $entry = trim( (string) $entry );
111 if ( '' === $entry ) {
112 continue;
113 }
114 if ( false !== strpos( $entry, '/' ) ) {
115 list( $subnet, $bits ) = explode( '/', $entry, 2 );
116 $subnet_long = ip2long( $subnet );
117 $bits = (int) $bits;
118 if ( false === $subnet_long || $bits < 1 || 32 < $bits ) {
119 continue;
120 }
121 $mask = ( 0xFFFFFFFF << ( 32 - $bits ) ) & 0xFFFFFFFF;
122 if ( ( $remote_long & $mask ) === ( $subnet_long & $mask ) ) {
123 return true;
124 }
125 } elseif ( ip2long( $entry ) === $remote_long ) {
126 return true;
127 }
128 }
129 return false;
130 }
131
132 /**
133 * Settlement Result Notification Processing.
134 * usces_after_cart_instant
135 */
136 function usces_action_acting_transaction() {
137 global $usces, $wpdb;
138
139 /* remise_card */
140 if ( isset( $_POST['X-TRANID'] ) && ! isset( $_POST['OPT'] ) ) {
141 $data = array();
142 foreach ( $_POST as $key => $value ) {
143 $data[ $key ] = mb_convert_encoding( $value, 'UTF-8', 'SJIS' );
144 }
145 /* 決済エラーの場合は、エラーログを残してdie */
146 if ( 0 != $data['X-ERRLEVEL'] ) {
147 $log = array(
148 'acting' => 'remise_card',
149 'key' => $data['S_TORIHIKI_NO'],
150 'result' => $data['X-ERRCODE'],
151 'data' => $data,
152 );
153 usces_save_order_acting_error( $log );
154 $status = ( isset( $_POST['CARIER_TYPE'] ) ) ? '900' : '800';
155 die( '<SDBKDATA>STATUS=' . $status . '</SDBKDATA>' );
156 }
157 usces_log( 'remise acting_transaction : ' . print_r( $data, true ), 'acting_transaction.log' );
158
159 $rand = wp_unslash( $_POST['X-S_TORIHIKI_NO'] );
160
161 /* カード�
162 報更新 */
163 if ( '0000000' === substr( $rand, 0, 7 ) ) { /* card up */
164 usces_log( 'remise card_update : ' . print_r( $data, true ), 'acting_transaction.log' );
165 if ( isset( $_POST['X-AC_S_KAIIN_NO'] ) ) {
166 if ( isset( $_POST['X-EXPIRE'] ) ) {
167 $expire = wp_unslash( $_POST['X-EXPIRE'] );
168 $limitofcard = substr( $expire, 0, 2 ) . '/' . substr( $expire, 2, 2 );
169 $usces->set_member_meta_value( 'limitofcard', $limitofcard, wp_unslash( $_POST['X-AC_S_KAIIN_NO'] ) );
170 }
171 if ( isset( $_POST['X-PARTOFCARD'] ) ) {
172 $usces->set_member_meta_value( 'partofcard', wp_unslash( $_POST['X-PARTOFCARD'] ), wp_unslash( $_POST['X-AC_S_KAIIN_NO'] ) );
173 }
174 } elseif ( isset( $_POST['X-PAYQUICKID'] ) ) {
175 $member_id = substr( $rand, 7 );
176 if ( $member_id ) {
177 $usces->set_member_meta_value( 'remise_pcid', wp_unslash( $_POST['X-PAYQUICKID'] ), (int) $member_id );
178 if ( isset( $_POST['X-EXPIRE'] ) ) {
179 $expire = wp_unslash( $_POST['X-EXPIRE'] );
180 $limitofcard = substr( $expire, 0, 2 ) . '/' . substr( $expire, 2, 2 );
181 $usces->set_member_meta_value( 'limitofcard', $limitofcard, (int) $member_id );
182 }
183 if ( isset( $_POST['X-PARTOFCARD'] ) ) {
184 $usces->set_member_meta_value( 'partofcard', wp_unslash( $_POST['X-PARTOFCARD'] ), (int) $member_id );
185 }
186 }
187 }
188
189 $status = ( isset( $_POST['CARIER_TYPE'] ) ) ? '900' : '800';
190 die( '<SDBKDATA>STATUS=' . $status . '</SDBKDATA>' );
191 }
192
193 $cart = $usces->cart->get_cart();
194 /* カートが無い(セッションが無い)場合、エラーログを残し、ルミーズにはerrorを返却 */
195 if ( empty( $cart ) ) {
196 usces_log( 'remise card error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
197 $log = array(
198 'acting' => 'remise',
199 'key' => wp_unslash( $_POST['X-S_TORIHIKI_NO'] ),
200 'result' => 'SESSION TIME OUT',
201 'data' => wp_unslash( $_POST ),
202 );
203 usces_save_order_acting_error( $log );
204 die( 'SESSION TIME OUT' );
205
206 /* セッションが存在する場合は、STATUSを返却 */
207 } else {
208 if ( isset( $_POST['X-PAYQUICKID'] ) ) {
209 $usces->set_member_meta_value( 'remise_pcid', wp_unslash( $_POST['X-PAYQUICKID'] ) );
210 }
211 if ( isset( $_POST['X-AC_MEMBERID'] ) ) {
212 $usces->set_member_meta_value( 'remise_memid', wp_unslash( $_POST['X-AC_MEMBERID'] ) );
213 }
214 if ( isset( $_POST['X-EXPIRE'] ) ) {
215 $expire = wp_unslash( $_POST['X-EXPIRE'] );
216 $limitofcard = substr( $expire, 0, 2 ) . '/' . substr( $expire, 2, 2 );
217 $usces->set_member_meta_value( 'limitofcard', $limitofcard );
218 }
219 if ( isset( $_POST['X-PARTOFCARD'] ) ) {
220 $usces->set_member_meta_value( 'partofcard', wp_unslash( $_POST['X-PARTOFCARD'] ) );
221 }
222 usces_log( 'remise card transaction : ' . wp_unslash( $_POST['X-TRANID'] ), 'acting_transaction.log' );
223 $status = ( isset( $_POST['CARIER_TYPE'] ) ) ? '900' : '800';
224 die( '<SDBKDATA>STATUS=' . $status . '</SDBKDATA>' );
225 }
226
227 /* remise_conv */
228 } elseif ( isset( $_POST['S_TORIHIKI_NO'] ) && isset( $_POST['REC_FLG'] ) ) {
229 $data = array();
230 foreach ( $_POST as $key => $value ) {
231 $data[ $key ] = mb_convert_encoding( $value, 'UTF-8', 'SJIS' );
232 }
233 REMISE_SETTLEMENT::get_instance()->acting_notice_ip_guard( $data );
234
235 $table_name = $wpdb->prefix . 'usces_order';
236 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
237
238 $mquery = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'settlement_id', wp_unslash( $_POST['S_TORIHIKI_NO'] ) );
239 $order_id = $wpdb->get_var( $mquery );
240 if ( null == $order_id ) {
241 $log = array(
242 'acting' => 'remise_conv',
243 'key' => wp_unslash( $_POST['S_TORIHIKI_NO'] ),
244 'result' => 'ORDER DATA KEY ERROR',
245 'data' => wp_unslash( $_POST ),
246 );
247 usces_save_order_acting_error( $log );
248 usces_log( 'remise conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
249 die( 'error1' );
250 }
251
252 $res = usces_change_order_receipt( $order_id, 'receipted' );
253 if ( false === $res ) {
254 $log = array(
255 'acting' => 'remise_conv',
256 'key' => wp_unslash( $_POST['S_TORIHIKI_NO'] ),
257 'result' => 'ORDER DATA UPDATE ERROR',
258 'data' => wp_unslash( $_POST ),
259 );
260 usces_save_order_acting_error( $log );
261 usces_log( 'remise conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
262 die( 'error2' );
263 }
264
265 $datastr = serialize( $data );
266 $mquery = $wpdb->prepare( "UPDATE $table_meta_name SET meta_value = %s WHERE meta_key = %s AND order_id = %d", $datastr, 'settlement_id', $order_id );
267 $res = $wpdb->query( $mquery );
268 if ( false === $res ) {
269 $log = array(
270 'acting' => 'remise_conv',
271 'key' => wp_unslash( $_POST['S_TORIHIKI_NO'] ),
272 'result' => 'ORDER META DATA UPDATE ERROR',
273 'data' => wp_unslash( $_POST ),
274 );
275 usces_save_order_acting_error( $log );
276 usces_log( 'remise conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
277 die( 'error3' );
278 }
279
280 usces_action_acting_getpoint( $order_id );
281
282 usces_log( 'remise conv transaction : ' . wp_unslash( $_POST['S_TORIHIKI_NO'] ), 'acting_transaction.log' );
283 die( '<SDBKDATA>STATUS=800</SDBKDATA>' );
284
285 /* jpayment_card */
286 } elseif ( isset( $_REQUEST['acting'] ) && 'jpayment_card' == $_REQUEST['acting'] ) {
287
288 /* jpayment_conv */
289 } elseif ( isset( $_REQUEST['acting'] ) && 'jpayment_conv' == $_REQUEST['acting'] && isset( $_GET['ap'] ) ) {
290 switch ( $_GET['ap'] ) {
291 case 'CPL_PRE': /* コンビニペーパーレス決済識別コード */
292 break;
293
294 case 'CPL': /* �
295 �金確定 */
296 JPAYMENT_SETTLEMENT::get_instance()->acting_notice_ip_guard();
297 $acting = wp_unslash( $_REQUEST['acting'] );
298 $data = array();
299 foreach ( $_GET as $key => $value ) {
300 $data[ $key ] = esc_sql( $value );
301 }
302 $cod = ( isset( $data['cod'] ) ) ? $data['cod'] : '';
303
304 $table_name = $wpdb->prefix . 'usces_order';
305 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
306
307 $query = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'settlement_id', $cod );
308 $order_id = $wpdb->get_var( $query );
309 if ( null == $order_id ) {
310 $log = array(
311 'acting' => $acting,
312 'key' => $cod,
313 'result' => 'ORDER DATA KEY ERROR',
314 'data' => $data,
315 );
316 usces_save_order_acting_error( $log );
317 usces_log( 'ROBOT PAYMENT conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
318 die( 'error1' );
319 }
320
321 $res = usces_change_order_receipt( $order_id, 'receipted' );
322 if ( false === $res ) {
323 $log = array(
324 'acting' => $acting,
325 'key' => $cod,
326 'result' => 'ORDER DATA UPDATE ERROR',
327 'data' => $data,
328 );
329 usces_save_order_acting_error( $log );
330 usces_log( 'ROBOT PAYMENT conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
331 die( 'error2' );
332 }
333
334 $res = $usces->set_order_meta_value( 'acting_' . $acting, serialize( $data ), $order_id );
335 if ( false === $res ) {
336 $log = array(
337 'acting' => $acting,
338 'key' => $cod,
339 'result' => 'ORDER META DATA UPDATE ERROR',
340 'data' => $data,
341 );
342 usces_save_order_acting_error( $log );
343 usces_log( 'ROBOT PAYMENT conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
344 die( 'error3' );
345 }
346
347 usces_action_acting_getpoint( $order_id );
348
349 usces_log( 'ROBOT PAYMENT conv transaction : ' . $data['gid'], 'acting_transaction.log' );
350 die( 'ROBOT PAYMENT' );
351 break;
352
353 case 'CVS_CAN': /* �
354 �金取消 */
355 JPAYMENT_SETTLEMENT::get_instance()->acting_notice_ip_guard();
356 $acting = wp_unslash( $_REQUEST['acting'] );
357 $data = array();
358 foreach ( $_GET as $key => $value ) {
359 $data[ $key ] = esc_sql( $value );
360 }
361 $cod = ( isset( $data['cod'] ) ) ? $data['cod'] : '';
362
363 $table_name = $wpdb->prefix . 'usces_order';
364 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
365
366 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'settlement_id', $cod );
367 $order_id = $wpdb->get_var( $query );
368 if ( null == $order_id ) {
369 $log = array(
370 'acting' => $acting,
371 'key' => $cod,
372 'result' => 'ORDER DATA KEY ERROR',
373 'data' => $data,
374 );
375 usces_save_order_acting_error( $log );
376 usces_log( 'ROBOT PAYMENT conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
377 die( 'error1' );
378 }
379
380 $res = usces_change_order_receipt( $order_id, 'noreceipt' );
381 if ( false === $res ) {
382 $log = array(
383 'acting' => $acting,
384 'key' => $cod,
385 'result' => 'ORDER DATA UPDATE ERROR',
386 'data' => $data,
387 );
388 usces_save_order_acting_error( $log );
389 usces_log( 'ROBOT PAYMENT conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
390 die( 'error2' );
391 }
392
393 $res = $usces->set_order_meta_value( 'acting_' . $acting, serialize( $data ), $order_id );
394 if ( false === $res ) {
395 $log = array(
396 'acting' => $acting,
397 'key' => $cod,
398 'result' => 'ORDER META DATA UPDATE ERROR',
399 'data' => $data,
400 );
401 usces_save_order_acting_error( $log );
402 usces_log( 'ROBOT PAYMENT conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
403 die( 'error3' );
404 }
405
406 usces_action_acting_getpoint( $order_id, false );
407
408 usces_log( 'ROBOT PAYMENT conv transaction : ' . $data['gid'], 'acting_transaction.log' );
409 die( 'ROBOT PAYMENT' );
410 break;
411 }
412
413 /* jpayment_bank */
414 } elseif ( isset( $_REQUEST['acting'] ) && 'jpayment_bank' == $_REQUEST['acting'] && isset( $_GET['ap'] ) ) {
415 switch ( $_GET['ap'] ) {
416 case 'BANK': /* 受付完了 */
417 break;
418
419 case 'BAN_SAL': /* �
420 �金完了 */
421 JPAYMENT_SETTLEMENT::get_instance()->acting_notice_ip_guard();
422 if ( isset( $_GET['mf'] ) && '1' == wp_unslash( $_GET['mf'] ) ) { /* �
423 �金マッチングの場合 */
424 $acting = wp_unslash( $_REQUEST['acting'] );
425 $data = array();
426 foreach ( $_GET as $key => $value ) {
427 $data[ $key ] = esc_sql( $value );
428 }
429 $cod = ( isset( $data['cod'] ) ) ? $data['cod'] : '';
430
431 $table_name = $wpdb->prefix . 'usces_order';
432 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
433
434 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'settlement_id', $cod );
435 $order_id = $wpdb->get_var( $query );
436 if ( null == $order_id ) {
437 $log = array(
438 'acting' => $acting,
439 'key' => $cod,
440 'result' => 'ORDER DATA KEY ERROR',
441 'data' => $data,
442 );
443 usces_save_order_acting_error( $log );
444 usces_log( 'ROBOT PAYMENT bank error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
445 die( 'error1' );
446 }
447
448 $res = usces_change_order_receipt( $order_id, 'receipted' );
449 if ( false === $res ) {
450 $log = array(
451 'acting' => $acting,
452 'key' => $cod,
453 'result' => 'ORDER DATA UPDATE ERROR',
454 'data' => $data,
455 );
456 usces_save_order_acting_error( $log );
457 usces_log( 'ROBOT PAYMENT bank error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
458 die( 'error2' );
459 }
460
461 $res = $usces->set_order_meta_value( 'acting_' . $acting, serialize( $data ), $order_id );
462 if ( false === $res ) {
463 $log = array(
464 'acting' => $acting,
465 'key' => $cod,
466 'result' => 'ORDER META DATA UPDATE ERROR',
467 'data' => $data,
468 );
469 usces_save_order_acting_error( $log );
470 usces_log( 'ROBOT PAYMENT bank error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
471 die( 'error3' );
472 }
473
474 usces_action_acting_getpoint( $order_id );
475 }
476
477 usces_log( 'ROBOT PAYMENT bank transaction : ' . $data['gid'], 'acting_transaction.log' );
478 die( 'ROBOT PAYMENT' );
479 break;
480 }
481
482 /* PayPal ipn */
483 } elseif ( ! isset( $_GET['acting_return'] ) && ( isset( $_GET['acting'] ) && 'paypal_ipn' == wp_unslash( $_GET['acting'] ) ) ) {
484 if ( file_exists( $usces->options['settlement_path'] . 'paypal.php' ) ) {
485 $data = array();
486 foreach ( $_REQUEST as $key => $value ) {
487 $data[ $key ] = $value;
488 }
489 usces_log( 'paypal_ipn in ' . print_r( $data, true ), 'acting_transaction.log' );
490 require_once( $usces->options['settlement_path'] . 'paypal.php' );
491 $ipn_res = paypal_ipn_check( $usces_paypal_url );
492 if ( true === $ipn_res[0] ) {
493 $res = $usces->order_processing( $ipn_res );
494 if ( 'ordercompletion' == $res ) {
495 $usces->cart->crear_cart();
496 } else {
497 usces_log( 'paypal_ipn error : ' . print_r( $data, true ), 'acting_transaction.log' );
498 die( 'error1' );
499 }
500 do_action( 'usces_action_paypal_ipn', $res, $ipn_res );
501 }
502 usces_log( 'PayPal IPN transaction : ' . wp_unslash( $_REQUEST['txn_id'] ), 'acting_transaction.log' );
503 }
504 die( 'PayPal' );
505
506 /* telecom edy */
507 } elseif ( isset( $_REQUEST['clientip'] ) && isset( $_REQUEST['sendid'] ) && ( isset( $_REQUEST['acting'] ) && 'telecom_edy' == $_REQUEST['acting'] ) ) {
508 $data = array();
509 foreach ( $_REQUEST as $key => $value ) {
510 $data[ $key ] = $value;
511 }
512 usces_log( 'telecom edy : ' . print_r( $data, true ), 'acting_transaction.log' );
513
514 } elseif ( isset( $_REQUEST['clientip'] ) && isset( $_REQUEST['sendid'] ) && isset( $_REQUEST['edy'] ) ) {
515 $data = array();
516 foreach ( $_REQUEST as $key => $value ) {
517 $data[ $key ] = $value;
518 }
519 if ( 'yes' === wp_unslash( $_REQUEST['rel'] ) && isset( $_REQUEST['option'] ) ) {
520 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
521 $mquery = $wpdb->prepare( "SELECT order_id, meta_value FROM $table_meta_name WHERE meta_key = %s", wp_unslash( $_REQUEST['option'] ) );
522 $mvalue = $wpdb->get_row( $mquery, ARRAY_A );
523 $value = unserialize( $mvalue['meta_value'] );
524 $_SESSION['usces_cart'] = $value['usces_cart'];
525 $_SESSION['usces_entry'] = $value['usces_entry'];
526 $_SESSION['usces_member'] = $value['usces_member'];
527 $res = $usces->order_processing();
528 if ( 'ordercompletion' == $res ) {
529 $query = $wpdb->prepare( "DELETE FROM $table_meta_name WHERE meta_key = %s", wp_unslash( $_REQUEST['option'] ) );
530 $res = $wpdb->query( $query );
531 usces_log( 'telecom edy - Payment confirmation : ' . print_r( $data, true ), 'acting_transaction.log' );
532 } else {
533 $log = array(
534 'acting' => 'telecom_edy',
535 'key' => wp_unslash( $_REQUEST['option'] ),
536 'result' => 'ORDER DATA REGISTERED ERROR',
537 'data' => wp_unslash( $_REQUEST ),
538 );
539 usces_save_order_acting_error( $log );
540 usces_log( 'telecom edy - Error 1 : ' . print_r( $data, true ), 'acting_transaction.log' );
541 }
542 } else {
543 $log = array(
544 'acting' => 'telecom_edy',
545 'key' => wp_unslash( $_REQUEST['option'] ),
546 'result' => wp_unslash( $_REQUEST['rel'] ),
547 'data' => wp_unslash( $_REQUEST ),
548 );
549 usces_save_order_acting_error( $log );
550 usces_log( 'telecom edy - Error 2 : ' . print_r( $data, true ), 'acting_transaction.log' );
551 }
552 die( 'SuccessOK' );
553
554 /* telecom credit */
555 } elseif ( isset( $_REQUEST['clientip'] ) && isset( $_REQUEST['sendid'] ) && isset( $_REQUEST['rel'] ) ) {
556 $data = array();
557 foreach ( $_REQUEST as $key => $value ) {
558 $data[ $key ] = $value;
559 }
560 if ( 'yes' === wp_unslash( $_REQUEST['rel'] ) && isset( $_REQUEST['option'] ) ) {
561 } else {
562 $log = array(
563 'acting' => 'telecom_card',
564 'key' => wp_unslash( $_REQUEST['option'] ),
565 'result' => wp_unslash( $_REQUEST['rel'] ),
566 'data' => wp_unslash( $_REQUEST ),
567 );
568 usces_save_order_acting_error( $log );
569 }
570 usces_log( 'telecom card : ' . print_r( $data, true ), 'acting_transaction.log' );
571 die( 'SuccessOK' );
572
573 /* digitalcheck card */
574 } elseif ( isset( $_REQUEST['SID'] ) && isset( $_REQUEST['FUKA'] ) && 'acting_digitalcheck_card' == substr( wp_unslash( $_REQUEST['FUKA'] ), 0, 24 ) ) {
575 if ( isset( $_GET['acting_return'] ) && isset( $_GET['acting'] ) && 'digitalcheck_card' === $_GET['acting'] ) {
576 return;
577 }
578
579 $data = array();
580 foreach ( $_REQUEST as $key => $value ) {
581 $data[ $key ] = $value;
582 }
583 $sid = ( isset( $data['SID'] ) ) ? $data['SID'] : '';
584
585 if ( isset( $data['SEQ'] ) ) {
586 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
587 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
588 $order_id = $wpdb->get_var( $query );
589 if ( ! $order_id ) {
590 $acting_opts = $usces->options['acting_settings']['digitalcheck'];
591 $ip_user_id = substr( $data['FUKA'], 24 );
592 if ( 'on' == $acting_opts['card_user_id'] && ! empty( $ip_user_id ) ) {
593 $usces->set_member_meta_value( 'digitalcheck_ip_user_id', $ip_user_id, $ip_user_id );
594 }
595
596 $res = $usces->order_processing();
597 if ( 'ordercompletion' == $res ) {
598 $order_id = $usces->cart->get_order_entry( 'ID' );
599 $usces->set_order_meta_value( 'acting_digitalcheck_card', serialize( $data ), $order_id );
600 $usces->set_order_meta_value( 'wc_trans_id', $sid, $order_id );
601 } else {
602 $log = array(
603 'acting' => 'digitalcheck_card',
604 'key' => $sid,
605 'result' => 'ORDER DATA REGISTERED ERROR',
606 'data' => wp_unslash( $_REQUEST ),
607 );
608 usces_save_order_acting_error( $log );
609 // usces_log( 'digitalcheck card : order processing error', 'acting_transaction.log' );
610 }
611 }
612
613 header( 'Content-Type: text/plain; charset=Shift_JIS' );
614 die( "0\r\n" );
615
616 } elseif ( isset( $data['purchase'] ) ) {
617 return;
618
619 } else {
620 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
621 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
622 $order_id = $wpdb->get_var( $query );
623 if ( $order_id ) {
624 header( 'Content-Type: text/plain; charset=Shift_JIS' );
625 die( "0\r\n" );
626 }
627 }
628
629 header( 'Content-Type: text/plain; charset=Shift_JIS' );
630 die( "0\r\n" );
631
632 /* digitalcheck conv */
633 } elseif ( isset( $_REQUEST['SID'] ) && isset( $_REQUEST['FUKA'] ) && 'acting_digitalcheck_conv' == substr( wp_unslash( $_REQUEST['FUKA'] ), 0, 24 ) ) {
634 if ( isset( $_GET['acting_return'] ) && isset( $_GET['acting'] ) && 'digitalcheck_conv' === $_GET['acting'] ) {
635 return;
636 }
637
638 $data = array();
639 foreach ( $_REQUEST as $key => $value ) {
640 $data[ $key ] = $value;
641 }
642 $sid = ( isset( $data['SID'] ) ) ? $data['SID'] : '';
643
644 if ( isset( $data['SEQ'] ) ) {
645 DIGITALCHECK_SETTLEMENT::get_instance()->acting_notice_ip_guard( $data );
646 $table_name = $wpdb->prefix . 'usces_order';
647 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
648 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
649 $order_id = $wpdb->get_var( $query );
650 if ( null == $order_id ) {
651 $log = array(
652 'acting' => 'digitalcheck_conv',
653 'key' => $sid,
654 'result' => 'ORDER DATA KEY ERROR',
655 'data' => wp_unslash( $_REQUEST ),
656 );
657 usces_save_order_acting_error( $log );
658 usces_log( 'digitalcheck conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
659 header( 'Content-Type: text/plain; charset=Shift_JIS' );
660 die( "9\r\n" );
661 }
662
663 if ( isset( $data['CVS'] ) ) { /* �
664 �金 */
665 $res = usces_change_order_receipt( $order_id, 'receipted' );
666 if ( false === $res ) {
667 $log = array(
668 'acting' => 'digitalcheck_conv',
669 'key' => $sid,
670 'result' => 'ORDER DATA UPDATE ERROR',
671 'data' => wp_unslash( $_REQUEST ),
672 );
673 usces_save_order_acting_error( $log );
674 usces_log( 'digitalcheck conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
675 header( 'Content-Type: text/plain; charset=Shift_JIS' );
676 die( "9\r\n" );
677 }
678
679 usces_action_acting_getpoint( $order_id );
680
681 } else { /* 取消 */
682 $res = usces_change_order_receipt( $order_id, 'noreceipt' );
683 if ( false === $res ) {
684 $log = array(
685 'acting' => 'digitalcheck_conv',
686 'key' => $sid,
687 'result' => 'ORDER DATA UPDATE ERROR',
688 'data' => wp_unslash( $_REQUEST ),
689 );
690 usces_save_order_acting_error( $log );
691 usces_log( 'digitalcheck conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
692 header( 'Content-Type: text/plain; charset=Shift_JIS' );
693 die( "9\r\n" );
694 }
695
696 usces_action_acting_getpoint( $order_id, false );
697 }
698
699 $usces->set_order_meta_value( 'acting_digitalcheck_conv', serialize( $data ), $order_id );
700
701 $dquery = $wpdb->prepare( "DELETE FROM $table_meta_name WHERE meta_key = %s", $sid );
702 $res = $wpdb->query( $dquery );
703
704 header( 'Content-Type: text/plain; charset=Shift_JIS' );
705 die( "0\r\n" );
706
707 } else {
708 if ( isset( $data['CVS'] ) && isset( $data['SHNO'] ) ) { /* 決済 */
709 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
710 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
711 $order_id = $wpdb->get_var( $query );
712 if ( $order_id ) {
713 $usces->set_order_meta_value( 'acting_digitalcheck_conv', serialize( $data ), $order_id );
714
715 } else {
716 $res = $usces->order_processing();
717 if ( 'ordercompletion' == $res ) {
718 $usces->set_order_meta_value( 'acting_digitalcheck_conv', serialize( $data ), $order_id );
719 $usces->set_order_meta_value( 'wc_trans_id', $sid, $order_id );
720 } else {
721 $log = array(
722 'acting' => 'digitalcheck_conv',
723 'key' => $sid,
724 'result' => 'ORDER DATA REGISTERED ERROR',
725 'data' => wp_unslash( $_REQUEST ),
726 );
727 usces_save_order_acting_error( $log );
728 usces_log( 'digitalcheck conv : order processing error', 'acting_transaction.log' );
729 }
730 }
731
732 header( 'Content-Type: text/plain; charset=Shift_JIS' );
733 die( "0\r\n" );
734
735 } elseif ( isset( $data['purchase'] ) ) {
736
737 } else {
738 $permalink_structure = get_option( 'permalink_structure' );
739 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
740 header( 'location: ' . USCES_CART_URL . $delim . 'acting=digitalcheck_conv&acting_return=1&SID=' . $sid );
741 exit;
742 }
743 }
744
745 /* mizuho card */
746 } elseif ( ( isset( $_GET['p_ver'] ) && '0200' == wp_unslash( $_GET['p_ver'] ) ) && ( isset( $_GET['bkcode'] ) && 'bg01' == wp_unslash( $_GET['bkcode'] ) ) ) {
747 usces_log( 'mizuho card : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
748 $stran = ( array_key_exists( 'stran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['stran'] ) : '';
749 $mbtran = ( array_key_exists( 'mbtran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['mbtran'] ) : '';
750 $rsltcd = ( array_key_exists( 'rsltcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltcd'] ) : '';
751 $rsltdcd = ( array_key_exists( 'rsltdcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltdcd'] ) : '';
752 $permalink_structure = get_option( 'permalink_structure' );
753 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
754 if ( '108' == substr( $rsltcd, 0, 3 ) || '208' == substr( $rsltcd, 0, 3 ) || '308' == substr( $rsltcd, 0, 3 ) ) { /* キャンセル */
755 header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
756 } elseif ( '109' == substr( $rsltcd, 0, 3 ) || '209' == substr( $rsltcd, 0, 3 ) || '309' == substr( $rsltcd, 0, 3 ) ) { /* エラー */
757 $log = array(
758 'acting' => 'mizuho_card',
759 'key' => $stran,
760 'result' => $rsltcd,
761 'data' => wp_unslash( $_GET ),
762 );
763 usces_save_order_acting_error( $log );
764 usces_log( 'mizuho card : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
765 header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=0&rsltdcd=' . $rsltdcd );
766 } else {
767 header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=1&stran=' . $stran . '&mbtran=' . $mbtran . '&rsltcd=' . $rsltcd );
768 }
769 die();
770
771 /* mizuho conv 提供対象外のため無効化。
772 } elseif ( ( isset( $_GET['p_ver'] ) && '0200' == wp_unslash( $_GET['p_ver'] ) ) && ( isset( $_GET['bkcode'] ) && ( 'cv01' == wp_unslash( $_GET['bkcode'] ) || 'cv02' == wp_unslash( $_GET['bkcode'] ) ) ) ) {
773 usces_log( 'mizuho conv : ' . print_r( $_GET, true ), 'acting_transaction.log' );
774 $stran = ( array_key_exists( 'stran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['stran'] ) : '';
775 $mbtran = ( array_key_exists( 'mbtran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['mbtran'] ) : '';
776 $bktrans = ( array_key_exists( 'bktrans', $_REQUEST ) ) ? wp_unslash( $_REQUEST['bktrans'] ) : '';
777 $tranid = ( array_key_exists( 'tranid', $_REQUEST ) ) ? wp_unslash( $_REQUEST['tranid'] ) : '';
778 $tdate = ( array_key_exists( 'tdate', $_REQUEST ) ) ? wp_unslash( $_REQUEST['tdate'] ) : '';
779 $rsltcd = ( array_key_exists( 'rsltcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltcd'] ) : '';
780 $permalink_structure = get_option( 'permalink_structure' );
781 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
782 if ( '' != $tdate ) { // �
783 �金通知
784 $data = array();
785 foreach ( $_REQUEST as $key => $value ) {
786 $data[ $key ] = $value;
787 }
788 if ( '0000000000000' == $rsltcd ) {
789 $table_name = $wpdb->prefix . 'usces_order';
790 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
791
792 $query = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'stran', $stran );
793 $order_id = $wpdb->get_var( $query );
794 if ( null == $order_id ) {
795 $log = array(
796 'acting' => 'mizuho_conv',
797 'key' => $stran,
798 'result' => 'ORDER DATA KEY ERROR',
799 'data' => wp_unslash( $_GET ),
800 );
801 usces_save_order_acting_error( $log );
802 usces_log( 'mizuho conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
803 } else {
804 $res = usces_change_order_receipt( $order_id, 'receipted' );
805 if ( false === $res ) {
806 $log = array(
807 'acting' => 'mizuho_conv',
808 'key' => $stran,
809 'result' => 'ORDER DATA UPDATE ERROR',
810 'data' => wp_unslash( $_GET ),
811 );
812 usces_save_order_acting_error( $log );
813 usces_log( 'mizuho conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
814
815 } else {
816 usces_action_acting_getpoint( $order_id );
817
818 $usces->set_order_meta_value( 'acting_mizuho_conv', serialize( $data ), $order_id );
819
820 $dquery = $wpdb->prepare( "DELETE FROM $table_meta_name WHERE meta_key = %s", $stran );
821 $res = $wpdb->query( $dquery );
822 }
823 }
824 } else {
825 usces_log( 'mizuho conv : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
826 }
827 } elseif ( '108' == substr( $rsltcd, 0, 3 ) || '208' == substr( $rsltcd, 0, 3 ) || '308' == substr( $rsltcd, 0, 3 ) ) { // キャンセル
828 header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
829 } elseif ( '109' == substr( $rsltcd, 0, 3 ) || '209' == substr( $rsltcd, 0, 3 ) || '309' == substr( $rsltcd, 0, 3 ) ) { // エラー
830 $log = array(
831 'acting' => 'mizuho_conv',
832 'key' => $stran,
833 'result' => $rsltcd,
834 'data' => wp_unslash( $_GET ),
835 );
836 usces_save_order_acting_error( $log );
837 usces_log( 'mizuho conv : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
838 header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=0' );
839 } else {
840 header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_conv&acting_return=1&stran=' . $stran . '&mbtran=' . $mbtran . '&bktrans=' . wp_unslash( $_GET['bktrans'] ) . '&tranid=' . $tranid . '&rsltcd=' . $rsltcd );
841 }
842 die();
843 */
844
845 /* AnotherLane credit */
846 } elseif ( isset( $_REQUEST['SiteId'] ) && isset( $_REQUEST['TransactionId'] ) && isset( $_REQUEST['Result'] ) ) {
847 $data = array();
848 foreach ( $_REQUEST as $key => $value ) {
849 $data[ $key ] = $value;
850 }
851
852 $acting_opts = $usces->options['acting_settings']['anotherlane'];
853 if ( ! isset( $_REQUEST['KickType'] ) && isset( $_REQUEST['TransactionId'] ) ) {
854 $permalink_structure = get_option( 'permalink_structure' );
855 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
856 if ( $acting_opts['siteid'] == wp_unslash( $_REQUEST['SiteId'] ) && 'NG' == wp_unslash( $_REQUEST['Result'] ) ) {
857 $log = array(
858 'acting' => 'anotherlane_card',
859 'key' => wp_unslash( $_REQUEST['TransactionId'] ),
860 'result' => wp_unslash( $_REQUEST['Result'] ),
861 'data' => wp_unslash( $_REQUEST ),
862 );
863 usces_save_order_acting_error( $log );
864 header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
865 exit;
866 } elseif ( $acting_opts['siteid'] == wp_unslash( $_REQUEST['SiteId'] ) && 'OK' == wp_unslash( $_REQUEST['Result'] ) ) {
867 header( 'location: ' . USCES_CART_URL . $delim . 'acting=anotherlane_card&acting_return=1' );
868 exit;
869 }
870 } elseif ( isset( $_REQUEST['KickType'] ) && $acting_opts['siteid'] == wp_unslash( $_GET['SiteId'] ) && 'OK' == wp_unslash( $_GET['Result'] ) ) {
871 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
872 $query = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'TransactionId', $data['TransactionId'] );
873 $order_id = $wpdb->get_var( $query );
874 if ( ! $order_id ) {
875 $res = $usces->order_processing();
876 if ( 'ordercompletion' == $res ) {
877 $usces->set_order_meta_value( 'wc_trans_id', $data['TransactionId'], $order_id );
878 usces_log( 'AnotherLane [OK] transaction : ' . $data['TransactionId'], 'acting_transaction.log' );
879 } else {
880 $log = array(
881 'acting' => 'anotherlane_card',
882 'key' => $data['TransactionId'],
883 'result' => 'ORDER DATA REGISTERED ERROR',
884 'data' => wp_unslash( $_GET ),
885 );
886 usces_save_order_acting_error( $log );
887 usces_log( 'AnotherLane order processing error : ' . print_r( $data, true ), 'acting_transaction.log' );
888 }
889 }
890 } else {
891 $log = array(
892 'acting' => 'anotherlane_card',
893 'key' => $data['TransactionId'],
894 'result' => $data['Result'],
895 'data' => wp_unslash( $_GET ),
896 );
897 usces_save_order_acting_error( $log );
898 }
899 exit;
900 }
901 }
902