PluginProbe
Welcart e-Commerce / 2.11.35
Welcart e-Commerce v2.11.35
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.35, at functions/hoock_func.php

903 lines 35.8 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 提供対象外のため無効化. CVE-2026-19887(PHP Object Injection)対応.
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 = wel_safe_maybe_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
555 /* telecom credit */
556 } elseif ( isset( $_REQUEST['clientip'] ) && isset( $_REQUEST['sendid'] ) && isset( $_REQUEST['rel'] ) ) {
557 $data = array();
558 foreach ( $_REQUEST as $key => $value ) {
559 $data[ $key ] = $value;
560 }
561 if ( 'yes' === wp_unslash( $_REQUEST['rel'] ) && isset( $_REQUEST['option'] ) ) {
562 } else {
563 $log = array(
564 'acting' => 'telecom_card',
565 'key' => wp_unslash( $_REQUEST['option'] ),
566 'result' => wp_unslash( $_REQUEST['rel'] ),
567 'data' => wp_unslash( $_REQUEST ),
568 );
569 usces_save_order_acting_error( $log );
570 }
571 usces_log( 'telecom card : ' . print_r( $data, true ), 'acting_transaction.log' );
572 die( 'SuccessOK' );
573
574 /* digitalcheck card */
575 } elseif ( isset( $_REQUEST['SID'] ) && isset( $_REQUEST['FUKA'] ) && 'acting_digitalcheck_card' == substr( wp_unslash( $_REQUEST['FUKA'] ), 0, 24 ) ) {
576 if ( isset( $_GET['acting_return'] ) && isset( $_GET['acting'] ) && 'digitalcheck_card' === $_GET['acting'] ) {
577 return;
578 }
579
580 $data = array();
581 foreach ( $_REQUEST as $key => $value ) {
582 $data[ $key ] = $value;
583 }
584 $sid = ( isset( $data['SID'] ) ) ? $data['SID'] : '';
585
586 if ( isset( $data['SEQ'] ) ) {
587 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
588 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
589 $order_id = $wpdb->get_var( $query );
590 if ( ! $order_id ) {
591 $acting_opts = $usces->options['acting_settings']['digitalcheck'];
592 $ip_user_id = substr( $data['FUKA'], 24 );
593 if ( 'on' == $acting_opts['card_user_id'] && ! empty( $ip_user_id ) ) {
594 $usces->set_member_meta_value( 'digitalcheck_ip_user_id', $ip_user_id, $ip_user_id );
595 }
596
597 $res = $usces->order_processing();
598 if ( 'ordercompletion' == $res ) {
599 $order_id = $usces->cart->get_order_entry( 'ID' );
600 $usces->set_order_meta_value( 'acting_digitalcheck_card', serialize( $data ), $order_id );
601 $usces->set_order_meta_value( 'wc_trans_id', $sid, $order_id );
602 } else {
603 $log = array(
604 'acting' => 'digitalcheck_card',
605 'key' => $sid,
606 'result' => 'ORDER DATA REGISTERED ERROR',
607 'data' => wp_unslash( $_REQUEST ),
608 );
609 usces_save_order_acting_error( $log );
610 // usces_log( 'digitalcheck card : order processing error', 'acting_transaction.log' );
611 }
612 }
613
614 header( 'Content-Type: text/plain; charset=Shift_JIS' );
615 die( "0\r\n" );
616
617 } elseif ( isset( $data['purchase'] ) ) {
618 return;
619
620 } else {
621 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
622 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
623 $order_id = $wpdb->get_var( $query );
624 if ( $order_id ) {
625 header( 'Content-Type: text/plain; charset=Shift_JIS' );
626 die( "0\r\n" );
627 }
628 }
629
630 header( 'Content-Type: text/plain; charset=Shift_JIS' );
631 die( "0\r\n" );
632
633 /* digitalcheck conv */
634 } elseif ( isset( $_REQUEST['SID'] ) && isset( $_REQUEST['FUKA'] ) && 'acting_digitalcheck_conv' == substr( wp_unslash( $_REQUEST['FUKA'] ), 0, 24 ) ) {
635 if ( isset( $_GET['acting_return'] ) && isset( $_GET['acting'] ) && 'digitalcheck_conv' === $_GET['acting'] ) {
636 return;
637 }
638
639 $data = array();
640 foreach ( $_REQUEST as $key => $value ) {
641 $data[ $key ] = $value;
642 }
643 $sid = ( isset( $data['SID'] ) ) ? $data['SID'] : '';
644
645 if ( isset( $data['SEQ'] ) ) {
646 DIGITALCHECK_SETTLEMENT::get_instance()->acting_notice_ip_guard( $data );
647 $table_name = $wpdb->prefix . 'usces_order';
648 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
649 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
650 $order_id = $wpdb->get_var( $query );
651 if ( null == $order_id ) {
652 $log = array(
653 'acting' => 'digitalcheck_conv',
654 'key' => $sid,
655 'result' => 'ORDER DATA KEY ERROR',
656 'data' => wp_unslash( $_REQUEST ),
657 );
658 usces_save_order_acting_error( $log );
659 usces_log( 'digitalcheck conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
660 header( 'Content-Type: text/plain; charset=Shift_JIS' );
661 die( "9\r\n" );
662 }
663
664 if ( isset( $data['CVS'] ) ) { /* �
665 �金 */
666 $res = usces_change_order_receipt( $order_id, 'receipted' );
667 if ( false === $res ) {
668 $log = array(
669 'acting' => 'digitalcheck_conv',
670 'key' => $sid,
671 'result' => 'ORDER DATA UPDATE ERROR',
672 'data' => wp_unslash( $_REQUEST ),
673 );
674 usces_save_order_acting_error( $log );
675 usces_log( 'digitalcheck conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
676 header( 'Content-Type: text/plain; charset=Shift_JIS' );
677 die( "9\r\n" );
678 }
679
680 usces_action_acting_getpoint( $order_id );
681
682 } else { /* 取消 */
683 $res = usces_change_order_receipt( $order_id, 'noreceipt' );
684 if ( false === $res ) {
685 $log = array(
686 'acting' => 'digitalcheck_conv',
687 'key' => $sid,
688 'result' => 'ORDER DATA UPDATE ERROR',
689 'data' => wp_unslash( $_REQUEST ),
690 );
691 usces_save_order_acting_error( $log );
692 usces_log( 'digitalcheck conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
693 header( 'Content-Type: text/plain; charset=Shift_JIS' );
694 die( "9\r\n" );
695 }
696
697 usces_action_acting_getpoint( $order_id, false );
698 }
699
700 $usces->set_order_meta_value( 'acting_digitalcheck_conv', serialize( $data ), $order_id );
701
702 $dquery = $wpdb->prepare( "DELETE FROM $table_meta_name WHERE meta_key = %s", $sid );
703 $res = $wpdb->query( $dquery );
704
705 header( 'Content-Type: text/plain; charset=Shift_JIS' );
706 die( "0\r\n" );
707
708 } else {
709 if ( isset( $data['CVS'] ) && isset( $data['SHNO'] ) ) { /* 決済 */
710 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
711 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
712 $order_id = $wpdb->get_var( $query );
713 if ( $order_id ) {
714 $usces->set_order_meta_value( 'acting_digitalcheck_conv', serialize( $data ), $order_id );
715
716 } else {
717 $res = $usces->order_processing();
718 if ( 'ordercompletion' == $res ) {
719 $usces->set_order_meta_value( 'acting_digitalcheck_conv', serialize( $data ), $order_id );
720 $usces->set_order_meta_value( 'wc_trans_id', $sid, $order_id );
721 } else {
722 $log = array(
723 'acting' => 'digitalcheck_conv',
724 'key' => $sid,
725 'result' => 'ORDER DATA REGISTERED ERROR',
726 'data' => wp_unslash( $_REQUEST ),
727 );
728 usces_save_order_acting_error( $log );
729 usces_log( 'digitalcheck conv : order processing error', 'acting_transaction.log' );
730 }
731 }
732
733 header( 'Content-Type: text/plain; charset=Shift_JIS' );
734 die( "0\r\n" );
735
736 } elseif ( isset( $data['purchase'] ) ) {
737
738 } else {
739 $permalink_structure = get_option( 'permalink_structure' );
740 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
741 header( 'location: ' . USCES_CART_URL . $delim . 'acting=digitalcheck_conv&acting_return=1&SID=' . $sid );
742 exit;
743 }
744 }
745
746 /* mizuho card */
747 } elseif ( ( isset( $_GET['p_ver'] ) && '0200' == wp_unslash( $_GET['p_ver'] ) ) && ( isset( $_GET['bkcode'] ) && 'bg01' == wp_unslash( $_GET['bkcode'] ) ) ) {
748 usces_log( 'mizuho card : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
749 $stran = ( array_key_exists( 'stran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['stran'] ) : '';
750 $mbtran = ( array_key_exists( 'mbtran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['mbtran'] ) : '';
751 $rsltcd = ( array_key_exists( 'rsltcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltcd'] ) : '';
752 $rsltdcd = ( array_key_exists( 'rsltdcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltdcd'] ) : '';
753 $permalink_structure = get_option( 'permalink_structure' );
754 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
755 if ( '108' == substr( $rsltcd, 0, 3 ) || '208' == substr( $rsltcd, 0, 3 ) || '308' == substr( $rsltcd, 0, 3 ) ) { /* キャンセル */
756 header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
757 } elseif ( '109' == substr( $rsltcd, 0, 3 ) || '209' == substr( $rsltcd, 0, 3 ) || '309' == substr( $rsltcd, 0, 3 ) ) { /* エラー */
758 $log = array(
759 'acting' => 'mizuho_card',
760 'key' => $stran,
761 'result' => $rsltcd,
762 'data' => wp_unslash( $_GET ),
763 );
764 usces_save_order_acting_error( $log );
765 usces_log( 'mizuho card : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
766 header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=0&rsltdcd=' . $rsltdcd );
767 } else {
768 header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=1&stran=' . $stran . '&mbtran=' . $mbtran . '&rsltcd=' . $rsltcd );
769 }
770 die();
771
772 /* mizuho conv 提供対象外のため無効化。
773 } elseif ( ( isset( $_GET['p_ver'] ) && '0200' == wp_unslash( $_GET['p_ver'] ) ) && ( isset( $_GET['bkcode'] ) && ( 'cv01' == wp_unslash( $_GET['bkcode'] ) || 'cv02' == wp_unslash( $_GET['bkcode'] ) ) ) ) {
774 usces_log( 'mizuho conv : ' . print_r( $_GET, true ), 'acting_transaction.log' );
775 $stran = ( array_key_exists( 'stran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['stran'] ) : '';
776 $mbtran = ( array_key_exists( 'mbtran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['mbtran'] ) : '';
777 $bktrans = ( array_key_exists( 'bktrans', $_REQUEST ) ) ? wp_unslash( $_REQUEST['bktrans'] ) : '';
778 $tranid = ( array_key_exists( 'tranid', $_REQUEST ) ) ? wp_unslash( $_REQUEST['tranid'] ) : '';
779 $tdate = ( array_key_exists( 'tdate', $_REQUEST ) ) ? wp_unslash( $_REQUEST['tdate'] ) : '';
780 $rsltcd = ( array_key_exists( 'rsltcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltcd'] ) : '';
781 $permalink_structure = get_option( 'permalink_structure' );
782 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
783 if ( '' != $tdate ) { // �
784 �金通知
785 $data = array();
786 foreach ( $_REQUEST as $key => $value ) {
787 $data[ $key ] = $value;
788 }
789 if ( '0000000000000' == $rsltcd ) {
790 $table_name = $wpdb->prefix . 'usces_order';
791 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
792
793 $query = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'stran', $stran );
794 $order_id = $wpdb->get_var( $query );
795 if ( null == $order_id ) {
796 $log = array(
797 'acting' => 'mizuho_conv',
798 'key' => $stran,
799 'result' => 'ORDER DATA KEY ERROR',
800 'data' => wp_unslash( $_GET ),
801 );
802 usces_save_order_acting_error( $log );
803 usces_log( 'mizuho conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
804 } else {
805 $res = usces_change_order_receipt( $order_id, 'receipted' );
806 if ( false === $res ) {
807 $log = array(
808 'acting' => 'mizuho_conv',
809 'key' => $stran,
810 'result' => 'ORDER DATA UPDATE ERROR',
811 'data' => wp_unslash( $_GET ),
812 );
813 usces_save_order_acting_error( $log );
814 usces_log( 'mizuho conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
815
816 } else {
817 usces_action_acting_getpoint( $order_id );
818
819 $usces->set_order_meta_value( 'acting_mizuho_conv', serialize( $data ), $order_id );
820
821 $dquery = $wpdb->prepare( "DELETE FROM $table_meta_name WHERE meta_key = %s", $stran );
822 $res = $wpdb->query( $dquery );
823 }
824 }
825 } else {
826 usces_log( 'mizuho conv : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
827 }
828 } elseif ( '108' == substr( $rsltcd, 0, 3 ) || '208' == substr( $rsltcd, 0, 3 ) || '308' == substr( $rsltcd, 0, 3 ) ) { // キャンセル
829 header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
830 } elseif ( '109' == substr( $rsltcd, 0, 3 ) || '209' == substr( $rsltcd, 0, 3 ) || '309' == substr( $rsltcd, 0, 3 ) ) { // エラー
831 $log = array(
832 'acting' => 'mizuho_conv',
833 'key' => $stran,
834 'result' => $rsltcd,
835 'data' => wp_unslash( $_GET ),
836 );
837 usces_save_order_acting_error( $log );
838 usces_log( 'mizuho conv : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
839 header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=0' );
840 } else {
841 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 );
842 }
843 die();
844 */
845
846 /* AnotherLane credit */
847 } elseif ( isset( $_REQUEST['SiteId'] ) && isset( $_REQUEST['TransactionId'] ) && isset( $_REQUEST['Result'] ) ) {
848 $data = array();
849 foreach ( $_REQUEST as $key => $value ) {
850 $data[ $key ] = $value;
851 }
852
853 $acting_opts = $usces->options['acting_settings']['anotherlane'];
854 if ( ! isset( $_REQUEST['KickType'] ) && isset( $_REQUEST['TransactionId'] ) ) {
855 $permalink_structure = get_option( 'permalink_structure' );
856 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
857 if ( $acting_opts['siteid'] == wp_unslash( $_REQUEST['SiteId'] ) && 'NG' == wp_unslash( $_REQUEST['Result'] ) ) {
858 $log = array(
859 'acting' => 'anotherlane_card',
860 'key' => wp_unslash( $_REQUEST['TransactionId'] ),
861 'result' => wp_unslash( $_REQUEST['Result'] ),
862 'data' => wp_unslash( $_REQUEST ),
863 );
864 usces_save_order_acting_error( $log );
865 header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
866 exit;
867 } elseif ( $acting_opts['siteid'] == wp_unslash( $_REQUEST['SiteId'] ) && 'OK' == wp_unslash( $_REQUEST['Result'] ) ) {
868 header( 'location: ' . USCES_CART_URL . $delim . 'acting=anotherlane_card&acting_return=1' );
869 exit;
870 }
871 } elseif ( isset( $_REQUEST['KickType'] ) && $acting_opts['siteid'] == wp_unslash( $_GET['SiteId'] ) && 'OK' == wp_unslash( $_GET['Result'] ) ) {
872 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
873 $query = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'TransactionId', $data['TransactionId'] );
874 $order_id = $wpdb->get_var( $query );
875 if ( ! $order_id ) {
876 $res = $usces->order_processing();
877 if ( 'ordercompletion' == $res ) {
878 $usces->set_order_meta_value( 'wc_trans_id', $data['TransactionId'], $order_id );
879 usces_log( 'AnotherLane [OK] transaction : ' . $data['TransactionId'], 'acting_transaction.log' );
880 } else {
881 $log = array(
882 'acting' => 'anotherlane_card',
883 'key' => $data['TransactionId'],
884 'result' => 'ORDER DATA REGISTERED ERROR',
885 'data' => wp_unslash( $_GET ),
886 );
887 usces_save_order_acting_error( $log );
888 usces_log( 'AnotherLane order processing error : ' . print_r( $data, true ), 'acting_transaction.log' );
889 }
890 }
891 } else {
892 $log = array(
893 'acting' => 'anotherlane_card',
894 'key' => $data['TransactionId'],
895 'result' => $data['Result'],
896 'data' => wp_unslash( $_GET ),
897 );
898 usces_save_order_acting_error( $log );
899 }
900 exit;
901 }
902 }
903