PluginProbe
Welcart e-Commerce / 2.12.4
Welcart e-Commerce v2.12.4
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
← All changes | functions/hoock_func.php +157 -90 2.11.322.12.4 View file →
@@ -6,8 +6,12 @@
6 6 */
7 7
8 8 add_action( 'usces_construct', 'usces_action_acting_construct', 10 );
9 9 add_action( 'usces_after_cart_instant', 'usces_action_acting_transaction', 10 );
10 +// A3 (Layer 3 / uscesid removal): restore the shopper's cart/entry for settlement notifications
11 +// from the transaction-keyed DB store, uscesid-independently. Must run after usces_session_start()
12 +// (constructor end) and before usces_main()'s `new usces_cart()`, hence the usces_main hook.
13 +add_action( 'usces_main', 'usces_restore_acting_session_from_store', 1 );
10 14
11 15 /**
12 16 * Settlement Result Notification Processing.
13 17 * usces_construct
@@ -19,10 +23,10 @@
19 23 $rand = wp_unslash( $_POST['X-S_TORIHIKI_NO'] );
20 24 $datas = array();
21 25 /* 決済成功の時のみセッション復帰 */
22 26 if ( 0 == $_POST['X-ERRLEVEL'] ) {
23 - $datas = usces_get_order_acting_data( $rand );
24 - $_GET['uscesid'] = $datas['sesid'];
27 + $datas = usces_get_order_acting_data( $rand );
28 + // A3: uscesid ブリッジは廃止。セッション復元は usces_restore_acting_session_from_store()(usces_main)で DBストアから実施.
25 29 if ( empty( $datas['sesid'] ) ) {
26 30 /* sesidが無い場合はファイルログのみ */
27 31 usces_log( 'remise construct : error1', 'acting_transaction.log' );
28 32 } else {
@@ -33,11 +37,11 @@
33 37
34 38 /* digitalcheck_conv */
35 39 } elseif ( isset( $_POST['SID'] ) && isset( $_POST['FUKA'] ) && isset( $_POST['CVS'] ) ) {
36 40
37 - $sid = wp_unslash( $_POST['SID'] );
38 - $datas = usces_get_order_acting_data( $sid );
39 - $_GET['uscesid'] = $datas['sesid'];
41 + $sid = wp_unslash( $_POST['SID'] );
42 + $datas = usces_get_order_acting_data( $sid );
43 + // A3: uscesid ブリッジは廃止。セッション復元は usces_restore_acting_session_from_store()(usces_main)で DBストアから実施.
40 44 if ( empty( $datas['sesid'] ) ) {
41 45 $log = array(
42 46 'acting' => 'digitalcheck',
43 47 'key' => $sid,
@@ -52,11 +56,11 @@
52 56
53 57 /* AnotherLane */
54 58 } elseif ( isset( $_REQUEST['SiteId'] ) && isset( $_REQUEST['rand'] ) ) {
55 59
56 - $rand = wp_unslash( $_REQUEST['rand'] );
57 - $datas = usces_get_order_acting_data( $rand );
58 - $_GET['uscesid'] = $datas['sesid'];
60 + $rand = wp_unslash( $_REQUEST['rand'] );
61 + $datas = usces_get_order_acting_data( $rand );
62 + // A3: uscesid ブリッジは廃止。セッション復元は usces_restore_acting_session_from_store()(usces_main)で DBストアから実施.
59 63 if ( empty( $datas['sesid'] ) ) {
60 64 $log = array(
61 65 'acting' => 'anotherlane',
62 66 'key' => $rand,
@@ -71,11 +75,13 @@
71 75
72 76 /* Veritrans */
73 77 } elseif ( isset( $_POST['orderId'] ) && isset( $_POST['merchantEncryptionKey'] ) ) {
74 78
75 - $orderid = wp_unslash( $_POST['orderId'] );
76 - $datas = usces_get_order_acting_data( $orderid );
77 - $_GET['uscesid'] = $datas['sesid'];
79 + $orderid = wp_unslash( $_POST['orderId'] );
80 + $datas = usces_get_order_acting_data( $orderid );
81 + // A3: uscesid ブリッジは廃止($_GET['uscesid'] を読む処理は撤廃済みのため代入は無意味だった)。
82 + // ベリトランス Air-Web は選択可能な決済から除外済み(settlement.class.php)のため、DBストアからの
83 + // セッション復元(usces_restore_acting_session_from_store)の対象外とする.
78 84 if ( empty( $datas['sesid'] ) ) {
79 85 $log = array(
80 86 'acting' => 'veritrans',
81 87 'key' => $orderid,
@@ -90,8 +96,121 @@
90 96 }
91 97 }
92 98
93 99 /**
100 + * 決済通知(サーバー間・ブラウザ Cookie 無し)で、確定時に保存したカート/エントリを DBストア
101 + * (usces_access)から $_SESSION へ復元する。uscesid セッション橋渡しの置き換え(Layer 3 / A3)。
102 + *
103 + * usces_session_start()(コンストラクタ末尾)より後・usces_main() の `new usces_cart()` より前に
104 + * 実行する必要があるため usces_main フックに登録する(construct では直後の @session_start() に
105 + * 上書きされてしまうため)。復元後、usces_cart 生成 → usces_after_cart_instant
106 + * (usces_action_acting_transaction)が $usces->cart->get_cart() を参照して処理する。
107 + *
108 + * 対象はサーバー間通知でセッション復元が要る remise / digitalcheck_conv / AnotherLane。
109 + *
110 + * usces_main
111 + */
112 +function usces_restore_acting_session_from_store() {
113 + $rand = '';
114 + if ( isset( $_POST['X-TRANID'] ) && ! isset( $_POST['OPT'] ) && isset( $_POST['X-S_TORIHIKI_NO'] ) ) {
115 + /* remise: 決済成功時(X-ERRLEVEL == 0)のみ復元 */
116 + if ( isset( $_POST['X-ERRLEVEL'] ) && 0 == $_POST['X-ERRLEVEL'] ) {
117 + $rand = wp_unslash( $_POST['X-S_TORIHIKI_NO'] );
118 + }
119 + } elseif ( isset( $_POST['SID'] ) && isset( $_POST['FUKA'] ) && isset( $_POST['CVS'] ) ) {
120 + /* digitalcheck_conv */
121 + $rand = wp_unslash( $_POST['SID'] );
122 + } elseif ( isset( $_REQUEST['SiteId'] ) && isset( $_REQUEST['rand'] ) ) {
123 + /* AnotherLane: 通知は $_REQUEST(GET/POST 両様)。旧 usces_action_acting_construct の
124 + * $_GET['uscesid']=$datas['sesid'] ブリッジの置き換え。KickType サーバー通知で order_processing()
125 + * がカートを読む前にここで DBストアから復元する。 */
126 + $rand = wp_unslash( $_REQUEST['rand'] );
127 + }
128 +
129 + if ( '' === $rand ) {
130 + return;
131 + }
132 +
133 + $datas = usces_get_order_acting_data( $rand );
134 + if ( empty( $datas ) || empty( $datas['order_data'] ) ) {
135 + return;
136 + }
137 +
138 + $order_data = wel_safe_maybe_unserialize( $datas['order_data'] );
139 + if ( ! is_array( $order_data ) ) {
140 + return;
141 + }
142 +
143 + if ( isset( $order_data['cart'] ) && is_array( $order_data['cart'] ) ) {
144 + /*
145 + * DBストア(usces_access)の cart は save_order_acting_data() が保存した
146 + * $usces->cart->get_cart() の「出力形式」= [ i => array( serial, post_id, sku, options,
147 + * price, unit_price, quantity, advance ) ](インデックス配列)。
148 + * 一方 $_SESSION['usces_cart'] の「内部形式」は
149 + * [ '<serial>' => array( 'price', 'unit_price', 'quant', 'advance' ) ](serial をキーにしたマップ)で、
150 + * usces_cart::get_cart()/key_unserialize() はこの内部形式を前提に読む
151 + * (キー=serial/数量キーは 'quant')。そのまま代入すると整数キー 0 が serial として
152 + * unserialize され false → array_keys(false) で致命的エラーになるため、内部形式へ変換して復元する。
153 + */
154 + $session_cart = array();
155 + foreach ( $order_data['cart'] as $item ) {
156 + if ( ! is_array( $item ) || ! isset( $item['serial'] ) ) {
157 + continue;
158 + }
159 + $session_cart[ $item['serial'] ] = array(
160 + 'price' => isset( $item['price'] ) ? $item['price'] : 0,
161 + 'unit_price' => isset( $item['unit_price'] ) ? $item['unit_price'] : 0,
162 + 'quant' => isset( $item['quantity'] ) ? $item['quantity'] : 0,
163 + 'advance' => isset( $item['advance'] ) ? $item['advance'] : '',
164 + );
165 + }
166 + $_SESSION['usces_cart'] = $session_cart;
167 + }
168 + if ( isset( $order_data['entry'] ) ) {
169 + $_SESSION['usces_entry'] = $order_data['entry'];
170 + }
171 + usces_log( 'acting session restored from DB store (uscesid-independent) : ' . $rand, 'acting_transaction.log' );
172 +}
173 +
174 +/**
175 + * 決済結果通知の送信元IPが許可リストに含まれるか判定する。
176 + *
177 + * @param string $remote_addr Source IP address of the notification.
178 + * @param array|string $allowed Allowed IP addresses / CIDR ranges.
179 + * @return bool True when the source IP is allowed.
180 + */
181 +function usces_acting_notice_ip_allowed( $remote_addr, $allowed ) {
182 + if ( empty( $remote_addr ) || empty( $allowed ) ) {
183 + return false;
184 + }
185 + $remote_long = ip2long( $remote_addr );
186 + if ( false === $remote_long ) {
187 + return false;
188 + }
189 + foreach ( (array) $allowed as $entry ) {
190 + $entry = trim( (string) $entry );
191 + if ( '' === $entry ) {
192 + continue;
193 + }
194 + if ( false !== strpos( $entry, '/' ) ) {
195 + list( $subnet, $bits ) = explode( '/', $entry, 2 );
196 + $subnet_long = ip2long( $subnet );
197 + $bits = (int) $bits;
198 + if ( false === $subnet_long || $bits < 1 || 32 < $bits ) {
199 + continue;
200 + }
201 + $mask = ( 0xFFFFFFFF << ( 32 - $bits ) ) & 0xFFFFFFFF;
202 + if ( ( $remote_long & $mask ) === ( $subnet_long & $mask ) ) {
203 + return true;
204 + }
205 + } elseif ( ip2long( $entry ) === $remote_long ) {
206 + return true;
207 + }
208 + }
209 + return false;
210 +}
211 +
212 +/**
94 213 * Settlement Result Notification Processing.
95 214 * usces_after_cart_instant
96 215 */
97 216 function usces_action_acting_transaction() {
@@ -189,8 +308,9 @@
189 308 $data = array();
190 309 foreach ( $_POST as $key => $value ) {
191 310 $data[ $key ] = mb_convert_encoding( $value, 'UTF-8', 'SJIS' );
192 311 }
312 + REMISE_SETTLEMENT::get_instance()->acting_notice_ip_guard( $data );
193 313
194 314 $table_name = $wpdb->prefix . 'usces_order';
195 315 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
196 316
@@ -250,8 +370,9 @@
250 370 case 'CPL_PRE': /* コンビニペーパーレス決済識別コード */
251 371 break;
252 372
253 373 case 'CPL': /* 入金確定 */
374 + JPAYMENT_SETTLEMENT::get_instance()->acting_notice_ip_guard();
254 375 $acting = wp_unslash( $_REQUEST['acting'] );
255 376 $data = array();
256 377 foreach ( $_GET as $key => $value ) {
257 378 $data[ $key ] = esc_sql( $value );
@@ -270,9 +391,9 @@
270 391 'result' => 'ORDER DATA KEY ERROR',
271 392 'data' => $data,
272 393 );
273 394 usces_save_order_acting_error( $log );
274 - usces_log( 'jpayment conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
395 + usces_log( 'ROBOT PAYMENT conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
275 396 die( 'error1' );
276 397 }
277 398
278 399 $res = usces_change_order_receipt( $order_id, 'receipted' );
@@ -283,9 +404,9 @@
283 404 'result' => 'ORDER DATA UPDATE ERROR',
284 405 'data' => $data,
285 406 );
286 407 usces_save_order_acting_error( $log );
287 - usces_log( 'jpayment conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
408 + usces_log( 'ROBOT PAYMENT conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
288 409 die( 'error2' );
289 410 }
290 411
291 412 $res = $usces->set_order_meta_value( 'acting_' . $acting, serialize( $data ), $order_id );
@@ -296,9 +417,9 @@
296 417 'result' => 'ORDER META DATA UPDATE ERROR',
297 418 'data' => $data,
298 419 );
299 420 usces_save_order_acting_error( $log );
300 - usces_log( 'jpayment conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
421 + usces_log( 'ROBOT PAYMENT conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
301 422 die( 'error3' );
302 423 }
303 424
304 425 usces_action_acting_getpoint( $order_id );
@@ -307,8 +428,9 @@
307 428 die( 'ROBOT PAYMENT' );
308 429 break;
309 430
310 431 case 'CVS_CAN': /* 入金取消 */
432 + JPAYMENT_SETTLEMENT::get_instance()->acting_notice_ip_guard();
311 433 $acting = wp_unslash( $_REQUEST['acting'] );
312 434 $data = array();
313 435 foreach ( $_GET as $key => $value ) {
314 436 $data[ $key ] = esc_sql( $value );
@@ -327,9 +449,9 @@
327 449 'result' => 'ORDER DATA KEY ERROR',
328 450 'data' => $data,
329 451 );
330 452 usces_save_order_acting_error( $log );
331 - usces_log( 'jpayment conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
453 + usces_log( 'ROBOT PAYMENT conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
332 454 die( 'error1' );
333 455 }
334 456
335 457 $res = usces_change_order_receipt( $order_id, 'noreceipt' );
@@ -340,9 +462,9 @@
340 462 'result' => 'ORDER DATA UPDATE ERROR',
341 463 'data' => $data,
342 464 );
343 465 usces_save_order_acting_error( $log );
344 - usces_log( 'jpayment conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
466 + usces_log( 'ROBOT PAYMENT conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
345 467 die( 'error2' );
346 468 }
347 469
348 470 $res = $usces->set_order_meta_value( 'acting_' . $acting, serialize( $data ), $order_id );
@@ -353,9 +475,9 @@
353 475 'result' => 'ORDER META DATA UPDATE ERROR',
354 476 'data' => $data,
355 477 );
356 478 usces_save_order_acting_error( $log );
357 - usces_log( 'jpayment conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
479 + usces_log( 'ROBOT PAYMENT conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
358 480 die( 'error3' );
359 481 }
360 482
361 483 usces_action_acting_getpoint( $order_id, false );
@@ -371,8 +493,9 @@
371 493 case 'BANK': /* 受付完了 */
372 494 break;
373 495
374 496 case 'BAN_SAL': /* 入金完了 */
497 + JPAYMENT_SETTLEMENT::get_instance()->acting_notice_ip_guard();
375 498 if ( isset( $_GET['mf'] ) && '1' == wp_unslash( $_GET['mf'] ) ) { /* 入金マッチングの場合 */
376 499 $acting = wp_unslash( $_REQUEST['acting'] );
377 500 $data = array();
378 501 foreach ( $_GET as $key => $value ) {
@@ -392,9 +515,9 @@
392 515 'result' => 'ORDER DATA KEY ERROR',
393 516 'data' => $data,
394 517 );
395 518 usces_save_order_acting_error( $log );
396 - usces_log( 'jpayment bank error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
519 + usces_log( 'ROBOT PAYMENT bank error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
397 520 die( 'error1' );
398 521 }
399 522
400 523 $res = usces_change_order_receipt( $order_id, 'receipted' );
@@ -405,9 +528,9 @@
405 528 'result' => 'ORDER DATA UPDATE ERROR',
406 529 'data' => $data,
407 530 );
408 531 usces_save_order_acting_error( $log );
409 - usces_log( 'jpayment bank error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
532 + usces_log( 'ROBOT PAYMENT bank error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
410 533 die( 'error2' );
411 534 }
412 535
413 536 $res = $usces->set_order_meta_value( 'acting_' . $acting, serialize( $data ), $order_id );
@@ -418,9 +541,9 @@
418 541 'result' => 'ORDER META DATA UPDATE ERROR',
419 542 'data' => $data,
420 543 );
421 544 usces_save_order_acting_error( $log );
422 - usces_log( 'jpayment bank error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
545 + usces_log( 'ROBOT PAYMENT bank error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
423 546 die( 'error3' );
424 547 }
425 548
426 549 usces_action_acting_getpoint( $order_id );
@@ -454,73 +577,9 @@
454 577 usces_log( 'PayPal IPN transaction : ' . wp_unslash( $_REQUEST['txn_id'] ), 'acting_transaction.log' );
455 578 }
456 579 die( 'PayPal' );
457 580
458 - /* PayPal ipn (WPP) */
459 - } elseif ( isset( $_REQUEST['ipn_track_id'] ) ) {
460 - $data = array();
461 - foreach ( $_REQUEST as $key => $value ) {
462 - $data[ $key ] = $value;
463 - }
464 - usces_log( 'paypal ipn : ' . print_r( $data, true ), 'acting_transaction.log' );
465 -
466 - /* PayPal Webpayment Plus */
467 - if ( isset( $_POST['txn_type'] ) && 'pro_hosted' == wp_unslash( $_POST['txn_type'] ) ) {
468 - $acting_opts = $usces->options['acting_settings']['paypal_wpp'];
469 - $key = isset( $_POST['custom'] ) ? wp_unslash( $_POST['custom'] ) : '';
470 - usces_log( serialize( $data ), 'db', 'paypal_ipn', $key );
471 - $ipn_res = usces_paypal_ipn_check( $acting_opts['host_url'] );
472 - if ( true === $ipn_res[0] ) {
473 - $order_id = $ipn_res['order_id'];
474 - usces_restore_order_acting_data( $order_id );
475 - $res = $usces->order_processing();
476 - if ( 'ordercompletion' == $res ) {
477 - usces_log( 'PayPal Webpayment Plus : Payment confirmation', 'acting_transaction.log' );
478 - $usces->cart->crear_cart();
479 - } else {
480 - $log = array(
481 - 'acting' => 'paypal_wpp',
482 - 'key' => $key,
483 - 'result' => 'ORDER DATA REGISTERED ERROR',
484 - 'data' => wp_unslash( $_POST ),
485 - );
486 - usces_save_order_acting_error( $log );
487 - usces_log( 'PayPal Webpayment Plus : Error', 'acting_transaction.log' );
488 - }
489 - } else {
490 - $log = array(
491 - 'acting' => 'paypal_wpp',
492 - 'key' => $key,
493 - 'result' => 'PAYPAL IPN CHECK ERROR',
494 - 'data' => $ipn_res,
495 - );
496 - usces_save_order_acting_error( $log );
497 - }
498 - exit;
499 -
500 - } else {
501 - $table_name = $wpdb->prefix . 'usces_order';
502 - $table_meta_name = $wpdb->prefix . 'usces_order_meta';
503 - if ( isset( $_REQUEST['txn_id'] ) || isset( $_REQUEST['recurring_payment_id'] ) ) {
504 - if ( ( isset( $_REQUEST['payment_status'] ) && 'Completed' == wp_unslash( $_REQUEST['payment_status'] ) ) ||
505 - ( isset( $_REQUEST['profile_status'] ) && 'Active' == wp_unslash( $_REQUEST['profile_status'] ) ) ) {
506 - $settlement_id = ( isset( $_REQUEST['recurring_payment_id'] ) ) ? wp_unslash( $_REQUEST['recurring_payment_id'] ) : wp_unslash( $_REQUEST['txn_id'] );
507 - $query = $wpdb->prepare( "SELECT ID, order_status FROM $table_name INNER JOIN $table_meta_name ON ID = order_id WHERE meta_key = %s AND meta_value = %s", 'settlement_id', $settlement_id );
508 - $order_data = $wpdb->get_row( $query, ARRAY_A );
509 - if ( $order_data ) {
510 - if ( $usces->is_status( 'pending', $order_data['order_status'] ) ) {
511 - $order_status = str_replace( 'pending', 'receipted', $order_data['order_status'] );
512 - $query = $wpdb->prepare( "UPDATE $table_name SET order_status = %s WHERE ID = %d", $order_status, $order_data['ID'] );
513 - $res = $wpdb->query( $query );
514 - }
515 - do_action( 'usces_action_paypal_ipn_status_completed', $order_data );
516 - }
517 - }
518 - }
519 - die( 'PayPal' );
520 - }
521 -
522 - /* telecom edy */
581 + /* telecom edy 提供対象外のため無効化. CVE-2026-19887(PHP Object Injection)対応.
523 582 } elseif ( isset( $_REQUEST['clientip'] ) && isset( $_REQUEST['sendid'] ) && ( isset( $_REQUEST['acting'] ) && 'telecom_edy' == $_REQUEST['acting'] ) ) {
524 583 $data = array();
525 584 foreach ( $_REQUEST as $key => $value ) {
526 585 $data[ $key ] = $value;
@@ -535,9 +594,9 @@
535 594 if ( 'yes' === wp_unslash( $_REQUEST['rel'] ) && isset( $_REQUEST['option'] ) ) {
536 595 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
537 596 $mquery = $wpdb->prepare( "SELECT order_id, meta_value FROM $table_meta_name WHERE meta_key = %s", wp_unslash( $_REQUEST['option'] ) );
538 597 $mvalue = $wpdb->get_row( $mquery, ARRAY_A );
539 - $value = unserialize( $mvalue['meta_value'] );
598 + $value = wel_safe_maybe_unserialize( $mvalue['meta_value'] );
540 599 $_SESSION['usces_cart'] = $value['usces_cart'];
541 600 $_SESSION['usces_entry'] = $value['usces_entry'];
542 601 $_SESSION['usces_member'] = $value['usces_member'];
543 602 $res = $usces->order_processing();
@@ -565,11 +624,17 @@
565 624 usces_save_order_acting_error( $log );
566 625 usces_log( 'telecom edy - Error 2 : ' . print_r( $data, true ), 'acting_transaction.log' );
567 626 }
568 627 die( 'SuccessOK' );
628 + */
569 629
570 630 /* telecom credit */
571 631 } elseif ( isset( $_REQUEST['clientip'] ) && isset( $_REQUEST['sendid'] ) && isset( $_REQUEST['rel'] ) ) {
632 + $acting_clientip = ( isset( $usces->options['acting_settings']['telecom']['clientip'] ) ) ? (string) $usces->options['acting_settings']['telecom']['clientip'] : '';
633 + if ( '' === $acting_clientip || (string) wp_unslash( $_REQUEST['clientip'] ) !== $acting_clientip ) {
634 + /* 設定済みクライアントIPと一致しない通知は正規のものではないため記録せず終了 */
635 + die( 'SuccessOK' );
636 + }
572 637 $data = array();
573 638 foreach ( $_REQUEST as $key => $value ) {
574 639 $data[ $key ] = $value;
575 640 }
@@ -657,8 +722,9 @@
657 722 }
658 723 $sid = ( isset( $data['SID'] ) ) ? $data['SID'] : '';
659 724
660 725 if ( isset( $data['SEQ'] ) ) {
726 + DIGITALCHECK_SETTLEMENT::get_instance()->acting_notice_ip_guard( $data );
661 727 $table_name = $wpdb->prefix . 'usces_order';
662 728 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
663 729 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
664 730 $order_id = $wpdb->get_var( $query );
@@ -781,9 +847,9 @@
781 847 header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=1&stran=' . $stran . '&mbtran=' . $mbtran . '&rsltcd=' . $rsltcd );
782 848 }
783 849 die();
784 850
785 - /* mizuho conv */
851 + /* mizuho conv 提供対象外のため無効化。
786 852 } elseif ( ( isset( $_GET['p_ver'] ) && '0200' == wp_unslash( $_GET['p_ver'] ) ) && ( isset( $_GET['bkcode'] ) && ( 'cv01' == wp_unslash( $_GET['bkcode'] ) || 'cv02' == wp_unslash( $_GET['bkcode'] ) ) ) ) {
787 853 usces_log( 'mizuho conv : ' . print_r( $_GET, true ), 'acting_transaction.log' );
788 854 $stran = ( array_key_exists( 'stran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['stran'] ) : '';
789 855 $mbtran = ( array_key_exists( 'mbtran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['mbtran'] ) : '';
@@ -792,9 +858,9 @@
792 858 $tdate = ( array_key_exists( 'tdate', $_REQUEST ) ) ? wp_unslash( $_REQUEST['tdate'] ) : '';
793 859 $rsltcd = ( array_key_exists( 'rsltcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltcd'] ) : '';
794 860 $permalink_structure = get_option( 'permalink_structure' );
795 861 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
796 - if ( '' != $tdate ) { /* 入金通知 */
862 + if ( '' != $tdate ) { // 入金通知
797 863 $data = array();
798 864 foreach ( $_REQUEST as $key => $value ) {
799 865 $data[ $key ] = $value;
800 866 }
@@ -836,11 +902,11 @@
836 902 }
837 903 } else {
838 904 usces_log( 'mizuho conv : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
839 905 }
840 - } elseif ( '108' == substr( $rsltcd, 0, 3 ) || '208' == substr( $rsltcd, 0, 3 ) || '308' == substr( $rsltcd, 0, 3 ) ) { /* キャンセル */
906 + } elseif ( '108' == substr( $rsltcd, 0, 3 ) || '208' == substr( $rsltcd, 0, 3 ) || '308' == substr( $rsltcd, 0, 3 ) ) { // キャンセル
841 907 header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
842 - } elseif ( '109' == substr( $rsltcd, 0, 3 ) || '209' == substr( $rsltcd, 0, 3 ) || '309' == substr( $rsltcd, 0, 3 ) ) { /* エラー */
908 + } elseif ( '109' == substr( $rsltcd, 0, 3 ) || '209' == substr( $rsltcd, 0, 3 ) || '309' == substr( $rsltcd, 0, 3 ) ) { // エラー
843 909 $log = array(
844 910 'acting' => 'mizuho_conv',
845 911 'key' => $stran,
846 912 'result' => $rsltcd,
@@ -852,8 +918,9 @@
852 918 } else {
853 919 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 );
854 920 }
855 921 die();
922 + */
856 923
857 924 /* AnotherLane credit */
858 925 } elseif ( isset( $_REQUEST['SiteId'] ) && isset( $_REQUEST['TransactionId'] ) && isset( $_REQUEST['Result'] ) ) {
859 926 $data = array();