function fn_paypal_complete_checkout($token, $processor_data, $order_info) { $pp_response['order_status'] = 'F'; $reason_text = ''; $paypal_checkout_details = fn_paypal_get_express_checkout_details($processor_data, $token); if (fn_paypal_ack_success($paypal_checkout_details)) { $result = fn_paypal_do_express_checkout($processor_data, $paypal_checkout_details, $order_info); if (fn_paypal_ack_success($result)) { $status = $result['PAYMENTINFO_0_PAYMENTSTATUS']; $pp_response['transaction_id'] = $result['PAYMENTINFO_0_TRANSACTIONID']; if ($status == 'Completed' || $status == 'Processed') { $pp_response['order_status'] = 'O'; $reason_text = 'Accepted, awaiting ipn for processing '; } elseif ($status == 'Pending') { $pp_response['order_status'] = 'O'; $reason_text = 'Pending '; } else { $reason_text = 'Declined '; } $reason_text = fn_paypal_process_add_fields($result, $reason_text); if (!empty($result['L_ERRORCODE0'])) { $reason_text .= ', ' . fn_paypal_get_error($result); } } else { $reason_text = fn_paypal_get_error($result); } } else { $reason_text = fn_paypal_get_error($paypal_checkout_details); } $pp_response['reason_text'] = $reason_text; if (fn_check_payment_script($processor_data['processor_script'], $order_info['order_id'])) { unset($_SESSION['pp_express_details']); fn_finish_payment($order_info['order_id'], $pp_response); fn_order_placement_routines('route', $order_info['order_id'], false); } }
$order_id = !empty($_REQUEST['order_id']) ? $_REQUEST['order_id'] : 0; $token = !empty($_REQUEST['token']) ? $_REQUEST['token'] : 0; $payment_id = db_get_field("SELECT payment_id FROM ?:orders WHERE order_id = ?i", $order_id); $processor_data = fn_get_payment_method_data($payment_id); $processor_data['processor_script'] = 'paypal_express.php'; $order_info = fn_get_order_info($order_id); fn_pp_save_mode($order_info); fn_paypal_complete_checkout($token, $processor_data, $order_info); } } $mode = !empty($mode) ? $mode : (!empty($_REQUEST['mode']) ? $_REQUEST['mode'] : ''); if ($mode == 'express_return') { $token = $_REQUEST['token']; $payment_id = $_REQUEST['payment_id']; $processor_data = fn_get_payment_method_data($payment_id); $paypal_checkout_details = fn_paypal_get_express_checkout_details($processor_data, $token); if (fn_paypal_ack_success($paypal_checkout_details)) { fn_paypal_user_login($paypal_checkout_details); $paypal_express_details = array('token' => $token, 'payment_id' => $payment_id); $_SESSION['pp_express_details'] = $paypal_express_details; $_SESSION['cart']['payment_id'] = $payment_id; } else { fn_paypal_get_error($paypal_checkout_details); } fn_order_placement_routines('checkout_redirect'); } elseif ($mode == 'place_order' && !empty($_SESSION['pp_express_details'])) { fn_pp_save_mode($order_info); $token = $_SESSION['pp_express_details']['token']; fn_paypal_complete_checkout($token, $processor_data, $order_info); } elseif ($mode == 'place_order' || $mode == 'express' || $mode == 'repay') { if (!defined('BOOTSTRAP')) {