$this->language->load('payment/sagepay');
$this->data['button_confirm'] = $this->language->get('button_confirm');
if ($this->config->get('sagepay_test') == 'live') {
$this->data['action'] = 'https://live.sagepay.com/gateway/service/vspform-register.vsp';
} elseif ($this->config->get('sagepay_test') == 'test') {
$this->data['action'] = 'https://test.sagepay.com/gateway/service/vspform-register.vsp';
} elseif ($this->config->get('sagepay_test') == 'sim') {
$this->data['action'] = 'https://test.sagepay.com/simulator/vspformgateway.asp';
}
$vendor = $this->config->get('sagepay_vendor');
$password = $this->config->get('sagepay_password');
$this->load->model('checkout/order');
$order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
$data = array();
$data['VendorTxCode'] = $this->session->data['order_id'];
$data['ReferrerID'] = 'E511AF91-E4A0-42DE-80B0-09C981A3FB61';
$data['Amount'] = $this->currency->format($order_info['total'], $order_info['currency_code'], $order_info['currency_value'], false);
$data['Currency'] = $order_info['currency_code'];
$data['Description'] = sprintf($this->language->get('text_description'), date($this->language->get('date_format_short')), $this->session->data['order_id']);
$data['SuccessURL'] = str_replace('&', '&', $this->url->link('payment/sagepay/success', 'order_id=' . $this->session->data['order_id']));
$data['FailureURL'] = str_replace('&', '&', $this->url->link('checkout/checkout', '', 'SSL'));
$data['CustomerName'] = html_entity_decode($order_info['payment_firstname'] . ' ' . $order_info['payment_lastname'], ENT_QUOTES, 'UTF-8');
$data['SendEMail'] = '1';
$data['CustomerEMail'] = $order_info['email'];
$data['VendorEMail'] = $this->config->get('config_email');
$data['BillingFirstnames'] = $order_info['payment_firstname'];
$data['BillingSurname'] = $order_info['payment_lastname'];
$data['BillingAddress1'] = $order_info['payment_address_1'];
if ($order_info['payment_address_2']) {
$data['BillingAddress2'] = $order_info['payment_address_2'];
}
$data['BillingCity'] = $order_info['payment_city'];
$data['BillingPostCode'] = $order_info['payment_postcode'];
$data['BillingCountry'] = $order_info['payment_iso_code_2'];
if ($order_info['payment_iso_code_2'] == 'US') {
$data['BillingState'] = $order_info['payment_zone_code'];
}
$data['BillingPhone'] = $order_info['telephone'];
if ($this->cart->hasShipping()) {
$data['DeliveryFirstnames'] = $order_info['shipping_firstname'];
$data['DeliverySurname'] = $order_info['shipping_lastname'];
$data['DeliveryAddress1'] = $order_info['shipping_address_1'];
if ($order_info['shipping_address_2']) {
$data['DeliveryAddress2'] = $order_info['shipping_address_2'];
}
$data['DeliveryCity'] = $order_info['shipping_city'];
$data['DeliveryPostCode'] = $order_info['shipping_postcode'];
$data['DeliveryCountry'] = $order_info['shipping_iso_code_2'];
if ($order_info['shipping_iso_code_2'] == 'US') {
$data['DeliveryState'] = $order_info['shipping_zone_code'];
}
$data['DeliveryPhone'] = $order_info['telephone'];
} else {
$data['DeliveryFirstnames'] = $order_info['payment_firstname'];
$data['DeliverySurname'] = $order_info['payment_lastname'];
$data['DeliveryAddress1'] = $order_info['payment_address_1'];
if ($order_info['payment_address_2']) {
$data['DeliveryAddress2'] = $order_info['payment_address_2'];
}
$data['DeliveryCity'] = $order_info['payment_city'];
$data['DeliveryPostCode'] = $order_info['payment_postcode'];
$data['DeliveryCountry'] = $order_info['payment_iso_code_2'];
if ($order_info['payment_iso_code_2'] == 'US') {
$data['DeliveryState'] = $order_info['payment_zone_code'];
}
$data['DeliveryPhone'] = $order_info['telephone'];
}
$data['AllowGiftAid'] = '0';
if (!$this->config->get('sagepay_transaction')) {
$data['ApplyAVSCV2'] = '0';
}
$data['Apply3DSecure'] = '0';
$this->data['transaction'] = $this->config->get('sagepay_transaction');
$this->data['vendor'] = $vendor;
$crypt_data = array();
foreach($data as $key => $value){
$crypt_data[] = $key . '=' . $value;
}
$this->data['crypt'] = base64_encode($this->simpleXor(utf8_decode(implode('&', $crypt_data)), $password));
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/sagepay.tpl')) {
$this->template = $this->config->get('config_template') . '/template/payment/sagepay.tpl';
} else {
$this->template = 'default/template/payment/sagepay.tpl';
}
$this->render();