case 'failed': case 'expired': case 'voided': $orders_status_id = $paypal->get_config('PAYPAL_ORDER_STATUS_REJECTED_ID'); break; case 'pending': case 'reversed': case 'created': $orders_status_id = $paypal->get_config('PAYPAL_ORDER_STATUS_PENDING_ID'); break; case 'refunded': $orders_status_id = $paypal->get_config('PAYPAL_ORDER_STATUS_REFUNDED_ID'); break; case 'processed': case 'completed': case 'canceled-reversal': $orders_status_id = $paypal->get_config('PAYPAL_ORDER_STATUS_SUCCESS_ID'); break; } if ($orders_status_id == '' || $orders_status_id < 0) { $orders_status_id = $check['orders_status']; } $paypal->update_order('PayPal IPN', $orders_status_id, $check['orders_id']); $sql_data_array = array('orders_id' => $check['orders_id'], 'transaction_id' => $request['txn_id'], 'payment_status' => strtolower($request['payment_status'])); xtc_db_perform(TABLE_PAYPAL_IPN, $sql_data_array); } } } else { header("HTTP/1.0 404 Not Found"); header("Status: 404 Not Found"); }
$Id$ modified eCommerce Shopsoftware http://www.modified-shop.org Copyright (c) 2009 - 2013 [www.modified-shop.org] ----------------------------------------------------------------------------------------- Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ chdir('../../'); include 'includes/application_top.php'; // include needed functions require_once DIR_FS_INC . 'get_external_content.inc.php'; // include needed classes require_once DIR_FS_EXTERNAL . 'paypal/classes/PayPalPayment.php'; $request_json = get_external_content('php://input', 3, false); $request = json_decode($request_json, true); $check_query = xtc_db_query("SELECT p.orders_id,\n o.orders_status\n FROM " . TABLE_PAYPAL_PAYMENT . " p\n JOIN " . TABLE_ORDERS . " o\n ON o.orders_id = p.orders_id\n WHERE p.payment_id = '" . xtc_db_input($request['resource']['parent_payment']) . "'"); if (xtc_db_num_rows($check_query) > 0) { $check = xtc_db_fetch_array($check_query); $paypal = new PayPalPayment('paypal'); $orders_status_id = $paypal->get_config($request['event_type']); if ($orders_status_id < 0) { $orders_status_id = $check['orders_status']; } $paypal->update_order($request['summary'], $orders_status_id, $check['orders_id']); } else { // order is missing header("HTTP/1.0 404 Not Found"); header("Status: 404 Not Found"); }