diff --git a/upload/catalog/controller/payment/globalpay.php b/upload/catalog/controller/payment/globalpay.php
index 89d4b655116..eb0e3eb1147 100644
--- a/upload/catalog/controller/payment/globalpay.php
+++ b/upload/catalog/controller/payment/globalpay.php
@@ -134,12 +134,37 @@ public function notify() {
$message .= '
' . $this->language->get('text_avs_address') . ': ' . $this->request->post['AVSADDRESSRESULT'];
}
- if (isset($this->request->post['ECI']) && !empty($this->request->post['ECI'])) {
- if ($this->request->post['ECI'] == 6 && (!isset($this->request->post['CAVV']) || empty($this->request->post['CAVV'])) && (!isset($this->request->post['XID']) || empty($this->request->post['CAVV']))) {
- $this->request->post['ECI'] = 1;
+ //3D Secure message
+ if (isset($this->request->post['ECI']) && isset($this->request->post['CAVV']) && isset($this->request->post['XID'])) {
+ $eci = $this->request->post['ECI'];
+
+ if (($this->request->post['ECI'] == 6 || $this->request->post['ECI'] == 1) && empty($this->request->post['CAVV']) && empty($this->request->post['XID'])) {
+ $scenario_id = 1;
}
- $message .= '
' . $this->language->get('text_eci') . ': (' . $this->request->post['ECI'] . ') ' . $this->language->get('text_3d_s' . $this->request->post['ECI']);
+ if (($this->request->post['ECI'] == 5 || $this->request->post['ECI'] == 0) && !empty($this->request->post['CAVV']) && !empty($this->request->post['XID'])) {
+ $scenario_id = 5;
+ }
+
+ if (($this->request->post['ECI'] == 6 || $this->request->post['ECI'] == 1) && !empty($this->request->post['CAVV']) && !empty($this->request->post['XID'])) {
+ $scenario_id = 6;
+ }
+
+ if (isset($scenario_id)) {
+ $scenario_message = $this->language->get('text_3d_s' . $scenario_id);
+ } else {
+ if (isset($this->request->post['CARDTYPE'])) {
+ if ($this->request->post['CARDTYPE'] == 'VISA') {
+ $eci = 7;
+ } else {
+ $eci = 2;
+ }
+ }
+
+ $scenario_message = $this->language->get('text_3d_liability');
+ }
+
+ $message .= '
' . $this->language->get('text_eci') . ': (' . $eci . ') ' . $scenario_message;
}
if ($tss == 1 && isset($this->request->post['TSS'])) {
diff --git a/upload/catalog/controller/payment/realex.php b/upload/catalog/controller/payment/realex.php
index b7ce7a6a42b..e5e8387f4d0 100644
--- a/upload/catalog/controller/payment/realex.php
+++ b/upload/catalog/controller/payment/realex.php
@@ -134,12 +134,37 @@ public function notify() {
$message .= '
' . $this->language->get('text_avs_address') . ': ' . $this->request->post['AVSADDRESSRESULT'];
}
- if (isset($this->request->post['ECI']) && !empty($this->request->post['ECI'])) {
- if ($this->request->post['ECI'] == 6 && (!isset($this->request->post['CAVV']) || empty($this->request->post['CAVV'])) && (!isset($this->request->post['XID']) || empty($this->request->post['CAVV']))) {
- $this->request->post['ECI'] = 1;
+ //3D Secure message
+ if (isset($this->request->post['ECI']) && isset($this->request->post['CAVV']) && isset($this->request->post['XID'])) {
+ $eci = $this->request->post['ECI'];
+
+ if (($this->request->post['ECI'] == 6 || $this->request->post['ECI'] == 1) && empty($this->request->post['CAVV']) && empty($this->request->post['XID'])) {
+ $scenario_id = 1;
}
- $message .= '
' . $this->language->get('text_eci') . ': (' . $this->request->post['ECI'] . ') ' . $this->language->get('text_3d_s' . $this->request->post['ECI']);
+ if (($this->request->post['ECI'] == 5 || $this->request->post['ECI'] == 0) && !empty($this->request->post['CAVV']) && !empty($this->request->post['XID'])) {
+ $scenario_id = 5;
+ }
+
+ if (($this->request->post['ECI'] == 6 || $this->request->post['ECI'] == 1) && !empty($this->request->post['CAVV']) && !empty($this->request->post['XID'])) {
+ $scenario_id = 6;
+ }
+
+ if (isset($scenario_id)) {
+ $scenario_message = $this->language->get('text_3d_s' . $scenario_id);
+ } else {
+ if (isset($this->request->post['CARDTYPE'])) {
+ if ($this->request->post['CARDTYPE'] == 'VISA') {
+ $eci = 7;
+ } else {
+ $eci = 2;
+ }
+ }
+
+ $scenario_message = $this->language->get('text_3d_liability');
+ }
+
+ $message .= '
' . $this->language->get('text_eci') . ': (' . $eci . ') ' . $scenario_message;
}
if ($tss == 1 && isset($this->request->post['TSS'])) {
diff --git a/upload/catalog/language/english/payment/globalpay.php b/upload/catalog/language/english/payment/globalpay.php
index 3c144f093ca..e25439db131 100644
--- a/upload/catalog/language/english/payment/globalpay.php
+++ b/upload/catalog/language/english/payment/globalpay.php
@@ -39,6 +39,7 @@
$_['text_3d_s8'] = 'Authentication Unavailable, no liability shift';
$_['text_3d_s9'] = 'Invalid Response From ACS, no liability shift';
$_['text_3d_s10'] = 'RealMPI Fatal Error, no liability shift';
+$_['text_3d_liability'] = 'No Liability Shift';
$_['text_card_visa'] = 'Visa';
$_['text_card_mc'] = 'Mastercard';
$_['text_card_amex'] = 'American Express';
diff --git a/upload/catalog/language/english/payment/realex.php b/upload/catalog/language/english/payment/realex.php
index 7d4fcef0543..fce66406f71 100644
--- a/upload/catalog/language/english/payment/realex.php
+++ b/upload/catalog/language/english/payment/realex.php
@@ -39,6 +39,7 @@
$_['text_3d_s8'] = 'Authentication Unavailable, no liability shift';
$_['text_3d_s9'] = 'Invalid Response From ACS, no liability shift';
$_['text_3d_s10'] = 'RealMPI Fatal Error, no liability shift';
+$_['text_3d_liability'] = 'No Liability Shift';
$_['text_card_visa'] = 'Visa';
$_['text_card_mc'] = 'Mastercard';
$_['text_card_amex'] = 'American Express';