666999 - Version 0.4.5

Version Notes

Implements Interac payments feature.

Download this release

Release Info

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


Code changes from version 0.4.4 to 0.4.5

app/code/community/Demac/Optimal/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Demac_Optimal>
5
- <version>0.4.4</version>
6
  </Demac_Optimal>
7
  </modules>
8
 
2
  <config>
3
  <modules>
4
  <Demac_Optimal>
5
+ <version>0.4.5</version>
6
  </Demac_Optimal>
7
  </modules>
8
 
app/code/community/Demac/Optimal/sql/optimal_setup/mysql4-upgrade-0.4.1-0.4.2.php CHANGED
@@ -4,9 +4,70 @@ $installer = $this;
4
 
5
  $installer->startSetup();
6
 
7
- $installer->run("
8
- ALTER TABLE `{$installer->getTable('sales_flat_quote_payment')}` MODIFY `optimal_profile_id` VARCHAR(255) NOT NULL DEFAULT \"\" AFTER `method`;
9
- ALTER TABLE `{$installer->getTable('sales_flat_order_payment')}` MODIFY `optimal_profile_id` VARCHAR(255) NOT NULL DEFAULT \"\" AFTER `method`;
10
- ");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  $installer->endSetup();
4
 
5
  $installer->startSetup();
6
 
7
+ $addCol = false;
8
+
9
+ try {
10
+ $installer->run("ALTER TABLE `{$installer->getTable('sales_flat_quote_payment')}` MODIFY `optimal_profile_id` VARCHAR(255) NOT NULL DEFAULT \"\" AFTER `method`;");
11
+ } catch (Exception $e) {
12
+ $msg = strtolower($e->getMessage());
13
+ if (strpos($msg, 'column not found') !== false) {
14
+ $addCol = true;
15
+ }
16
+ }
17
+
18
+ if ($addCol) {
19
+ $installer->getConnection()->addColumn($installer->getTable('sales_flat_quote_payment'),
20
+ 'optimal_profile_id', 'VARCHAR(255) NOT NULL DEFAULT "" AFTER `method`');
21
+ }
22
+
23
+ $addCol = false;
24
+
25
+ try {
26
+ $installer->run("ALTER TABLE `{$installer->getTable('sales_flat_order_payment')}` MODIFY `optimal_profile_id` VARCHAR(255) NOT NULL DEFAULT \"\" AFTER `method`;");
27
+ } catch (Exception $e) {
28
+ $msg = strtolower($e->getMessage());
29
+ if (strpos($msg, 'column not found') !== false) {
30
+ $addCol = true;
31
+ }
32
+ }
33
+
34
+ if ($addCol) {
35
+ $installer->getConnection()->addColumn($installer->getTable('sales_flat_order_payment'),
36
+ 'optimal_profile_id', 'VARCHAR(255) NOT NULL DEFAULT "" AFTER `method`');
37
+ }
38
+
39
+ $addCol = false;
40
+
41
+ try {
42
+ $installer->getConnection()->addColumn($installer->getTable('sales_flat_quote_payment'),
43
+ 'optimal_create_profile', 'BOOLEAN NOT NULL AFTER `method`');
44
+ } catch (Exception $e) {
45
+ // means col exists already
46
+ }
47
+
48
+ try {
49
+ $installer->getConnection()->addColumn($installer->getTable('sales_flat_order_payment'),
50
+ 'optimal_create_profile', 'BOOLEAN NOT NULL AFTER `method`');
51
+ } catch (Exception $e) {
52
+ // means col exists already
53
+ }
54
+
55
+ try {
56
+ $installer->getConnection()
57
+ ->newTable($installer->getTable('optimal/merchant_customer'))
58
+ ->addColumn('merchant_customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, NULL, array(
59
+ 'identity' => TRUE,
60
+ 'unsigned' => TRUE,
61
+ 'nullable' => FALSE,
62
+ 'primary' => TRUE,
63
+ ), 'Merchant Customer ID')
64
+ ->addColumn('customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, NULL, array(
65
+ 'unsigned' => TRUE,
66
+ 'nullable' => FALSE,
67
+ 'primary' => TRUE
68
+ ), 'Customer ID');
69
+ } catch (Exception $e) {
70
+ // means table exists already
71
+ }
72
 
73
  $installer->endSetup();
app/code/community/Demac/Optimal/sql/optimal_setup/upgrade-0.4.1-0.4.2.php CHANGED
@@ -4,9 +4,70 @@ $installer = $this;
4
 
5
  $installer->startSetup();
6
 
7
- $installer->run("
8
- ALTER TABLE `{$installer->getTable('sales_flat_quote_payment')}` MODIFY `optimal_profile_id` VARCHAR(255) NOT NULL DEFAULT \"\" AFTER `method`;
9
- ALTER TABLE `{$installer->getTable('sales_flat_order_payment')}` MODIFY `optimal_profile_id` VARCHAR(255) NOT NULL DEFAULT \"\" AFTER `method`;
10
- ");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  $installer->endSetup();
4
 
5
  $installer->startSetup();
6
 
7
+ $addCol = false;
8
+
9
+ try {
10
+ $installer->run("ALTER TABLE `{$installer->getTable('sales_flat_quote_payment')}` MODIFY `optimal_profile_id` VARCHAR(255) NOT NULL DEFAULT \"\" AFTER `method`;");
11
+ } catch (Exception $e) {
12
+ $msg = strtolower($e->getMessage());
13
+ if (strpos($msg, 'column not found') !== false) {
14
+ $addCol = true;
15
+ }
16
+ }
17
+
18
+ if ($addCol) {
19
+ $installer->getConnection()->addColumn($installer->getTable('sales_flat_quote_payment'),
20
+ 'optimal_profile_id', 'VARCHAR(255) NOT NULL DEFAULT "" AFTER `method`');
21
+ }
22
+
23
+ $addCol = false;
24
+
25
+ try {
26
+ $installer->run("ALTER TABLE `{$installer->getTable('sales_flat_order_payment')}` MODIFY `optimal_profile_id` VARCHAR(255) NOT NULL DEFAULT \"\" AFTER `method`;");
27
+ } catch (Exception $e) {
28
+ $msg = strtolower($e->getMessage());
29
+ if (strpos($msg, 'column not found') !== false) {
30
+ $addCol = true;
31
+ }
32
+ }
33
+
34
+ if ($addCol) {
35
+ $installer->getConnection()->addColumn($installer->getTable('sales_flat_order_payment'),
36
+ 'optimal_profile_id', 'VARCHAR(255) NOT NULL DEFAULT "" AFTER `method`');
37
+ }
38
+
39
+ $addCol = false;
40
+
41
+ try {
42
+ $installer->getConnection()->addColumn($installer->getTable('sales_flat_quote_payment'),
43
+ 'optimal_create_profile', 'BOOLEAN NOT NULL AFTER `method`');
44
+ } catch (Exception $e) {
45
+ // means col exists already
46
+ }
47
+
48
+ try {
49
+ $installer->getConnection()->addColumn($installer->getTable('sales_flat_order_payment'),
50
+ 'optimal_create_profile', 'BOOLEAN NOT NULL AFTER `method`');
51
+ } catch (Exception $e) {
52
+ // means col exists already
53
+ }
54
+
55
+ try {
56
+ $installer->getConnection()
57
+ ->newTable($installer->getTable('optimal/merchant_customer'))
58
+ ->addColumn('merchant_customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, NULL, array(
59
+ 'identity' => TRUE,
60
+ 'unsigned' => TRUE,
61
+ 'nullable' => FALSE,
62
+ 'primary' => TRUE,
63
+ ), 'Merchant Customer ID')
64
+ ->addColumn('customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, NULL, array(
65
+ 'unsigned' => TRUE,
66
+ 'nullable' => FALSE,
67
+ 'primary' => TRUE
68
+ ), 'Customer ID');
69
+ } catch (Exception $e) {
70
+ // means table exists already
71
+ }
72
 
73
  $installer->endSetup();
app/design/frontend/base/default/template/optimal/form/creditcard.phtml CHANGED
@@ -37,16 +37,16 @@ $profiles = $this->hasOptimalProfiles();
37
  <?php if (!$skip3d): ?>
38
  <ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none;">
39
  <li>You will be redirected to Optimal Payments for payment authorisation. <?php echo $allowInterac ? 'Please choose mode of payment below.' : ''; ?></li>
40
- <?php if ($allowInterac): ?>
41
- <li class="control">
42
- <input id="optimal-pay-via-interac" type="radio" title="<?php echo $this->__('Pay via Interac') ?>" class="radio optimal-pay-via validate-one-required-by-name" value="1" name="payment[optimal_use_interac]">
43
- <label for="optimal-pay-via-interac"><?php echo $this->__('Pay via Interac') ?> </label>
44
- </li>
45
- <li class="control">
46
- <input id="optimal-pay-via-cc" type="radio" title="<?php echo $this->__('Pay using Credit Card') ?>" class="radio optimal-pay-via validate-one-required-by-name" value="0" name="payment[optimal_use_interac]">
47
- <label for="optimal-pay-via-cc"><?php echo $this->__('Pay using Credit Card') ?> </label>
48
- </li>
49
- <?php endif; ?>
50
  </ul>
51
 
52
  <script type="text/javascript">
@@ -59,340 +59,345 @@ $profiles = $this->hasOptimalProfiles();
59
  });
60
  </script>
61
 
62
- <?php return; endif; ?>
63
 
64
  <div id="optimal-cc-forms">
65
 
66
- <?php if ($allowInterac): ?>
67
 
68
- <ul class="form-list" id="optimal-form-controls" style="display:none;">
69
- <li class="control">
70
- <input id="optimal-pay-via-interac" type="checkbox" title="<?php echo $this->__('Use Interac') ?>" class="radio optimal-pay-via" value="interac" name="optimal-pay-via">
71
- <label for="optimal-pay-via-interac"><?php echo $this->__('Use Interac') ?> </label>
72
- <input type="hidden" value="0" name="payment[optimal_use_interac]" id="opt-use-interac" />
73
- </li>
74
- <li id="interac-msg" style="display:none;">
75
- <ul class="form-list">
76
- <li><?php echo $this->__('This will redirect you to Optimal Hosted Payments page where you can complete your payment via Interac.'); ?></li>
77
- </ul>
78
- </li>
79
- <li class="control">
80
- <input id="optimal-pay-via-cc" type="checkbox" title="<?php echo $this->__('Pay Via Credit Card') ?>" class="radio optimal-pay-via" value="creditcard" name="optimal-pay-via">
81
- <label for="optimal-pay-via-cc"><?php echo $this->__('Pay Via Credit Card') ?> </label>
82
- </li>
83
- </ul>
84
 
85
- <script type="text/javascript">
86
- $('p_method_<?php echo $_code; ?>').on('click', function() {
87
- $('optimal-form-controls').show();
88
- $$('input[name=optimal-pay-via]').each(function(element){
89
- element.disabled = false;
 
 
90
  });
91
- $('opt-use-interac').disabled = false;
92
- });
93
 
94
- $$('input[name=optimal-pay-via]').invoke('on', 'click', function() {
95
- if (this.value == 'interac') {
96
- if (this.checked == true) {
97
- $('interac-msg').show();
98
- $('optimal-pay-via-cc').checked = false;
99
- $('opt-use-interac').value = 1;
100
 
101
- <?php if ($profilesEnabled): ?>
102
 
103
- hideProfilesSelector();
104
 
105
- <?php endif; ?>
106
 
107
- hideFormCombo();
108
 
109
- } else {
110
- $('interac-msg').hide();
111
- $('opt-use-interac').value = 0;
112
- }
113
- } else if (this.value == 'creditcard') {
114
- if (this.checked == true) {
115
- $('interac-msg').hide();
116
- $('opt-use-interac').value = 0;
117
- $('optimal-pay-via-interac').checked = false;
118
 
119
- <?php if ($profilesEnabled): ?>
120
  showProfilesSelector();
121
- <?php endif; ?>
122
 
123
- showFormCombo();
124
- return;
125
 
126
- }
127
 
128
- <?php if ($profilesEnabled): ?>
129
  hideProfilesSelector();
130
- <?php endif; ?>
131
-
132
- hideFormCombo();
133
- }
134
- });
135
-
136
- function showProfilesSelector() {
137
- $('optimal-save-profiles').show();
138
- $$('#optimal-save-profiles select, #optimal-save-profiles input').each(function(element) {
139
- element.disabled = false;
140
- });
141
- }
142
-
143
- function showFormCombo() {
144
- $('optimal-form-combinations').show();
145
- $$('#optimal-form-combinations input, #optimal-form-combinations select').each(function(element) {
146
- element.disabled = false;
147
- });
148
- }
149
-
150
- function hideProfilesSelector() {
151
- $('optimal-save-profiles').hide();
152
- $$('#optimal-save-profiles select, #optimal-save-profiles input').each(function(element) {
153
- element.disabled = true;
154
- });
155
- }
156
 
157
- function hideFormCombo() {
158
- $('optimal-form-combinations').hide();
159
- $$('#optimal-form-combinations input, #optimal-form-combinations select').each(function(element) {
160
- element.disabled = true;
161
  });
162
- }
163
- </script>
164
-
165
- <?php else: ?>
166
-
167
- <script type="text/javascript">
168
- $$('input[name=payment[method]]').invoke('on', 'click', function() {
169
-
170
- if (this.value == '<?php echo $_code; ?>') {
171
-
172
- $('optimal-form-combinations').show();
173
-
174
- <?php if ($profilesEnabled): ?>
175
 
 
176
  $('optimal-save-profiles').show();
177
- $$('#optimal-save-profiles input, #optimal-save-profiles select').each(function(element) {
178
  element.disabled = false;
179
  });
 
180
 
181
- <?php else: ?>
 
 
 
 
182
 
183
- $('<?php echo $_code; ?>_cc-payment-form').show();
 
184
  $$('#<?php echo $_code; ?>_cc-payment-form input, #<?php echo $_code; ?>_cc-payment-form select').each(function(element) {
185
- element.disabled = false;
186
  });
 
187
 
188
- <?php endif; ?>
189
 
190
- } else {
 
 
 
 
 
191
 
 
192
  $('optimal-form-combinations').hide();
193
-
194
- <?php if (!$profilesEnabled): ?>
195
-
196
- $$('#<?php echo $_code; ?>_cc-payment-form input, #<?php echo $_code; ?>_cc-payment-form select').each(function(element) {
197
  element.disabled = true;
198
  });
199
-
200
- <?php endif; ?>
201
  }
202
- });
203
- </script>
204
 
 
205
 
206
- <?php endif; ?>
 
207
 
208
- <div id="optimal-form-combinations" style="display:none;">
209
 
210
- <?php if ($profilesEnabled): ?>
211
 
212
- <div id="select-card-form">
213
- <ul class="profile_list form-list" id="optimal-save-profiles" style="display:none;">
214
- <li class="wide">
215
- <label for="<?php echo $_code ?>_profile_id"><?php echo $this->__('Select a Credit Card Profile.') ?></label>
216
- <div class="input-box">
217
- <select class="<?php echo $_code ?>_profile_id" id="<?php echo $_code ?>_profile_id" name="payment[profile_id]">
218
 
219
- <option value="select"><?php echo $this->__('Select Profile') ?></option>
 
 
 
220
 
221
- <?php foreach($this->profiles as $profile): ?>
222
- <option selected="" value="<?php echo $profile->getEntityId(); ?>"><?php echo ucwords($profile->getCardNickname()); ?> / **** **** **** <?php echo $profile->getLastFourDigits(); ?></option>
223
- <?php endforeach; ?>
224
 
225
- <option value="new"><?php echo $this->__('New Profile') ?></option>
226
- </select>
227
- </div>
228
- </li>
229
- <li id="optimal-cc-verification">
230
- <label class="<?php echo $_code ?>_cc_cid" for="<?php echo $_code ?>_cc_cid" class="required"><em>*</em><?php echo $this->__('Card Verification Number') ?></label>
231
- <div class="input-box">
232
- <div class="v-fix">
233
- <input type="text" title="<?php echo $this->__('Card Verification Number') ?>" class="input-text cvv required-entry" id="<?php echo $_code ?>_cc_cid" name="payment[cc_cid]" value="" />
234
- </div>
235
- </div>
236
- </li>
237
- </ul>
238
- </div>
239
 
240
- <script type="text/javascript">
241
- function showOptimalCcForm() {
242
- $('<?php echo $_code; ?>_cc-payment-form').show();
243
- $$('#<?php echo $_code; ?>_cc-payment-form input, #<?php echo $_code; ?>_cc-payment-form select').each(function(element) {
244
- element.disabled = false;
245
- });
246
- }
247
- function hideOptimalCcForm() {
248
- $('<?php echo $_code; ?>_cc-payment-form').hide();
249
- $$('#<?php echo $_code; ?>_cc-payment-form input, #<?php echo $_code; ?>_cc-payment-form select').each(function(element) {
250
- element.disabled = true;
251
- });
252
- }
253
 
254
- $('<?php echo $_code ?>_profile_id').on('change', function() {
255
- if (this.value == 'new') {
256
- $('optimal-cc-verification').hide();
257
- $$('#optimal-cc-verification input, #optimal-cc-verification select').each(function (element) {
258
- element.disabled = true;
259
- });
260
- showOptimalCcForm();
261
- }else if (this.value == 'select') {
262
- //
263
  } else {
264
- hideOptimalCcForm();
265
- $('optimal-cc-verification').show();
266
- $$('#optimal-cc-verification input, #optimal-cc-verification select').each(function(element) {
267
- element.disabled = false;
 
 
 
268
  });
 
 
269
  }
270
  });
271
  </script>
272
 
 
273
  <?php endif; ?>
274
 
275
- <div id="<?php echo $_code; ?>_cc-payment-form" style="<?php echo $profilesEnabled ? 'display:none;' : ''; ?>">
276
- <ul class="form-list">
277
- <li>
278
- <label for="<?php echo $_code ?>_cc_owner" class="required"><em>*</em><?php echo $this->__('Name on Card') ?></label>
279
- <div class="input-box">
280
- <input type="text" title="<?php echo $this->__('Name on Card') ?>" class="input-text required-entry" id="<?php echo $_code ?>_cc_owner" name="payment[cc_owner]" value="<?php echo $this->escapeHtml($this->getInfoData('cc_owner')) ?>" />
281
- </div>
282
- </li>
283
- <li>
284
- <label for="<?php echo $_code ?>_cc_type" class="required"><em>*</em><?php echo $this->__('Credit Card Type') ?></label>
285
- <div class="input-box">
286
- <select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" title="<?php echo $this->__('Credit Card Type') ?>" class="required-entry validate-cc-type-select">
287
- <option value=""><?php echo $this->__('--Please Select--') ?></option>
288
- <?php $_ccType = $this->getInfoData('cc_type') ?>
289
- <?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
290
- <option value="<?php echo $_typeCode ?>"<?php if($_typeCode==$_ccType): ?> selected="selected"<?php endif ?>><?php echo $_typeName ?></option>
291
- <?php endforeach ?>
292
- </select>
293
- </div>
294
- </li>
295
- <li>
296
- <label for="<?php echo $_code ?>_cc_number" class="required"><em>*</em><?php echo $this->__('Credit Card Number') ?></label>
297
- <div class="input-box">
298
- <input type="text" id="<?php echo $_code ?>_cc_number" name="payment[cc_number]" title="<?php echo $this->__('Credit Card Number') ?>" class="input-text validate-cc-number validate-cc-type" value="" />
299
- </div>
300
- </li>
301
- <li>
302
- <label for="<?php echo $_code ?>_expiration" class="required"><em>*</em><?php echo $this->__('Expiration Date') ?></label>
303
- <div class="input-box">
304
- <div class="v-fix">
305
- <select id="<?php echo $_code ?>_expiration" name="payment[cc_exp_month]" class="month validate-cc-exp required-entry">
306
- <?php $_ccExpMonth = $this->getInfoData('cc_exp_month') ?>
307
- <?php foreach ($this->getCcMonths() as $k=>$v): ?>
308
- <option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpMonth): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
309
- <?php endforeach ?>
310
- </select>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
311
  </div>
312
- <div class="v-fix">
313
- <?php $_ccExpYear = $this->getInfoData('cc_exp_year') ?>
314
- <select id="<?php echo $_code ?>_expiration_yr" name="payment[cc_exp_year]" class="year required-entry">
315
- <?php foreach ($this->getCcYears() as $k=>$v): ?>
316
- <option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpYear): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
 
 
 
 
317
  <?php endforeach ?>
318
  </select>
319
  </div>
320
- </div>
321
- </li>
322
- <?php echo $this->getChildHtml() ?>
323
- <?php if($this->hasVerification()): ?>
 
 
 
324
  <li>
325
- <label for="<?php echo $_code ?>_cc_cid" class="required"><em>*</em><?php echo $this->__('Card Verification Number') ?></label>
326
  <div class="input-box">
327
  <div class="v-fix">
328
- <input type="text" title="<?php echo $this->__('Card Verification Number') ?>" class="input-text cvv required-entry validate-cc-cvn" id="<?php echo $_code ?>_cc_cid" name="payment[cc_cid]" value="" />
 
 
 
 
 
 
 
 
 
 
 
 
 
329
  </div>
330
  </div>
331
  </li>
332
- <?php endif; ?>
333
- <?php if($this->canSaveProfiles()): ?>
334
- <li class="control">
335
- <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]">
336
- <label for="<?php echo $_code ?>_optimal_create_profile" class="required"><em>*</em><?php echo $this->__('Create Profile and Save Card') ?> </label>
337
- </li>
338
- <?php else: ?>
339
- <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]">
340
- <?php endif; ?>
341
- <?php if ($this->hasSsCardType()): ?>
342
- <li id="<?php echo $_code ?>_cc_type_ss_div">
343
- <ul class="inner-form">
344
- <li class="form-alt"><label for="<?php echo $_code ?>_cc_issue" class="required"><em>*</em><?php echo $this->__('Switch/Solo/Maestro Only') ?></label></li>
345
- <li>
346
- <label for="<?php echo $_code ?>_cc_issue"><?php echo $this->__('Issue Number') ?>:</label>
 
 
 
 
 
 
 
 
 
 
347
  <span class="input-box">
348
  <input type="text" title="<?php echo $this->__('Issue Number') ?>" class="input-text validate-cc-ukss cvv" id="<?php echo $_code ?>_cc_issue" name="payment[cc_ss_issue]" value="" />
349
  </span>
350
- </li>
351
-
352
- <li>
353
- <label for="<?php echo $_code ?>_start_month"><?php echo $this->__('Start Date') ?>:</label>
354
- <div class="input-box">
355
- <div class="v-fix">
356
- <select id="<?php echo $_code ?>_start_month" name="payment[cc_ss_start_month]" class="validate-cc-ukss month">
357
- <?php foreach ($this->getCcMonths() as $k=>$v): ?>
358
- <option value="<?php echo $k?$k:'' ?>"<?php if($k==$this->getInfoData('cc_ss_start_month')): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
359
- <?php endforeach ?>
360
- </select>
361
- </div>
362
- <div class="v-fix">
363
- <select id="<?php echo $_code ?>_start_year" name="payment[cc_ss_start_year]" class="validate-cc-ukss year">
364
- <?php foreach ($this->getSsStartYears() as $k=>$v): ?>
365
- <option value="<?php echo $k?$k:'' ?>"<?php if($k==$this->getInfoData('cc_ss_start_year')): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
366
- <?php endforeach ?>
367
- </select>
 
368
  </div>
369
- </div>
370
- </li>
371
- <li class="adv-container">&nbsp;</li>
372
- </ul>
373
- <script type="text/javascript">
374
- //<![CDATA[
375
- var SSChecked<?php echo $_code ?> = function() {
376
- var elm = $('<?php echo $_code ?>_cc_type');
377
- if (['SS','SM','SO'].indexOf(elm.value) != -1) {
378
- $('<?php echo $_code ?>_cc_type_ss_div').show();
379
- } else {
380
- $('<?php echo $_code ?>_cc_type_ss_div').hide();
381
- }
382
- };
383
-
384
- Event.observe($('<?php echo $_code ?>_cc_type'), 'change', SSChecked<?php echo $_code ?>);
385
- SSChecked<?php echo $_code ?>();
386
- //]]>
387
- </script>
388
- </li>
389
- <?php endif; ?>
390
- </ul>
391
  </div>
392
- </div>
393
 
394
  </div>
395
-
396
- <script type="text/javascript">
397
-
398
- </script>
37
  <?php if (!$skip3d): ?>
38
  <ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none;">
39
  <li>You will be redirected to Optimal Payments for payment authorisation. <?php echo $allowInterac ? 'Please choose mode of payment below.' : ''; ?></li>
40
+ <?php if ($allowInterac): ?>
41
+ <li class="control">
42
+ <input id="optimal-pay-via-interac" type="radio" title="<?php echo $this->__('Pay via Interac') ?>" class="radio optimal-pay-via validate-one-required-by-name" value="1" name="payment[optimal_use_interac]">
43
+ <label for="optimal-pay-via-interac"><?php echo $this->__('Pay via Interac') ?> </label>
44
+ </li>
45
+ <li class="control">
46
+ <input id="optimal-pay-via-cc" type="radio" title="<?php echo $this->__('Pay using Credit Card') ?>" class="radio optimal-pay-via validate-one-required-by-name" value="0" name="payment[optimal_use_interac]">
47
+ <label for="optimal-pay-via-cc"><?php echo $this->__('Pay using Credit Card') ?> </label>
48
+ </li>
49
+ <?php endif; ?>
50
  </ul>
51
 
52
  <script type="text/javascript">
59
  });
60
  </script>
61
 
62
+ <?php return; endif; ?>
63
 
64
  <div id="optimal-cc-forms">
65
 
66
+ <?php if ($allowInterac): ?>
67
 
68
+ <ul class="form-list" id="optimal-form-controls" style="display:none;">
69
+ <li class="control">
70
+ <input id="optimal-pay-via-interac" type="checkbox" title="<?php echo $this->__('Use Interac') ?>" class="radio optimal-pay-via" value="interac" name="optimal-pay-via">
71
+ <label for="optimal-pay-via-interac"><?php echo $this->__('Use Interac') ?> </label>
72
+ <input type="hidden" value="0" name="payment[optimal_use_interac]" id="opt-use-interac" />
73
+ </li>
74
+ <li id="interac-msg" style="display:none;">
75
+ <ul class="form-list">
76
+ <li><?php echo $this->__('This will redirect you to Optimal Hosted Payments page where you can complete your payment via Interac.'); ?></li>
77
+ </ul>
78
+ </li>
79
+ <li class="control">
80
+ <input id="optimal-pay-via-cc" type="checkbox" title="<?php echo $this->__('Pay Via Credit Card') ?>" class="radio optimal-pay-via" value="creditcard" name="optimal-pay-via">
81
+ <label for="optimal-pay-via-cc"><?php echo $this->__('Pay Via Credit Card') ?> </label>
82
+ </li>
83
+ </ul>
84
 
85
+ <script type="text/javascript">
86
+ $('p_method_<?php echo $_code; ?>').on('click', function() {
87
+ $('optimal-form-controls').show();
88
+ $$('input[name=optimal-pay-via]').each(function(element){
89
+ element.disabled = false;
90
+ });
91
+ $('opt-use-interac').disabled = false;
92
  });
 
 
93
 
94
+ $$('input[name=optimal-pay-via]').invoke('on', 'click', function() {
95
+ if (this.value == 'interac') {
96
+ if (this.checked == true) {
97
+ $('interac-msg').show();
98
+ $('optimal-pay-via-cc').checked = false;
99
+ $('opt-use-interac').value = 1;
100
 
101
+ <?php if ($profilesEnabled): ?>
102
 
103
+ hideProfilesSelector();
104
 
105
+ <?php endif; ?>
106
 
107
+ hideFormCombo();
108
 
109
+ } else {
110
+ $('interac-msg').hide();
111
+ $('opt-use-interac').value = 0;
112
+ }
113
+ } else if (this.value == 'creditcard') {
114
+ if (this.checked == true) {
115
+ $('interac-msg').hide();
116
+ $('opt-use-interac').value = 0;
117
+ $('optimal-pay-via-interac').checked = false;
118
 
119
+ <?php if ($profilesEnabled): ?>
120
  showProfilesSelector();
121
+ <?php endif; ?>
122
 
123
+ showFormCombo();
124
+ return;
125
 
126
+ }
127
 
128
+ <?php if ($profilesEnabled): ?>
129
  hideProfilesSelector();
130
+ <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
 
132
+ hideFormCombo();
133
+ }
 
 
134
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
135
 
136
+ function showProfilesSelector() {
137
  $('optimal-save-profiles').show();
138
+ $$('#optimal-save-profiles select, #optimal-save-profiles input').each(function(element) {
139
  element.disabled = false;
140
  });
141
+ }
142
 
143
+ function showFormCombo() {
144
+ $('optimal-form-combinations').show();
145
+ $$('#optimal-form-combinations input, #optimal-form-combinations select').each(function(element) {
146
+ element.disabled = false;
147
+ });
148
 
149
+ <?php if ($profilesEnabled && !empty($profilesEnabled)): ?>
150
+ $('<?php echo $_code; ?>_cc-payment-form').hide();
151
  $$('#<?php echo $_code; ?>_cc-payment-form input, #<?php echo $_code; ?>_cc-payment-form select').each(function(element) {
152
+ element.disabled = true;
153
  });
154
+ <?php endif; ?>
155
 
156
+ }
157
 
158
+ function hideProfilesSelector() {
159
+ $('optimal-save-profiles').hide();
160
+ $$('#optimal-save-profiles select, #optimal-save-profiles input').each(function(element) {
161
+ element.disabled = true;
162
+ });
163
+ }
164
 
165
+ function hideFormCombo() {
166
  $('optimal-form-combinations').hide();
167
+ $$('#optimal-form-combinations input, #optimal-form-combinations select').each(function(element) {
 
 
 
168
  element.disabled = true;
169
  });
 
 
170
  }
171
+ </script>
 
172
 
173
+ <?php else: ?>
174
 
175
+ <script type="text/javascript">
176
+ $$('input[name=payment[method]]').invoke('on', 'click', function() {
177
 
178
+ if (this.value == '<?php echo $_code; ?>') {
179
 
180
+ $('optimal-form-combinations').show();
181
 
182
+ <?php if ($profilesEnabled): ?>
 
 
 
 
 
183
 
184
+ $('optimal-save-profiles').show();
185
+ $$('#optimal-save-profiles input, #optimal-save-profiles select').each(function(element) {
186
+ element.disabled = false;
187
+ });
188
 
189
+ <?php else: ?>
 
 
190
 
191
+ $('<?php echo $_code; ?>_cc-payment-form').show();
192
+ $$('#<?php echo $_code; ?>_cc-payment-form input, #<?php echo $_code; ?>_cc-payment-form select').each(function(element) {
193
+ element.disabled = false;
194
+ });
 
 
 
 
 
 
 
 
 
 
195
 
196
+ <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
197
 
 
 
 
 
 
 
 
 
 
198
  } else {
199
+
200
+ $('optimal-form-combinations').hide();
201
+
202
+ <?php if (!$profilesEnabled): ?>
203
+
204
+ $$('#<?php echo $_code; ?>_cc-payment-form input, #<?php echo $_code; ?>_cc-payment-form select').each(function(element) {
205
+ element.disabled = true;
206
  });
207
+
208
+ <?php endif; ?>
209
  }
210
  });
211
  </script>
212
 
213
+
214
  <?php endif; ?>
215
 
216
+ <div id="optimal-form-combinations" style="display:none;">
217
+
218
+ <?php if ($profilesEnabled): ?>
219
+
220
+ <div id="select-card-form">
221
+ <ul class="profile_list form-list" id="optimal-save-profiles" style="display:none;">
222
+ <li class="wide">
223
+ <label for="<?php echo $_code ?>_profile_id"><?php echo $this->__('Select a Credit Card Profile.') ?></label>
224
+ <div class="input-box">
225
+ <select class="<?php echo $_code ?>_profile_id" id="<?php echo $_code ?>_profile_id" name="payment[profile_id]">
226
+
227
+ <option value="select"><?php echo $this->__('Select Profile') ?></option>
228
+
229
+ <?php foreach($this->profiles as $profile): ?>
230
+ <option selected="" value="<?php echo $profile->getEntityId(); ?>"><?php echo ucwords($profile->getCardNickname()); ?> / **** **** **** <?php echo $profile->getLastFourDigits(); ?></option>
231
+ <?php endforeach; ?>
232
+
233
+ <option value="new"><?php echo $this->__('New Profile') ?></option>
234
+ </select>
235
+ </div>
236
+ </li>
237
+ <li id="optimal-cc-verification">
238
+ <label class="<?php echo $_code ?>_cc_cid" for="<?php echo $_code ?>_cc_cid" class="required"><em>*</em><?php echo $this->__('Card Verification Number') ?></label>
239
+ <div class="input-box">
240
+ <div class="v-fix">
241
+ <input type="text" title="<?php echo $this->__('Card Verification Number') ?>" class="input-text cvv required-entry" id="<?php echo $_code ?>_cc_cid" name="payment[cc_cid]" value="" />
242
+ </div>
243
+ </div>
244
+ </li>
245
+ </ul>
246
+ </div>
247
+
248
+ <script type="text/javascript">
249
+ function showOptimalCcForm() {
250
+ $('<?php echo $_code; ?>_cc-payment-form').show();
251
+ $$('#<?php echo $_code; ?>_cc-payment-form input, #<?php echo $_code; ?>_cc-payment-form select').each(function(element) {
252
+ element.disabled = false;
253
+ });
254
+ }
255
+
256
+ function hideOptimalCcForm() {
257
+ $('<?php echo $_code; ?>_cc-payment-form').hide();
258
+ $$('#<?php echo $_code; ?>_cc-payment-form input, #<?php echo $_code; ?>_cc-payment-form select').each(function(element) {
259
+ element.disabled = true;
260
+ });
261
+ }
262
+
263
+ $('<?php echo $_code ?>_profile_id').on('change', function() {
264
+ if (this.value == 'new') {
265
+ $('optimal-cc-verification').hide();
266
+ $$('#optimal-cc-verification input, #optimal-cc-verification select').each(function (element) {
267
+ element.disabled = true;
268
+ });
269
+ showOptimalCcForm();
270
+ }else if (this.value == 'select') {
271
+ //
272
+ } else {
273
+ hideOptimalCcForm();
274
+ $('optimal-cc-verification').show();
275
+ $$('#optimal-cc-verification input, #optimal-cc-verification select').each(function(element) {
276
+ element.disabled = false;
277
+ });
278
+ }
279
+ });
280
+ </script>
281
+
282
+ <?php endif; ?>
283
+
284
+ <div id="<?php echo $_code; ?>_cc-payment-form" style="<?php echo $profilesEnabled ? 'display:none;' : ''; ?>">
285
+ <ul class="form-list">
286
+ <li>
287
+ <label for="<?php echo $_code ?>_cc_owner" class="required"><em>*</em><?php echo $this->__('Name on Card') ?></label>
288
+ <div class="input-box">
289
+ <input type="text" title="<?php echo $this->__('Name on Card') ?>" class="input-text required-entry" id="<?php echo $_code ?>_cc_owner" name="payment[cc_owner]" value="<?php echo $this->escapeHtml($this->getInfoData('cc_owner')) ?>" />
290
  </div>
291
+ </li>
292
+ <li>
293
+ <label for="<?php echo $_code ?>_cc_type" class="required"><em>*</em><?php echo $this->__('Credit Card Type') ?></label>
294
+ <div class="input-box">
295
+ <select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" title="<?php echo $this->__('Credit Card Type') ?>" class="required-entry validate-cc-type-select">
296
+ <option value=""><?php echo $this->__('--Please Select--') ?></option>
297
+ <?php $_ccType = $this->getInfoData('cc_type') ?>
298
+ <?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
299
+ <option value="<?php echo $_typeCode ?>"<?php if($_typeCode==$_ccType): ?> selected="selected"<?php endif ?>><?php echo $_typeName ?></option>
300
  <?php endforeach ?>
301
  </select>
302
  </div>
303
+ </li>
304
+ <li>
305
+ <label for="<?php echo $_code ?>_cc_number" class="required"><em>*</em><?php echo $this->__('Credit Card Number') ?></label>
306
+ <div class="input-box">
307
+ <input type="text" id="<?php echo $_code ?>_cc_number" name="payment[cc_number]" title="<?php echo $this->__('Credit Card Number') ?>" class="input-text validate-cc-number validate-cc-type" value="" />
308
+ </div>
309
+ </li>
310
  <li>
311
+ <label for="<?php echo $_code ?>_expiration" class="required"><em>*</em><?php echo $this->__('Expiration Date') ?></label>
312
  <div class="input-box">
313
  <div class="v-fix">
314
+ <select id="<?php echo $_code ?>_expiration" name="payment[cc_exp_month]" class="month validate-cc-exp required-entry">
315
+ <?php $_ccExpMonth = $this->getInfoData('cc_exp_month') ?>
316
+ <?php foreach ($this->getCcMonths() as $k=>$v): ?>
317
+ <option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpMonth): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
318
+ <?php endforeach ?>
319
+ </select>
320
+ </div>
321
+ <div class="v-fix">
322
+ <?php $_ccExpYear = $this->getInfoData('cc_exp_year') ?>
323
+ <select id="<?php echo $_code ?>_expiration_yr" name="payment[cc_exp_year]" class="year required-entry">
324
+ <?php foreach ($this->getCcYears() as $k=>$v): ?>
325
+ <option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpYear): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
326
+ <?php endforeach ?>
327
+ </select>
328
  </div>
329
  </div>
330
  </li>
331
+ <?php echo $this->getChildHtml() ?>
332
+ <?php if($this->hasVerification()): ?>
333
+ <li>
334
+ <label for="<?php echo $_code ?>_cc_cid" class="required"><em>*</em><?php echo $this->__('Card Verification Number') ?></label>
335
+ <div class="input-box">
336
+ <div class="v-fix">
337
+ <input type="text" title="<?php echo $this->__('Card Verification Number') ?>" class="input-text cvv required-entry validate-cc-cvn" id="<?php echo $_code ?>_cc_cid" name="payment[cc_cid]" value="" />
338
+ </div>
339
+ </div>
340
+ </li>
341
+ <?php endif; ?>
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]">
349
+ <?php endif; ?>
350
+ <?php if ($this->hasSsCardType()): ?>
351
+ <li id="<?php echo $_code ?>_cc_type_ss_div">
352
+ <ul class="inner-form">
353
+ <li class="form-alt"><label for="<?php echo $_code ?>_cc_issue" class="required"><em>*</em><?php echo $this->__('Switch/Solo/Maestro Only') ?></label></li>
354
+ <li>
355
+ <label for="<?php echo $_code ?>_cc_issue"><?php echo $this->__('Issue Number') ?>:</label>
356
  <span class="input-box">
357
  <input type="text" title="<?php echo $this->__('Issue Number') ?>" class="input-text validate-cc-ukss cvv" id="<?php echo $_code ?>_cc_issue" name="payment[cc_ss_issue]" value="" />
358
  </span>
359
+ </li>
360
+
361
+ <li>
362
+ <label for="<?php echo $_code ?>_start_month"><?php echo $this->__('Start Date') ?>:</label>
363
+ <div class="input-box">
364
+ <div class="v-fix">
365
+ <select id="<?php echo $_code ?>_start_month" name="payment[cc_ss_start_month]" class="validate-cc-ukss month">
366
+ <?php foreach ($this->getCcMonths() as $k=>$v): ?>
367
+ <option value="<?php echo $k?$k:'' ?>"<?php if($k==$this->getInfoData('cc_ss_start_month')): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
368
+ <?php endforeach ?>
369
+ </select>
370
+ </div>
371
+ <div class="v-fix">
372
+ <select id="<?php echo $_code ?>_start_year" name="payment[cc_ss_start_year]" class="validate-cc-ukss year">
373
+ <?php foreach ($this->getSsStartYears() as $k=>$v): ?>
374
+ <option value="<?php echo $k?$k:'' ?>"<?php if($k==$this->getInfoData('cc_ss_start_year')): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
375
+ <?php endforeach ?>
376
+ </select>
377
+ </div>
378
  </div>
379
+ </li>
380
+ <li class="adv-container">&nbsp;</li>
381
+ </ul>
382
+ <script type="text/javascript">
383
+ //<![CDATA[
384
+ var SSChecked<?php echo $_code ?> = function() {
385
+ var elm = $('<?php echo $_code ?>_cc_type');
386
+ if (['SS','SM','SO'].indexOf(elm.value) != -1) {
387
+ $('<?php echo $_code ?>_cc_type_ss_div').show();
388
+ } else {
389
+ $('<?php echo $_code ?>_cc_type_ss_div').hide();
390
+ }
391
+ };
392
+
393
+ Event.observe($('<?php echo $_code ?>_cc_type'), 'change', SSChecked<?php echo $_code ?>);
394
+ SSChecked<?php echo $_code ?>();
395
+ //]]>
396
+ </script>
397
+ </li>
398
+ <?php endif; ?>
399
+ </ul>
400
+ </div>
401
  </div>
 
402
 
403
  </div>
 
 
 
 
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>666999</name>
4
- <version>0.4.4</version>
5
  <stability>stable</stability>
6
  <license>GPL</license>
7
  <channel>community</channel>
@@ -16,9 +16,9 @@ This integration significantly reduces PCI compliance requirements and liability
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>Implements Interac payments feature.</notes>
18
  <authors><author><name>Demac Media</name><user>demacmedia</user><email>support@demacmedia.com</email></author></authors>
19
- <date>2015-07-20</date>
20
- <time>15:47:43</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="2d8ea2f836d380167e9b25a67acefd70"/></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="f2105aace1d71c8b0f417a78b919aab1"/></dir><dir name="Info"><file name="Creditcard.php" hash="7ba1df22bade177f4956ce9084fa98c6"/></dir><file name="Navigation.php" hash="d3b7d8765356b8da18d300cc9b1a447e"/><file name="Threat.php" hash="69605e0b8aacc80f47b5ed91e8631248"/></dir><dir name="Helper"><file name="Data.php" hash="be368ef5a0ab684fc31a29dd4aac8c9e"/></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="7fc5fd2c06ddf2dfb63b3b30450b2316"/><file name="Errorcode.php" hash="dae5fa1abb705961bd9f15abf3d65ec0"/><dir name="Hosted"><file name="Client.php" hash="00b2f596614a9a2881e522a356fdc947"/><file name="Exception.php" hash="dfca385bc45b1c055bbf2e8e7031230b"/></dir><dir name="Merchant"><file name="Customer.php" hash="be743a5c7aababb9752bf961570b0c27"/></dir><dir name="Method"><file name="Hosted.php" hash="6135da66e687ca0071f0bdd0376ad981"/></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="ce11ba1751b4fb6c6ddf551adca02b4d"/><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="8aa8bb4bc740daa59be041827f7cf614"/></dir><dir name="Method"><file name="Hosted.php" hash="9d39c78d0617d136c66c4c52185706a7"/></dir><file name="Observer.php" hash="345883a098197f64e2063a97d17e6274"/></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="3b7c37744a48f2babb5c5e6ffe1f563e"/></dir><file name="HandlerController.php" hash="2308d08c79fae424d5ae04ea273595c7"/></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="d4d6bfbcf1a32ad031aeab6491bfddd0"/><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="5e98dddfa3303ede96338c1e73f0febe"/><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="fa4ffded7147e16c7b07f2aedd1d660b"/><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="fa4ffded7147e16c7b07f2aedd1d660b"/><file name="upgrade-0.4.3-0.4.4.php" hash="5cb4f76fccf0f97f9b4c5e5ebd530f70"/></dir></dir></dir></dir></target><target name="magedesign"><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="5f2558110424752d35c3e5b3a63c4201"/></dir><dir name="info"><file name="creditcard.phtml" hash="c11c746e88ac2b299af4a1f425300bc7"/></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="b40291e8e97dbcb6b7cf2f4b8ffb93f5"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Demac_Optimal.xml" hash="c1fb7e819674b01877dc9cae9547f174"/></dir></target></contents>
22
  <compatible/>
23
  <dependencies><required><php><min>5.3.0</min><max>5.5.19</max></php></required></dependencies>
24
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>666999</name>
4
+ <version>0.4.5</version>
5
  <stability>stable</stability>
6
  <license>GPL</license>
7
  <channel>community</channel>
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>Implements Interac payments feature.</notes>
18
  <authors><author><name>Demac Media</name><user>demacmedia</user><email>support@demacmedia.com</email></author></authors>
19
+ <date>2015-07-22</date>
20
+ <time>17:17:29</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="2d8ea2f836d380167e9b25a67acefd70"/></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="f2105aace1d71c8b0f417a78b919aab1"/></dir><dir name="Info"><file name="Creditcard.php" hash="7ba1df22bade177f4956ce9084fa98c6"/></dir><file name="Navigation.php" hash="d3b7d8765356b8da18d300cc9b1a447e"/><file name="Threat.php" hash="69605e0b8aacc80f47b5ed91e8631248"/></dir><dir name="Helper"><file name="Data.php" hash="be368ef5a0ab684fc31a29dd4aac8c9e"/></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="7fc5fd2c06ddf2dfb63b3b30450b2316"/><file name="Errorcode.php" hash="dae5fa1abb705961bd9f15abf3d65ec0"/><dir name="Hosted"><file name="Client.php" hash="00b2f596614a9a2881e522a356fdc947"/><file name="Exception.php" hash="dfca385bc45b1c055bbf2e8e7031230b"/></dir><dir name="Merchant"><file name="Customer.php" hash="be743a5c7aababb9752bf961570b0c27"/></dir><dir name="Method"><file name="Hosted.php" hash="6135da66e687ca0071f0bdd0376ad981"/></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="ce11ba1751b4fb6c6ddf551adca02b4d"/><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="8aa8bb4bc740daa59be041827f7cf614"/></dir><dir name="Method"><file name="Hosted.php" hash="9d39c78d0617d136c66c4c52185706a7"/></dir><file name="Observer.php" hash="345883a098197f64e2063a97d17e6274"/></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="3b7c37744a48f2babb5c5e6ffe1f563e"/></dir><file name="HandlerController.php" hash="2308d08c79fae424d5ae04ea273595c7"/></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="404ede7d12d33f4ddd083add6c222441"/><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="5e98dddfa3303ede96338c1e73f0febe"/><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="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><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></target><target name="mageetc"><dir name="modules"><file name="Demac_Optimal.xml" hash="c1fb7e819674b01877dc9cae9547f174"/></dir></target></contents>
22
  <compatible/>
23
  <dependencies><required><php><min>5.3.0</min><max>5.5.19</max></php></required></dependencies>
24
  </package>