/** * handleRequest * * @return void */ public function handleRequest() { if (\XLite\Core\Auth::getInstance()->isLogged() && 'logoff' !== \XLite\Core\Request::getInstance()->{static::PARAM_ACTION}) { $this->setReturnURL($this->buildURL()); } parent::handleRequest(); }
/** * handleRequest * * @return void */ public function handleRequest() { if (!$this->isLogged() && !$this->isRegisterMode()) { $this->setReturnURL($this->buildURL('login')); } parent::handleRequest(); }
/** * Handles the request. * * @return void */ public function handleRequest() { if (!$this->isValidRequest()) { $this->display404(); $this->doRedirect(); } parent::handleRequest(); }
/** * Handles the request. Parses the request variables if necessary. Attempts to call the specified action function * * @return void */ public function handleRequest() { $request = \XLite\Core\Request::getInstance(); foreach ($this->getAJAXParamsTranslationTable() as $ajaxParam => $requestParam) { if (!empty($request->{$ajaxParam})) { $request->{$requestParam} = $request->{$ajaxParam}; $this->set($requestParam, $request->{$ajaxParam}); } } parent::handleRequest(); }
/** * Handles the request. * Parses the request variables if necessary. Attempts to call the specified action function * * @return void */ public function handleRequest() { \XLite\Core\Session::getInstance()->iframePaymentData = null; // security check on return page $orderId = \XLite\Core\Request::getInstance()->order_id; if ($orderId != \XLite\Core\Session::getInstance()->last_order_id && $orderId != $this->getCart()->getOrderId()) { $this->redirect($this->buildURL('cart')); } else { parent::handleRequest(); } }
/** * Handles the request. * Parses the request variables if necessary. Attempts to call the specified action function * * @return void */ public function handleRequest() { if (in_array(\XLite\Core\Request::getInstance()->action, $this->restActions)) { $this->currentRepo = $this->getRepo(\XLite\Core\Request::getInstance()->name, \XLite\Core\Request::getInstance()->action); if (!$this->currentRepo) { $this->data['status'] = self::STATUS_INAPPLY; } else { $this->data['status'] = self::STATUS_SUCCESS; } } parent::handleRequest(); }
/** * Handles the request * * @return void */ public function handleRequest() { parent::handleRequest(); if (isset(\XLite\Core\Request::getInstance()->pageId)) { $ordersSearch = \XLite\Core\Session::getInstance()->orders_search; if (!is_array($ordersSearch)) { $ordersSearch = \XLite\Model\Order::getDefaultSearchConditions(); } $ordersSearch['pageId'] = intval(\XLite\Core\Request::getInstance()->pageId); \XLite\Core\Session::getInstance()->orders_search = $ordersSearch; } }
/** * Handles the request * * @return void */ public function handleRequest() { \XLite\Core\Request::getInstance()->action = 'callback'; parent::handleRequest(); }
/** * Go to cart view if cart is empty * * @return void */ public function handleRequest() { // check if it's IPN callback if (\XLite\Core\Request::getInstance()->isipn == 'Y') { $this->handleIPNCallback(); exit; } if (!$this->getCart()->checkCart()) { $this->setHardRedirect(); $this->setReturnURL($this->buildURL('cart')); $this->doRedirect(); } if (\XLite\Core\Request::getInstance()->isPost()) { switch (\XLite\Core\Request::getInstance()->mode) { case 'check_address': $orefid = \XLite\Core\Request::getInstance()->orefid; $addr_set = false; $res = AMZ::func_amazon_pa_request('GetOrderReferenceDetails', array('AmazonOrderReferenceId' => $orefid)); if ($res) { $res = AMZ::func_array_path($res, 'GetOrderReferenceDetailsResponse/GetOrderReferenceDetailsResult/OrderReferenceDetails/Destination/PhysicalDestination/0/#'); if ($res) { $this->checkAnonymousProfile(); $tmp = array(); $tmp['zipcode'] = $res['PostalCode'][0]['#']; $tmp['country_code'] = $res['CountryCode'][0]['#']; $tmp['city'] = $res['City'][0]['#']; if ($_st = \XLite\Core\Database::getRepo('XLite\\Model\\State')->findOneByCountryAndCode($tmp['country_code'], $res['StateOrRegion'][0]['#'])) { $tmp['state_id'] = $_st->getStateId(); } elseif (!empty($res['StateOrRegion'][0]['#'])) { $tmp['custom_state'] = $res['StateOrRegion'][0]['#']; } $this->updateAddress($tmp); $addr_set = true; } } if (!$addr_set) { echo 'error'; AMZ::func_amazon_pa_error("check address error: orefid={$orefid} reply=" . print_r($res, true)); } else { echo 'ok'; } break; case 'place_order': $amazon_pa_orefid = \XLite\Core\Request::getInstance()->amazon_pa_orefid; $cart_total_cost = $this->getCart()->getTotal(); $customer_notes = \XLite\Core\Request::getInstance()->notes; $payment_method_text = 'Pay with Amazon'; $this->getCart()->assignOrderNumber(); // SetOrderReferenceDetails $res = AMZ::func_amazon_pa_request('SetOrderReferenceDetails', array('AmazonOrderReferenceId' => $amazon_pa_orefid, 'OrderReferenceAttributes.OrderTotal.Amount' => $cart_total_cost, 'OrderReferenceAttributes.OrderTotal.CurrencyCode' => \XLite\Core\Config::getInstance()->Amazon->PayWithAmazon->amazon_pa_currency, 'OrderReferenceAttributes.PlatformId' => AMZ::AMAZON_PA_PLATFORM_ID, 'OrderReferenceAttributes.SellerNote' => '', 'OrderReferenceAttributes.SellerOrderAttributes.SellerOrderId' => $this->getCart()->getOrderNumber())); // ConfirmOrderReference $res = AMZ::func_amazon_pa_request('ConfirmOrderReference', array('AmazonOrderReferenceId' => $amazon_pa_orefid)); $this->checkAnonymousProfile(); // get more order details using GetOrderReferenceDetails after confirmation $res = AMZ::func_amazon_pa_request('GetOrderReferenceDetails', array('AmazonOrderReferenceId' => $amazon_pa_orefid)); if ($res) { $dest = AMZ::func_array_path($res, 'GetOrderReferenceDetailsResponse/GetOrderReferenceDetailsResult/OrderReferenceDetails/Destination/PhysicalDestination/0/#'); $buyer = AMZ::func_array_path($res, 'GetOrderReferenceDetailsResponse/GetOrderReferenceDetailsResult/OrderReferenceDetails/Buyer/0/#'); if ($dest) { //address $tmp = array(); $tmp['zipcode'] = $dest['PostalCode'][0]['#']; $tmp['country_code'] = $dest['CountryCode'][0]['#']; $tmp['city'] = $dest['City'][0]['#']; if ($_st = \XLite\Core\Database::getRepo('XLite\\Model\\State')->findOneByCountryAndCode($tmp['country_code'], $dest['StateOrRegion'][0]['#'])) { $tmp['state_id'] = $_st->getStateId(); } elseif (!empty($dest['StateOrRegion'][0]['#'])) { $tmp['custom_state'] = $dest['StateOrRegion'][0]['#']; } if (!empty($dest['Phone'][0]['#'])) { $tmp['phone'] = $dest['Phone'][0]['#']; } $tmp['street'] = $dest['AddressLine1'][0]['#']; if (isset($dest['AddressLine2'])) { $tmp['street'] .= ' ' . $dest['AddressLine2'][0]['#']; } list($tmp['firstname'], $tmp['lastname']) = explode(' ', $dest['Name'][0]['#'], 2); if (empty($tmp['lastname'])) { // XC does not support single word customer name $tmp['lastname'] = $tmp['firstname']; } $this->updateAddress($tmp); // email, name if ($buyer) { $uinfo = array(); $uinfo['email'] = $buyer['Email'][0]['#']; // list($uinfo['firstname'], $uinfo['lastname']) = explode(' ', $buyer['Name'][0]['#'], 2); // update email $profile = $this->getCartProfile(); $profile->setLogin($uinfo['email']); $this->getCart()->setProfile($profile); } } } $orderids = $this->placeAmazonOrder($payment_method_text); AMZ::func_amazon_pa_save_order_extra($orderids, 'AmazonOrderReferenceId', $amazon_pa_orefid); $order_status = \XLite\Model\Order\Status\Payment::STATUS_CANCELED; $amz_authorized = false; $amz_authorization_id = ''; $amz_captured = false; $amz_capture_id = ''; $advinfo = array(); // Authorize $_tmp = array('AmazonOrderReferenceId' => $amazon_pa_orefid, 'AuthorizationAmount.Amount' => $cart_total_cost, 'AuthorizationAmount.CurrencyCode' => \XLite\Core\Config::getInstance()->Amazon->PayWithAmazon->amazon_pa_currency, 'AuthorizationReferenceId' => 'auth_' . $orderids, 'SellerAuthorizationNote' => ''); if (\XLite\Core\Config::getInstance()->Amazon->PayWithAmazon->amazon_pa_capture_mode == 'C') { // capture immediate $_tmp['CaptureNow'] = 'true'; } if (\XLite\Core\Config::getInstance()->Amazon->PayWithAmazon->amazon_pa_mode == 'test' && !empty($customer_notes)) { // simulate decline if ($customer_notes == 'decline') { $_tmp['SellerAuthorizationNote'] = urlencode('{"SandboxSimulation":{"State":"Declined","ReasonCode":"AmazonRejected"}}'); } } if (\XLite\Core\Config::getInstance()->Amazon->PayWithAmazon->amazon_pa_sync_mode == 'S') { // sync request (returns only "open" or "declined" status, no "pending") $_tmp['TransactionTimeout'] = '0'; } $res = AMZ::func_amazon_pa_request('Authorize', $_tmp); if ($res) { $_auth_details = AMZ::func_array_path($res, 'AuthorizeResponse/AuthorizeResult/AuthorizationDetails/0/#'); if ($_auth_details) { $amz_authorization_id = $_auth_details['AmazonAuthorizationId'][0]['#']; $_reply_status = $_auth_details['AuthorizationStatus'][0]['#']['State'][0]['#']; $advinfo[] = "AmazonAuthorizationId: {$amz_authorization_id}"; $advinfo[] = "AuthorizationStatus: {$_reply_status}"; AMZ::func_amazon_pa_save_order_extra($orderids, 'amazon_pa_auth_id', $amz_authorization_id); AMZ::func_amazon_pa_save_order_extra($orderids, 'amazon_pa_auth_status', $_reply_status); if ($_reply_status == 'Declined') { $order_status = \XLite\Model\Order\Status\Payment::STATUS_DECLINED; } if ($_reply_status == 'Pending') { $order_status = \XLite\Model\Order\Status\Payment::STATUS_QUEUED; // wait for IPN message } if ($_reply_status == 'Open') { $amz_authorized = true; } if ($_reply_status == 'Closed') { // capture now mode if (\XLite\Core\Config::getInstance()->Amazon->PayWithAmazon->amazon_pa_capture_mode == 'C') { $amz_authorized = true; $amz_captured = true; $_capt_id = $_auth_details['IdList'][0]['#']['member'][0]['#']; AMZ::func_amazon_pa_save_order_extra($orderids, 'amazon_pa_capture_id', $_capt_id); } } } else { // log error AMZ::func_amazon_pa_error('Unexpected authorize reply: res=' . print_r($res, true)); } } if ($amz_authorized) { if ($amz_captured) { // capture now mode, order is actually processed here $order_status = \XLite\Model\Order\Status\Payment::STATUS_PAID; } else { // pre-auth $order_status = \XLite\Model\Order\Status\Payment::STATUS_AUTHORIZED; } } // change order status AMZ::func_change_order_status($orderids, $order_status, join("\n", $advinfo)); // show invoice or error message $this->orderRedirect($orderids, $order_status); break; } // switch mode } // post parent::handleRequest(); }
/** * Handles the request. * Parses the request variables if necessary. Attempts to call the specified action function * * @return void */ public function handleRequest() { \XLite\Core\Request::getInstance()->category_id = intval(\XLite\Core\Request::getInstance()->category_id); parent::handleRequest(); }
/** * Handles the request. * Parses the request variables if necessary. Attempts to call the specified action function * * @return void */ public function handleRequest() { parent::handleRequest(); $this->headerStatus(404); }