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

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