function fn_process_epayph_ipn($order_id, $data) { $order_info = fn_get_order_info($order_id); if (!empty($order_info) && !empty($data['txn_id']) && (empty($order_info['payment_info']['txn_id']) || $data['payment_status'] != 'Completed' || $data['payment_status'] == 'Completed' && $order_info['payment_info']['txn_id'] !== $data['txn_id'])) { //Can't check refund transactions. if (isset($data['txn_type']) && !fn_validate_epayph_order_info($data, $order_info)) { return false; } $pp_settings = fn_get_epayph_settings(); $data['payment_status'] = strtolower($data['payment_status']); fn_clear_cart($cart, true); $customer_auth = fn_fill_auth(array(), array(), false, 'C'); fn_form_cart($order_id, $cart, $customer_auth); if ($pp_settings['override_customer_info'] == 'Y') { $cart['user_data'] = fn_epayph_get_customer_info($data); } $cart['order_id'] = $order_id; $cart['payment_info'] = $order_info['payment_info']; $cart['payment_info']['protection_eligibility'] = !empty($data['protection_eligibility']) ? $data['protection_eligibility'] : ''; $cart['payment_id'] = $order_info['payment_id']; if (!empty($data['memo'])) { //Save customer notes $cart['notes'] = $data['memo']; } if ($data['payment_status'] == 'Completed') { //save uniq ipn id to avoid double ipn processing $cart['payment_info']['txn_id'] = $data['txn_id']; } fn_calculate_cart_content($cart, $customer_auth); list($order_id, ) = fn_update_order($cart, $order_id); if ($order_id) { $send_notification = $order_info['status'] == $pp_settings['pp_statuses'][$data['payment_status']] ? false : array(); $short_order_data = fn_get_order_short_info($order_id); fn_change_order_status($order_id, $pp_settings['pp_statuses'][$data['payment_status']], $short_order_data['status'], $send_notification); } return true; } }
<?php use Tygh\Registry; use Tygh\Settings; if (!defined('BOOTSTRAP')) { die('Access denied'); } if ($_SERVER['REQUEST_METHOD'] == 'POST') { if ($mode == 'update' && $_REQUEST['addon'] == 'epayph' && (!empty($_REQUEST['pp_settings']) || !empty($_REQUEST['epayph_logo_image_data']))) { $pp_settings = isset($_REQUEST['pp_settings']) ? $_REQUEST['pp_settings'] : array(); fn_update_epayph_settings($pp_settings); } } if ($mode == 'update') { if ($_REQUEST['addon'] == 'epayph') { Registry::get('view')->assign('pp_settings', fn_get_epayph_settings()); } }