PluginProbe
Welcart e-Commerce / 2.12.3
Welcart e-Commerce v2.12.3
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 1.4.13 All 291 releases
usc-e-shop / functions / hoock_func.php

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

1,007 lines 40.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 // 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 $acting_clientip = ( isset( $usces->options['acting_settings']['telecom']['clientip'] ) ) ? (string) $usces->options['acting_settings']['telecom']['clientip'] : '';
657 if ( '' === $acting_clientip || (string) wp_unslash( $_REQUEST['clientip'] ) !== $acting_clientip ) {
658 /* 設定済みクライアントIPと一致しない通知は正規のものではないため記録せず終了 */
659 die( 'SuccessOK' );
660 }
661 $data = array();
662 foreach ( $_REQUEST as $key => $value ) {
663 $data[ $key ] = $value;
664 }
665 if ( 'yes' === wp_unslash( $_REQUEST['rel'] ) && isset( $_REQUEST['option'] ) ) {
666 } else {
667 $log = array(
668 'acting' => 'telecom_card',
669 'key' => wp_unslash( $_REQUEST['option'] ),
670 'result' => wp_unslash( $_REQUEST['rel'] ),
671 'data' => wp_unslash( $_REQUEST ),
672 );
673 usces_save_order_acting_error( $log );
674 }
675 usces_log( 'telecom card : ' . print_r( $data, true ), 'acting_transaction.log' );
676 die( 'SuccessOK' );
677
678 /* digitalcheck card */
679 } elseif ( isset( $_REQUEST['SID'] ) && isset( $_REQUEST['FUKA'] ) && 'acting_digitalcheck_card' == substr( wp_unslash( $_REQUEST['FUKA'] ), 0, 24 ) ) {
680 if ( isset( $_GET['acting_return'] ) && isset( $_GET['acting'] ) && 'digitalcheck_card' === $_GET['acting'] ) {
681 return;
682 }
683
684 $data = array();
685 foreach ( $_REQUEST as $key => $value ) {
686 $data[ $key ] = $value;
687 }
688 $sid = ( isset( $data['SID'] ) ) ? $data['SID'] : '';
689
690 if ( isset( $data['SEQ'] ) ) {
691 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
692 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
693 $order_id = $wpdb->get_var( $query );
694 if ( ! $order_id ) {
695 $acting_opts = $usces->options['acting_settings']['digitalcheck'];
696 $ip_user_id = substr( $data['FUKA'], 24 );
697 if ( 'on' == $acting_opts['card_user_id'] && ! empty( $ip_user_id ) ) {
698 $usces->set_member_meta_value( 'digitalcheck_ip_user_id', $ip_user_id, $ip_user_id );
699 }
700
701 $res = $usces->order_processing();
702 if ( 'ordercompletion' == $res ) {
703 $order_id = $usces->cart->get_order_entry( 'ID' );
704 $usces->set_order_meta_value( 'acting_digitalcheck_card', serialize( $data ), $order_id );
705 $usces->set_order_meta_value( 'wc_trans_id', $sid, $order_id );
706 } else {
707 $log = array(
708 'acting' => 'digitalcheck_card',
709 'key' => $sid,
710 'result' => 'ORDER DATA REGISTERED ERROR',
711 'data' => wp_unslash( $_REQUEST ),
712 );
713 usces_save_order_acting_error( $log );
714 // usces_log( 'digitalcheck card : order processing error', 'acting_transaction.log' );
715 }
716 }
717
718 header( 'Content-Type: text/plain; charset=Shift_JIS' );
719 die( "0\r\n" );
720
721 } elseif ( isset( $data['purchase'] ) ) {
722 return;
723
724 } else {
725 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
726 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
727 $order_id = $wpdb->get_var( $query );
728 if ( $order_id ) {
729 header( 'Content-Type: text/plain; charset=Shift_JIS' );
730 die( "0\r\n" );
731 }
732 }
733
734 header( 'Content-Type: text/plain; charset=Shift_JIS' );
735 die( "0\r\n" );
736
737 /* digitalcheck conv */
738 } elseif ( isset( $_REQUEST['SID'] ) && isset( $_REQUEST['FUKA'] ) && 'acting_digitalcheck_conv' == substr( wp_unslash( $_REQUEST['FUKA'] ), 0, 24 ) ) {
739 if ( isset( $_GET['acting_return'] ) && isset( $_GET['acting'] ) && 'digitalcheck_conv' === $_GET['acting'] ) {
740 return;
741 }
742
743 $data = array();
744 foreach ( $_REQUEST as $key => $value ) {
745 $data[ $key ] = $value;
746 }
747 $sid = ( isset( $data['SID'] ) ) ? $data['SID'] : '';
748
749 if ( isset( $data['SEQ'] ) ) {
750 DIGITALCHECK_SETTLEMENT::get_instance()->acting_notice_ip_guard( $data );
751 $table_name = $wpdb->prefix . 'usces_order';
752 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
753 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
754 $order_id = $wpdb->get_var( $query );
755 if ( null == $order_id ) {
756 $log = array(
757 'acting' => 'digitalcheck_conv',
758 'key' => $sid,
759 'result' => 'ORDER DATA KEY ERROR',
760 'data' => wp_unslash( $_REQUEST ),
761 );
762 usces_save_order_acting_error( $log );
763 usces_log( 'digitalcheck conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
764 header( 'Content-Type: text/plain; charset=Shift_JIS' );
765 die( "9\r\n" );
766 }
767
768 if ( isset( $data['CVS'] ) ) { /* �
769 �金 */
770 $res = usces_change_order_receipt( $order_id, 'receipted' );
771 if ( false === $res ) {
772 $log = array(
773 'acting' => 'digitalcheck_conv',
774 'key' => $sid,
775 'result' => 'ORDER DATA UPDATE ERROR',
776 'data' => wp_unslash( $_REQUEST ),
777 );
778 usces_save_order_acting_error( $log );
779 usces_log( 'digitalcheck conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
780 header( 'Content-Type: text/plain; charset=Shift_JIS' );
781 die( "9\r\n" );
782 }
783
784 usces_action_acting_getpoint( $order_id );
785
786 } else { /* 取消 */
787 $res = usces_change_order_receipt( $order_id, 'noreceipt' );
788 if ( false === $res ) {
789 $log = array(
790 'acting' => 'digitalcheck_conv',
791 'key' => $sid,
792 'result' => 'ORDER DATA UPDATE ERROR',
793 'data' => wp_unslash( $_REQUEST ),
794 );
795 usces_save_order_acting_error( $log );
796 usces_log( 'digitalcheck conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
797 header( 'Content-Type: text/plain; charset=Shift_JIS' );
798 die( "9\r\n" );
799 }
800
801 usces_action_acting_getpoint( $order_id, false );
802 }
803
804 $usces->set_order_meta_value( 'acting_digitalcheck_conv', serialize( $data ), $order_id );
805
806 $dquery = $wpdb->prepare( "DELETE FROM $table_meta_name WHERE meta_key = %s", $sid );
807 $res = $wpdb->query( $dquery );
808
809 header( 'Content-Type: text/plain; charset=Shift_JIS' );
810 die( "0\r\n" );
811
812 } else {
813 if ( isset( $data['CVS'] ) && isset( $data['SHNO'] ) ) { /* 決済 */
814 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
815 $query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
816 $order_id = $wpdb->get_var( $query );
817 if ( $order_id ) {
818 $usces->set_order_meta_value( 'acting_digitalcheck_conv', serialize( $data ), $order_id );
819
820 } else {
821 $res = $usces->order_processing();
822 if ( 'ordercompletion' == $res ) {
823 $usces->set_order_meta_value( 'acting_digitalcheck_conv', serialize( $data ), $order_id );
824 $usces->set_order_meta_value( 'wc_trans_id', $sid, $order_id );
825 } else {
826 $log = array(
827 'acting' => 'digitalcheck_conv',
828 'key' => $sid,
829 'result' => 'ORDER DATA REGISTERED ERROR',
830 'data' => wp_unslash( $_REQUEST ),
831 );
832 usces_save_order_acting_error( $log );
833 usces_log( 'digitalcheck conv : order processing error', 'acting_transaction.log' );
834 }
835 }
836
837 header( 'Content-Type: text/plain; charset=Shift_JIS' );
838 die( "0\r\n" );
839
840 } elseif ( isset( $data['purchase'] ) ) {
841
842 } else {
843 $permalink_structure = get_option( 'permalink_structure' );
844 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
845 header( 'location: ' . USCES_CART_URL . $delim . 'acting=digitalcheck_conv&acting_return=1&SID=' . $sid );
846 exit;
847 }
848 }
849
850 /* mizuho card */
851 } elseif ( ( isset( $_GET['p_ver'] ) && '0200' == wp_unslash( $_GET['p_ver'] ) ) && ( isset( $_GET['bkcode'] ) && 'bg01' == wp_unslash( $_GET['bkcode'] ) ) ) {
852 usces_log( 'mizuho card : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
853 $stran = ( array_key_exists( 'stran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['stran'] ) : '';
854 $mbtran = ( array_key_exists( 'mbtran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['mbtran'] ) : '';
855 $rsltcd = ( array_key_exists( 'rsltcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltcd'] ) : '';
856 $rsltdcd = ( array_key_exists( 'rsltdcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltdcd'] ) : '';
857 $permalink_structure = get_option( 'permalink_structure' );
858 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
859 if ( '108' == substr( $rsltcd, 0, 3 ) || '208' == substr( $rsltcd, 0, 3 ) || '308' == substr( $rsltcd, 0, 3 ) ) { /* キャンセル */
860 header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
861 } elseif ( '109' == substr( $rsltcd, 0, 3 ) || '209' == substr( $rsltcd, 0, 3 ) || '309' == substr( $rsltcd, 0, 3 ) ) { /* エラー */
862 $log = array(
863 'acting' => 'mizuho_card',
864 'key' => $stran,
865 'result' => $rsltcd,
866 'data' => wp_unslash( $_GET ),
867 );
868 usces_save_order_acting_error( $log );
869 usces_log( 'mizuho card : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
870 header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=0&rsltdcd=' . $rsltdcd );
871 } else {
872 header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=1&stran=' . $stran . '&mbtran=' . $mbtran . '&rsltcd=' . $rsltcd );
873 }
874 die();
875
876 /* mizuho conv 提供対象外のため無効化。
877 } elseif ( ( isset( $_GET['p_ver'] ) && '0200' == wp_unslash( $_GET['p_ver'] ) ) && ( isset( $_GET['bkcode'] ) && ( 'cv01' == wp_unslash( $_GET['bkcode'] ) || 'cv02' == wp_unslash( $_GET['bkcode'] ) ) ) ) {
878 usces_log( 'mizuho conv : ' . print_r( $_GET, true ), 'acting_transaction.log' );
879 $stran = ( array_key_exists( 'stran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['stran'] ) : '';
880 $mbtran = ( array_key_exists( 'mbtran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['mbtran'] ) : '';
881 $bktrans = ( array_key_exists( 'bktrans', $_REQUEST ) ) ? wp_unslash( $_REQUEST['bktrans'] ) : '';
882 $tranid = ( array_key_exists( 'tranid', $_REQUEST ) ) ? wp_unslash( $_REQUEST['tranid'] ) : '';
883 $tdate = ( array_key_exists( 'tdate', $_REQUEST ) ) ? wp_unslash( $_REQUEST['tdate'] ) : '';
884 $rsltcd = ( array_key_exists( 'rsltcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltcd'] ) : '';
885 $permalink_structure = get_option( 'permalink_structure' );
886 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
887 if ( '' != $tdate ) { // �
888 �金通知
889 $data = array();
890 foreach ( $_REQUEST as $key => $value ) {
891 $data[ $key ] = $value;
892 }
893 if ( '0000000000000' == $rsltcd ) {
894 $table_name = $wpdb->prefix . 'usces_order';
895 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
896
897 $query = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'stran', $stran );
898 $order_id = $wpdb->get_var( $query );
899 if ( null == $order_id ) {
900 $log = array(
901 'acting' => 'mizuho_conv',
902 'key' => $stran,
903 'result' => 'ORDER DATA KEY ERROR',
904 'data' => wp_unslash( $_GET ),
905 );
906 usces_save_order_acting_error( $log );
907 usces_log( 'mizuho conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
908 } else {
909 $res = usces_change_order_receipt( $order_id, 'receipted' );
910 if ( false === $res ) {
911 $log = array(
912 'acting' => 'mizuho_conv',
913 'key' => $stran,
914 'result' => 'ORDER DATA UPDATE ERROR',
915 'data' => wp_unslash( $_GET ),
916 );
917 usces_save_order_acting_error( $log );
918 usces_log( 'mizuho conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
919
920 } else {
921 usces_action_acting_getpoint( $order_id );
922
923 $usces->set_order_meta_value( 'acting_mizuho_conv', serialize( $data ), $order_id );
924
925 $dquery = $wpdb->prepare( "DELETE FROM $table_meta_name WHERE meta_key = %s", $stran );
926 $res = $wpdb->query( $dquery );
927 }
928 }
929 } else {
930 usces_log( 'mizuho conv : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
931 }
932 } elseif ( '108' == substr( $rsltcd, 0, 3 ) || '208' == substr( $rsltcd, 0, 3 ) || '308' == substr( $rsltcd, 0, 3 ) ) { // キャンセル
933 header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
934 } elseif ( '109' == substr( $rsltcd, 0, 3 ) || '209' == substr( $rsltcd, 0, 3 ) || '309' == substr( $rsltcd, 0, 3 ) ) { // エラー
935 $log = array(
936 'acting' => 'mizuho_conv',
937 'key' => $stran,
938 'result' => $rsltcd,
939 'data' => wp_unslash( $_GET ),
940 );
941 usces_save_order_acting_error( $log );
942 usces_log( 'mizuho conv : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
943 header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=0' );
944 } else {
945 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 );
946 }
947 die();
948 */
949
950 /* AnotherLane credit */
951 } elseif ( isset( $_REQUEST['SiteId'] ) && isset( $_REQUEST['TransactionId'] ) && isset( $_REQUEST['Result'] ) ) {
952 $data = array();
953 foreach ( $_REQUEST as $key => $value ) {
954 $data[ $key ] = $value;
955 }
956
957 $acting_opts = $usces->options['acting_settings']['anotherlane'];
958 if ( ! isset( $_REQUEST['KickType'] ) && isset( $_REQUEST['TransactionId'] ) ) {
959 $permalink_structure = get_option( 'permalink_structure' );
960 $delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
961 if ( $acting_opts['siteid'] == wp_unslash( $_REQUEST['SiteId'] ) && 'NG' == wp_unslash( $_REQUEST['Result'] ) ) {
962 $log = array(
963 'acting' => 'anotherlane_card',
964 'key' => wp_unslash( $_REQUEST['TransactionId'] ),
965 'result' => wp_unslash( $_REQUEST['Result'] ),
966 'data' => wp_unslash( $_REQUEST ),
967 );
968 usces_save_order_acting_error( $log );
969 header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
970 exit;
971 } elseif ( $acting_opts['siteid'] == wp_unslash( $_REQUEST['SiteId'] ) && 'OK' == wp_unslash( $_REQUEST['Result'] ) ) {
972 header( 'location: ' . USCES_CART_URL . $delim . 'acting=anotherlane_card&acting_return=1' );
973 exit;
974 }
975 } elseif ( isset( $_REQUEST['KickType'] ) && $acting_opts['siteid'] == wp_unslash( $_GET['SiteId'] ) && 'OK' == wp_unslash( $_GET['Result'] ) ) {
976 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
977 $query = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'TransactionId', $data['TransactionId'] );
978 $order_id = $wpdb->get_var( $query );
979 if ( ! $order_id ) {
980 $res = $usces->order_processing();
981 if ( 'ordercompletion' == $res ) {
982 $usces->set_order_meta_value( 'wc_trans_id', $data['TransactionId'], $order_id );
983 usces_log( 'AnotherLane [OK] transaction : ' . $data['TransactionId'], 'acting_transaction.log' );
984 } else {
985 $log = array(
986 'acting' => 'anotherlane_card',
987 'key' => $data['TransactionId'],
988 'result' => 'ORDER DATA REGISTERED ERROR',
989 'data' => wp_unslash( $_GET ),
990 );
991 usces_save_order_acting_error( $log );
992 usces_log( 'AnotherLane order processing error : ' . print_r( $data, true ), 'acting_transaction.log' );
993 }
994 }
995 } else {
996 $log = array(
997 'acting' => 'anotherlane_card',
998 'key' => $data['TransactionId'],
999 'result' => $data['Result'],
1000 'data' => wp_unslash( $_GET ),
1001 );
1002 usces_save_order_acting_error( $log );
1003 }
1004 exit;
1005 }
1006 }
1007