666999 - Version 0.6.1

Version Notes

Fix the duplicate profile issue when use it in multi-store environment

Download this release

Release Info

Developer Collins Harper
Extension 666999
Version 0.6.1
Comparing to
See all releases


Code changes from version 0.5.2 to 0.6.1

Files changed (106) hide show
  1. app/code/community/Op/Netbanx/Block/Adminhtml/Errorcode.php +0 -0
  2. app/code/community/Op/Netbanx/Block/Adminhtml/Errorcode/Edit.php +0 -0
  3. app/code/community/Op/Netbanx/Block/Adminhtml/Errorcode/Edit/Form.php +0 -0
  4. app/code/community/Op/Netbanx/Block/Adminhtml/Errorcode/Grid.php +0 -0
  5. app/code/community/Op/Netbanx/Block/Adminhtml/Risk.php +1 -7
  6. app/code/community/Op/Netbanx/Block/Adminhtml/Risk/Edit.php +0 -0
  7. app/code/community/Op/Netbanx/Block/Adminhtml/Risk/Edit/Form.php +0 -0
  8. app/code/community/Op/Netbanx/Block/Adminhtml/Risk/Edit/Tab/Form.php +0 -0
  9. app/code/community/Op/Netbanx/Block/Adminhtml/Risk/Edit/Tabs.php +0 -0
  10. app/code/community/Op/Netbanx/Block/Adminhtml/Risk/Grid.php +0 -0
  11. app/code/community/Op/Netbanx/Block/Customer/Cards.php +0 -0
  12. app/code/community/Op/Netbanx/Block/Customer/Cards/Form.php +0 -0
  13. app/code/community/Op/Netbanx/Block/Customer/Cards/Grid.php +0 -0
  14. app/code/community/Op/Netbanx/Block/Form/Creditcard.php +0 -0
  15. app/code/community/Op/Netbanx/Block/Info/Creditcard.php +1 -0
  16. app/code/community/Op/Netbanx/Block/Navigation.php +6 -0
  17. app/code/community/Op/Netbanx/Block/Threat.php +0 -7
  18. app/code/community/Op/Netbanx/Helper/Data.php +66 -20
  19. app/code/community/Op/Netbanx/Model/Client/Abstract.php +0 -0
  20. app/code/community/Op/Netbanx/Model/Config/Mode.php +0 -16
  21. app/code/community/Op/Netbanx/Model/Config/Status.php +1 -7
  22. app/code/community/Op/Netbanx/Model/Config/Transaction.php +0 -16
  23. app/code/community/Op/Netbanx/Model/Creditcard.php +0 -0
  24. app/code/community/Op/Netbanx/Model/Creditcard/Client.php +2 -8
  25. app/code/community/Op/Netbanx/Model/Errorcode.php +0 -0
  26. app/code/community/Op/Netbanx/Model/Hosted/Client.php +15 -14
  27. app/code/community/Op/Netbanx/Model/Hosted/Exception.php +0 -0
  28. app/code/community/Op/Netbanx/Model/Merchant/Customer.php +9 -1
  29. app/code/community/Op/Netbanx/Model/Method/Hosted.php +23 -19
  30. app/code/community/Op/Netbanx/Model/Mysql4/Creditcard.php +0 -7
  31. app/code/community/Op/Netbanx/Model/Mysql4/Creditcard/Collection.php +0 -0
  32. app/code/community/Op/Netbanx/Model/Mysql4/Errorcode.php +0 -7
  33. app/code/community/Op/Netbanx/Model/Mysql4/Errorcode/Collection.php +0 -0
  34. app/code/community/Op/Netbanx/Model/Mysql4/Merchant/Customer.php +0 -0
  35. app/code/community/Op/Netbanx/Model/Mysql4/Merchant/Customer/Collection.php +0 -0
  36. app/code/community/Op/Netbanx/Model/Mysql4/Profile.php +0 -7
  37. app/code/community/Op/Netbanx/Model/Mysql4/Profile/Collection.php +0 -0
  38. app/code/community/Op/Netbanx/Model/Mysql4/Risk.php +0 -0
  39. app/code/community/Op/Netbanx/Model/Mysql4/Risk/Collection.php +0 -0
  40. app/code/community/Op/Netbanx/Model/Observer.php +1 -7
  41. app/code/community/Op/Netbanx/Model/Profile.php +0 -0
  42. app/code/community/Op/Netbanx/Model/Profile/Client.php +3 -9
  43. app/code/community/Op/Netbanx/Model/Resource/Mysql4/Setup.php +0 -0
  44. app/code/community/Op/Netbanx/Model/Risk.php +1 -1
  45. app/code/community/Op/Netbanx/Model/Sales/Order.php +1 -5
  46. app/code/community/Op/Netbanx/Model/Source/Cctype.php +0 -0
  47. app/code/community/Op/Netbanx/Model/Web/Client.php +0 -7
  48. app/code/community/Op/Netbanx/Test/Model/Hosted/Client.php +0 -0
  49. app/code/community/Op/Netbanx/Test/Model/Method/Hosted.php +0 -0
  50. app/code/community/Op/Netbanx/Test/Model/Observer.php +0 -0
  51. app/code/community/Op/Netbanx/controllers/Adminhtml/ErrorcodesController.php +0 -0
  52. app/code/community/Op/Netbanx/controllers/Adminhtml/ThreatController.php +0 -0
  53. app/code/community/Op/Netbanx/controllers/Frontend/OptimalController.php +0 -0
  54. app/code/community/Op/Netbanx/controllers/HandlerController.php +16 -0
  55. app/code/community/Op/Netbanx/data/optimal_setup/csv/common-codes-0.3.3.csv +0 -0
  56. app/code/community/Op/Netbanx/data/optimal_setup/csv/webservices-codes-0.3.3.csv +0 -0
  57. app/code/community/Op/Netbanx/data/optimal_setup/data-upgrade-0.3.4-0.3.5.php +0 -0
  58. app/code/community/Op/Netbanx/etc/CHANGELOG.txt +93 -0
  59. app/code/community/Op/Netbanx/etc/adminhtml.xml +0 -0
  60. app/code/community/Op/Netbanx/etc/config.xml +3 -1
  61. app/code/community/Op/Netbanx/etc/system.xml +10 -0
  62. app/code/community/Op/Netbanx/sql/optimal_setup/install-0.1.1.php +0 -0
  63. app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.0.php +0 -0
  64. app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.1.php +0 -0
  65. app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.2.php +0 -0
  66. app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.3.php +0 -0
  67. app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.4.php +0 -0
  68. app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.5.php +0 -0
  69. app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.6.php +0 -0
  70. app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.7.php +0 -0
  71. app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.9.php +0 -0
  72. app/code/community/Op/Netbanx/sql/optimal_setup/install-0.3.5.php +0 -0
  73. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.1.1.php +0 -0
  74. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.0.php +0 -0
  75. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.1.php +0 -0
  76. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.2.php +0 -0
  77. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.3.php +0 -0
  78. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.4.php +0 -0
  79. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.5.php +0 -0
  80. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.6.php +0 -0
  81. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.7.php +0 -0
  82. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.9.php +0 -0
  83. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.3.5.php +0 -0
  84. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-upgrade-0.1.1-0.2.7.php +0 -0
  85. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-upgrade-0.4.1-0.4.2.php +0 -0
  86. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-upgrade-0.4.3-0.4.4.php +0 -0
  87. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-upgrade-0.4.4-0.4.5.php +9 -0
  88. app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-upgrade-0.5.6-0.5.7.php +9 -0
  89. app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.1.1-0.2.7.php +0 -0
  90. app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.2.9-0.3.0.php +0 -0
  91. app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.3.1-0.3.2.php +0 -0
  92. app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.3.4-0.3.5.php +0 -0
  93. app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.3.7-0.3.8.php +0 -0
  94. app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.4.1-0.4.2.php +0 -0
  95. app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.4.3-0.4.4.php +0 -0
  96. app/design/adminhtml/default/default/template/optimal/form/creditcard.phtml +0 -0
  97. app/design/adminhtml/default/default/template/optimal/info/creditcard.phtml +0 -0
  98. app/design/frontend/base/default/layout/optimal.xml +0 -0
  99. app/design/frontend/base/default/template/optimal/customer/cards.phtml +0 -0
  100. app/design/frontend/base/default/template/optimal/customer/cards/form.phtml +0 -0
  101. app/design/frontend/base/default/template/optimal/customer/cards/grid.phtml +0 -0
  102. app/design/frontend/base/default/template/optimal/form/creditcard.phtml +2 -1
  103. app/design/frontend/base/default/template/optimal/info/creditcard.phtml +0 -0
  104. app/design/frontend/base/default/template/optimal/threatmeter.phtml +0 -0
  105. app/etc/modules/Op_Netbanx.xml +0 -0
  106. package.xml +19 -37
app/code/community/Op/Netbanx/Block/Adminhtml/Errorcode.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Adminhtml/Errorcode/Edit.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Adminhtml/Errorcode/Edit/Form.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Adminhtml/Errorcode/Grid.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Adminhtml/Risk.php CHANGED
@@ -1,11 +1,5 @@
1
  <?php
2
- /**
3
- * Created by JetBrains PhpStorm.
4
- * User: Allan MacGregor - Magento Practice Lead <allan@demacmedia.com>
5
- * Company: Demac Media Inc.
6
- * Date: 9/11/13
7
- * Time: 3:30 PM
8
- */
9
  class Op_Netbanx_Block_Adminhtml_Risk extends Mage_Adminhtml_Block_Widget_Grid_Container
10
  {
11
  public function __construct()
1
  <?php
2
+
 
 
 
 
 
 
3
  class Op_Netbanx_Block_Adminhtml_Risk extends Mage_Adminhtml_Block_Widget_Grid_Container
4
  {
5
  public function __construct()
app/code/community/Op/Netbanx/Block/Adminhtml/Risk/Edit.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Adminhtml/Risk/Edit/Form.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Adminhtml/Risk/Edit/Tab/Form.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Adminhtml/Risk/Edit/Tabs.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Adminhtml/Risk/Grid.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Customer/Cards.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Customer/Cards/Form.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Customer/Cards/Grid.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Form/Creditcard.php CHANGED
File without changes
app/code/community/Op/Netbanx/Block/Info/Creditcard.php CHANGED
@@ -38,6 +38,7 @@ class Op_Netbanx_Block_Info_Creditcard extends Mage_Payment_Block_Info_Cc
38
  }
39
 
40
  $info = array(
 
41
  'card_type' => $this->getCcTypeName(),
42
  'card_number' => $info->getCcLast4(),
43
  'card_exp' => $info->getCcExpMonth() . '/' . $info->getCcExpYear(),
38
  }
39
 
40
  $info = array(
41
+ 'name' => $info->getCcOwner(),
42
  'card_type' => $this->getCcTypeName(),
43
  'card_number' => $info->getCcLast4(),
44
  'card_exp' => $info->getCcExpMonth() . '/' . $info->getCcExpYear(),
app/code/community/Op/Netbanx/Block/Navigation.php CHANGED
@@ -12,4 +12,10 @@ class Op_Netbanx_Block_Navigation extends Mage_Customer_Block_Account_Navigation
12
 
13
  return parent::getLinks();
14
  }
 
 
 
 
 
 
15
  }
12
 
13
  return parent::getLinks();
14
  }
15
+
16
+ // KL: Backward compatiblity issue fix
17
+ public function removeLinkByName($name) {
18
+ unset($this->_links[$name]);
19
+ }
20
+
21
  }
app/code/community/Op/Netbanx/Block/Threat.php CHANGED
@@ -1,11 +1,4 @@
1
  <?php
2
- /**
3
- * Created by JetBrains PhpStorm.
4
- * User: Allan MacGregor - Magento Practice Lead <allan@demacmedia.com>
5
- * Company: Demac Media Inc.
6
- * Date: 8/8/13
7
- * Time: 7:29 AM
8
- */
9
 
10
  class Op_Netbanx_Block_Threat extends Mage_Core_Block_Template
11
  {
1
  <?php
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Block_Threat extends Mage_Core_Block_Template
4
  {
app/code/community/Op/Netbanx/Helper/Data.php CHANGED
@@ -1,11 +1,4 @@
1
  <?php
2
- /**
3
- * Created by JetBrains PhpStorm.
4
- * User: Allan MacGregor - Magento Practice Lead <allan@demacmedia.com>
5
- * Company: Demac Media Inc.
6
- * Date: 6/20/13
7
- * Time: 2:05 PM
8
- */
9
 
10
  class Op_Netbanx_Helper_Data extends Mage_Core_Helper_Abstract
11
  {
@@ -58,9 +51,29 @@ class Op_Netbanx_Helper_Data extends Mage_Core_Helper_Abstract
58
  $customerId = $merchantCustomer->getCustomerId();
59
  $currentStoreId = Mage::app()->getStore()->getStoreId();
60
  $apiLoginId = Mage::helper('core')->decrypt(Mage::getStoreConfig('payment/optimal_hosted/login'), $currentStoreId);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  return array(
62
  'internal_id' => $internalId,
63
- 'merchant_customer_id' => md5($apiLoginId . $internalId . $customerId)
 
64
  );
65
  }
66
 
@@ -90,6 +103,7 @@ class Op_Netbanx_Helper_Data extends Mage_Core_Helper_Abstract
90
  */
91
  public function prepareNetbanksOrderData($orderData, $customerData, $saveCard = false, $transactionMode = null)
92
  {
 
93
  $shoppingCartArray = array();
94
  $orderItems = $orderData['order_items'];
95
  $billingAddress = $orderData['billing_address'];
@@ -141,6 +155,7 @@ class Op_Netbanx_Helper_Data extends Mage_Core_Helper_Abstract
141
  $merchantCustomerId = null;
142
 
143
  $skip3d = Mage::getStoreConfig('payment/optimal_hosted/skip3D', $storeId);
 
144
  $profilesEnabled = Mage::getStoreConfig('payment/optimal_profiles/active', $storeId);
145
 
146
  if (!$customerData['is_guest']) {
@@ -153,27 +168,39 @@ class Op_Netbanx_Helper_Data extends Mage_Core_Helper_Abstract
153
  $merchantCustomerId = $merchantCustomerId['merchant_customer_id'];
154
  $profile = Mage::getModel('optimal/creditcard')->loadByMerchantCustomerId($merchantCustomerId);
155
 
 
156
  // If not skipping 3D and CreateProfiles is TRUE
157
  if (!$skip3d && $profilesEnabled) {
158
-
159
  if ($profile->getProfileId()) {
160
 
161
  $customerProfile['id'] = (string) $profile->getProfileId();
162
 
163
- } elseif (empty($customerProfile['merchantCustomerId'])) {
164
- $merchantCustomerId = $this->getMerchantCustomerId($customerId);
165
- $merchantCustomerId = $merchantCustomerId['merchant_customer_id'];
166
- $customerProfile['merchantCustomerId'] = $merchantCustomerId;
 
 
 
 
 
 
 
 
 
 
167
  }
168
-
169
  } elseif (!$skip3d && !$profilesEnabled) {
170
 
171
  if ($profile->getProfileId()) {
172
  $customerProfile['id'] = $profile->getProfileId();
 
173
  }
174
 
175
  } else {
176
  if (!empty($customerData['profile_id'])) { // Check if there is a profile_id being passed
 
177
  $profile = Mage::getModel('optimal/creditcard')->load((int)$customerData['profile_id']);
178
  if ($profile->getProfileId()) {
179
  $customerProfile['id'] = (string)$profile->getProfileId();
@@ -242,10 +269,17 @@ class Op_Netbanx_Helper_Data extends Mage_Core_Helper_Abstract
242
  'value' => false
243
  );
244
 
245
- $extendedOptionsArray[] = array(
246
- 'key' => 'disablePaymentPageEditing',
247
- 'value' => true
248
- );
 
 
 
 
 
 
 
249
  }
250
 
251
  $addendumDataArray = array();
@@ -412,10 +446,9 @@ class Op_Netbanx_Helper_Data extends Mage_Core_Helper_Abstract
412
  $data['billingDetails'] = $billingDetailsArray;
413
  $data['shippingDetails'] = $shippingDetailsArray;
414
  $data['redirect'] = $redirectArray;
415
- $data['profile'] = $customerProfile;
416
  $data['extendedOptions'] = $extendedOptionsArray;
417
  $data['addendumData'] = $addendumDataArray;
418
-
419
  return $data;
420
  }
421
 
@@ -463,4 +496,17 @@ class Op_Netbanx_Helper_Data extends Mage_Core_Helper_Abstract
463
  return $show;
464
  }
465
 
 
 
 
 
 
 
 
 
 
 
 
 
 
466
  }
1
  <?php
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Helper_Data extends Mage_Core_Helper_Abstract
4
  {
51
  $customerId = $merchantCustomer->getCustomerId();
52
  $currentStoreId = Mage::app()->getStore()->getStoreId();
53
  $apiLoginId = Mage::helper('core')->decrypt(Mage::getStoreConfig('payment/optimal_hosted/login'), $currentStoreId);
54
+
55
+ // KL: Here is the potential bug, if customer have more then 1 sites and they try to use the same
56
+ // API Key for test, they are going to experience the issue on duplicate profile merchant customer id
57
+ // The following patch is designed to address this issue
58
+ if (strlen(trim($merchantCustomer->getData('generated_merchant_id'))) > 0) {
59
+ $generatedId = $merchantCustomer->getData('generated_merchant_id');
60
+ } else {
61
+ $generatedId = md5($apiLoginId . $internalId . $customerId . Mage::app()->getRequest()->getHttpHost());
62
+ //md5($apiLoginId . $internalId . $customerId . $this->gen_uuid() . time());
63
+ }
64
+
65
+ if(!$customerId) {
66
+
67
+ $merchantCustomer->setData('generated_merchant_id', $generatedId);
68
+ mage::log(__METHOD__ . __LINE__ . print_r($merchantCustomer->getData(),1));
69
+ $merchantCustomer->setDataChanges(true);
70
+ $merchantCustomer->save();
71
+ mage::getSingleton('core/session')->setOptimalAnonymousGeneratedCustomerId($generatedId);
72
+ }
73
  return array(
74
  'internal_id' => $internalId,
75
+ // KL: We would like to make this value refresh everytime it get called
76
+ 'merchant_customer_id' => $generatedId
77
  );
78
  }
79
 
103
  */
104
  public function prepareNetbanksOrderData($orderData, $customerData, $saveCard = false, $transactionMode = null)
105
  {
106
+
107
  $shoppingCartArray = array();
108
  $orderItems = $orderData['order_items'];
109
  $billingAddress = $orderData['billing_address'];
155
  $merchantCustomerId = null;
156
 
157
  $skip3d = Mage::getStoreConfig('payment/optimal_hosted/skip3D', $storeId);
158
+ $profileEditingEnabled = Mage::getStoreConfig('payment/optimal_hosted/profile_edit_enable', $storeId);
159
  $profilesEnabled = Mage::getStoreConfig('payment/optimal_profiles/active', $storeId);
160
 
161
  if (!$customerData['is_guest']) {
168
  $merchantCustomerId = $merchantCustomerId['merchant_customer_id'];
169
  $profile = Mage::getModel('optimal/creditcard')->loadByMerchantCustomerId($merchantCustomerId);
170
 
171
+
172
  // If not skipping 3D and CreateProfiles is TRUE
173
  if (!$skip3d && $profilesEnabled) {
174
+ // KL: Logic bug here, we shall not create the profile record until we have success completed transaction
175
  if ($profile->getProfileId()) {
176
 
177
  $customerProfile['id'] = (string) $profile->getProfileId();
178
 
179
+ /* if (empty($customerProfile['merchantCustomerId'])) {
180
+ $merchantCustomerId = $this->getMerchantCustomerId($customerId);
181
+ $merchantCustomerId = $merchantCustomerId['merchant_customer_id'];
182
+ $customerProfile['merchantCustomerId'] = $merchantCustomerId;
183
+ }*/
184
+ unset($customerProfile['merchantCustomerId']);
185
+
186
+ } else {
187
+ if (empty($customerProfile['merchantCustomerId'])) {
188
+ $merchantCustomerId = $this->getMerchantCustomerId($customerId);
189
+ $merchantCustomerId = $merchantCustomerId['merchant_customer_id'];
190
+ $customerProfile['merchantCustomerId'] = $merchantCustomerId;
191
+ }
192
+ $customerProfile['merchantCustomerId'] = $customerProfile['merchantCustomerId'] . '-' . time();
193
  }
 
194
  } elseif (!$skip3d && !$profilesEnabled) {
195
 
196
  if ($profile->getProfileId()) {
197
  $customerProfile['id'] = $profile->getProfileId();
198
+
199
  }
200
 
201
  } else {
202
  if (!empty($customerData['profile_id'])) { // Check if there is a profile_id being passed
203
+
204
  $profile = Mage::getModel('optimal/creditcard')->load((int)$customerData['profile_id']);
205
  if ($profile->getProfileId()) {
206
  $customerProfile['id'] = (string)$profile->getProfileId();
269
  'value' => false
270
  );
271
 
272
+ if ($profileEditingEnabled){
273
+ $extendedOptionsArray[] = array(
274
+ 'key' => 'disablePaymentPageEditing',
275
+ 'value' => false
276
+ );
277
+ }else{
278
+ $extendedOptionsArray[] = array(
279
+ 'key' => 'disablePaymentPageEditing',
280
+ 'value' => true
281
+ );
282
+ }
283
  }
284
 
285
  $addendumDataArray = array();
446
  $data['billingDetails'] = $billingDetailsArray;
447
  $data['shippingDetails'] = $shippingDetailsArray;
448
  $data['redirect'] = $redirectArray;
449
+ $data['profile'] = $customerProfile;
450
  $data['extendedOptions'] = $extendedOptionsArray;
451
  $data['addendumData'] = $addendumDataArray;
 
452
  return $data;
453
  }
454
 
496
  return $show;
497
  }
498
 
499
+ /**
500
+ * gen UUID
501
+ *
502
+ * @return string
503
+ */
504
+ public function gen_uuid()
505
+ {
506
+ return sprintf(
507
+ '%04x%04x%04x',
508
+ mt_rand(0, 0xffff), mt_rand(0, 0xffff),
509
+ mt_rand(0, 0xffff)
510
+ );
511
+ }
512
  }
app/code/community/Op/Netbanx/Model/Client/Abstract.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Config/Mode.php CHANGED
@@ -1,20 +1,4 @@
1
  <?php
2
- /**
3
- * Demac Media
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the EULA
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://www.demacmedia.com/LICENSE-Magento.txt
11
- *
12
- * @category Demac
13
- * @author Michael Kreitzer (michael@demacmedia.com), Allan MacGregor <allan@demacmedia.com>
14
- * @package Demac_CanadaPost
15
- * @copyright Copyright (c) 2010-2012 Demac Media (http://www.demacmedia.com)
16
- * @license http://www.demacmedia.com/LICENSE-Magento.txt
17
- */
18
 
19
  class Op_Netbanx_Model_Config_Mode extends Mage_Core_Model_Config_Data
20
  {
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Model_Config_Mode extends Mage_Core_Model_Config_Data
4
  {
app/code/community/Op/Netbanx/Model/Config/Status.php CHANGED
@@ -1,11 +1,5 @@
1
  <?php
2
- /**
3
- * Created by JetBrains PhpStorm.
4
- * User: Allan MacGregor - Magento Practice Lead <allan@demacmedia.com>
5
- * Company: Demac Media Inc.
6
- * Date: 9/10/13
7
- * Time: 2:03 PM
8
- */
9
  class Op_Netbanx_Model_Status extends Mage_Core_Model_Config_Data
10
  {
11
 
1
  <?php
2
+
 
 
 
 
 
 
3
  class Op_Netbanx_Model_Status extends Mage_Core_Model_Config_Data
4
  {
5
 
app/code/community/Op/Netbanx/Model/Config/Transaction.php CHANGED
@@ -1,20 +1,4 @@
1
  <?php
2
- /**
3
- * Demac Media
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the EULA
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://www.demacmedia.com/LICENSE-Magento.txt
11
- *
12
- * @category Demac
13
- * @author Michael Kreitzer (michael@demacmedia.com), Allan MacGregor <allan@demacmedia.com>
14
- * @package Demac_CanadaPost
15
- * @copyright Copyright (c) 2010-2012 Demac Media (http://www.demacmedia.com)
16
- * @license http://www.demacmedia.com/LICENSE-Magento.txt
17
- */
18
 
19
  class Op_Netbanx_Model_Config_Transaction extends Mage_Core_Model_Config_Data
20
  {
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Model_Config_Transaction extends Mage_Core_Model_Config_Data
4
  {
app/code/community/Op/Netbanx/Model/Creditcard.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Creditcard/Client.php CHANGED
@@ -1,11 +1,4 @@
1
  <?php
2
- /**
3
- * Created by JetBrains PhpStorm.
4
- * User: Allan MacGregor - Magento Practice Lead <allan@demacmedia.com>
5
- * Company: Demac Media Inc.
6
- * Date: 6/20/13
7
- * Time: 12:53 PM
8
- */
9
 
10
  class Op_Netbanx_Model_Creditcard_Client extends Op_Netbanx_Model_Client_Abstract
11
  {
@@ -15,6 +8,7 @@ class Op_Netbanx_Model_Creditcard_Client extends Op_Netbanx_Model_Client_Abstrac
15
  protected $_restEndpoints = array();
16
 
17
  const CONNECTION_RETRIES = 3;
 
18
 
19
  public function _construct()
20
  {
@@ -87,7 +81,7 @@ class Op_Netbanx_Model_Creditcard_Client extends Op_Netbanx_Model_Client_Abstrac
87
 
88
  if(isset($response->error))
89
  {
90
- Mage:log('Netbanks Returned Error: ' . $response->error->message,null,'DemacOptimal_error.log');
91
  Mage::throwException($response->error->message);
92
  return false;
93
  }
1
  <?php
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Model_Creditcard_Client extends Op_Netbanx_Model_Client_Abstract
4
  {
8
  protected $_restEndpoints = array();
9
 
10
  const CONNECTION_RETRIES = 3;
11
+ const LOG_FILE_NAME = 'optimal_error.log';
12
 
13
  public function _construct()
14
  {
81
 
82
  if(isset($response->error))
83
  {
84
+ Mage:log('Netbanks Returned Error: ' . $response->error->message,null, self::LOG_FILE_NAME);
85
  Mage::throwException($response->error->message);
86
  return false;
87
  }
app/code/community/Op/Netbanx/Model/Errorcode.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Hosted/Client.php CHANGED
@@ -1,11 +1,4 @@
1
  <?php
2
- /**
3
- * Created by JetBrains PhpStorm.
4
- * User: Allan MacGregor - Magento Practice Lead <allan@demacmedia.com>
5
- * Company: Demac Media Inc.
6
- * Date: 6/20/13
7
- * Time: 12:53 PM
8
- */
9
 
10
  class Op_Netbanx_Model_Hosted_Client extends Op_Netbanx_Model_Client_Abstract
11
  {
@@ -13,7 +6,7 @@ class Op_Netbanx_Model_Hosted_Client extends Op_Netbanx_Model_Client_Abstract
13
  protected $_currencyCode = null;
14
  protected $_totalAmount = null;
15
 
16
-
17
  const CONNECTION_RETRIES = 3;
18
 
19
  public function _construct()
@@ -202,10 +195,13 @@ class Op_Netbanx_Model_Hosted_Client extends Op_Netbanx_Model_Client_Abstract
202
  $helper = Mage::helper('optimal');
203
  $session = Mage::getSingleton('customer/session');
204
  $response = json_decode($this->_callApi($url,$method,$data));
 
 
 
205
  $defaultMessage = 'Payment Gateway Error. Please contact the site admin.';
206
 
207
  if (isset($response->error) && !isset($response->error->code)) {
208
- Mage::log($response, null, 'demac_optimal.log');
209
  $helper->cleanMerchantCustomerId($session->getId());
210
  throw new Op_Netbanx_Model_Hosted_Exception($defaultMessage);
211
  }
@@ -228,7 +224,7 @@ class Op_Netbanx_Model_Hosted_Client extends Op_Netbanx_Model_Client_Abstract
228
  $message = $helper->getMsgByCode($response->transaction->errorCode);
229
 
230
  if ($message === null && !isset($response->transaction->errorCode)) {
231
- Mage::log($response, null, 'demac_optimal.log');
232
  throw new Op_Netbanx_Model_Hosted_Exception($defaultMessage);
233
  }
234
 
@@ -325,8 +321,8 @@ class Op_Netbanx_Model_Hosted_Client extends Op_Netbanx_Model_Client_Abstract
325
  Mage::logException($e);
326
  return false;
327
  }
328
- Mage::log('OPTIMAL RESPONSE (_callApi):', null, 'demac_optimal.log');
329
- Mage::log($curl_response, null, 'demac_optimal.log');
330
  return $curl_response;
331
  }
332
 
@@ -364,8 +360,13 @@ class Op_Netbanx_Model_Hosted_Client extends Op_Netbanx_Model_Client_Abstract
364
  $headers = substr($curl_response, 0, curl_getinfo($curl, CURLINFO_HEADER_SIZE));
365
  $headers = explode("\n", $headers);
366
 
367
- Mage::log('OPTIMAL RESPONSE (submitPayment):', null, 'demac_optimal.log');
368
- Mage::log($curl_response, null, 'demac_optimal.log');
 
 
 
 
 
369
  curl_close($curl);
370
 
371
  return true;
1
  <?php
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Model_Hosted_Client extends Op_Netbanx_Model_Client_Abstract
4
  {
6
  protected $_currencyCode = null;
7
  protected $_totalAmount = null;
8
 
9
+ const LOG_FILE_NAME = 'optimal_error.log';
10
  const CONNECTION_RETRIES = 3;
11
 
12
  public function _construct()
195
  $helper = Mage::helper('optimal');
196
  $session = Mage::getSingleton('customer/session');
197
  $response = json_decode($this->_callApi($url,$method,$data));
198
+ Mage::log('OPTIMAL RESPONSE (callApi):', null, self::LOG_FILE_NAME);
199
+ Mage::log(print_r($response, true), null, self::LOG_FILE_NAME);
200
+
201
  $defaultMessage = 'Payment Gateway Error. Please contact the site admin.';
202
 
203
  if (isset($response->error) && !isset($response->error->code)) {
204
+ Mage::log($response, null, self::LOG_FILE_NAME);
205
  $helper->cleanMerchantCustomerId($session->getId());
206
  throw new Op_Netbanx_Model_Hosted_Exception($defaultMessage);
207
  }
224
  $message = $helper->getMsgByCode($response->transaction->errorCode);
225
 
226
  if ($message === null && !isset($response->transaction->errorCode)) {
227
+ Mage::log($response, null, self::LOG_FILE_NAME);
228
  throw new Op_Netbanx_Model_Hosted_Exception($defaultMessage);
229
  }
230
 
321
  Mage::logException($e);
322
  return false;
323
  }
324
+ Mage::log('OPTIMAL RESPONSE (_callApi):', null, self::LOG_FILE_NAME);
325
+ Mage::log($curl_response, null, self::LOG_FILE_NAME);
326
  return $curl_response;
327
  }
328
 
360
  $headers = substr($curl_response, 0, curl_getinfo($curl, CURLINFO_HEADER_SIZE));
361
  $headers = explode("\n", $headers);
362
 
363
+ Mage::log('OPTIMAL RESPONSE (submitPayment):', null, self::LOG_FILE_NAME);
364
+ Mage::log($curl_response, null, self::LOG_FILE_NAME);
365
+ Mage::log(print_r($headers, true), null, self::LOG_FILE_NAME);
366
+
367
+ $status = curl_getinfo($curl,CURLINFO_HTTP_CODE);
368
+ $redirectLocation = curl_getinfo($curl, CURLINFO_REDIRECT_URL);
369
+ Mage::log(print_r($redirectLocation, true), null, self::LOG_FILE_NAME);
370
  curl_close($curl);
371
 
372
  return true;
app/code/community/Op/Netbanx/Model/Hosted/Exception.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Merchant/Customer.php CHANGED
@@ -2,9 +2,17 @@
2
 
3
  class Op_Netbanx_Model_Merchant_Customer extends Mage_Core_Model_Abstract
4
  {
 
 
 
 
5
  public function __construct()
6
  {
7
  parent::_construct();
8
  $this->_init('optimal/merchant_customer');
9
  }
10
- }
 
 
 
 
2
 
3
  class Op_Netbanx_Model_Merchant_Customer extends Mage_Core_Model_Abstract
4
  {
5
+
6
+ // TODO when changed ensure to update this
7
+ const TABLE_NAME = 'demac_optimal_merchant_customer';
8
+
9
  public function __construct()
10
  {
11
  parent::_construct();
12
  $this->_init('optimal/merchant_customer');
13
  }
14
+
15
+ }
16
+
17
+
18
+
app/code/community/Op/Netbanx/Model/Method/Hosted.php CHANGED
@@ -1,15 +1,9 @@
1
  <?php
2
- /**
3
- * Created by JetBrains PhpStorm.
4
- * User: Allan MacGregor - Magento Practice Lead <allan@demacmedia.com>
5
- * Company: Demac Media Inc.
6
- * Date: 6/20/13
7
- * Time: 1:29 PM
8
- */
9
 
10
  class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
11
  {
12
  const METHOD_CODE = 'optimal_hosted';
 
13
 
14
  protected $_code = self::METHOD_CODE;
15
  protected $_canSaveCc = false;
@@ -194,7 +188,9 @@ class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
194
  public function authorize(Varien_Object $payment, $amount)
195
  {
196
 
197
- $payment->setIsTransactionPending(true);
 
 
198
 
199
  if (!$this->canAuthorize()) {
200
  Mage::throwException(Mage::helper('payment')->__('Authorize action is not available.'));
@@ -236,7 +232,9 @@ class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
236
  $orderData['billing_address'] = $order->getBillingAddress();
237
  $orderData['shipping_address'] = $order->getShippingAddress();
238
 
239
- $orderData['base_tax_amount'] = $order->getBaseTaxAmount();
 
 
240
  $orderData['gift_cards_amount'] = $quote->getBaseGiftCardsAmountUsed();
241
  $orderData['base_grand_total'] = $order->getBaseGrandTotal();
242
  $orderData['base_currency_code'] = $order->getBaseCurrencyCode();
@@ -327,6 +325,7 @@ class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
327
  if (isset($postURL) && (!$skip3d || ($allowInterac && $useInterac))) {
328
 
329
  try {
 
330
  $order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT);
331
  $order->setStatus('pending_payment');
332
  $order->addStatusHistoryComment('Redirecting the Customer to Optimal Payments for Payment Authorisation', 'pending_payment');
@@ -350,7 +349,7 @@ class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
350
  $this->orderRedirectUrl($postURL);
351
 
352
  } catch (Exception $e) {
353
- Mage::log($e->getMessage(), null, 'demac_optimal.log');
354
  Mage::logException($e);
355
  $checkoutSess->addError(Mage::helper('optimal')->__('An error was encountered while redirecting to the payment gateway, please try again later.'));
356
  $this->_handlePaymentFailure();
@@ -377,7 +376,7 @@ class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
377
 
378
  if (!isset($orderStatus->transaction))
379
  {
380
- Mage::log('Aborting ... Transaction Object not present in orderStatus', null, 'demac_optimal.log');
381
  Mage::throwException('Something went wrong with your transaction. Please contact support.');
382
  }
383
 
@@ -447,8 +446,12 @@ class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
447
  $payment->setAdditionalInformation('transaction', serialize($transaction));
448
  $payment->setTransactionId($orderStatus->id);
449
  // magento will automatically close the transaction on auth preventing the invoice from being captured online.
 
 
450
  $payment->setIsTransactionClosed(false);
451
  $payment->setAdditionalInformation('payment_type', $this->getInfoInstance()->getCcType());
 
 
452
  }
453
 
454
  return $this;
@@ -490,7 +493,7 @@ class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
490
  Mage::throwException('There was a problem retrieving the order information. Please contact support.');
491
  }
492
 
493
- Mage::log('Get-Optimal-Order-Status Try #: ' . ($counter + 1), null, 'demac_optimal.log');
494
 
495
  try{
496
  return $client->retrieveOrder($id);
@@ -521,9 +524,10 @@ class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
521
  public function getConfigPaymentAction()
522
  {
523
  // TODO we always pretend we are authorize.. on return we do capture
524
- return Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE;
525
- // return $this->getConfigData('payment_action');
526
-
 
527
  }
528
 
529
  /**
@@ -596,7 +600,7 @@ class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
596
 
597
  return $this;
598
  } else {
599
- Mage::throwException('Transaction information is not properly set. Please contact support@demacmedia.com');
600
  }
601
  } catch (Exception $e) {
602
  Mage::logException($e);
@@ -641,7 +645,7 @@ class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
641
  } elseif($transactionStatus->transaction->status == 'success') {
642
  $response = $client->cancelOrder($orderData['id']);
643
  } else {
644
- Mage::throwException('Unable to void transaction. Please contact support@demacmedia.com');
645
  }
646
 
647
  $payment
@@ -660,7 +664,7 @@ class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
660
 
661
 
662
  } else {
663
- Mage::throwException('Transaction information is not properly set. Please contact support@demacmedia.com');
664
  }
665
  } catch (Exception $e) {
666
  Mage::logException($e);
@@ -722,7 +726,7 @@ class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
722
  return $this;
723
 
724
  } else {
725
- Mage::throwException('Transaction information is not properly set. Please contact support@demacmedia.com');
726
  }
727
  } catch (Exception $e) {
728
  Mage::logException($e);
1
  <?php
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
4
  {
5
  const METHOD_CODE = 'optimal_hosted';
6
+ const LOG_FILE_NAME = 'optimal_error.log';
7
 
8
  protected $_code = self::METHOD_CODE;
9
  protected $_canSaveCc = false;
188
  public function authorize(Varien_Object $payment, $amount)
189
  {
190
 
191
+ if ($payment->getOrder()->getState() != Mage_Sales_Model_Order::STATE_PROCESSING) {
192
+ $payment->setIsTransactionPending(true);
193
+ }
194
 
195
  if (!$this->canAuthorize()) {
196
  Mage::throwException(Mage::helper('payment')->__('Authorize action is not available.'));
232
  $orderData['billing_address'] = $order->getBillingAddress();
233
  $orderData['shipping_address'] = $order->getShippingAddress();
234
 
235
+ // 20160419 - Tax correction for VAT hidden tax ticket #17
236
+ $orderData['base_tax_amount'] = $order->getBaseTaxAmount() + $order->getBaseHiddenTaxAmount();
237
+
238
  $orderData['gift_cards_amount'] = $quote->getBaseGiftCardsAmountUsed();
239
  $orderData['base_grand_total'] = $order->getBaseGrandTotal();
240
  $orderData['base_currency_code'] = $order->getBaseCurrencyCode();
325
  if (isset($postURL) && (!$skip3d || ($allowInterac && $useInterac))) {
326
 
327
  try {
328
+
329
  $order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT);
330
  $order->setStatus('pending_payment');
331
  $order->addStatusHistoryComment('Redirecting the Customer to Optimal Payments for Payment Authorisation', 'pending_payment');
349
  $this->orderRedirectUrl($postURL);
350
 
351
  } catch (Exception $e) {
352
+ Mage::log($e->getMessage(), null, self::LOG_FILE_NAME);
353
  Mage::logException($e);
354
  $checkoutSess->addError(Mage::helper('optimal')->__('An error was encountered while redirecting to the payment gateway, please try again later.'));
355
  $this->_handlePaymentFailure();
376
 
377
  if (!isset($orderStatus->transaction))
378
  {
379
+ Mage::log('Aborting ... Transaction Object not present in orderStatus', null, self::LOG_FILE_NAME);
380
  Mage::throwException('Something went wrong with your transaction. Please contact support.');
381
  }
382
 
446
  $payment->setAdditionalInformation('transaction', serialize($transaction));
447
  $payment->setTransactionId($orderStatus->id);
448
  // magento will automatically close the transaction on auth preventing the invoice from being captured online.
449
+ // 20161027 - sharper - issue with onsite authorize
450
+ $payment->setIsTransactionPending(false);
451
  $payment->setIsTransactionClosed(false);
452
  $payment->setAdditionalInformation('payment_type', $this->getInfoInstance()->getCcType());
453
+
454
+
455
  }
456
 
457
  return $this;
493
  Mage::throwException('There was a problem retrieving the order information. Please contact support.');
494
  }
495
 
496
+ Mage::log('Get-Optimal-Order-Status Try #: ' . ($counter + 1), null, self::LOG_FILE_NAME);
497
 
498
  try{
499
  return $client->retrieveOrder($id);
524
  public function getConfigPaymentAction()
525
  {
526
  // TODO we always pretend we are authorize.. on return we do capture
527
+ if(!Mage::getStoreConfig('payment/optimal_hosted/skip3D', Mage::app()->getStore()->getStoreId())) {
528
+ return Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE;
529
+ }
530
+ return $this->getConfigData('payment_action');
531
  }
532
 
533
  /**
600
 
601
  return $this;
602
  } else {
603
+ Mage::throwException('Transaction information is not properly set.');
604
  }
605
  } catch (Exception $e) {
606
  Mage::logException($e);
645
  } elseif($transactionStatus->transaction->status == 'success') {
646
  $response = $client->cancelOrder($orderData['id']);
647
  } else {
648
+ Mage::throwException('Unable to void transaction.');
649
  }
650
 
651
  $payment
664
 
665
 
666
  } else {
667
+ Mage::throwException('Transaction information is not properly set.');
668
  }
669
  } catch (Exception $e) {
670
  Mage::logException($e);
726
  return $this;
727
 
728
  } else {
729
+ Mage::throwException('Transaction information is not properly set.');
730
  }
731
  } catch (Exception $e) {
732
  Mage::logException($e);
app/code/community/Op/Netbanx/Model/Mysql4/Creditcard.php CHANGED
@@ -1,11 +1,4 @@
1
  <?php
2
- /**
3
- * Created by PhpStorm.
4
- * User: Allan MacGregor - Magento Practice Lead <allan@demacmedia.com>
5
- * Company: Demac Media Inc.
6
- * Date: 3/10/14
7
- * Time: 11:03 AM
8
- */
9
 
10
  class Op_Netbanx_Model_Mysql4_Creditcard extends Mage_Core_Model_Mysql4_Abstract
11
  {
1
  <?php
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Model_Mysql4_Creditcard extends Mage_Core_Model_Mysql4_Abstract
4
  {
app/code/community/Op/Netbanx/Model/Mysql4/Creditcard/Collection.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Mysql4/Errorcode.php CHANGED
@@ -1,11 +1,4 @@
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 Op_Netbanx_Model_Mysql4_Errorcode extends Mage_Core_Model_Mysql4_Abstract
11
  {
1
  <?php
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Model_Mysql4_Errorcode extends Mage_Core_Model_Mysql4_Abstract
4
  {
app/code/community/Op/Netbanx/Model/Mysql4/Errorcode/Collection.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Mysql4/Merchant/Customer.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Mysql4/Merchant/Customer/Collection.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Mysql4/Profile.php CHANGED
@@ -1,11 +1,4 @@
1
  <?php
2
- /**
3
- * Created by PhpStorm.
4
- * User: Allan MacGregor - Magento Practice Lead <allan@demacmedia.com>
5
- * Company: Demac Media Inc.
6
- * Date: 3/10/14
7
- * Time: 11:13 AM
8
- */
9
 
10
  class Op_Netbanx_Model_Mysql4_Profile extends Mage_Core_Model_Mysql4_Abstract
11
  {
1
  <?php
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Model_Mysql4_Profile extends Mage_Core_Model_Mysql4_Abstract
4
  {
app/code/community/Op/Netbanx/Model/Mysql4/Profile/Collection.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Mysql4/Risk.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Mysql4/Risk/Collection.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Observer.php CHANGED
@@ -1,11 +1,4 @@
1
  <?php
2
- /**
3
- * Created by JetBrains PhpStorm.
4
- * User: Allan MacGregor - Magento Head Developer <allan@demacmedia.com>
5
- * Company: Demac Media Inc.
6
- * Date: 6/24/13
7
- * Time: 1:49 PM
8
- */
9
 
10
  class Op_Netbanx_Model_Observer
11
  {
@@ -103,6 +96,7 @@ class Op_Netbanx_Model_Observer
103
  }
104
 
105
  // Check response from the api
 
106
  $response = $client->updateOrder($data, $transactionId);
107
  }
108
 
1
  <?php
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Model_Observer
4
  {
96
  }
97
 
98
  // Check response from the api
99
+
100
  $response = $client->updateOrder($data, $transactionId);
101
  }
102
 
app/code/community/Op/Netbanx/Model/Profile.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Profile/Client.php CHANGED
@@ -1,11 +1,4 @@
1
  <?php
2
- /**
3
- * Created by JetBrains PhpStorm.
4
- * User: Allan MacGregor - Magento Practice Lead <allan@demacmedia.com>
5
- * Company: Demac Media Inc.
6
- * Date: 6/20/13
7
- * Time: 12:53 PM
8
- */
9
 
10
  class Op_Netbanx_Model_Profile_Client extends Op_Netbanx_Model_Client_Abstract
11
  {
@@ -15,7 +8,8 @@ class Op_Netbanx_Model_Profile_Client extends Op_Netbanx_Model_Client_Abstract
15
  protected $_restEndpoints = array();
16
 
17
  const CONNECTION_RETRIES = 3;
18
-
 
19
  public function _construct()
20
  {
21
 
@@ -91,7 +85,7 @@ class Op_Netbanx_Model_Profile_Client extends Op_Netbanx_Model_Client_Abstract
91
  // Yes I do
92
  if(isset($response->error))
93
  {
94
- Mage:log('Netbanks Returned Error: ' . $response->error->message,null,'DemacOptimal_error.log');
95
  Mage::throwException($response->error->message);
96
  return false;
97
  }
1
  <?php
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Model_Profile_Client extends Op_Netbanx_Model_Client_Abstract
4
  {
8
  protected $_restEndpoints = array();
9
 
10
  const CONNECTION_RETRIES = 3;
11
+ const LOG_FILE_NAME = 'optimal_error.log';
12
+
13
  public function _construct()
14
  {
15
 
85
  // Yes I do
86
  if(isset($response->error))
87
  {
88
+ Mage:log('Netbanks Returned Error: ' . $response->error->message,null, self::LOG_FILE_NAME);
89
  Mage::throwException($response->error->message);
90
  return false;
91
  }
app/code/community/Op/Netbanx/Model/Resource/Mysql4/Setup.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Risk.php CHANGED
@@ -10,7 +10,7 @@ class Op_Netbanx_Model_Risk extends Mage_Core_Model_Abstract
10
 
11
  /**
12
  * @param $manifestId
13
- * @return Demac_CanadaPost_Model_Artifact
14
  */
15
  public function loadByCode($errorCode)
16
  {
10
 
11
  /**
12
  * @param $manifestId
13
+ * @return $this
14
  */
15
  public function loadByCode($errorCode)
16
  {
app/code/community/Op/Netbanx/Model/Sales/Order.php CHANGED
@@ -1,9 +1,5 @@
1
  <?php
2
- /**
3
- * @author Allan MacGregor - Magento Head Developer <amacgregor@demacmedia.com>
4
- * @company Demac Media Inc.
5
- * @copyright 2010-2014 Demac Media Inc.
6
- */
7
  class Op_Netbanx_Model_Sales_Order extends Mage_Sales_Model_Order
8
  {
9
 
1
  <?php
2
+
 
 
 
 
3
  class Op_Netbanx_Model_Sales_Order extends Mage_Sales_Model_Order
4
  {
5
 
app/code/community/Op/Netbanx/Model/Source/Cctype.php CHANGED
File without changes
app/code/community/Op/Netbanx/Model/Web/Client.php CHANGED
@@ -1,11 +1,4 @@
1
  <?php
2
- /**
3
- * Created by JetBrains PhpStorm.
4
- * User: Allan MacGregor - Magento Practice Lead <allan@demacmedia.com>
5
- * Company: Demac Media Inc.
6
- * Date: 6/20/13
7
- * Time: 1:13 PM
8
- */
9
 
10
  class Op_Netbanx_Model_Web_Client extends Op_Netbanx_Model_Client_Abstract
11
  {
1
  <?php
 
 
 
 
 
 
 
2
 
3
  class Op_Netbanx_Model_Web_Client extends Op_Netbanx_Model_Client_Abstract
4
  {
app/code/community/Op/Netbanx/Test/Model/Hosted/Client.php CHANGED
File without changes
app/code/community/Op/Netbanx/Test/Model/Method/Hosted.php CHANGED
File without changes
app/code/community/Op/Netbanx/Test/Model/Observer.php CHANGED
File without changes
app/code/community/Op/Netbanx/controllers/Adminhtml/ErrorcodesController.php CHANGED
File without changes
app/code/community/Op/Netbanx/controllers/Adminhtml/ThreatController.php CHANGED
File without changes
app/code/community/Op/Netbanx/controllers/Frontend/OptimalController.php CHANGED
File without changes
app/code/community/Op/Netbanx/controllers/HandlerController.php CHANGED
@@ -9,10 +9,12 @@ class Op_Netbanx_HandlerController extends Mage_Core_Controller_Front_Action
9
  */
10
  public function callbackAction()
11
  {
 
12
  $params = $this->getRequest()->getParams();
13
  $session = Mage::getSingleton('checkout/session');
14
  $status = $params['transaction_status'];
15
 
 
16
  if ($status != 'success') {
17
  $session->addError($this->__('Payment failed, please review your payment information and try again.'));
18
  $this->_handlePaymentFailure($session, $params);
@@ -118,8 +120,22 @@ class Op_Netbanx_HandlerController extends Mage_Core_Controller_Front_Action
118
  list($month, $year) = explode('/', $transaction->card->expiry);
119
  }
120
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  if ($customerSession->isLoggedIn() && $transaction->paymentType != 'interac') {
122
  $customerId = $customerSession->getId();
 
123
  $customerData = Mage::getModel('customer/customer')->load($customerId)->getData();
124
  $Card = Mage::getModel('optimal/creditcard');
125
  $digits = $transaction->card->lastDigits;
9
  */
10
  public function callbackAction()
11
  {
12
+
13
  $params = $this->getRequest()->getParams();
14
  $session = Mage::getSingleton('checkout/session');
15
  $status = $params['transaction_status'];
16
 
17
+
18
  if ($status != 'success') {
19
  $session->addError($this->__('Payment failed, please review your payment information and try again.'));
20
  $this->_handlePaymentFailure($session, $params);
120
  list($month, $year) = explode('/', $transaction->card->expiry);
121
  }
122
 
123
+
124
+ $merchantCustomerId = mage::getSingleton('core/session')->getOptimalAnonymousGeneratedCustomerId();
125
+
126
+ if($merchantCustomerId) {
127
+ $customerId = (int)$customerSession->getId();
128
+ $resource = Mage::getSingleton('core/resource');
129
+ $write = $resource->getConnection('core_write');
130
+ $tableName = $resource->getTablename(Op_Netbanx_Model_Merchant_Customer::TABLE_NAME);
131
+ $sql = " update {$tableName} set customer_id = {$customerId} where generated_merchant_id = '{$merchantCustomerId}' and customer_id = 0 limit 1";
132
+ $write->query($sql);
133
+
134
+ }
135
+ mage::getSingleton('core/session')->unsOptimalAnonymousGeneratedCustomerId();
136
  if ($customerSession->isLoggedIn() && $transaction->paymentType != 'interac') {
137
  $customerId = $customerSession->getId();
138
+
139
  $customerData = Mage::getModel('customer/customer')->load($customerId)->getData();
140
  $Card = Mage::getModel('optimal/creditcard');
141
  $digits = $transaction->card->lastDigits;
app/code/community/Op/Netbanx/data/optimal_setup/csv/common-codes-0.3.3.csv CHANGED
File without changes
app/code/community/Op/Netbanx/data/optimal_setup/csv/webservices-codes-0.3.3.csv CHANGED
File without changes
app/code/community/Op/Netbanx/data/optimal_setup/data-upgrade-0.3.4-0.3.5.php CHANGED
File without changes
app/code/community/Op/Netbanx/etc/CHANGELOG.txt CHANGED
@@ -1,3 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  20151202 - Version 0.5.2
2
  Shane Harper <sharper@collinsharper.com>
3
 
1
+ 20161207 - Version 0.6.1
2
+ Kit Lee <klee@collinsharper.com>
3
+
4
+ app/code/community/Op/Netbanx/Helper/Data.php
5
+ app/code/community/Op/Netbanx/Model/Method/Hosted.php
6
+
7
+ 20161110 - Version 0.6.0
8
+ Kit Lee <klee@collinsharper.com>
9
+
10
+ app/code/community/Op/Netbanx/Block/Info/Creditcard.php
11
+ app/design/frontend/base/default/template/optimal/form/creditcard.phtml
12
+ app/design/frontend/base/default/template/optimal/customer/cards/form.phtml
13
+ app/code/community/Op/Netbanx/controllers/Frontend/OptimalController.php
14
+
15
+ 20161026 - Version 0.5.9
16
+ Kit Lee <klee@collinsharper.com>,Shane Harper <sharper@collinsharper.com>
17
+
18
+ app/code/community/Op/Netbanx/Model/Method/Hosted.php
19
+ app/design/frontend/base/default/template/optimal/form/creditcard.phtml
20
+
21
+ 20161024 - Version 0.5.8
22
+ Kit Lee <klee@collinsharper.com>
23
+
24
+ app/code/community/Op/Netbanx/Block/Navigation.php
25
+ app/design/frontend/base/default/template/optimal/form/creditcard.phtml
26
+
27
+ 20160419 - Version 0.5.7
28
+ Shane Harper <sharper@collinsharper.com>
29
+
30
+ app/code/community/Op/Netbanx/Helper/Data.php
31
+
32
+ correction for ticket #22 - resolve issue with customer profiles
33
+
34
+
35
+ 20160419 - Version 0.5.6
36
+ Steve Harper <stharper@collinsharper.com>
37
+
38
+ app/code/community/Op/Netbanx/etc/CHANGELOG.txt
39
+ app/code/community/Op/Netbanx/etc/conffig.xml
40
+
41
+ Updated CHANGELOG.txt and Version on config.xml
42
+
43
+ 20160419 - Version 0.5.6
44
+ Shane Harper <sharper@collinsharper.com>
45
+
46
+ app/code/community/Op/Netbanx/Model/Method/Hosted.php
47
+
48
+ correction for ticket #17 - include hidden vat tax
49
+
50
+
51
+ 20160318 - Version 0.5.5
52
+ MengChi Tsai <mtsai@collinsharper.com>
53
+
54
+ app/code/community/Op/Netbanx/etc/config.xml
55
+ app/code/community/Op/Netbanx/etc/system.xml
56
+ app/code/community/Op/Netbanx/Helper/Data.php
57
+
58
+ Added an additional option in configuration that allows the admin to decide if the users can change their profile in PaySafe's hosted page.
59
+
60
+ 20160304 - Version 0.5.4
61
+ Kit Lee <klee@collinsharper.com>
62
+
63
+ app/code/community/Op/Netbanx/Helper/Data.php
64
+
65
+ #15: Permanent Error if backed out at Paysafe page
66
+
67
+ 20160304 - Version 0.5.3
68
+ MengChi Tsai <mtsai@collinsharper.com>
69
+
70
+ app/code/community/Op/Netbanx/Block/Adminhtml/Risk.php
71
+ app/code/community/Op/Netbanx/Block/Threat.php
72
+ app/code/community/Op/Netbanx/Helper/Data.php
73
+ app/code/community/Op/Netbanx/Model/Config/Mode.php
74
+ app/code/community/Op/Netbanx/Model/Config/Status.php
75
+ app/code/community/Op/Netbanx/Model/Config/Transaction.php
76
+ app/code/community/Op/Netbanx/Model/Creditcard/Client.php
77
+ app/code/community/Op/Netbanx/Model/Hosted/Client.php
78
+ app/code/community/Op/Netbanx/Model/Method/Hosted.php
79
+ app/code/community/Op/Netbanx/Model/Mysql4/Creditcard.php
80
+ app/code/community/Op/Netbanx/Model/Mysql4/Errorcode.php
81
+ app/code/community/Op/Netbanx/Model/Mysql4/Profile.php
82
+ app/code/community/Op/Netbanx/Model/Observer.php
83
+ app/code/community/Op/Netbanx/Model/Profile/Client.php
84
+ app/code/community/Op/Netbanx/Model/Risk.php
85
+ app/code/community/Op/Netbanx/Model/Sales/Order.php
86
+ app/code/community/Op/Netbanx/Model/Web/Client.php
87
+ app/code/community/Op/Netbanx/etc/config.xml
88
+
89
+ Remove "demac" and all related information from all the listed files.
90
+ Remove the prefix "demac" in config.xml file
91
+ Change "demac_optimal_error.log" to const "optimal_error.log"
92
+
93
+
94
  20151202 - Version 0.5.2
95
  Shane Harper <sharper@collinsharper.com>
96
 
app/code/community/Op/Netbanx/etc/adminhtml.xml CHANGED
File without changes
app/code/community/Op/Netbanx/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Op_Netbanx>
5
- <version>0.5.2</version>
6
  </Op_Netbanx>
7
  </modules>
8
 
@@ -188,6 +188,8 @@
188
  <cctypes>AE,VI,MC,DI</cctypes>
189
  <!--<payment_action>authorize</payment_action>-->
190
  <allowspecific>0</allowspecific>
 
 
191
  </optimal_hosted>
192
  <optimal_profiles>
193
  <profile_key>mage</profile_key>
2
  <config>
3
  <modules>
4
  <Op_Netbanx>
5
+ <version>0.6.1</version>
6
  </Op_Netbanx>
7
  </modules>
8
 
188
  <cctypes>AE,VI,MC,DI</cctypes>
189
  <!--<payment_action>authorize</payment_action>-->
190
  <allowspecific>0</allowspecific>
191
+ <!-- by default editing is disallowed like out of box functionality -->
192
+ <profile_edit_enable>0</profile_edit_enable>
193
  </optimal_hosted>
194
  <optimal_profiles>
195
  <profile_key>mage</profile_key>
app/code/community/Op/Netbanx/etc/system.xml CHANGED
@@ -172,6 +172,16 @@
172
  <show_in_store>0</show_in_store>
173
  <frontend_class>validate-number</frontend_class>
174
  </sort_order>
 
 
 
 
 
 
 
 
 
 
175
  </fields>
176
  </optimal_hosted>
177
  <optimal_profiles translate="label" module="optimal">
172
  <show_in_store>0</show_in_store>
173
  <frontend_class>validate-number</frontend_class>
174
  </sort_order>
175
+ <profile_edit_enable translate="label">
176
+ <label>Allow Address Editing</label>
177
+ <comment>Allows the user to edit the credit card address on the hosted payment page</comment>
178
+ <frontend_type>select</frontend_type>
179
+ <source_model>adminhtml/system_config_source_yesno</source_model>
180
+ <sort_order>210</sort_order>
181
+ <show_in_default>1</show_in_default>
182
+ <show_in_website>1</show_in_website>
183
+ <show_in_store>0</show_in_store>
184
+ </profile_edit_enable>
185
  </fields>
186
  </optimal_hosted>
187
  <optimal_profiles translate="label" module="optimal">
app/code/community/Op/Netbanx/sql/optimal_setup/install-0.1.1.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.0.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.1.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.2.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.3.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.4.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.5.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.6.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.7.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/install-0.2.9.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/install-0.3.5.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.1.1.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.0.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.1.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.2.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.3.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.4.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.5.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.6.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.7.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.2.9.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-install-0.3.5.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-upgrade-0.1.1-0.2.7.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-upgrade-0.4.1-0.4.2.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-upgrade-0.4.3-0.4.4.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-upgrade-0.4.4-0.4.5.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+
4
+ $installer->startSetup();
5
+
6
+ $installer->getConnection()->addColumn($installer->getTable('demac_optimal_merchant_customer'),
7
+ 'generated_merchant_id', 'varchar(100) NOT NULL');
8
+
9
+ $installer->endSetup();
app/code/community/Op/Netbanx/sql/optimal_setup/mysql4-upgrade-0.5.6-0.5.7.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+
4
+ $installer->startSetup();
5
+
6
+ $installer->getConnection()->addColumn($installer->getTable('demac_optimal_merchant_customer'),
7
+ 'generated_merchant_id', 'varchar(100) NOT NULL');
8
+
9
+ $installer->endSetup();
app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.1.1-0.2.7.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.2.9-0.3.0.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.3.1-0.3.2.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.3.4-0.3.5.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.3.7-0.3.8.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.4.1-0.4.2.php CHANGED
File without changes
app/code/community/Op/Netbanx/sql/optimal_setup/upgrade-0.4.3-0.4.4.php CHANGED
File without changes
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
@@ -27,6 +27,7 @@
27
  <?php
28
  $_code = $this->getMethodCode();
29
 
 
30
  $skip3d = $this->skip3D();
31
  $profilesEnabled = $this->canSaveProfiles();
32
  //$profilesEnabled = ($this->hasOptimalProfiles() === true);
@@ -342,7 +343,7 @@ $profiles = $this->hasOptimalProfiles();
342
  <?php if($this->canSaveProfiles()): ?>
343
  <li class="control">
344
  <input type="checkbox" title="<?php echo $this->__('Create Profile and Save Card') ?>" class="radio" value="1" id="<?php echo $_code ?>_optimal_create_profile" name="payment[optimal_create_profile]">
345
- <label for="<?php echo $_code ?>_optimal_create_profile" class="required"><em>*</em><?php echo $this->__('Create Profile and Save Card') ?> </label>
346
  </li>
347
  <?php else: ?>
348
  <input type="hidden" title="<?php echo $this->__('Create Profile and Save Card') ?>" class="radio" value="0" id="<?php echo $_code ?>_create_profile" name="payment[optimal_create_profile]">
27
  <?php
28
  $_code = $this->getMethodCode();
29
 
30
+ // KL: We are in hosted payment mode
31
  $skip3d = $this->skip3D();
32
  $profilesEnabled = $this->canSaveProfiles();
33
  //$profilesEnabled = ($this->hasOptimalProfiles() === true);
343
  <?php if($this->canSaveProfiles()): ?>
344
  <li class="control">
345
  <input type="checkbox" title="<?php echo $this->__('Create Profile and Save Card') ?>" class="radio" value="1" id="<?php echo $_code ?>_optimal_create_profile" name="payment[optimal_create_profile]">
346
+ <label for="<?php echo $_code ?>_optimal_create_profile"><?php echo $this->__('Create Profile and Save Card') ?> </label>
347
  </li>
348
  <?php else: ?>
349
  <input type="hidden" title="<?php echo $this->__('Create Profile and Save Card') ?>" class="radio" value="0" id="<?php echo $_code ?>_create_profile" name="payment[optimal_create_profile]">
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/Op_Netbanx.xml CHANGED
File without changes
package.xml CHANGED
@@ -1,37 +1,19 @@
1
- <?xml version="1.0"?>
2
- <package>
3
- <name>666999</name>
4
- <version>0.5.2</version>
5
- <stability>stable</stability>
6
- <license>Apache 2.0</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>-- 20151202 - Resolve order status issue, auth and auth/cap to change status respectively&#xD;
18
- &#xD;
19
- -- 20151014 - Updated for multiple shipping address not allowed. &#xD;
20
- &#xD;
21
- -- 20150826 - Update for bug for gift cards&#xD;
22
- &#xD;
23
- -- 20150815 - correction for points&#xD;
24
- &#xD;
25
- -- 20150812 - update for 64 bit cpu rounding issue&#xD;
26
- &#xD;
27
- -- 20150806 - corrected issue with ancilary fees and points system. - version 0.4.6&#xD;
28
- &#xD;
29
- -- Undated&#xD;
30
- Implements Interac payments feature.</notes>
31
- <authors><author><name>Shane Harper</name><user>shane</user><email>sharper@collinsharper.com</email></author></authors>
32
- <date>2015-12-02</date>
33
- <time>22:25:52</time>
34
- <contents><target name="magecommunity"><dir name="Op"><dir name="Netbanx"><dir name="Block"><dir name="Adminhtml"><dir name="Errorcode"><dir name="Edit"><file name="Form.php" hash="8c07a510c27f17c45d8a1a41875c7978"/></dir><file name="Edit.php" hash="be33b878a89b89ccb858d806620c3634"/><file name="Grid.php" hash="ca6b8c4d6a11b247209db88d961afff5"/></dir><file name="Errorcode.php" hash="61561a781e8af3b6d4f28374c0edd4e8"/><dir name="Risk"><dir name="Edit"><file name="Form.php" hash="910ae85b20a3293b0483a80f4f55fa13"/><dir name="Tab"><file name="Form.php" hash="30ce159c4574601e814b615b79186e5e"/></dir><file name="Tabs.php" hash="2280cee2fac93a77127589331d884cfb"/></dir><file name="Edit.php" hash="b61dd9d2f55cb3febe2f035dd659e28f"/><file name="Grid.php" hash="a19d12abe03378de59b5e2185b1d1c10"/></dir><file name="Risk.php" hash="0b51702f93dd8615b0da89256497b433"/></dir><dir name="Customer"><dir name="Cards"><file name="Form.php" hash="8678b98869e5c93541a68b46ea198dec"/><file name="Grid.php" hash="2c4014b8d6615f6e88901eada6b4878f"/></dir><file name="Cards.php" hash="252a4a45712741c0a9e0dcda94dc69d2"/></dir><dir name="Form"><file name="Creditcard.php" hash="bdb7281e38ac2dc9bd4d492cefe08750"/></dir><dir name="Info"><file name="Creditcard.php" hash="89a039eac38138e3b8d1289cc48c03bd"/></dir><file name="Navigation.php" hash="ca727a16864e72e86127d1ccf54fe0f7"/><file name="Threat.php" hash="fd3392d6bc9ccc8021c6ae0813d8602b"/></dir><dir name="Helper"><file name="Data.php" hash="6c2c0bf9ca735eb93c123c7c7f385f7d"/></dir><dir name="Model"><dir name="Client"><file name="Abstract.php" hash="b706632d95d5868ee8c41f3b3f405318"/></dir><dir name="Config"><file name="Mode.php" hash="fb86226e6bb85c40de52b3ec461fce32"/><file name="Status.php" hash="32b8288461e55f40f0550b91653c664d"/><file name="Transaction.php" hash="298c32e0507236a6abc6ef40e154d258"/></dir><dir name="Creditcard"><file name="Client.php" hash="c3c6d310587a3b45d8a40e3c5dceeb83"/></dir><file name="Creditcard.php" hash="4328c892c621263b023590153d39cc01"/><file name="Errorcode.php" hash="a2b53ce2a0a0997b9327c09cdacb5ea0"/><dir name="Hosted"><file name="Client.php" hash="9017f031459ec22cec9e56ebce47ae86"/><file name="Exception.php" hash="24343035f9cfdbe70d31991b121c9d6e"/></dir><dir name="Merchant"><file name="Customer.php" hash="b4f06b758149a1f05a1593f0eb96d86f"/></dir><dir name="Method"><file name="Hosted.php" hash="5ea11ef0542886c5d8aef2022a29090c"/></dir><dir name="Mysql4"><dir name="Creditcard"><file name="Collection.php" hash="e95dd1cbac319e85b920085f62128c81"/></dir><file name="Creditcard.php" hash="ccd40c22b3b985306b26b6f992c4f14c"/><dir name="Errorcode"><file name="Collection.php" hash="07406418b492a258c18dd8c80410c9df"/></dir><file name="Errorcode.php" hash="d24a67ea9dc8f99a9bf72d5e37041cb2"/><dir name="Merchant"><dir name="Customer"><file name="Collection.php" hash="d368dd117f43f21699db57a07dbcc48d"/></dir><file name="Customer.php" hash="b69a6c2a73e896ba30e4bf164269ae6a"/></dir><dir name="Profile"><file name="Collection.php" hash="658fe9f162de24dd941567236cc5a505"/></dir><file name="Profile.php" hash="4b3d5aa41fa1994e308f221c9a105e44"/><dir name="Risk"><file name="Collection.php" hash="5ffdb141ab0439a301d2ab16de8e9624"/></dir><file name="Risk.php" hash="e1e23dc033a0544f98b5a47188255407"/></dir><file name="Observer.php" hash="8b0df703cc05c6a84aa70d9d755b961b"/><dir name="Profile"><file name="Client.php" hash="749a478d063c6fccf508987bb97c925d"/></dir><file name="Profile.php" hash="a136d3eac78333c11046148824b1fcc9"/><dir name="Resource"><dir name="Mysql4"><file name="Setup.php" hash="c79581cd750b87c371441630324b4543"/></dir></dir><file name="Risk.php" hash="e3b7c69633b79a0a6f5f62b004fbd2e1"/><dir name="Sales"><file name="Order.php" hash="5d048ef6d13958264915c68cb1816b9e"/></dir><dir name="Source"><file name="Cctype.php" hash="1f3c18bf6648548a04f0d7d245cf3c61"/></dir><dir name="Web"><file name="Client.php" hash="d5a5c1c929c6de0ffb6eb9dbb4ea9592"/></dir></dir><dir name="Test"><dir name="Model"><dir name="Hosted"><file name="Client.php" hash="36f33d620dd0914e4dd9c023db9e543e"/></dir><dir name="Method"><file name="Hosted.php" hash="2c6bb3e66d854462b105b891aaac1568"/></dir><file name="Observer.php" hash="a1484978e02274787f0d9439882c63cb"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ErrorcodesController.php" hash="691e0bc94e97ace9f912349deb7c12b1"/><file name="ThreatController.php" hash="abe574a9b7ea189108d4e69c7ceca9ce"/></dir><dir name="Frontend"><file name="OptimalController.php" hash="39e442f593dd490bee337cd4ca757b91"/></dir><file name="HandlerController.php" hash="95251d3065f5bd3643cc5dcd51e29f03"/></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="CHANGELOG.txt" hash="ced137ad28e2a3c2f84331b510d1086f"/><file name="adminhtml.xml" hash="30a4af4a510783219bbee940d185fb19"/><file name="config.xml" hash="9bfc0e6084397365ca6f5bda99354e2f"/><file name="system.xml" hash="7a1bd378b32f879e3711cd2cdcfa2e8f"/></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="6a97d7f7b4513bce80c9bf151bd21fdc"/><file name="install-0.2.1.php" hash="2ec1146f6739ff03f90ea07217e9e968"/><file name="install-0.2.2.php" hash="3fdd9863b235b275593893af34abcefb"/><file name="install-0.2.3.php" hash="e07b474749b6ee431e90343a9c79f46b"/><file name="install-0.2.4.php" hash="e07b474749b6ee431e90343a9c79f46b"/><file name="install-0.2.5.php" hash="84228a0ce89a63179095a9790167715d"/><file name="install-0.2.6.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><file name="install-0.2.7.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><file name="install-0.2.9.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><file name="install-0.3.5.php" hash="4abfc294ba5df2e55772e4474af173da"/><file name="mysql4-install-0.1.1.php" hash="422b6afb2d2320f5d9c59cd5bff0dc3d"/><file name="mysql4-install-0.2.0.php" hash="6a97d7f7b4513bce80c9bf151bd21fdc"/><file name="mysql4-install-0.2.1.php" hash="2ec1146f6739ff03f90ea07217e9e968"/><file name="mysql4-install-0.2.2.php" hash="3fdd9863b235b275593893af34abcefb"/><file name="mysql4-install-0.2.3.php" hash="e07b474749b6ee431e90343a9c79f46b"/><file name="mysql4-install-0.2.4.php" hash="e07b474749b6ee431e90343a9c79f46b"/><file name="mysql4-install-0.2.5.php" hash="84228a0ce89a63179095a9790167715d"/><file name="mysql4-install-0.2.6.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><file name="mysql4-install-0.2.7.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><file name="mysql4-install-0.2.9.php" hash="30039fc096f8db2a82a3268b467ef856"/><file name="mysql4-install-0.3.5.php" hash="fbd3e9db470b8c59353e0fd1677fdb15"/><file name="mysql4-upgrade-0.1.1-0.2.7.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><file name="mysql4-upgrade-0.4.1-0.4.2.php" hash="8387580ae133615a3de551eaa86a0e2c"/><file name="mysql4-upgrade-0.4.3-0.4.4.php" hash="5cb4f76fccf0f97f9b4c5e5ebd530f70"/><file name="upgrade-0.1.1-0.2.7.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><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.5.php" hash="5283e3567c7d35e22b4c87bbc89a0eb3"/><file name="upgrade-0.3.7-0.3.8.php" hash="5283e3567c7d35e22b4c87bbc89a0eb3"/><file name="upgrade-0.4.1-0.4.2.php" hash="8387580ae133615a3de551eaa86a0e2c"/><file name="upgrade-0.4.3-0.4.4.php" hash="5cb4f76fccf0f97f9b4c5e5ebd530f70"/></dir></dir></dir></dir></target><target name="magedesign"><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="b40291e8e97dbcb6b7cf2f4b8ffb93f5"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="optimal.xml" hash="03c64fd49785bfca34ee3249cc9bc97d"/></dir><dir name="template"><dir name="optimal"><dir name="customer"><dir name="cards"><file name="form.phtml" hash="be217c0a2959b8ef1284d5e45813bd03"/><file name="grid.phtml" hash="33a02b86b53044c4ff5a6c839d86ab01"/></dir><file name="cards.phtml" hash="ed3f6e56b134674e7d8ddcb6a1deac59"/></dir><dir name="form"><file name="creditcard.phtml" hash="a4503c38c0235aa3450a2a3dab765204"/></dir><dir name="info"><file name="creditcard.phtml" hash="c11c746e88ac2b299af4a1f425300bc7"/></dir><file name="threatmeter.phtml" hash="3dd0ea7621038895aa1dd1e322ba7d99"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Op_Netbanx.xml" hash="cd0d39c4aaef3ca498ab64d26e30d1a4"/></dir></target></contents>
35
- <compatible/>
36
- <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
37
- </package>
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>666999</name>
4
+ <version>0.6.1</version>
5
+ <stability>stable</stability>
6
+ <license>Apache 2.0</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Optimal Payments module</summary>
10
+ <description>Credit card processing module</description>
11
+ <notes>Fix the duplicate profile issue when use it in multi-store environment&#xD;
12
+ </notes>
13
+ <authors><author><name>Collins Harper</name><user>collinsharper</user><email>ch@collinsharper.com</email></author></authors>
14
+ <date>2016-11-18</date>
15
+ <time>23:40:29</time>
16
+ <contents><target name="magecommunity"><dir name="Op"><dir name="Netbanx"><dir name="Block"><dir name="Adminhtml"><dir name="Errorcode"><dir name="Edit"><file name="Form.php" hash="8c07a510c27f17c45d8a1a41875c7978"/></dir><file name="Edit.php" hash="be33b878a89b89ccb858d806620c3634"/><file name="Grid.php" hash="ca6b8c4d6a11b247209db88d961afff5"/></dir><file name="Errorcode.php" hash="61561a781e8af3b6d4f28374c0edd4e8"/><dir name="Risk"><dir name="Edit"><file name="Form.php" hash="910ae85b20a3293b0483a80f4f55fa13"/><dir name="Tab"><file name="Form.php" hash="30ce159c4574601e814b615b79186e5e"/></dir><file name="Tabs.php" hash="2280cee2fac93a77127589331d884cfb"/></dir><file name="Edit.php" hash="b61dd9d2f55cb3febe2f035dd659e28f"/><file name="Grid.php" hash="a19d12abe03378de59b5e2185b1d1c10"/></dir><file name="Risk.php" hash="8cfa6c03bb5ce13287252b2d70c997ce"/></dir><dir name="Customer"><dir name="Cards"><file name="Form.php" hash="8678b98869e5c93541a68b46ea198dec"/><file name="Grid.php" hash="2c4014b8d6615f6e88901eada6b4878f"/></dir><file name="Cards.php" hash="252a4a45712741c0a9e0dcda94dc69d2"/></dir><dir name="Form"><file name="Creditcard.php" hash="bdb7281e38ac2dc9bd4d492cefe08750"/></dir><dir name="Info"><file name="Creditcard.php" hash="67d2ed8150c7aae6751b827d86b1b481"/></dir><file name="Navigation.php" hash="1fd843a84f086d3f18eced42a089440b"/><file name="Threat.php" hash="a6e912952868e6c5dafa96de45653d02"/></dir><dir name="Helper"><file name="Data.php" hash="8f3a805bc3b1ae004542169558fc6ff0"/></dir><dir name="Model"><dir name="Client"><file name="Abstract.php" hash="b706632d95d5868ee8c41f3b3f405318"/></dir><dir name="Config"><file name="Mode.php" hash="01f1a0995aa6539307cc1ea04badaa43"/><file name="Status.php" hash="78b0a86948a7d67fe359fa4d0cdcacb9"/><file name="Transaction.php" hash="793055e6afa0f2bb65ae1b3d4583e0ab"/></dir><dir name="Creditcard"><file name="Client.php" hash="18ec54dabb511425c73b09ee8bb246d7"/></dir><file name="Creditcard.php" hash="4328c892c621263b023590153d39cc01"/><file name="Errorcode.php" hash="a2b53ce2a0a0997b9327c09cdacb5ea0"/><dir name="Hosted"><file name="Client.php" hash="fa4e965fcb9af92c3357085a63d44bd5"/><file name="Exception.php" hash="24343035f9cfdbe70d31991b121c9d6e"/></dir><dir name="Merchant"><file name="Customer.php" hash="8c2ff895dd61222dc59fe1b6cf956e6a"/></dir><dir name="Method"><file name="Hosted.php" hash="a1ebd9e9c959572ce4d23439d5333a70"/></dir><dir name="Mysql4"><dir name="Creditcard"><file name="Collection.php" hash="e95dd1cbac319e85b920085f62128c81"/></dir><file name="Creditcard.php" hash="8812d94226f6aac3b05d7c937f4e53b5"/><dir name="Errorcode"><file name="Collection.php" hash="07406418b492a258c18dd8c80410c9df"/></dir><file name="Errorcode.php" hash="3b4474eaf8dbd3cd08415ce2491ada50"/><dir name="Merchant"><dir name="Customer"><file name="Collection.php" hash="d368dd117f43f21699db57a07dbcc48d"/></dir><file name="Customer.php" hash="b69a6c2a73e896ba30e4bf164269ae6a"/></dir><dir name="Profile"><file name="Collection.php" hash="658fe9f162de24dd941567236cc5a505"/></dir><file name="Profile.php" hash="38c0890a4a211c1aa7efcb0dacd2e4c9"/><dir name="Risk"><file name="Collection.php" hash="5ffdb141ab0439a301d2ab16de8e9624"/></dir><file name="Risk.php" hash="e1e23dc033a0544f98b5a47188255407"/></dir><file name="Observer.php" hash="4ea4a034ffd36deac67f652561128168"/><dir name="Profile"><file name="Client.php" hash="d78a15f7ff379eb2d3c35c8717a082fe"/></dir><file name="Profile.php" hash="a136d3eac78333c11046148824b1fcc9"/><dir name="Resource"><dir name="Mysql4"><file name="Setup.php" hash="c79581cd750b87c371441630324b4543"/></dir></dir><file name="Risk.php" hash="ec207fc8ba2ced03dc9b4e2904dd238e"/><dir name="Sales"><file name="Order.php" hash="ea20fe0d82541101983d3712caa01a5c"/></dir><dir name="Source"><file name="Cctype.php" hash="1f3c18bf6648548a04f0d7d245cf3c61"/></dir><dir name="Web"><file name="Client.php" hash="5ad76c58777cd2143cf1f3ae1cb302b5"/></dir></dir><dir name="Test"><dir name="Model"><dir name="Hosted"><file name="Client.php" hash="36f33d620dd0914e4dd9c023db9e543e"/></dir><dir name="Method"><file name="Hosted.php" hash="2c6bb3e66d854462b105b891aaac1568"/></dir><file name="Observer.php" hash="a1484978e02274787f0d9439882c63cb"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ErrorcodesController.php" hash="691e0bc94e97ace9f912349deb7c12b1"/><file name="ThreatController.php" hash="abe574a9b7ea189108d4e69c7ceca9ce"/></dir><dir name="Frontend"><file name="OptimalController.php" hash="39e442f593dd490bee337cd4ca757b91"/></dir><file name="HandlerController.php" hash="c08f615998ae397bec93fc3bfaa26e15"/></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="CHANGELOG.txt" hash="c21cdc8c776c56f7560f325471680e60"/><file name="adminhtml.xml" hash="30a4af4a510783219bbee940d185fb19"/><file name="config.xml" hash="1d87dcac67a5fbd370d82566c46fa945"/><file name="system.xml" hash="984df9882d71f15965f6ea56c291471e"/></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="6a97d7f7b4513bce80c9bf151bd21fdc"/><file name="install-0.2.1.php" hash="2ec1146f6739ff03f90ea07217e9e968"/><file name="install-0.2.2.php" hash="3fdd9863b235b275593893af34abcefb"/><file name="install-0.2.3.php" hash="e07b474749b6ee431e90343a9c79f46b"/><file name="install-0.2.4.php" hash="e07b474749b6ee431e90343a9c79f46b"/><file name="install-0.2.5.php" hash="84228a0ce89a63179095a9790167715d"/><file name="install-0.2.6.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><file name="install-0.2.7.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><file name="install-0.2.9.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><file name="install-0.3.5.php" hash="4abfc294ba5df2e55772e4474af173da"/><file name="mysql4-install-0.1.1.php" hash="422b6afb2d2320f5d9c59cd5bff0dc3d"/><file name="mysql4-install-0.2.0.php" hash="6a97d7f7b4513bce80c9bf151bd21fdc"/><file name="mysql4-install-0.2.1.php" hash="2ec1146f6739ff03f90ea07217e9e968"/><file name="mysql4-install-0.2.2.php" hash="3fdd9863b235b275593893af34abcefb"/><file name="mysql4-install-0.2.3.php" hash="e07b474749b6ee431e90343a9c79f46b"/><file name="mysql4-install-0.2.4.php" hash="e07b474749b6ee431e90343a9c79f46b"/><file name="mysql4-install-0.2.5.php" hash="84228a0ce89a63179095a9790167715d"/><file name="mysql4-install-0.2.6.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><file name="mysql4-install-0.2.7.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><file name="mysql4-install-0.2.9.php" hash="30039fc096f8db2a82a3268b467ef856"/><file name="mysql4-install-0.3.5.php" hash="fbd3e9db470b8c59353e0fd1677fdb15"/><file name="mysql4-upgrade-0.1.1-0.2.7.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><file name="mysql4-upgrade-0.4.1-0.4.2.php" hash="8387580ae133615a3de551eaa86a0e2c"/><file name="mysql4-upgrade-0.4.3-0.4.4.php" hash="5cb4f76fccf0f97f9b4c5e5ebd530f70"/><file name="mysql4-upgrade-0.4.4-0.4.5.php" hash="11ffcff2be922d26dd504f9aed98c3f3"/><file name="mysql4-upgrade-0.5.6-0.5.7.php" hash="11ffcff2be922d26dd504f9aed98c3f3"/><file name="upgrade-0.1.1-0.2.7.php" hash="2986f567d1e7b4dd3e5ebdd8abd612c4"/><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.5.php" hash="5283e3567c7d35e22b4c87bbc89a0eb3"/><file name="upgrade-0.3.7-0.3.8.php" hash="5283e3567c7d35e22b4c87bbc89a0eb3"/><file name="upgrade-0.4.1-0.4.2.php" hash="8387580ae133615a3de551eaa86a0e2c"/><file name="upgrade-0.4.3-0.4.4.php" hash="5cb4f76fccf0f97f9b4c5e5ebd530f70"/></dir></dir></dir></dir></target><target name="magedesign"><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="b40291e8e97dbcb6b7cf2f4b8ffb93f5"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="optimal.xml" hash="03c64fd49785bfca34ee3249cc9bc97d"/></dir><dir name="template"><dir name="optimal"><dir name="customer"><dir name="cards"><file name="form.phtml" hash="be217c0a2959b8ef1284d5e45813bd03"/><file name="grid.phtml" hash="33a02b86b53044c4ff5a6c839d86ab01"/></dir><file name="cards.phtml" hash="ed3f6e56b134674e7d8ddcb6a1deac59"/></dir><dir name="form"><file name="creditcard.phtml" hash="211bb81eab069569a8d425606cf68853"/></dir><dir name="info"><file name="creditcard.phtml" hash="c11c746e88ac2b299af4a1f425300bc7"/></dir><file name="threatmeter.phtml" hash="3dd0ea7621038895aa1dd1e322ba7d99"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Op_Netbanx.xml" hash="cd0d39c4aaef3ca498ab64d26e30d1a4"/></dir></target></contents>
17
+ <compatible/>
18
+ <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
19
+ </package>