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

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