<?php cw_lock("antibot"); $sess_id = cw_session_id(); cw_session_start($sess_id); if ($addons['image_verification']) { require_once $app_main_dir . "/addons/image_verification/antibot_image.php"; } function test() { cw_unlock("antibot"); } register_shutdown_function("test");
function cw_session_read() { global $APP_SESS_ID; cw_session_id($APP_SESS_ID); }
function cw_payment_check_results($payment_data) { $log_payment_failure = false; if (!empty($payment_data['sess_id'])) { if (cw_check_webinput() == "err") { $log_payment_failure = true; if ($payment_data['code'] == 1) { $__transaction_status = "successful"; $payment_data['code'] = 3; } elseif ($payment_data['code'] == 3) { $__transaction_status = "queued"; } else { $__transaction_status = "declined"; } $payment_data['billmes'] = "Gateway reported of {$__transaction_status} transaction but it's response came from the IP that is not specified in the list of valid IPs: " . cw_get_valid_ip($_SERVER['REMOTE_ADDR']) . "\n-- response ----\n" . $payment_data['billmes']; } $sessurl = APP_SESSION_NAME . "=" . $payment_data['sess_id'] . "&"; cw_session_id($payment_data['sess_id']); } else { $sessurl = ''; } $cart =& cw_session_register('cart', array()); $secure_oid =& cw_session_register("secure_oid"); $bill_error = $reason = ''; $fatal = false; if (!empty($payment_data)) { $saved_payment_data = $payment_data; } else { $saved_payment_data = false; } if (empty($secure_oid)) { $bill_error = cw_get_langvar_by_name("lbl_error_ccprocessor_error"); $payment_data['billmes'] = "error: your order was lost"; $reason = $payment_data['billmes']; $fatal = true; } elseif (empty($cart) && empty($payment_data['skey'])) { $bill_error = cw_get_langvar_by_name("lbl_error_ccprocessor_error"); $payment_data['billmes'] = "Error: Your cart was lost"; $reason = $payment_data['billmes']; $fatal = true; } elseif ($payment_data['code'] == 3) { $reason = $payment_data['billmes']; } elseif ($payment_data['code'] == 2) { $bill_error = cw_get_langvar_by_name("lbl_error_ccprocessor_error"); $reason = $payment_data['billmes']; } elseif ($payment_data['code'] == 1) { if (isset($payment_return) && !empty($payment_return) && $payment_data['code'] != 2) { if (isset($payment_return['total'])) { $sum = 0; foreach ($secure_oid as $_oid) { $o = cw_order_data($_oid); $sum += $o['order']['total']; } if ($sum != doubleval($payment_return['total'])) { $payment_data['code'] = 2; $payment_data['billmes'] .= "; Payment amount mismatch."; } } if ($payment_data['code'] != 2 && isset($payment_return['currency']) && isset($payment_return['_currency']) && !empty($payment_return['_currency']) && $payment_return['currency'] != $payment_return['_currency']) { $payment_data['code'] = 2; $payment_data['billmes'] .= "; Payment amount mismatch."; } } if ($payment_data['code'] == 1) { $payment_data['billmes'] = "Approved: " . $payment_data['billmes']; } else { $bill_error = cw_get_langvar_by_name("lbl_error_ccprocessor_error"); $reason = $payment_data['billmes']; $payment_data['billmes'] = "Declined: " . $payment_data['billmes']; } } else { # unavailable $bill_error = cw_get_langvar_by_name("lbl_error_ccprocessor_unavailable"); $payment_data['billmes'] = "Error: Payment gateway is unavailable"; } if (!$fatal) { cw_load('doc'); $status_after_capture = cw_call('cw_payment_doc_status_after_capture', array($payment_data)); $order_status = $bill_error ? "F" : ($payment_data['code'] == 3 ? "Q" : $status_after_capture); if (in_array($order_status, array('P', 'Q', $status_after_capture)) && !empty($payment_data['is_preauth'])) { $order_status = 'A'; // Authorized } if ($payment_data['code'] == 1 || $payment_data['code'] == 3) { if (empty($payment_data['skey'])) { $cart = array(); } } $advinfo = array(); $advinfo[] = "Reason: " . $payment_data['billmes']; if ($payment_data['avsmes']) { $advinfo[] = "AVS info: " . $payment_data['avsmes']; } if ($payment_data['cvvmes']) { $advinfo[] = "CVV info: " . $payment_data['cvvmes']; } if (isset($cmpi_result)) { $advinfo[] = "3-D Secure Transaction:"; if (isset($cmpi_result['Enrolled'])) { $advinfo[] = " TransactionId: " . $cmpi_result['TransactionId']; $advinfo[] = " Enrolled: " . $cmpi_result['Enrolled']; } else { $advinfo[] = " PAResStatus: " . $cmpi_result['PAResStatus']; $advinfo[] = " PAResStatusDesc: " . $cmpi_result['PAResStatusDesc']; $advinfo[] = " CAVV: " . $cmpi_result['Cavv']; $advinfo[] = " SignatureVerification: " . $cmpi_result['SignatureVerification']; $advinfo[] = " Xid: " . $cmpi_result['Xid']; $advinfo[] = " EciFlag: " . $cmpi_result['EciFlag']; } if (!empty($cmpi_result['ErrorNo'])) { $advinfo[] = " ErrorNo: " . $cmpi_result['ErrorNo']; } if (!empty($cmpi_result['ErrorDesc'])) { $advinfo[] = " ErrorDesc: " . $cmpi_result['ErrorDesc']; } } cw_call('cw_doc_change_status', array($secure_oid, $order_status, join("\n", $advinfo))); } if (!empty($payment_data['extra_order_data'])) { foreach ($secure_oid as $oid) { cw_call('cw_doc_place_extras_data', array($oid, $payment_data['extra_order_data'])); } unset($payment_data['extra_order_data']); } cw_session_unregister("secure_oid"); cw_session_save(); return array('bill_error' => $bill_error, 'sessurl' => $sessurl, 'reason' => $reason, 'doc_ids' => $secure_oid); }