Pete Nice Posted May 18, 2014 Share Posted May 18, 2014 (edited) Hi, I'm just upgrading my site up to 1.5.6.2 and I've got an issue with my Webgains tracking in the PayPal module. I have an override for the OrderConfirmationController.php which works with my Braintree module - but the PayPal order confirmation seems to be ignoring this. Any ideas how I can get this to work with the PayPal module? class OrderConfirmationControllerCore extends FrontController { public $php_self = 'order-confirmation'; public $ssl = true; public $id_cart; public $id_module; public $id_order; public $reference; public $secure_key; public $wgOrderValue;# total order value in the currency your program runs in (please do not include currency symbol) public $wgOrderReference; public $wgEventID=xxxx; # this identify's the commission type (in account under Program Setup (commission types)) public $wgComment; #optional field public $wgMultiple=1; public $wgItems; public $wgCustomerID= '';# please do not use without contacting us first public $wgProductID= '';# please do not use without contacting us first public $wgSLang = 'php';# string, used to identify the programming language of your online systems. Needed because url_encoding differs between platforms. public $wgLang = 'en_GB';# string, used to identify the human language of the transaction public $wgPin = xxxx;# pin number provided by webgains (in account under Program Setup (program settings -> technical setup)) public $wgProgramID = xxxx; # int, used to identify you to webgains systems public $wgVoucherCode; #string, used to store the voucher code used for transaction public $wgCurrency = 'GBP'; #only the following are valid: AUD,CAD,CHF,CZK,DKK,EUR,GBP,HKD,HUF,JPY,NOK,NZD,PLN,SEK,SGD,SKK,USD public $wgVersion = '1.2'; public $wgSubDomain="track"; public $wgCheckString; public $wgCheckSum; public $wgQueryString; public $wgUri; public $theCart; public $total_products; /** * Initialize order confirmation controller * @see FrontController::init() */ public function init() { parent::init(); $this->id_cart = (int)(Tools::getValue('id_cart', 0)); $this->theCart = new Cart($this->id_cart); $this->total_products = $this->theCart->getOrderTotal(false, Cart::BOTH_WITHOUT_SHIPPING); $is_guest = false; /* check if the cart has been made by a Guest customer, for redirect link */ if (Cart::isGuestCartByCartId($this->id_cart)) { $is_guest = true; $redirectLink = 'index.php?controller=guest-tracking'; } else $redirectLink = 'index.php?controller=history'; $this->id_module = (int)(Tools::getValue('id_module', 0)); $this->id_order = Order::getOrderByCartId((int)($this->id_cart)); $this->secure_key = Tools::getValue('key', false); $order = new Order((int)($this->id_order)); if ($is_guest) { $customer = new Customer((int)$order->id_customer); $redirectLink .= '&id_order='.$order->reference.'&email='.urlencode($customer->email); } if (!$this->id_order || !$this->id_module || !$this->secure_key || empty($this->secure_key)) Tools::redirect($redirectLink.(Tools::isSubmit('slowvalidation') ? '&slowvalidation' : '')); $this->reference = $order->reference; if (!Validate::isLoadedObject($order) || $order->id_customer != $this->context->customer->id || $this->secure_key != $order->secure_key) Tools::redirect($redirectLink); $module = Module::getInstanceById((int)($this->id_module)); if ($order->payment != $module->displayName) Tools::redirect($redirectLink); } /** * Assign template vars related to page content * @see FrontController::initContent() */ public function initContent() { parent::initContent(); $this->context->smarty->assign(array( 'is_guest' => $this->context->customer->is_guest, 'HOOK_ORDER_CONFIRMATION' => $this->displayOrderConfirmation(), 'HOOK_PAYMENT_RETURN' => $this->displayPaymentReturn() )); if ($this->context->customer->is_guest) { $this->context->smarty->assign(array( 'id_order' => $this->id_order, 'reference_order' => $this->reference, 'id_order_formatted' => sprintf('#%06d', $this->id_order), 'email' => $this->context->customer->email )); /* If guest we clear the cookie for security reason */ $this->context->customer->mylogout(); } $this->wgCheckString = "wgver=".$this->wgVersion."&wgsubdomain=".$this->wgSubDomain."&wglang=".$this->wgLang."&wgslang=".$this->wgSLang."&wgprogramid=".$this->wgProgramID."&wgeventid=".$this->wgEventID."&wgvalue=".$this->total_products."&wgorderreference=".$this->id_order."&wgcomment=".$this->wgComment."&wgmultiple=".$this->wgMultiple."&wgitems=".$this->wgItems."&wgcustomerid=".$this->wgCustomerID."&wgproductid=".$this->wgProductID."&wgvouchercode=".$this->wgVoucerCode.""; $this->wgCheckSum = md5($this->wgPin.$this->wgCheckString); # make checksum $this->wgQueryString = $this->wgCheckString."&wgchecksum=".$this->wgCheckSum."&wgCurrency=".$this->wgCurrency; self::$smarty->assign('scUri',$this->wgUri); self::$smarty->assign('scSub',$this->wgSubDomain); self::$smarty->assign('scQuery',$this->wgQueryString); $this->setTemplate(_PS_THEME_DIR_.'order-confirmation.tpl'); } /** * Execute the hook displayPaymentReturn */ public function displayPaymentReturn() { if (Validate::isUnsignedId($this->id_order) && Validate::isUnsignedId($this->id_module)) { $params = array(); $order = new Order($this->id_order); $currency = new Currency($order->id_currency); if (Validate::isLoadedObject($order)) { $params['total_to_pay'] = $order->getOrdersTotalPaid(); $params['currency'] = $currency->sign; $params['objOrder'] = $order; $params['currencyObj'] = $currency; return Hook::exec('displayPaymentReturn', $params, $this->id_module); } } return false; } /** * Execute the hook displayOrderConfirmation */ public function displayOrderConfirmation() { if (Validate::isUnsignedId($this->id_order)) { $params = array(); $order = new Order($this->id_order); $currency = new Currency($order->id_currency); if (Validate::isLoadedObject($order)) { $params['total_to_pay'] = $order->getOrdersTotalPaid(); $params['currency'] = $currency->sign; $params['objOrder'] = $order; $params['currencyObj'] = $currency; return Hook::exec('displayOrderConfirmation', $params); } } return false; } } Edited May 18, 2014 by Pete Nice (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now