if (isset($this->request->get['crypt'])) {
$string = base64_decode(str_replace(' ', '+', $this->request->get['crypt']));
$password = $this->config->get('sagepay_password');
$output = utf8_encode($this->simpleXor($string, $password));
$data = $this->getToken($output);
if ($data && is_array($data)) {
$this->load->model('checkout/order');
$this->model_checkout_order->confirm($this->request->get['order_id'], $this->config->get('config_order_status_id'));
$message = '';
if (isset($data['VPSTxId'])) {
$message .= 'VPSTxId: ' . $data['VPSTxId'] . "\n";
}
if (isset($data['TxAuthNo'])) {
$message .= 'TxAuthNo: ' . $data['TxAuthNo'] . "\n";
}
if (isset($data['AVSCV2'])) {
$message .= 'AVSCV2: ' . $data['AVSCV2'] . "\n";
}
if (isset($data['AddressResult'])) {
$message .= 'AddressResult: ' . $data['AddressResult'] . "\n";
}
if (isset($data['PostCodeResult'])) {
$message .= 'PostCodeResult: ' . $data['PostCodeResult'] . "\n";
}
if (isset($data['CV2Result'])) {
$message .= 'CV2Result: ' . $data['CV2Result'] . "\n";
}
if (isset($data['3DSecureStatus'])) {
$message .= '3DSecureStatus: ' . $data['3DSecureStatus'] . "\n";
}
if (isset($data['CAVV'])) {
$message .= 'CAVV: ' . $data['CAVV'] . "\n";
}
if (isset($data['CardType'])) {
$message .= 'CardType: ' . $data['CardType'] . "\n";
}
if (isset($data['Last4Digits'])) {
$message .= 'Last4Digits: ' . $data['Last4Digits'] . "\n";
}
if ($data['Status'] == 'OK') {
$this->model_checkout_order->update($this->request->get['order_id'], $this->config->get('sagepay_order_status_id'), $message, false);
} else {
$this->model_checkout_order->update($this->request->get['order_id'], $this->config->get('config_order_status_id'), $message, false);
}
$this->redirect($this->url->link('checkout/success'));
}
}