666999 - Version 0.3.7

Version Notes

Introducing Custom Error Code management.

Download this release

Release Info

Developer Demac Media
Extension 666999
Version 0.3.7
Comparing to
See all releases


Code changes from version 0.3.6 to 0.3.7

Files changed (96) hide show
  1. app/code/community/Demac/Optimal/Block/Adminhtml/Errorcode.php +23 -0
  2. app/code/community/Demac/Optimal/Block/Adminhtml/Errorcode/Edit.php +25 -0
  3. app/code/community/Demac/Optimal/Block/Adminhtml/Errorcode/Edit/Form.php +71 -0
  4. app/code/community/Demac/Optimal/Block/Adminhtml/Errorcode/Grid.php +52 -0
  5. app/code/community/Demac/Optimal/Block/Adminhtml/Risk.php +0 -0
  6. app/code/community/Demac/Optimal/Block/Adminhtml/Risk/Edit.php +0 -0
  7. app/code/community/Demac/Optimal/Block/Adminhtml/Risk/Edit/Form.php +0 -0
  8. app/code/community/Demac/Optimal/Block/Adminhtml/Risk/Edit/Tab/Form.php +0 -0
  9. app/code/community/Demac/Optimal/Block/Adminhtml/Risk/Edit/Tabs.php +0 -0
  10. app/code/community/Demac/Optimal/Block/Adminhtml/Risk/Grid.php +0 -0
  11. app/code/community/Demac/Optimal/Block/Customer/Cards.php +0 -0
  12. app/code/community/Demac/Optimal/Block/Customer/Cards/Form.php +0 -0
  13. app/code/community/Demac/Optimal/Block/Customer/Cards/Grid.php +0 -0
  14. app/code/community/Demac/Optimal/Block/Form/Creditcard.php +0 -0
  15. app/code/community/Demac/Optimal/Block/Info/Creditcard.php +1 -1
  16. app/code/community/Demac/Optimal/Block/Threat.php +0 -0
  17. app/code/community/Demac/Optimal/Helper/Data.php +18 -1
  18. app/code/community/Demac/Optimal/Model/Client/Abstract.php +0 -0
  19. app/code/community/Demac/Optimal/Model/Config/Mode.php +0 -0
  20. app/code/community/Demac/Optimal/Model/Config/Status.php +0 -0
  21. app/code/community/Demac/Optimal/Model/Config/Transaction.php +0 -0
  22. app/code/community/Demac/Optimal/Model/Creditcard.php +0 -0
  23. app/code/community/Demac/Optimal/Model/Creditcard/Client.php +0 -0
  24. app/code/community/Demac/Optimal/Model/Errorcode.php +21 -0
  25. app/code/community/Demac/Optimal/Model/Hosted/Client.php +44 -13
  26. app/code/community/Demac/Optimal/Model/Hosted/Exception.php +8 -0
  27. app/code/community/Demac/Optimal/Model/Merchant/Customer.php +0 -0
  28. app/code/community/Demac/Optimal/Model/Method/Hosted.php +29 -2
  29. app/code/community/Demac/Optimal/Model/Mysql4/Creditcard.php +0 -0
  30. app/code/community/Demac/Optimal/Model/Mysql4/Creditcard/Collection.php +0 -0
  31. app/code/community/Demac/Optimal/Model/Mysql4/Errorcode.php +37 -0
  32. app/code/community/Demac/Optimal/Model/Mysql4/Errorcode/Collection.php +10 -0
  33. app/code/community/Demac/Optimal/Model/Mysql4/Merchant/Customer.php +0 -0
  34. app/code/community/Demac/Optimal/Model/Mysql4/Merchant/Customer/Collection.php +0 -0
  35. app/code/community/Demac/Optimal/Model/Mysql4/Profile.php +0 -0
  36. app/code/community/Demac/Optimal/Model/Mysql4/Profile/Collection.php +0 -0
  37. app/code/community/Demac/Optimal/Model/Mysql4/Risk.php +0 -0
  38. app/code/community/Demac/Optimal/Model/Mysql4/Risk/Collection.php +0 -0
  39. app/code/community/Demac/Optimal/Model/Observer.php +0 -0
  40. app/code/community/Demac/Optimal/Model/Profile.php +0 -0
  41. app/code/community/Demac/Optimal/Model/Profile/Client.php +0 -0
  42. app/code/community/Demac/Optimal/Model/Resource/Mysql4/Setup.php +0 -0
  43. app/code/community/Demac/Optimal/Model/Risk.php +0 -0
  44. app/code/community/Demac/Optimal/Model/Sales/Order.php +0 -0
  45. app/code/community/Demac/Optimal/Model/Source/Cctype.php +0 -0
  46. app/code/community/Demac/Optimal/Model/Web/Client.php +0 -0
  47. app/code/community/Demac/Optimal/Test/Model/Hosted/Client.php +0 -0
  48. app/code/community/Demac/Optimal/Test/Model/Method/Hosted.php +0 -0
  49. app/code/community/Demac/Optimal/Test/Model/Observer.php +0 -0
  50. app/code/community/Demac/Optimal/controllers/Adminhtml/ErrorcodesController.php +101 -0
  51. app/code/community/Demac/Optimal/controllers/Adminhtml/ThreatController.php +0 -0
  52. app/code/community/Demac/Optimal/controllers/Frontend/OptimalController.php +0 -0
  53. app/code/community/Demac/Optimal/data/optimal_setup/csv/common-codes-0.3.3.csv +79 -0
  54. app/code/community/Demac/Optimal/data/optimal_setup/csv/webservices-codes-0.3.3.csv +174 -0
  55. app/code/community/Demac/Optimal/data/optimal_setup/data-upgrade-0.3.4-0.3.5.php +26 -0
  56. app/code/community/Demac/Optimal/etc/adminhtml.xml +5 -0
  57. app/code/community/Demac/Optimal/etc/config.xml +4 -1
  58. app/code/community/Demac/Optimal/etc/system.xml +0 -0
  59. app/code/community/Demac/Optimal/sql/optimal_setup/install-0.1.1.php +0 -0
  60. app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.0.php +0 -0
  61. app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.1.php +0 -0
  62. app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.2.php +0 -0
  63. app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.3.php +0 -0
  64. app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.4.php +0 -0
  65. app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.5.php +0 -0
  66. app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.6.php +0 -0
  67. app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.7.php +0 -0
  68. app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.9.php +0 -0
  69. app/code/community/Demac/Optimal/sql/optimal_setup/install-0.3.7.php +21 -0
  70. app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.1.1.php +0 -0
  71. app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.0.php +0 -0
  72. app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.1.php +0 -0
  73. app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.2.php +0 -0
  74. app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.3.php +0 -0
  75. app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.4.php +0 -0
  76. app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.5.php +0 -0
  77. app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.6.php +0 -0
  78. app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.7.php +0 -0
  79. app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.9.php +0 -0
  80. app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.3.7.php +21 -0
  81. app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-upgrade-0.1.1-0.2.7.php +0 -0
  82. app/code/community/Demac/Optimal/sql/optimal_setup/upgrade-0.1.1-0.2.7.php +0 -0
  83. app/code/community/Demac/Optimal/sql/optimal_setup/upgrade-0.2.9-0.3.0.php +0 -0
  84. app/code/community/Demac/Optimal/sql/optimal_setup/upgrade-0.3.1-0.3.2.php +0 -0
  85. app/code/community/Demac/Optimal/sql/optimal_setup/upgrade-0.3.4-0.3.7.php +21 -0
  86. app/design/adminhtml/default/default/template/optimal/form/creditcard.phtml +0 -0
  87. app/design/adminhtml/default/default/template/optimal/info/creditcard.phtml +0 -0
  88. app/design/frontend/base/default/layout/optimal.xml +0 -0
  89. app/design/frontend/base/default/template/optimal/customer/cards.phtml +0 -0
  90. app/design/frontend/base/default/template/optimal/customer/cards/form.phtml +0 -0
  91. app/design/frontend/base/default/template/optimal/customer/cards/grid.phtml +0 -0
  92. app/design/frontend/base/default/template/optimal/form/creditcard.phtml +0 -0
  93. app/design/frontend/base/default/template/optimal/info/creditcard.phtml +0 -0
  94. app/design/frontend/base/default/template/optimal/threatmeter.phtml +0 -0
  95. app/etc/modules/Demac_Optimal.xml +0 -0
  96. package.xml +13 -13
app/code/community/Demac/Optimal/Block/Adminhtml/Errorcode.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Demac_Optimal_Block_Adminhtml_Errorcode extends Mage_Adminhtml_Block_Widget_Grid_Container
4
+ {
5
+ protected function _construct()
6
+ {
7
+ parent::_construct();
8
+ $this->_controller = 'adminhtml_errorcode';
9
+ $this->_blockGroup = 'optimal';
10
+ $this->_headerText = Mage::helper('optimal')->__('Error Codes Manager');
11
+ }
12
+
13
+ public function getCreateUrl()
14
+ {
15
+ return $this->getUrl('adminhtml/errorcodes/edit');
16
+ }
17
+
18
+ protected function _prepareLayout()
19
+ {
20
+ parent::_prepareLayout();
21
+ $this->_removeButton('add');
22
+ }
23
+ }
app/code/community/Demac/Optimal/Block/Adminhtml/Errorcode/Edit.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Demac_Optimal_Block_Adminhtml_Errorcode_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
4
+ {
5
+ public function __construct()
6
+ {
7
+ parent::__construct();
8
+
9
+ $this->_objectId = 'code';
10
+ $this->_blockGroup = 'optimal';
11
+ $this->_controller = 'adminhtml_errorcode';
12
+
13
+ $this->_updateButton('save', 'label', Mage::helper('optimal')->__('Save Error Code Mapping'));
14
+ $this->_updateButton('delete', 'label', Mage::helper('optimal')->__('Delete Error Code Mapping'));
15
+ }
16
+
17
+ public function getHeaderText()
18
+ {
19
+ if (Mage::registry('errorcode_data') && Mage::registry('errorcode_data')->getCode()) {
20
+ return Mage::helper('optimal')->__("Edit Mapping '%s'", $this->htmlEscape(Mage::registry('errorcode_data')->getCode()));
21
+ } else {
22
+ return Mage::helper('optimal')->__('Add Error Code Mapping');
23
+ }
24
+ }
25
+ }
app/code/community/Demac/Optimal/Block/Adminhtml/Errorcode/Edit/Form.php ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Demac_Optimal_Block_Adminhtml_Errorcode_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
4
+ {
5
+ protected function _prepareForm()
6
+ {
7
+ $helper = Mage::helper('optimal');
8
+ $code = $this->getRequest()->getParam('code');
9
+ $form = new Varien_Data_Form(array(
10
+ 'id' => 'edit_form',
11
+ 'action' => $this->getUrl('*/*/save', array('code' => $code)),
12
+ 'method' => 'post',
13
+ 'enctype' => 'multipart/form-data'
14
+ ));
15
+
16
+ $active = Mage::getModel('optimal/errorcode')->loadByCode($code)->getActive();
17
+
18
+ $form->setUseContainer(true);
19
+ $this->setForm($form);
20
+
21
+ $fieldset = $form->addFieldset('errorcode_form', array(
22
+ 'legend' => $helper->__('Custom Error Code Mappings')
23
+ ));
24
+
25
+ $fieldset->addField('code', 'text', array(
26
+ 'label' => $helper->__('Error Code'),
27
+ 'class' => 'required-entry',
28
+ 'required' => true,
29
+ 'comment' => 'Optimal Error Code',
30
+ 'name' => 'code',
31
+ ));
32
+ $fieldset->addField('active', 'checkbox', array(
33
+ 'name' => 'active',
34
+ 'label' => $helper->__('Is Active?'),
35
+ 'title' => $helper->__('Is Active?'),
36
+ 'onclick' => 'this.value = this.checked ? 1 : 0',
37
+ 'values' => array(0, 1),
38
+ 'checked' => $active ? 'true' : ''
39
+ ));
40
+ $fieldset->addField('message', 'editor', array(
41
+ 'name' => 'message',
42
+ 'label' => $helper->__('Default Message'),
43
+ 'title' => $helper->__('Default Message'),
44
+ 'style' => 'width:500px; height:150px;',
45
+ 'wysiwyg' => false,
46
+ 'required' => true,
47
+ ));
48
+ $fieldset->addField('custom_message', 'editor', array(
49
+ 'name' => 'custom_message',
50
+ 'label' => $helper->__('Custom Message'),
51
+ 'title' => $helper->__('Custom Message'),
52
+ 'style' => 'width:500px; height:150px;',
53
+ 'wysiwyg' => false,
54
+ 'required' => false,
55
+ ));
56
+
57
+ $action = 'add';
58
+
59
+ if (Mage::registry('errorcode_data')) {
60
+ $action = 'edit';
61
+ $form->setValues(Mage::registry('errorcode_data')->getData());
62
+ }
63
+
64
+ $fieldset->addField('action', 'hidden', array(
65
+ 'name' => 'action',
66
+ 'value' => $action
67
+ ));
68
+
69
+ return parent::_prepareForm();
70
+ }
71
+ }
app/code/community/Demac/Optimal/Block/Adminhtml/Errorcode/Grid.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Demac_Optimal_Block_Adminhtml_Errorcode_Grid extends Mage_Adminhtml_Block_Widget_Grid
4
+ {
5
+ protected function _prepareCollection()
6
+ {
7
+ $collection = Mage::getResourceModel('optimal/errorcode_collection');
8
+ $this->setCollection($collection);
9
+
10
+ return parent::_prepareCollection();
11
+ }
12
+
13
+ public function getRowUrl($row)
14
+ {
15
+ return $this->getUrl('*/*/edit', array(
16
+ 'code' => $row->getId()
17
+ ));
18
+ }
19
+
20
+ protected function _prepareColumns()
21
+ {
22
+ $helper = Mage::helper('optimal');
23
+
24
+ $this->addColumn('code', array(
25
+ 'header' => $helper->__('Code'),
26
+ 'align' => 'right',
27
+ 'width' => '50px',
28
+ 'index' => 'code',
29
+ ))
30
+ ->addColumn('message', array(
31
+ 'header' => $helper->__('Default Message'),
32
+ 'align' => 'left',
33
+ 'width' => '35%',
34
+ 'index' => 'message',
35
+ ))
36
+ ->addColumn('custom_message', array(
37
+ 'header' => $helper->__('Custom Message'),
38
+ 'align' => 'left',
39
+ 'width' => '35%',
40
+ 'index' => 'custom_message'
41
+ ))
42
+ ->addColumn('active', array(
43
+ 'header' => $helper->__('Active'),
44
+ 'align' => 'left',
45
+ 'index' => 'active',
46
+ 'type' => 'options',
47
+ 'options' => Mage::getModel('adminhtml/system_config_source_yesno')->toArray()
48
+ ));
49
+
50
+ return parent::_prepareColumns();
51
+ }
52
+ }
app/code/community/Demac/Optimal/Block/Adminhtml/Risk.php CHANGED
File without changes
app/code/community/Demac/Optimal/Block/Adminhtml/Risk/Edit.php CHANGED
File without changes
app/code/community/Demac/Optimal/Block/Adminhtml/Risk/Edit/Form.php CHANGED
File without changes
app/code/community/Demac/Optimal/Block/Adminhtml/Risk/Edit/Tab/Form.php CHANGED
File without changes
app/code/community/Demac/Optimal/Block/Adminhtml/Risk/Edit/Tabs.php CHANGED
File without changes
app/code/community/Demac/Optimal/Block/Adminhtml/Risk/Grid.php CHANGED
File without changes
app/code/community/Demac/Optimal/Block/Customer/Cards.php CHANGED
File without changes
app/code/community/Demac/Optimal/Block/Customer/Cards/Form.php CHANGED
File without changes
app/code/community/Demac/Optimal/Block/Customer/Cards/Grid.php CHANGED
File without changes
app/code/community/Demac/Optimal/Block/Form/Creditcard.php CHANGED
File without changes
app/code/community/Demac/Optimal/Block/Info/Creditcard.php CHANGED
@@ -25,7 +25,7 @@ class Demac_Optimal_Block_Info_Creditcard extends Mage_Payment_Block_Info_Cc
25
  }
26
  }
27
 
28
- if($profile) {
29
 
30
  $info = array(
31
  'name' => $profile->getCardHolder(),
25
  }
26
  }
27
 
28
+ if(isset($profile)) {
29
 
30
  $info = array(
31
  'name' => $profile->getCardHolder(),
app/code/community/Demac/Optimal/Block/Threat.php CHANGED
File without changes
app/code/community/Demac/Optimal/Helper/Data.php CHANGED
@@ -178,7 +178,7 @@ class Demac_Optimal_Helper_Data extends Mage_Core_Helper_Abstract
178
  break;
179
  }
180
 
181
- $skip3d = Mage::getStoreConfig('payment/optimal_hosted/skip3d');
182
 
183
  if($skip3d)
184
  {
@@ -376,4 +376,21 @@ class Demac_Optimal_Helper_Data extends Mage_Core_Helper_Abstract
376
 
377
  }
378
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
379
  }
178
  break;
179
  }
180
 
181
+ $skip3d = Mage::getStoreConfig('payment/optimal_hosted/skip3D');
182
 
183
  if($skip3d)
184
  {
376
 
377
  }
378
 
379
+ public function getMsgByCode($code = null)
380
+ {
381
+ $model = Mage::getModel('optimal/errorcode')->loadByCode($code);
382
+ if (!$model->getCode()) {
383
+ return null;
384
+ }
385
+
386
+ $msg = $model->getMessage();
387
+ $customMsg = $model->getCustomMessage();
388
+
389
+ if ($model->getActive() == 1) {
390
+ return $customMsg ? $customMsg : $msg;
391
+ }
392
+
393
+ return $msg;
394
+ }
395
+
396
  }
app/code/community/Demac/Optimal/Model/Client/Abstract.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Config/Mode.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Config/Status.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Config/Transaction.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Creditcard.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Creditcard/Client.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Errorcode.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Demac_Optimal_Model_Errorcode extends Mage_Core_Model_Abstract
4
+ {
5
+ public function __construct()
6
+ {
7
+ parent::_construct();
8
+ $this->_init('optimal/errorcode');
9
+ }
10
+
11
+ /**
12
+ * @param $code
13
+ * @return $this
14
+ */
15
+ public function loadByCode($code)
16
+ {
17
+ $this->_getResource()->loadByCode($this, $code);
18
+ return $this;
19
+ }
20
+
21
+ }
app/code/community/Demac/Optimal/Model/Hosted/Client.php CHANGED
@@ -201,26 +201,60 @@ class Demac_Optimal_Model_Hosted_Client extends Demac_Optimal_Model_Client_Abstr
201
  {
202
 
203
  $response = json_decode($this->_callApi($url,$method,$data));
 
204
 
205
- if(isset($response->error))
206
- {
207
  Mage::helper('optimal')->cleanMerchantCustomerId(Mage::getSingleton('customer/session')->getId());
208
- Mage::throwException($response->error->message);
209
- return false;
 
 
 
 
 
 
 
 
210
  }
211
- if(isset($response->transaction->errorCode))
212
- {
 
 
 
 
 
 
 
 
 
213
  $session = Mage::getSingleton('customer/session');
214
  if (!$session->getCustomerId()) {
215
- Mage::getSingleton('customer/session')->addError($response->transaction->errorMessage);
216
  }
217
  Mage::helper('optimal')->cleanMerchantCustomerId(Mage::getSingleton('customer/session')->getId());
218
- Mage::throwException($response->transaction->errorMessage);
219
- return false;
220
  }
 
221
  return $response;
222
  }
223
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
  /**
225
  * Makes CURL requests to the netbanks api
226
  *
@@ -279,8 +313,7 @@ class Demac_Optimal_Model_Hosted_Client extends Demac_Optimal_Model_Client_Abstr
279
  Mage::logException($e);
280
  return false;
281
  }
282
- Mage::log('OPTIMAL RESPONSE (_callApi):');
283
- Mage::log($curl_response);
284
  return $curl_response;
285
  }
286
 
@@ -314,8 +347,6 @@ class Demac_Optimal_Model_Hosted_Client extends Demac_Optimal_Model_Client_Abstr
314
  curl_setopt($curl,CURLOPT_POSTFIELDS, $data_string);
315
  $curl_response = curl_exec($curl);
316
 
317
- Mage::log('OPTIMAL RESPONSE (submitPayment):');
318
- Mage::log($curl_response);
319
  curl_close($curl);
320
  return true;
321
 
201
  {
202
 
203
  $response = json_decode($this->_callApi($url,$method,$data));
204
+ $defaultError = 'Something went wrong with your transaction. Please contact support.';
205
 
206
+ if (isset($response->error)) {
 
207
  Mage::helper('optimal')->cleanMerchantCustomerId(Mage::getSingleton('customer/session')->getId());
208
+ $message = $this->_getMsgByCode($response->error->code);
209
+ if ($message === null) {
210
+ if (isset($response->error->message)) {
211
+ $message = $response->error->message;
212
+ } else {
213
+ $message = $defaultError;
214
+ }
215
+ }
216
+
217
+ throw new Demac_Optimal_Model_Hosted_Exception($message);
218
  }
219
+
220
+ if (isset($response->transaction->errorCode)) {
221
+ $message = $this->_getMsgByCode($response->transaction->errorCode);
222
+ if ($message === null) {
223
+ if (isset($response->transaction->errorMessage)) {
224
+ $message = $response->transaction->errorMessage;
225
+ } else {
226
+ $message = $defaultError;
227
+ }
228
+ }
229
+
230
  $session = Mage::getSingleton('customer/session');
231
  if (!$session->getCustomerId()) {
232
+ Mage::getSingleton('customer/session')->addError($message);
233
  }
234
  Mage::helper('optimal')->cleanMerchantCustomerId(Mage::getSingleton('customer/session')->getId());
235
+
236
+ throw new Demac_Optimal_Model_Hosted_Exception($message);
237
  }
238
+
239
  return $response;
240
  }
241
 
242
+ /**
243
+ * Returns 'Default' Error message if message by Code is not found
244
+ *
245
+ * @param null $code
246
+ * @return null|string
247
+ */
248
+ protected function _getMsgByCode($code = null)
249
+ {
250
+ $message = Mage::helper('optimal')->getMsgByCode($code);
251
+ if ($message !== null) {
252
+ return $message;
253
+ }
254
+
255
+ return null;
256
+ }
257
+
258
  /**
259
  * Makes CURL requests to the netbanks api
260
  *
313
  Mage::logException($e);
314
  return false;
315
  }
316
+
 
317
  return $curl_response;
318
  }
319
 
347
  curl_setopt($curl,CURLOPT_POSTFIELDS, $data_string);
348
  $curl_response = curl_exec($curl);
349
 
 
 
350
  curl_close($curl);
351
  return true;
352
 
app/code/community/Demac/Optimal/Model/Hosted/Exception.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Demac_Optimal_Model_Hosted_Exception extends Mage_Core_Exception
4
+ {
5
+ public function __construct($message) {
6
+ //
7
+ }
8
+ }
app/code/community/Demac/Optimal/Model/Merchant/Customer.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Method/Hosted.php CHANGED
@@ -182,6 +182,7 @@ class Demac_Optimal_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
182
  if (!$this->canAuthorize()) {
183
  Mage::throwException(Mage::helper('payment')->__('Authorize action is not available.'));
184
  }
 
185
  try {
186
  $error = false;
187
  $customerSession = Mage::getSingleton('customer/session');
@@ -276,7 +277,7 @@ class Demac_Optimal_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
276
  if(isset($postURL)) {
277
  $paymentData = $this->_preparePayment($payment->getData());
278
 
279
- if($customerData['profile_id'])
280
  {
281
  unset($paymentData['cardNum']);
282
  unset($paymentData['cardExpiryMonth']);
@@ -286,7 +287,13 @@ class Demac_Optimal_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
286
  }
287
 
288
  $paymentResponse = $client->submitPayment($postURL,$paymentData);
289
- $orderStatus = $client->retrieveOrder($response->id);
 
 
 
 
 
 
290
  $transaction = $orderStatus->transaction;
291
 
292
  // Now we need to check the payment status if the transaction is available
@@ -385,6 +392,26 @@ class Demac_Optimal_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
385
 
386
  return $fPaymentData;
387
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
388
 
389
 
390
  /**
182
  if (!$this->canAuthorize()) {
183
  Mage::throwException(Mage::helper('payment')->__('Authorize action is not available.'));
184
  }
185
+
186
  try {
187
  $error = false;
188
  $customerSession = Mage::getSingleton('customer/session');
277
  if(isset($postURL)) {
278
  $paymentData = $this->_preparePayment($payment->getData());
279
 
280
+ if(isset($customerData['profile_id']))
281
  {
282
  unset($paymentData['cardNum']);
283
  unset($paymentData['cardExpiryMonth']);
287
  }
288
 
289
  $paymentResponse = $client->submitPayment($postURL,$paymentData);
290
+ $orderStatus = $this->_getOptimalOrderStatus($client, $response->id);
291
+
292
+ if (!isset($orderStatus->transaction))
293
+ {
294
+ Mage::throwException('Something went wrong with your transaction. Please contact support.');
295
+ }
296
+
297
  $transaction = $orderStatus->transaction;
298
 
299
  // Now we need to check the payment status if the transaction is available
392
 
393
  return $fPaymentData;
394
  }
395
+
396
+ protected function _getOptimalOrderStatus($client, $id, $counter = 0)
397
+ {
398
+ if($counter >= 3){
399
+ Mage::throwException('There was a problem retrieving the order information. Please contact support.');
400
+ }
401
+
402
+ Mage::log('Get-Optimal-Order-Status Try #: ' . ($counter + 1));
403
+
404
+ try{
405
+ return $client->retrieveOrder($id);
406
+ } catch (Demac_Optimal_Model_Hosted_Exception $e) { // in case when Error is generated from Optimal
407
+ Mage::throwException($e->getMessage());
408
+ return;
409
+ } catch(Exception $e) {
410
+ $counter++;
411
+ $this->_getOptimalOrderStatus($client, $id, $counter);
412
+ }
413
+
414
+ }
415
 
416
 
417
  /**
app/code/community/Demac/Optimal/Model/Mysql4/Creditcard.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Mysql4/Creditcard/Collection.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Mysql4/Errorcode.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Created by Self.
4
+ * User: Sohaib Muneer - Magento Developer <smuneer@demacmedia.com>
5
+ * Company: Demac Media Inc.
6
+ * Date: 10/21/14
7
+ * Time: 11:36 AM
8
+ */
9
+
10
+ class Demac_Optimal_Model_Mysql4_Errorcode extends Mage_Core_Model_Mysql4_Abstract
11
+ {
12
+ protected $_isPkAutoIncrement = false;
13
+
14
+ /**
15
+ * Resource initialization
16
+ */
17
+ protected function _construct()
18
+ {
19
+ $this->_init('optimal/errorcode', 'code');
20
+ }
21
+
22
+ public function loadByCode(Demac_Optimal_Model_Errorcode $object, $code)
23
+ {
24
+ $adapter = $this->_getReadAdapter();
25
+ $where = $adapter->quoteInto("code = ?", $code);
26
+ $select = $adapter->select()
27
+ ->from($this->getMainTable())
28
+ ->where($where);
29
+
30
+ if ($data = $adapter->fetchRow($select)) {
31
+ $object->setData($data);
32
+ $this->_afterLoad($object);
33
+ }
34
+
35
+ return $this;
36
+ }
37
+ }
app/code/community/Demac/Optimal/Model/Mysql4/Errorcode/Collection.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Demac_Optimal_Model_Mysql4_Errorcode_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ parent::_construct();
8
+ $this->_init('optimal/errorcode');
9
+ }
10
+ }
app/code/community/Demac/Optimal/Model/Mysql4/Merchant/Customer.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Mysql4/Merchant/Customer/Collection.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Mysql4/Profile.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Mysql4/Profile/Collection.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Mysql4/Risk.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Mysql4/Risk/Collection.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Observer.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Profile.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Profile/Client.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Resource/Mysql4/Setup.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Risk.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Sales/Order.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Source/Cctype.php CHANGED
File without changes
app/code/community/Demac/Optimal/Model/Web/Client.php CHANGED
File without changes
app/code/community/Demac/Optimal/Test/Model/Hosted/Client.php CHANGED
File without changes
app/code/community/Demac/Optimal/Test/Model/Method/Hosted.php CHANGED
File without changes
app/code/community/Demac/Optimal/Test/Model/Observer.php CHANGED
File without changes
app/code/community/Demac/Optimal/controllers/Adminhtml/ErrorcodesController.php ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Demac_Optimal_Adminhtml_ErrorcodesController extends Mage_Adminhtml_Controller_Action
4
+ {
5
+ public function _initAction()
6
+ {
7
+ $this->loadLayout()
8
+ ->_setActiveMenu('system/optimal/mapping')
9
+ ->_addBreadcrumb(Mage::helper('adminhtml')->__('Error Codes Manager'), Mage::helper('adminhtml')->__('Error Codes Manager'));
10
+ return $this;
11
+ }
12
+
13
+ public function indexAction()
14
+ {
15
+ $this->_initAction();
16
+ $this->_addContent($this->getLayout()->createBlock('optimal/adminhtml_errorcode'));
17
+ $this->renderLayout();
18
+ }
19
+
20
+ public function editAction()
21
+ {
22
+ $code = $this->getRequest()->getParam('code');
23
+ $model = Mage::getModel('optimal/errorcode')->load($code);
24
+
25
+ if (!($model->getCode() || empty($code))) {
26
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('optimal')->__('Mapping does not exist'));
27
+ $this->_redirect('*/*/');
28
+ }
29
+
30
+ $data = Mage::getSingleton('adminhtml/session')->getFormData(true);
31
+ if (!empty($data)) {
32
+ $model->setData($data);
33
+ }
34
+ Mage::register('errorcode_data', $model);
35
+
36
+ $this->loadLayout();
37
+ $this->_setActiveMenu('system/optimal');
38
+
39
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Error Codes Manager'), Mage::helper('adminhtml')->__('Error Codes Manager'));
40
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Add Mapping'), Mage::helper('adminhtml')->__('Add Mapping'));
41
+
42
+ $this->_addContent($this->getLayout()->createBlock('optimal/adminhtml_errorcode_edit'));
43
+
44
+ $this->renderLayout();
45
+ }
46
+
47
+ public function saveAction()
48
+ {
49
+ if (!($postData = $this->getRequest()->getPost())) {
50
+ $this->_redirect('*/*/');
51
+ return;
52
+ }
53
+
54
+ $code = $this->getRequest()->getParam('code'); // this picks up the code from $_REQUEST
55
+ $model = Mage::getModel('optimal/errorcode');
56
+ $model->load($code);
57
+
58
+ try {
59
+ $model->setData(array(
60
+ 'code' => $code,
61
+ 'message' => $postData['message'],
62
+ 'custom_message' => $postData['custom_message'],
63
+ 'active' => isset($postData['active']) ? 1 : 0
64
+ ))->save();
65
+
66
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully saved'));
67
+ Mage::getSingleton('adminhtml/session')->setDescriptionData(false);
68
+
69
+ $this->_redirect('*/*/');
70
+ return;
71
+ } catch (Exception $e) {
72
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
73
+ Mage::getSingleton('adminhtml/session')->addError('That was an Exception Message');
74
+ Mage::getSingleton('adminhtml/session')->setDescriptionData($this->getRequest()->getPost());
75
+ $this->_redirect('*/*/edit', array('code' => $this->getRequest()->getParam('code')));
76
+ return;
77
+ }
78
+
79
+ $this->_redirect('*/*/');
80
+ }
81
+
82
+ public function deleteAction()
83
+ {
84
+ if( $this->getRequest()->getParam('id') > 0 ) {
85
+ try {
86
+ $model = Mage::getModel('optimal/risk');
87
+
88
+ $model->setId($this->getRequest()->getParam('id'))
89
+ ->delete();
90
+
91
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully deleted'));
92
+ $this->_redirect('*/*/');
93
+ } catch (Exception $e) {
94
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
95
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
96
+ }
97
+ }
98
+ $this->_redirect('*/*/');
99
+ }
100
+
101
+ }
app/code/community/Demac/Optimal/controllers/Adminhtml/ThreatController.php CHANGED
File without changes
app/code/community/Demac/Optimal/controllers/Frontend/OptimalController.php CHANGED
File without changes
app/code/community/Demac/Optimal/data/optimal_setup/csv/common-codes-0.3.3.csv ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 401,You are not authorised.
2
+ 1000,An internal error occurred. Please contact Technical Support before retrying the transaction.
3
+ 1007,An internal error occurred. Please retry the transaction.
4
+ 3001,You submitted an unsupported card type with your request. Please verify this parameter and retry the transaction.
5
+ 3002,You submitted an invalid card number or brand or combination of card number and brand with your request. Please verify these parameters and retry the transaction.
6
+ 3003,You submitted an incorrect value for the cvdIndicator parameter with your request. Please verify this parameter and retry the transaction.
7
+ 3004,You have requested an AVS check. Please ensure that the zip/postal code is provided.
8
+ 3005,You submitted an incorrect value for the cvdValue parameter with your request. Please verify this parameter and retry the transaction.
9
+ 3006,You submitted an expired credit card number with your request. Please verify this parameter and retry the request.
10
+ 3007,Your request has failed the AVS check. Note that the amount has still been reserved on the customer's card and will be released in 3-5 business days. Please ensure the billing address is accurate before retrying the transaction.
11
+ 3008,You submitted a card type for which the merchant account is not configured.
12
+ 3009,Your request has been declined by the issuing bank.
13
+ 3010,The consumer is attempting a purchase for more than the balance available in their FirePay account.
14
+ 3011,Your request has been declined by the issuing bank because the card used is a restricted card. Contact the cardholder's credit card company for further investigation.
15
+ 3012,Your request has been declined by the issuing bank because the credit card expiry date submitted is invalid.
16
+ 3013,Your request has been declined by the issuing bank due to problems with the credit card account.
17
+ 3014,Your request has been declined - the issuing bank has returned an unknown response. Contact the card holder's credit card company for further investigation.
18
+ 3015,The bank has requested that you process the transaction manually by calling the cardholder's credit card company.
19
+ 3016,The bank has requested that you retrieve the card from the cardholder - it may be a lost or stolen card.
20
+ 3017,You submitted an invalid credit card number with your request. Please verify this parameter and retry the transaction.
21
+ 3018,The bank has requested that you retry the transaction.
22
+ 3019,Your request has failed the CVD check. Please note that the amount has still been reserved on the customer's card and will be released in 3 to 5 business days. Please ensure the CVD value is accurate before retrying the transaction.
23
+ 3020,The bank has requested that you retry the transaction.
24
+ 3021,The confirmation number included in this request could not be found. Please verify this parameter and retry the transaction.
25
+ 3022,The card has been declined due to insufficient funds.
26
+ 3023,Your request has been declined by the issuing bank due to its proprietary card activity regulations.
27
+ 3024,Your request has been declined because the issuing bank does not permit the transaction for this card.
28
+ 3025,The external processing gateway has reported invalid data. Please verify your parameters and retry the transaction.
29
+ 3026,The external processing gateway has reported the account type is invalid. Do not retry the transaction. Contact Technical Support for more information.
30
+ 3027,The external processing gateway has reported a limit has been exceeded. Do not retry the transaction.
31
+ 3028,The external processing gateway has reported a system error. Please retry the transaction.
32
+ 3029,The external processing gateway has rejected the transaction. Do not retry the transaction. Contact Technical Support for more information.
33
+ 3030,The external processing gateway has reported the transaction is unauthorized. Do not retry the transaction. Contact Technical Support for more information.
34
+ 3031,The confirmation number you submitted with your request references a transaction that is not on hold. Please verify this parameter and retry the transaction.
35
+ 5000,Your merchant account authentication failed. Either your store ID/password are invalid or the IP address from which you are sending the transaction has not been authorized. Please verify these parameters and retry the transaction. Please contact Technical Support if the error persists.
36
+ 5023,You submitted an invalid XML request. Please verify your request and retry the transaction. "Only can happen on Settlements, Credits, Cancels and auth reversals",
37
+ 3200,You have submitted an invalidly formatted authorization ID for this settlement. Please verify this parameter and retry the transaction.
38
+ 3201,The authorization ID included in this settlement request could not be found. Please verify this parameter and retry the transaction.
39
+ 3202,You have exceeded the maximum number of settlements allowed.
40
+ 3203,The authorization is either fully settled or cancelled.
41
+ 3204,The requested settlement amount exceeds the remaining authorization amount.
42
+ 3205,The authorization you are attempting to settle has expired.
43
+ 3206,The external processing gateway has rejected the transaction. Do not retry the transaction. Contact Technical Support for more information.
44
+ 3402,The requested credit amount exceeds the remaining settlement amount.
45
+ 3403,You have already processed the maximum number of credits allowed for this settlement.
46
+ 3404,The settlement has already been fully credited.
47
+ 3405,The settlement you are attempting to credit has expired.
48
+ 3406,The settlement you are attempting to credit has not been batched yet. There are no settled funds available to credit.
49
+ 3407,The settlement referred to by the transaction response ID you provided cannot be found. Please verify this parameter and retry the transaction.
50
+ 3408,You have submitted an invalidly formatted response ID for the original purchase or settlement. Please verify this parameter and retry the transaction.
51
+ 3409,The authorization ID included in this credit request could not be found. Please verify this parameter and retry the transaction.
52
+ 3410,Credit failed.
53
+ 3411,Cancel credit failed.
54
+ 3412,The Credit transaction you attempted was not permitted because your merchant account is in overdraft.
55
+ 3413,The requested Credit amount exceeds the permissible Visa credit ratio. Please verify this parameter and retry the transaction.
56
+ 3414,The credit referred to by the transaction response ID you provided cannot be found. Please verify this parameter and retry the transaction.
57
+ 3415,You cannot cancel this transaction. It is not in a state that can be cancelled. It may already have been completed and therefore not be in a pending state.
58
+ 3416,"The external processing gateway for which your merchant account is configured does not support partial settlements. Ensure that the amount you are trying to settle is identical to the amount in the original authorization, and retry the transaction."
59
+ 3500,The confirmation number included in this request could not be found. Please verify this parameter and retry the transaction.
60
+ 3501,The requested authorization reversal amount exceeds the remaining authorization amount.
61
+ 3502,The authorization has already been settled. You cannot process an authorization reversal transaction against an authorization that has been settled.
62
+ 3503,The authorization reversal transaction is not supported for the card type used for the authorization you are attempting to reverse.
63
+ 3504,The external processing gateway for which your merchant account is configured does not support partial authorization reversals. Ensure that the amount you are trying to reverse is identical to the amount in the original authorization and retry the transaction.
64
+ 3505,Unable to complete authorization reversal. Contact Technical Support for more information.
65
+ 3506,Reversal amount is over the authorization remaining amount. Manual intervention require.
66
+ 3601,The 3D Secure authentication of this cardholder by the card issuer failed.
67
+ 3602,The confirmation number included in the 3D Secure authentication request could not be found. The confirmation number must be the one returned by the payment processor in response to the original authorization or purchase.
68
+ 3603,You submitted a request that is not available for 3D Secure authentication.
69
+ 3604,The original authorization or purchase request has expired. The 3D Secure authentication request must be completed within 60 minutes of the original authorization or purchase.
70
+ 3605,The 3D Secure authentication service not available for the card used in this transaction.
71
+ 3701,The confirmation number included in this request could not be found. Please verify this parameter and retry the transaction.
72
+ 3702,You cannot cancel this payment transaction. It is not in a state that can be cancelled. It may already have been completed and therefore not be in a pending state.
73
+ 4001,The card number or email address associated with this transaction is in our negative database.
74
+ 4002,The transaction was declined by our Risk Management department.
75
+ 5050,An error occurred with your merchant account configuration. Please contact Technical Support.
76
+ 5055,You submitted an invalid ECI value. Please verify this parameter and retry the transaction.
77
+ 5056,An ECI value must be provided for 3D Secure authentication Please verify this parameter and retry the transaction.
78
+ 5057,You submitted a credit card brand that does not support 3D Secure authentication. Please verify this parameter and retry the transaction.
79
+ 5058,A CAVV value must be be provided for 3D Secure authentication. Please verify this parameter and retry the transaction.
app/code/community/Demac/Optimal/data/optimal_setup/csv/webservices-codes-0.3.3.csv ADDED
@@ -0,0 +1,174 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 0,No Error
2
+ 53,Internal Error
3
+ 58,Your merchant account is not configured for the transaction type requested
4
+ 802,Authentication declined.
5
+ 809,3D secure service not available.
6
+ 1000,An internal error occurred. Please contact Technical Support before retrying the transaction.
7
+ 1001,An error occurred with the external processing gateway. Please retry the transaction.
8
+ 1002,An internal error occurred. Please retry the transaction.
9
+ 1007,An internal error occurred. Please retry the transaction.
10
+ 2500,A suitable merchant account could not be found for this request. Do not retry the transaction. Contact Technical Support for more information.
11
+ 2501,An internal error occurred. Do not retry the transaction. Contact Technical Support for more information.
12
+ 2502,The authentication failed for your transaction request. Either your credentials were entered incorrectly or your request was tampered with. Please verify your request and retry the transaction.
13
+ 2503,You submitted an invalid shop ID. It must be a numeric value.
14
+ 2504,You submitted a shop ID for which a shop does not exist. Please verify your parameters and retry the transaction.
15
+ 2505,No merchant account could be found for the currency you submitted. Please verify your parameters and retry the transaction.
16
+ 2506,More than one merchant account was found for the currency you submitted. Please provide a merchant account number and retry the request.
17
+ 2507,The merchant account submitted does not correspond to the shop ID you submitted. Please verify your parameters and retry the transaction.
18
+ 2508,You submitted a request that is missing the encodedMessage parameter. Please verify your parameters and retry the transaction.
19
+ 2509,You submitted a request that has an invalid encodedMessage parameter. The encodedMessage could not be base64 decoded. Please verify your parameters and retry the request.
20
+ 2510,You submitted an invalid XML request. Please verify your request and retry the transaction.
21
+ 2511,An internal error occurred. Please retry the transaction. Contact Technical Support if the error persists.
22
+ 2512,You submitted a request that is missing the signature parameter. Please verify your parameters and retry the transaction.
23
+ 2513,You submitted a request that is missing the Shop ID parameter. Please verify your parameters and retry the transaction.
24
+ 2514,An internal error occurred. Your merchant credentials could not be found. Do not retry the transaction. Contact Technical Support for more information.
25
+ 2515,An internal error occurred. Please retry the transaction.
26
+ 2516,An internal error occurred. Do not retry the transaction. Please contact Technical Support.
27
+ 2517,An internal error occurred. Do not retry the transaction. Please contact Technical Support.
28
+ 2518,An internal error occurred. Please retry the transaction. Contact Technical Support if the error persists.
29
+ 2519,You submitted a request for a shop that is disabled. Do not retry the transaction.
30
+ 2520,The cartItem and feeItem amounts do not equal the totalAmount. Please verify your parameters and retry the transaction.
31
+ 2521,An internal error occurred. Your shop is not configured properly. Do not retry the transaction. Contact Technical Support for more information.
32
+ 2523,An internal error occurred. Please retry the transaction. Contact Technical Support if the error persists.
33
+ 2524,An internal error occurred. The customer profile is not configured properly. Do not retry the transaction. Contact Technical Support for more information.
34
+ 2525,The customer profile associated with the token provided could not be located. Please verify your parameters and retry the transaction.
35
+ 2526,An internal profile management error occurred and your request could not be processed. Please retry the transaction. Contact Technical Support if the error persists.
36
+ 2527,You submitted a request with an unsupported locale. Please verify your parameters and retry the transaction.
37
+ 2528,You submitted a request with a merchant customer ID that is not associated with the customer token provided. Please verify your parameters and retry the transaction.
38
+ 2529,An internal error occurred. Please retry the transaction.
39
+ 2530,An internal error occurred. Do not retry the transaction. Contact Technical Support for more information.
40
+ 2531,A customer profile with the same merchant customer ID already exists. Please verify your parameters and retry the transaction.
41
+ 2532,Your shop is not configured to process any payments. Do not retry the transaction. Contact Technical Support for more information.
42
+ 2533,Your shop is not configured to process the selected payment method. Do not retry the transaction. Contact Technical Support for more information.
43
+ 2534,The customer profile associated with the token you provided is not active. Please verify your parameters and ensure the customer status is active and retry the transaction.
44
+ 2535,The customer profile associated with the token you provided has a bank account that is not validated. Please verify your parameters or have your customer validate their account and retry the transaction.
45
+ 2536,The transaction was declined because the maximum number of attempts has been reached. Do not retry the transaction.
46
+ 2537,The bank account validation failed because the maximum number of attempts has been reached. Do not retry the transaction.
47
+ 2538,The customer entered an invalid micro deposit amount.
48
+ 2539,An internal error occurred. Please retry the transaction. Contact Technical Support if the error persists.
49
+ 2540,The merchant reference number already exists. Please verify your parameters and retry the transaction.
50
+ 2541,An internal error occurred when sending the micro deposit transaction. Please retry the transaction. Contact Technical Support if the error persists.
51
+ 2542,The customer profile validation failed the AVS check.
52
+ 2543,The customer has a status that cannot be validated. Please reset the customer status before retrying the transaction.
53
+ 2544,The customer profile does not have the credit card information required for validation.
54
+ 2545,The customer tried to register an EFT bank account that is already used by another customer. Do not retry the transaction.
55
+ 2546,The customer tried to register a credit card that is already used by another customer. Do not retry the transaction.
56
+ 2600,You submitted a request that is missing the merchantCustomerId parameter. Please verify your parameters and retry the transaction.
57
+ 2601,You submitted an invalid request. The customer token was provided but the newCustomer flag was set to true. Please verify your parameters and retry the transaction.
58
+ 2602,You submitted an invalid request. The customer token was not provided but the newCustomer flag was set to false. Please verify your parameters and retry the transaction.
59
+ 2603,You submitted an invalid request. The customer profile already exists but the newCustomer flag was set to true. Please verify your parameters and retry the transaction.
60
+ 2701,The Equifax validation was accepted with the condition that the customer's request should be verified.
61
+ 2702,An internal error has occurred while processing an Equifax transaction. Retry the transaction. Contact Technical Support if the error persists.
62
+ 2703,Some or all of the Equifax databases are down. Retry the transaction. Contact Technical Support if the error persists.
63
+ 2704,The Equifax validation was rejected. Do not retry the transaction.
64
+ 2705,The Equifax validation was rejected and should be treated manually. The merchant can contact the customer directly.
65
+ 2706,The Equifax validation was rejected due to invalid input. Please verify your parameters and retry the transaction.
66
+ 2707,The Equifax validation was rejected due to an invalid address. Please verify your parameters and retry the transaction.
67
+ 2708,An internal error occurred. The Equifax response codes are missing. Please verify your parameters and retry the transaction.
68
+ 3001,You submitted an unsupported card type with your request. Please verify this parameter and retry the transaction.
69
+ 3002,You submitted an invalid card number or brand or combination of card number and brand with your request. Please verify these parameters and retry the transaction.
70
+ 3003,You submitted an incorrect value for the cvdIndicator parameter with your request. Please verify this parameter and retry the transaction.
71
+ 3004,You have requested an AVS check. Please ensure that the zip/postal code is provided.
72
+ 3005,You submitted an incorrect value for the cvdValue parameter with your request. Please verify this parameter and retry the transaction.
73
+ 3006,You submitted an expired credit card number with your request. Please verify this parameter and retry the request.
74
+ 3007,Your request has failed the AVS check. Note that the amount has still been reserved on the customer's card and will be released in 3-5 business days. Please ensure the billing address is accurate before retrying the transaction.
75
+ 3008,You submitted a card type for which the merchant account is not configured.
76
+ 3009,Your request has been declined by the issuing bank.
77
+ 3010,The consumer is attempting a purchase for more than the balance available in their FirePay account.
78
+ 3011,Your request has been declined by the issuing bank because the card used is a restricted card. Contact the cardholder's credit card company for further investigation.
79
+ 3012,Your request has been declined by the issuing bank because the credit card expiry date submitted is invalid.
80
+ 3013,Your request has been declined by the issuing bank due to problems with the credit card account.
81
+ 3014,Your request has been declined - the issuing bank has returned an unknown response. Contact the card holder's credit card company for further investigation.
82
+ 3015,The bank has requested that you process the transaction manually by calling the cardholder's credit card company.
83
+ 3016,The bank has requested that you retrieve the card from the cardholder - it may be a lost or stolen card.
84
+ 3017,You submitted an invalid credit card number with your request. Please verify this parameter and retry the transaction.
85
+ 3018,The bank has requested that you retry the transaction.
86
+ 3019,Your request has failed the CVD check. Please note that the amount has still been reserved on the customer's card and will be released in 3 to 5 business days. Please ensure the CVD value is accurate before retrying the transaction.
87
+ 3020,The bank has requested that you retry the transaction.
88
+ 3021,The confirmation number included in this request could not be found. Please verify this parameter and retry the transaction.
89
+ 3022,The card has been declined due to insufficient funds.
90
+ 3023,Your request has been declined by the issuing bank due to its proprietary card activity regulations.
91
+ 3024,Your request has been declined because the issuing bank does not permit the transaction for this card.
92
+ 3025,The external processing gateway has reported invalid data. Please verify your parameters and retry the transaction.
93
+ 3026,The external processing gateway has reported the account type is invalid. Do not retry the transaction. Contact Technical Support for more information.
94
+ 3027,The external processing gateway has reported a limit has been exceeded. Do not retry the transaction.
95
+ 3028,The external processing gateway has reported a system error. Please retry the transaction.
96
+ 3029,The external processing gateway has rejected the transaction. Do not retry the transaction. Contact Technical Support for more information.
97
+ 3030,The external processing gateway has reported the transaction is unauthorized. Do not retry the transaction. Contact Technical Support for more information.
98
+ 3031,The confirmation number you submitted with your request references a transaction that is not on hold. Please verify this parameter and retry the transaction.
99
+ 3200,You have submitted an invalidly formatted authorization ID for this settlement. Please verify this parameter and retry the transaction.
100
+ 3201,The authorization ID included in this settlement request could not be found. Please verify this parameter and retry the transaction.
101
+ 3202,You have exceeded the maximum number of settlements allowed.
102
+ 3203,The authorization is either fully settled or cancelled.
103
+ 3204,The requested settlement amount exceeds the remaining authorization amount.
104
+ 3205,The authorization you are attempting to settle has expired.
105
+ 3206,The external processing gateway has rejected the transaction. Do not retry the transaction. Contact Technical Support for more information.
106
+ 3402,The requested credit amount exceeds the remaining settlement amount.
107
+ 3403,You have already processed the maximum number of credits allowed for this settlement.
108
+ 3404,The settlement has already been fully credited.
109
+ 3405,The settlement you are attempting to credit has expired.
110
+ 3406,The settlement you are attempting to credit has not been batched yet. There are no settled funds available to credit.
111
+ 3407,The settlement referred to by the transaction response ID you provided cannot be found. Please verify this parameter and retry the transaction.
112
+ 3408,You have submitted an invalidly formatted response ID for the original purchase or settlement. Please verify this parameter and retry the transaction.
113
+ 3409,The authorization ID included in this credit request could not be found. Please verify this parameter and retry the transaction.
114
+ 3410,Credit failed.
115
+ 3411,Cancel credit failed.
116
+ 3412,The Credit transaction you attempted was not permitted because your merchant account is in overdraft.
117
+ 3413,The requested Credit amount exceeds the permissible Visa credit ratio. Please verify this parameter and retry the transaction.
118
+ 3414,The credit referred to by the transaction response ID you provided cannot be found. Please verify this parameter and retry the transaction.
119
+ 3415,You cannot cancel this transaction. It is not in a state that can be cancelled. It may already have been completed and therefore not be in a pending state.
120
+ 3416,"The external processing gateway for which your merchant account is configured does not support partial settlements. Ensure that the amount you are trying to settle is identical to the amount in the original authorization, and retry the transaction."
121
+ 3500,The confirmation number included in this request could not be found. Please verify this parameter and retry the transaction.
122
+ 3501,The requested authorization reversal amount exceeds the remaining authorization amount.
123
+ 3502,The authorization has already been settled. You cannot process an authorization reversal transaction against an authorization that has been settled.
124
+ 3503,The authorization reversal transaction is not supported for the card type used for the authorization you are attempting to reverse.
125
+ 3504,The external processing gateway for which your merchant account is configured does not support partial authorization reversals. Ensure that the amount you are trying to reverse is identical to the amount in the original authorization and retry the transaction.
126
+ 3505,Unable to complete authorization reversal. Contact Technical Support for more information.
127
+ 3506,Reversal amount is over the authorization remaining amount. Manual intervention require.
128
+ 3601,The 3D Secure authentication of this cardholder by the card issuer failed.
129
+ 3602,The confirmation number included in the 3D Secure authentication request could not be found. The confirmation number must be the one returned by the payment processor in response to the original authorization or purchase.
130
+ 3603,You submitted a request that is not available for 3D Secure authentication.
131
+ 3604,The original authorization or purchase request has expired. The 3D Secure authentication request must be completed within 60 minutes of the original authorization or purchase.
132
+ 3605,The 3D Secure authentication service not available for the card used in this transaction.
133
+ 3701,The confirmation number included in this request could not be found. Please verify this parameter and retry the transaction.
134
+ 3702,You cannot cancel this payment transaction. It is not in a state that can be cancelled. It may already have been completed and therefore not be in a pending state.
135
+ 4001,The card number or email address associated with this transaction is in our negative database.
136
+ 4002,The transaction was declined by our Risk Management department.
137
+ 5000,Your merchant account authentication failed. Either your store ID/password are invalid or the IP address from which you are sending the transaction has not been authorized. Please verify these parameters and retry the transaction. Please contact Technical Support if the error persists.
138
+ 5002,You submitted an invalid payment method with your request. Please verify this parameter and retry the transaction.
139
+ 5003,You submitted an invalid amount with your request. Please verify this parameter and retry the transaction.
140
+ 5007,You submitted an invalid product type with your request. Please verify this parameter and retry the transaction.
141
+ 5008,You submitted an invalid carrier with your request. Please verify this parameter and retry the transaction.
142
+ 5009,You submitted an invalid ship method with your request. Please verify this parameter and retry the transaction.
143
+ 5015,Exceeded the maximum field length allowed. Please verify your parameters and retry the transaction.
144
+ 5016,Either you submitted an invalid merchant account or the merchant account could not be found. Please verify this parameter and retry the transaction. Please contact Technical Support if the error persists.
145
+ 5017,The merchant account submitted with your request is not enabled. Do not retry the transaction. Contact Technical Support for more information.
146
+ 5018,You submitted a request that is missing a mandatory field. Please verify your parameters and retry the transaction.
147
+ 5023,You submitted an invalid XML request. Please verify your request and retry the transaction.
148
+ 5024,You submitted an invalid ID expiry date for this request. Please verify this parameter and retry the transaction.
149
+ 5031,The transaction you have submitted has already been processed.
150
+ 5032,You submitted an invalid city with your request. Please verify this parameter and retry the transaction.
151
+ 5033,You submitted an invalid country with your request. Please verify this parameter and retry the transaction.
152
+ 5034,You submitted an invalid email address with your request. Please verify this parameter and retry the transaction.
153
+ 5035,You submitted an invalid name with your request. Please verify this parameter and retry the transaction.
154
+ 5036,You submitted an invalid phone number with your request. Please verify this parameter and retry the transaction.
155
+ 5037,You submitted an invalid zip/postal code with your request. Please verify this parameter and retry the transaction.
156
+ 5038,You submitted an invalid state/province with your request. Please verify this parameter and retry the transaction.
157
+ 5039,You submitted an invalid street with your request. Please verify this parameter and retry the transaction.
158
+ 5040,Your merchant account is not configured for the transaction you attempted. Please contact Technical Support for more information.
159
+ 5041,You submitted an invalid merchantData parameter. Please verify this parameter and retry the transaction.
160
+ 5042,The merchant reference number is missing or invalid or it exceeds the maximum permissible length. Please verify this parameter and retry the transaction.
161
+ 5043,You submitted an invalid account open date with your request. Please verify this parameter and retry the transaction.
162
+ 5044,You submitted an invalid customer ID with your request. Please verify this parameter and retry the transaction.
163
+ 5045,You submitted an invalid customer IP address with your request. Please verify this parameter and retry the transaction.
164
+ 5046,You submitted an invalid merchant SIC code with your request. Please verify this parameter and retry the transaction.
165
+ 5047,You submitted an invalid value for the previous customer parameter with your request. Please verify this parameter and retry the transaction.
166
+ 5048,You submitted an invalid product code with your request. Please verify this parameter and retry the transaction.
167
+ 5049,You submitted an invalid value for user data with your request. Please verify this parameter and retry the transaction.
168
+ 5050,An error occurred with your merchant account configuration. Please contact Technical Support.
169
+ 5055,You submitted an invalid ECI value. Please verify this parameter and retry the transaction.
170
+ 5056,An ECI value must be provided for 3D Secure authentication Please verify this parameter and retry the transaction.
171
+ 5057,You submitted a credit card brand that does not support 3D Secure authentication. Please verify this parameter and retry the transaction.
172
+ 5058,A CAVV value must be be provided for 3D Secure authentication. Please verify this parameter and retry the transaction.
173
+ 5059,You submitted an invalid value for the currency service request.
174
+ 5060,You submitted an invalid recurringIndicator parameter with your request. Please verify this parameter and retry the transaction.
app/code/community/Demac/Optimal/data/optimal_setup/data-upgrade-0.3.4-0.3.5.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $prefix = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'csv' . DIRECTORY_SEPARATOR;
4
+ $csvs = array(
5
+ 'webservices' => 'webservices-codes-0.3.3.csv',
6
+ 'common' => 'common-codes-0.3.3.csv'
7
+ );
8
+
9
+ $model = Mage::getModel('optimal/errorcode');
10
+
11
+ foreach ($csvs as $key => $name) {
12
+ $path = $prefix . $name;
13
+ $fh = fopen($path, 'r');
14
+
15
+ while (($row = fgetcsv($fh, 999999, ',')) !== false) {
16
+ list($code, $message) = $row;
17
+ $model->setData(array(
18
+ 'code' => $code,
19
+ 'message' => $message,
20
+ 'active' => 0,
21
+ 'created_at' => time(),
22
+ 'updated_at' => time()
23
+ ))->save();
24
+ }
25
+ }
26
+
app/code/community/Demac/Optimal/etc/adminhtml.xml CHANGED
@@ -11,6 +11,11 @@
11
  <sort_order>1</sort_order>
12
  <action>adminhtml/threat/index</action>
13
  </mapping>
 
 
 
 
 
14
  </children>
15
  </optimal>
16
  </children>
11
  <sort_order>1</sort_order>
12
  <action>adminhtml/threat/index</action>
13
  </mapping>
14
+ <error_codes translate="title" module="optimal">
15
+ <title>Manage Error Codes</title>
16
+ <sort_order>2</sort_order>
17
+ <action>adminhtml/errorcodes/index</action>
18
+ </error_codes>
19
  </children>
20
  </optimal>
21
  </children>
app/code/community/Demac/Optimal/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Demac_Optimal>
5
- <version>0.3.6</version>
6
  </Demac_Optimal>
7
  </modules>
8
 
@@ -96,6 +96,9 @@
96
  <merchant_customer>
97
  <table>demac_optimal_merchant_customer</table>
98
  </merchant_customer>
 
 
 
99
  </entities>
100
  </optimal_mysql4>
101
  <sales>
2
  <config>
3
  <modules>
4
  <Demac_Optimal>
5
+ <version>0.3.7</version>
6
  </Demac_Optimal>
7
  </modules>
8
 
96
  <merchant_customer>
97
  <table>demac_optimal_merchant_customer</table>
98
  </merchant_customer>
99
+ <errorcode>
100
+ <table>demac_optimal_error_code</table>
101
+ </errorcode>
102
  </entities>
103
  </optimal_mysql4>
104
  <sales>
app/code/community/Demac/Optimal/etc/system.xml CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/install-0.1.1.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.0.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.1.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.2.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.3.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.4.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.5.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.6.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.7.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/install-0.2.9.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/install-0.3.7.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+
4
+ $installer->startSetup();
5
+
6
+ $installer->run("
7
+
8
+ DROP TABLE IF EXISTS `{$this->getTable('optimal/errorcode')}`;
9
+ CREATE TABLE IF NOT EXISTS `{$this->getTable('optimal/errorcode')}` (
10
+ `code` varchar(50) NOT NULL,
11
+ `message` varchar(555) NOT NULL,
12
+ `custom_message` varchar(555) NULL,
13
+ `active` tinyint(1) NOT NULL DEFAULT '0',
14
+ `created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
15
+ `updated_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
16
+ PRIMARY KEY (`code`)
17
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
18
+
19
+ ");
20
+
21
+ $installer->endSetup();
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.1.1.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.0.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.1.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.2.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.3.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.4.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.5.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.6.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.7.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.2.9.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-install-0.3.7.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+
4
+ $installer->startSetup();
5
+
6
+ $installer->run("
7
+
8
+ DROP TABLE IF EXISTS `{$this->getTable('optimal/errorcode')}`;
9
+ CREATE TABLE IF NOT EXISTS `{$this->getTable('optimal/errorcode')}` (
10
+ `code` varchar(50) NOT NULL,
11
+ `message` varchar(555) NOT NULL,
12
+ `custom_message` varchar(555) NULL,
13
+ `active` tinyint(1) NOT NULL DEFAULT '0',
14
+ `created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
15
+ `updated_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
16
+ PRIMARY KEY (`code`)
17
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
18
+
19
+ ");
20
+
21
+ $installer->endSetup();
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-upgrade-0.1.1-0.2.7.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/upgrade-0.1.1-0.2.7.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/upgrade-0.2.9-0.3.0.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/upgrade-0.3.1-0.3.2.php CHANGED
File without changes
app/code/community/Demac/Optimal/sql/optimal_setup/upgrade-0.3.4-0.3.7.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+
4
+ $installer->startSetup();
5
+
6
+ $installer->run("
7
+
8
+ DROP TABLE IF EXISTS `{$this->getTable('optimal/errorcode')}`;
9
+ CREATE TABLE IF NOT EXISTS `{$this->getTable('optimal/errorcode')}` (
10
+ `code` varchar(50) NOT NULL,
11
+ `message` varchar(555) NOT NULL,
12
+ `custom_message` varchar(555) NULL,
13
+ `active` tinyint(1) NOT NULL DEFAULT '0',
14
+ `created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
15
+ `updated_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
16
+ PRIMARY KEY (`code`)
17
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
18
+
19
+ ");
20
+
21
+ $installer->endSetup();
app/design/adminhtml/default/default/template/optimal/form/creditcard.phtml CHANGED
File without changes
app/design/adminhtml/default/default/template/optimal/info/creditcard.phtml CHANGED
File without changes
app/design/frontend/base/default/layout/optimal.xml CHANGED
File without changes
app/design/frontend/base/default/template/optimal/customer/cards.phtml CHANGED
File without changes
app/design/frontend/base/default/template/optimal/customer/cards/form.phtml CHANGED
File without changes
app/design/frontend/base/default/template/optimal/customer/cards/grid.phtml CHANGED
File without changes
app/design/frontend/base/default/template/optimal/form/creditcard.phtml CHANGED
File without changes
app/design/frontend/base/default/template/optimal/info/creditcard.phtml CHANGED
File without changes
app/design/frontend/base/default/template/optimal/threatmeter.phtml CHANGED
File without changes
app/etc/modules/Demac_Optimal.xml CHANGED
File without changes
package.xml CHANGED
@@ -1,24 +1,24 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>666999</name>
4
- <version>0.3.6</version>
5
- <stability>devel</stability>
6
  <license uri="http://opensource.org/licenses/gpl-license.php">GPL</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Securely access and process online payments with the NETBANX payment gateway.</summary>
10
- <description>The Optimal Payments NETBANX Hosted Payment Extension allows ecommerce businesses to securely accept and process online payments using Optimal&#x2019;s NETBANX payment gateway and services. The integration is easy to implement and provides the ultimate in payment processing capabilities, fraud management, and reporting.&#xD;
11
- &lt;br /&gt; &lt;br /&gt;&#xD;
12
- The Optimal Payments extension uses a Silent Post integration to the merchant&#x2019;s website. During checkout, payment information is entered on the merchant website and then transmitted securely via Silent Post for processing to the NETBANX payment gateway. The customer remains on the merchant&#x2019;s website at all times allowing the merchant to manage the customer experience. When the customer clicks on the Pay button, payment data is transmitted directly to NETBANX using a PCI-compliant process without accessing any merchant servers.&#xD;
13
- &lt;br /&gt; &lt;br /&gt;&#xD;
14
- This integration significantly reduces PCI compliance requirements and liability as all of the credit card information is processed in Optimal Payments Level 1 PCI compliant environment and servers leaving no sensitive customer payment information stored locally on merchant servers.&#xD;
15
- &lt;br /&gt; &lt;br /&gt;&#xD;
16
  Through the Optimal integration merchants also have the option to enable Threatmetrix fraud detection and management services. ThreatMetrix works by collecting relevant data about the customer and the order, and validating this information during the checkout. Fully integrated into the NETBANX payment gateway, enabling the ThreatMetrix option will allow merchants to automatically hold and flag suspicious orders, drastically reducing any fraud occurrences. Depending on the Score returned by ThreatMetrix an order can be held and flagged or altogether denied during the checkout.</description>
17
- <notes>Improvements to ThreatMetrix Detection</notes>
18
  <authors><author><name>Demac Media</name><user>demacmedia</user><email>support@demacmedia.com</email></author></authors>
19
- <date>2014-09-08</date>
20
- <time>18:29:46</time>
21
- <contents><target name="magecommunity"><dir name="Demac"><dir name="Optimal"><dir><dir name="Block"><dir name="Adminhtml"><dir name="Risk"><dir name="Edit"><file name="Form.php" hash="25d4bcb59e33a94799bc9f6cb0509cc3"/><dir name="Tab"><file name="Form.php" hash="3731d284c28ed279eb5e00b41f494810"/></dir><file name="Tabs.php" hash="61a8d2ac9942356db313b423fc3c47c2"/></dir><file name="Edit.php" hash="959e8af1e6aae6d02560c98bcabea5ab"/><file name="Grid.php" hash="e999f01578aac6084520029f86852c09"/></dir><file name="Risk.php" hash="6bf5127ba14f9dd38519c6b62203f1f8"/></dir><dir name="Customer"><dir name="Cards"><file name="Form.php" hash="ce79e221d5caf995a10e47cbb4e51f8b"/><file name="Grid.php" hash="d14eb692082fe1299977e7b3ee75dcf3"/></dir><file name="Cards.php" hash="f99686c2296a850312713f6aadc4d04a"/></dir><dir name="Form"><file name="Creditcard.php" hash="d3642d432409cf55069253680bf9ee34"/></dir><dir name="Info"><file name="Creditcard.php" hash="95d59f0f6bf250685499163b2f3843e5"/></dir><file name="Threat.php" hash="69605e0b8aacc80f47b5ed91e8631248"/></dir><dir name="Helper"><file name="Data.php" hash="0329d97721ecb545681ff03425c76742"/></dir><dir name="Model"><dir name="Client"><file name="Abstract.php" hash="f83275be8d3b248eb145d45c2a926d84"/></dir><dir name="Config"><file name="Mode.php" hash="798d2a9bab2c0fc2749116ac1a3fc926"/><file name="Status.php" hash="767ba25406456aae4a0bd86b11023b45"/><file name="Transaction.php" hash="e83e8427e4b14c4d3cd83058c68f8965"/></dir><dir name="Creditcard"><file name="Client.php" hash="f1014811d23c1cf5efbccf61c3c6c80c"/></dir><file name="Creditcard.php" hash="26e89a35558c0692d5f90afdcad25c12"/><dir name="Hosted"><file name="Client.php" hash="6cfcae2d6ba921df9d3f3afd700661aa"/></dir><dir name="Merchant"><file name="Customer.php" hash="be743a5c7aababb9752bf961570b0c27"/></dir><dir name="Method"><file name="Hosted.php" hash="73d17f28feef44dfd2699f9d05c7ba7d"/></dir><dir name="Mysql4"><dir name="Creditcard"><file name="Collection.php" hash="700985c287355082a3966d4b3f74838f"/></dir><file name="Creditcard.php" hash="a4e5ea4090d2f127edd19de9d2feb343"/><dir name="Merchant"><dir name="Customer"><file name="Collection.php" hash="aa0fbf9c0cc0a3207565443e35ae3779"/></dir><file name="Customer.php" hash="fe991d98537b7b3a07160d5b9b10802d"/></dir><dir name="Profile"><file name="Collection.php" hash="f5cd814fe62d2af8fbcc2214f94bfeb4"/></dir><file name="Profile.php" hash="6944c811248ef955a51357989ca11dd3"/><dir name="Risk"><file name="Collection.php" hash="558dc26690672dc09ae6fbfa8e780302"/></dir><file name="Risk.php" hash="5c77111382678451da4dde209a43b0fa"/></dir><file name="Observer.php" hash="32ded6b8987067943ac349b6bab4ccea"/><dir name="Profile"><file name="Client.php" hash="4358736ced5bdc7d2a7fbbf53e2ff07d"/></dir><file name="Profile.php" hash="798cef09bbc0556545edf1f00bae9bf0"/><dir name="Resource"><dir name="Mysql4"><file name="Setup.php" hash="e936830d9e4f74badc3b7663f60436dc"/></dir></dir><file name="Risk.php" hash="fab5519b0e257b8ef2f66f5f76d49f2b"/><dir name="Sales"><file name="Order.php" hash="32320888ae209b1ea3208da59312da5c"/></dir><dir name="Source"><file name="Cctype.php" hash="dd21379a29444a4c58e33e90ddeb300e"/></dir><dir name="Web"><file name="Client.php" hash="d565e254fc281e7c246cc9cfe8c2f39d"/></dir></dir><dir name="Test"><dir name="Model"><dir name="Hosted"><file name="Client.php" hash="83e69edc0636294a7e6a93e8cd745b33"/></dir><dir name="Method"><file name="Hosted.php" hash="2acc5b7427dc4bb36b8ec8f75987cd1e"/></dir><file name="Observer.php" hash="581a5f9151aaffad292670af5118926f"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ThreatController.php" hash="5db39713fbd0ae13e943a891940bb22c"/></dir><dir name="Frontend"><file name="OptimalController.php" hash="e38a9e3e12fb7a3fec988e0daba4489f"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="964295d91c6f5e1fcbebda18b9ad54b5"/><file name="config.xml" hash="5b41822293f22b16877cd7119083ea04"/><file name="system.xml" hash="cd61f9cdb9b368fca29ab683d5350c93"/></dir><dir name="sql"><dir name="optimal_setup"><file name="install-0.1.1.php" hash="422b6afb2d2320f5d9c59cd5bff0dc3d"/><file name="install-0.2.0.php" hash="71dbb515c55c34f1910463d72f66f9d2"/><file name="install-0.2.1.php" hash="0bd65edba72966cffce19dd3c480863b"/><file name="install-0.2.2.php" hash="33bb51df7561eb747ee07d8e8aa43ce4"/><file name="install-0.2.3.php" hash="abafde589308828b601c306b45f1aa41"/><file name="install-0.2.4.php" hash="abafde589308828b601c306b45f1aa41"/><file name="install-0.2.5.php" hash="9a0bb5235e982cfc1794dd8d0172e26d"/><file name="install-0.2.6.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="install-0.2.7.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="install-0.2.9.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="mysql4-install-0.1.1.php" hash="422b6afb2d2320f5d9c59cd5bff0dc3d"/><file name="mysql4-install-0.2.0.php" hash="71dbb515c55c34f1910463d72f66f9d2"/><file name="mysql4-install-0.2.1.php" hash="0bd65edba72966cffce19dd3c480863b"/><file name="mysql4-install-0.2.2.php" hash="33bb51df7561eb747ee07d8e8aa43ce4"/><file name="mysql4-install-0.2.3.php" hash="abafde589308828b601c306b45f1aa41"/><file name="mysql4-install-0.2.4.php" hash="abafde589308828b601c306b45f1aa41"/><file name="mysql4-install-0.2.5.php" hash="9a0bb5235e982cfc1794dd8d0172e26d"/><file name="mysql4-install-0.2.6.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="mysql4-install-0.2.7.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="mysql4-install-0.2.9.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="mysql4-upgrade-0.1.1-0.2.7.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="upgrade-0.1.1-0.2.7.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="upgrade-0.2.9-0.3.0.php" hash="989e6c4043fccfa6cdcba0a09938dd07"/><file name="upgrade-0.3.1-0.3.2.php" hash="aea721b40772c92db786b96fbb9c8bda"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="optimal"><dir><dir name="form"><file name="creditcard.phtml" hash="550c80a4e0dc4224946de029f4c3ecf6"/></dir><dir name="info"><file name="creditcard.phtml" hash="642dd94f8c1b1e43fe89226b3a0eb02a"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="optimal"><dir><dir name="customer"><dir name="cards"><file name="form.phtml" hash="969544827b5e5765b6bb2bea2f62392a"/><file name="grid.phtml" hash="9a160522aa31ed44eb2f5751f40718c8"/></dir><file name="cards.phtml" hash="ed3f6e56b134674e7d8ddcb6a1deac59"/></dir><dir name="form"><file name="creditcard.phtml" hash="be04e0511fc1686ed7ea81c6e61e89ad"/></dir><dir name="info"><file name="creditcard.phtml" hash="d886bd24ae993548a3663b537e2456df"/></dir></dir><file name="threatmeter.phtml" hash="3dd0ea7621038895aa1dd1e322ba7d99"/></dir></dir><dir name="layout"><file name="optimal.xml" hash="d1154efa9a293770c76b98be4023ff08"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Demac_Optimal.xml" hash="2ebfc5a3a1c5688639c0cc5eb34fded0"/></dir></target></contents>
22
  <compatible/>
23
- <dependencies><required><php><min>5.3.0</min><max>5.5.16</max></php></required></dependencies>
24
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>666999</name>
4
+ <version>0.3.7</version>
5
+ <stability>beta</stability>
6
  <license uri="http://opensource.org/licenses/gpl-license.php">GPL</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Securely access and process online payments with the NETBANX payment gateway.</summary>
10
+ <description>The Optimal Payments NETBANX Hosted Payment Extension allows ecommerce businesses to securely accept and process online payments using Optimal&amp;#x2019;s NETBANX payment gateway and services. The integration is easy to implement and provides the ultimate in payment processing capabilities, fraud management, and reporting.&amp;#xD;&#xD;
11
+ &amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&amp;#xD;&#xD;
12
+ The Optimal Payments extension uses a Silent Post integration to the merchant&amp;#x2019;s website. During checkout, payment information is entered on the merchant website and then transmitted securely via Silent Post for processing to the NETBANX payment gateway. The customer remains on the merchant&amp;#x2019;s website at all times allowing the merchant to manage the customer experience. When the customer clicks on the Pay button, payment data is transmitted directly to NETBANX using a PCI-compliant process without accessing any merchant servers.&amp;#xD;&#xD;
13
+ &amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&amp;#xD;&#xD;
14
+ This integration significantly reduces PCI compliance requirements and liability as all of the credit card information is processed in Optimal Payments Level 1 PCI compliant environment and servers leaving no sensitive customer payment information stored locally on merchant servers.&amp;#xD;&#xD;
15
+ &amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&amp;#xD;&#xD;
16
  Through the Optimal integration merchants also have the option to enable Threatmetrix fraud detection and management services. ThreatMetrix works by collecting relevant data about the customer and the order, and validating this information during the checkout. Fully integrated into the NETBANX payment gateway, enabling the ThreatMetrix option will allow merchants to automatically hold and flag suspicious orders, drastically reducing any fraud occurrences. Depending on the Score returned by ThreatMetrix an order can be held and flagged or altogether denied during the checkout.</description>
17
+ <notes>Introducing Custom Error Code management.</notes>
18
  <authors><author><name>Demac Media</name><user>demacmedia</user><email>support@demacmedia.com</email></author></authors>
19
+ <date>2014-11-27</date>
20
+ <time>03:34:33</time>
21
+ <contents><target name="magecommunity"><dir name="Demac"><dir name="Optimal"><dir name="Block"><dir name="Adminhtml"><dir name="Errorcode"><dir name="Edit"><file name="Form.php" hash="56618ff0cc5f4c674f750412d0606aab"/></dir><file name="Edit.php" hash="8980988ca1324fac229b40f471d745c8"/><file name="Grid.php" hash="96117974766b2a7a26005154ea2ff0b2"/></dir><file name="Errorcode.php" hash="9f0d3c6b0b51e3bedd239d3b727eff75"/><dir name="Risk"><dir name="Edit"><file name="Form.php" hash="25d4bcb59e33a94799bc9f6cb0509cc3"/><dir name="Tab"><file name="Form.php" hash="3731d284c28ed279eb5e00b41f494810"/></dir><file name="Tabs.php" hash="61a8d2ac9942356db313b423fc3c47c2"/></dir><file name="Edit.php" hash="959e8af1e6aae6d02560c98bcabea5ab"/><file name="Grid.php" hash="e999f01578aac6084520029f86852c09"/></dir><file name="Risk.php" hash="6bf5127ba14f9dd38519c6b62203f1f8"/></dir><dir name="Customer"><dir name="Cards"><file name="Form.php" hash="ce79e221d5caf995a10e47cbb4e51f8b"/><file name="Grid.php" hash="d14eb692082fe1299977e7b3ee75dcf3"/></dir><file name="Cards.php" hash="f99686c2296a850312713f6aadc4d04a"/></dir><dir name="Form"><file name="Creditcard.php" hash="d3642d432409cf55069253680bf9ee34"/></dir><dir name="Info"><file name="Creditcard.php" hash="7ba1df22bade177f4956ce9084fa98c6"/></dir><file name="Threat.php" hash="69605e0b8aacc80f47b5ed91e8631248"/></dir><dir name="Helper"><file name="Data.php" hash="4568216dd1e1e1a987df04e1bbf34d19"/></dir><dir name="Model"><dir name="Client"><file name="Abstract.php" hash="f83275be8d3b248eb145d45c2a926d84"/></dir><dir name="Config"><file name="Mode.php" hash="798d2a9bab2c0fc2749116ac1a3fc926"/><file name="Status.php" hash="767ba25406456aae4a0bd86b11023b45"/><file name="Transaction.php" hash="e83e8427e4b14c4d3cd83058c68f8965"/></dir><dir name="Creditcard"><file name="Client.php" hash="f1014811d23c1cf5efbccf61c3c6c80c"/></dir><file name="Creditcard.php" hash="26e89a35558c0692d5f90afdcad25c12"/><file name="Errorcode.php" hash="dae5fa1abb705961bd9f15abf3d65ec0"/><dir name="Hosted"><file name="Client.php" hash="2500f13ec5224ee14f31f3a0571b5e6d"/><file name="Exception.php" hash="ea95d6f17a11dddb6efc1a802e4eed55"/></dir><dir name="Merchant"><file name="Customer.php" hash="be743a5c7aababb9752bf961570b0c27"/></dir><dir name="Method"><file name="Hosted.php" hash="c098ce59bc97556b761517a315f10ea1"/></dir><dir name="Mysql4"><dir name="Creditcard"><file name="Collection.php" hash="700985c287355082a3966d4b3f74838f"/></dir><file name="Creditcard.php" hash="a4e5ea4090d2f127edd19de9d2feb343"/><dir name="Errorcode"><file name="Collection.php" hash="075c7c98b606573f02aad1b096f13899"/></dir><file name="Errorcode.php" hash="0d19835b405402a5a5a7ae7c24a42c97"/><dir name="Merchant"><dir name="Customer"><file name="Collection.php" hash="aa0fbf9c0cc0a3207565443e35ae3779"/></dir><file name="Customer.php" hash="fe991d98537b7b3a07160d5b9b10802d"/></dir><dir name="Profile"><file name="Collection.php" hash="f5cd814fe62d2af8fbcc2214f94bfeb4"/></dir><file name="Profile.php" hash="6944c811248ef955a51357989ca11dd3"/><dir name="Risk"><file name="Collection.php" hash="558dc26690672dc09ae6fbfa8e780302"/></dir><file name="Risk.php" hash="5c77111382678451da4dde209a43b0fa"/></dir><file name="Observer.php" hash="32ded6b8987067943ac349b6bab4ccea"/><dir name="Profile"><file name="Client.php" hash="4358736ced5bdc7d2a7fbbf53e2ff07d"/></dir><file name="Profile.php" hash="798cef09bbc0556545edf1f00bae9bf0"/><dir name="Resource"><dir name="Mysql4"><file name="Setup.php" hash="e936830d9e4f74badc3b7663f60436dc"/></dir></dir><file name="Risk.php" hash="fab5519b0e257b8ef2f66f5f76d49f2b"/><dir name="Sales"><file name="Order.php" hash="32320888ae209b1ea3208da59312da5c"/></dir><dir name="Source"><file name="Cctype.php" hash="dd21379a29444a4c58e33e90ddeb300e"/></dir><dir name="Web"><file name="Client.php" hash="d565e254fc281e7c246cc9cfe8c2f39d"/></dir></dir><dir name="Test"><dir name="Model"><dir name="Hosted"><file name="Client.php" hash="83e69edc0636294a7e6a93e8cd745b33"/></dir><dir name="Method"><file name="Hosted.php" hash="2acc5b7427dc4bb36b8ec8f75987cd1e"/></dir><file name="Observer.php" hash="581a5f9151aaffad292670af5118926f"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ErrorcodesController.php" hash="7149f83536e46413ddf5b159ae4ebf91"/><file name="ThreatController.php" hash="5db39713fbd0ae13e943a891940bb22c"/></dir><dir name="Frontend"><file name="OptimalController.php" hash="e38a9e3e12fb7a3fec988e0daba4489f"/></dir></dir><dir name="data"><dir name="optimal_setup"><dir name="csv"><file name="common-codes-0.3.3.csv" hash="e3c9195dbe01cfb5cf341378271b1240"/><file name="webservices-codes-0.3.3.csv" hash="8fc5562ff9bb3e5c3235fa6c7c21c0d5"/></dir><file name="data-upgrade-0.3.4-0.3.5.php" hash="4afe267d997446c46c0a1fcba771d1e1"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="30a4af4a510783219bbee940d185fb19"/><file name="config.xml" hash="53513669df28327a284e53dde4ce8dc6"/><file name="system.xml" hash="cd61f9cdb9b368fca29ab683d5350c93"/></dir><dir name="sql"><dir name="optimal_setup"><file name="install-0.1.1.php" hash="422b6afb2d2320f5d9c59cd5bff0dc3d"/><file name="install-0.2.0.php" hash="71dbb515c55c34f1910463d72f66f9d2"/><file name="install-0.2.1.php" hash="0bd65edba72966cffce19dd3c480863b"/><file name="install-0.2.2.php" hash="33bb51df7561eb747ee07d8e8aa43ce4"/><file name="install-0.2.3.php" hash="abafde589308828b601c306b45f1aa41"/><file name="install-0.2.4.php" hash="abafde589308828b601c306b45f1aa41"/><file name="install-0.2.5.php" hash="9a0bb5235e982cfc1794dd8d0172e26d"/><file name="install-0.2.6.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="install-0.2.7.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="install-0.2.9.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="install-0.3.7.php" hash="5283e3567c7d35e22b4c87bbc89a0eb3"/><file name="mysql4-install-0.1.1.php" hash="422b6afb2d2320f5d9c59cd5bff0dc3d"/><file name="mysql4-install-0.2.0.php" hash="71dbb515c55c34f1910463d72f66f9d2"/><file name="mysql4-install-0.2.1.php" hash="0bd65edba72966cffce19dd3c480863b"/><file name="mysql4-install-0.2.2.php" hash="33bb51df7561eb747ee07d8e8aa43ce4"/><file name="mysql4-install-0.2.3.php" hash="abafde589308828b601c306b45f1aa41"/><file name="mysql4-install-0.2.4.php" hash="abafde589308828b601c306b45f1aa41"/><file name="mysql4-install-0.2.5.php" hash="9a0bb5235e982cfc1794dd8d0172e26d"/><file name="mysql4-install-0.2.6.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="mysql4-install-0.2.7.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="mysql4-install-0.2.9.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="mysql4-install-0.3.7.php" hash="5283e3567c7d35e22b4c87bbc89a0eb3"/><file name="mysql4-upgrade-0.1.1-0.2.7.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="upgrade-0.1.1-0.2.7.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="upgrade-0.2.9-0.3.0.php" hash="989e6c4043fccfa6cdcba0a09938dd07"/><file name="upgrade-0.3.1-0.3.2.php" hash="aea721b40772c92db786b96fbb9c8bda"/><file name="upgrade-0.3.4-0.3.7.php" hash="5283e3567c7d35e22b4c87bbc89a0eb3"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Demac_Optimal.xml" hash="2ebfc5a3a1c5688639c0cc5eb34fded0"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="optimal.xml" hash="d1154efa9a293770c76b98be4023ff08"/></dir><dir name="template"><dir name="optimal"><dir name="customer"><dir name="cards"><file name="form.phtml" hash="969544827b5e5765b6bb2bea2f62392a"/><file name="grid.phtml" hash="9a160522aa31ed44eb2f5751f40718c8"/></dir><file name="cards.phtml" hash="ed3f6e56b134674e7d8ddcb6a1deac59"/></dir><dir name="form"><file name="creditcard.phtml" hash="be04e0511fc1686ed7ea81c6e61e89ad"/></dir><dir name="info"><file name="creditcard.phtml" hash="d886bd24ae993548a3663b537e2456df"/></dir><file name="threatmeter.phtml" hash="3dd0ea7621038895aa1dd1e322ba7d99"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="optimal"><dir name="form"><file name="creditcard.phtml" hash="550c80a4e0dc4224946de029f4c3ecf6"/></dir><dir name="info"><file name="creditcard.phtml" hash="642dd94f8c1b1e43fe89226b3a0eb02a"/></dir></dir></dir></dir></dir></dir></target></contents>
22
  <compatible/>
23
+ <dependencies><required><php><min>5.3.0</min><max>5.6.0</max></php></required></dependencies>
24
  </package>