// allow script to receive status updates $idata = array('order_id' => $order_id, 'type' => 'S', 'data' => TIME); db_query("REPLACE INTO ?:order_data ?e", $idata); if (!empty($_REQUEST['CreditRequestID'])) { $data = array('order_id' => $order_id, 'type' => 'E', 'data' => $_REQUEST['CreditRequestID']); } db_query("REPLACE INTO ?:order_data ?e", $data); $customer_info = array('b_firstname' => 'Forename', 'b_lastname' => 'Surname', 'b_address' => 'Street', 'b_city' => 'Town', 'b_zipcode' => 'Postcode', 'email' => 'EmailAddress', 'b_phone' => 'PhoneNumber'); $new_customer_info = array(); foreach ($customer_info as $k => $v) { if (isset($_REQUEST['Consumer'][$v])) { $new_customer_info[$k] = $_REQUEST['Consumer'][$v]; } } if (!empty($new_customer_info)) { fn_update_order_customer_info($new_customer_info, $order_id); } fn_finish_payment($order_id, $pp_response); } } elseif ($mode == 'cancel') { if (!isset($_SESSION['order_id'])) { die('Access denied'); } fn_set_notification('W', __('important'), __('text_transaction_cancelled')); fn_order_placement_routines('route', $_SESSION['order_id'], false); } elseif ($mode == 'decline') { if (!isset($_SESSION['order_id'])) { die('Access denied'); } fn_set_notification('E', '', __('text_order_placed_error')); fn_order_placement_routines('route', $_SESSION['order_id'], false);
protected function updateOrderData($order_data, $buyer, $delivery, $status, $substatus = '') { $ym_data = $order_data['yandex_market']; $new_data = array(); // Buyer if (!empty($buyer['email'])) { $new_data['email'] = $buyer['email']; } if (!empty($buyer['firstName'])) { $new_data['firstname'] = $new_data['b_firstname'] = $new_data['s_firstname'] = $buyer['firstName']; } if (!empty($buyer['lastName'])) { $new_data['lastname'] = $new_data['b_lastname'] = $new_data['s_lastname'] = $buyer['lastName']; } if (!empty($buyer['phone'])) { $new_data['phone'] = $new_data['b_phone'] = $new_data['s_phone'] = $buyer['phone']; } // Delivery $addr = $this->parseDelivery($delivery); if (!empty($addr['recipient'])) { @(list($firstname, $lastname) = explode(' ', $addr['recipient'], 2)); $new_data['s_firstname'] = $firstname; $new_data['s_lastname'] = $lastname; } // Update order data $ym_data['address'] = $addr; if (!empty($status)) { $ym_data['status'] = $status; } if (!empty($substatus)) { $ym_data['substatus'] = $substatus; } fn_yandex_market_update_order_ym_data($order_data['order_id'], $ym_data); fn_update_order_customer_info($new_data, $order_data['order_id']); }