Jump to content

Webgains Order Confirmation PayPal module


Pete Nice

Recommended Posts

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 by Pete Nice (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...