Omise_Gateway - Version 1.12.0

Version Notes

Hi there, here is the latest release from us.

RELEASE NOTE

Highlights

- Provides a solution for One Step Checkout extensions.

Enhancements

- Refactor and clean up code in Block/Form/Cc.php class and payment/form/omisecc.phtml form

---

For more detail, please check our release note below.
https://github.com/omise/omise-magento/releases/tag/v1.12

Download this release

Release Info

Developer Omise
Extension Omise_Gateway
Version 1.12.0
Comparing to
See all releases


Code changes from version 1.11.0 to 1.12.0

app/code/community/Omise/Gateway/Block/Form/Cc.php CHANGED
@@ -1,15 +1,23 @@
1
  <?php
2
  class Omise_Gateway_Block_Form_Cc extends Mage_Payment_Block_Form
3
  {
4
- protected function _construct()
 
 
 
 
 
 
 
 
5
  {
6
- parent::_construct();
7
-
8
  if ($this->isApplicable()) {
9
  $this->setTemplate('payment/form/omisecc.phtml');
10
  } else {
11
  $this->setTemplate('payment/form/omise-inapplicable-method.phtml');
12
  }
 
 
13
  }
14
 
15
  /**
@@ -55,6 +63,16 @@ class Omise_Gateway_Block_Form_Cc extends Mage_Payment_Block_Form
55
  return false;
56
  }
57
 
 
 
 
 
 
 
 
 
 
 
58
  /**
59
  * Retrieve Omise keys from database
60
  *
@@ -64,14 +82,13 @@ class Omise_Gateway_Block_Form_Cc extends Mage_Payment_Block_Form
64
  {
65
  // Create a new model instance and query data from 'omise_gateway' table.
66
  $config = Mage::getModel('omise_gateway/config')->load(1);
67
- $data = array(
68
- 'public_key' => $config->public_key,
69
- 'secret_key' => $config->secret_key
70
- );
71
 
72
  if ($config->test_mode) {
73
  $data['public_key'] = $config->public_key_test;
74
  $data['secret_key'] = $config->secret_key_test;
 
 
 
75
  }
76
 
77
  if ($omise_key == '') {
@@ -142,49 +159,9 @@ class Omise_Gateway_Block_Form_Cc extends Mage_Payment_Block_Form
142
  */
143
  public function hasVerification()
144
  {
145
- if ($this->getMethod()) {
146
- $configData = $this->getMethod()->getConfigData('useccv');
147
- if (is_null($configData)) {
148
- return true;
149
- }
150
- return (bool) $configData;
151
- }
152
  return true;
153
  }
154
 
155
- /**
156
- * Whether switch/solo card type available
157
- *
158
- * @return boolean
159
- */
160
- public function hasSsCardType()
161
- {
162
- $availableTypes = explode(',', $this->getMethod()->getConfigData('cctypes'));
163
- $ssPresentations = array_intersect(array('SS', 'SM', 'SO'), $availableTypes);
164
- if ($availableTypes && count($ssPresentations) > 0) {
165
- return true;
166
- }
167
- return false;
168
- }
169
-
170
- /**
171
- * solo/ switch card start year
172
- *
173
- * @return array
174
- */
175
- public function getSsStartYears()
176
- {
177
- $years = array();
178
- $first = date("Y");
179
-
180
- for ($index = 5; $index >= 0; $index--) {
181
- $year = $first - $index;
182
- $years[$year] = $year;
183
- }
184
- $years = array(0 => $this->__('Year')) + $years;
185
- return $years;
186
- }
187
-
188
  /**
189
  * Render block HTML
190
  *
1
  <?php
2
  class Omise_Gateway_Block_Form_Cc extends Mage_Payment_Block_Form
3
  {
4
+ /**
5
+ * Preparing global layout
6
+ * You can redefine this method in child classes for changing layout
7
+ *
8
+ * @return Mage_Core_Block_Abstract
9
+ *
10
+ * @see Mage_Core_Block_Abstract
11
+ */
12
+ protected function _prepareLayout()
13
  {
 
 
14
  if ($this->isApplicable()) {
15
  $this->setTemplate('payment/form/omisecc.phtml');
16
  } else {
17
  $this->setTemplate('payment/form/omise-inapplicable-method.phtml');
18
  }
19
+
20
+ return $this;
21
  }
22
 
23
  /**
63
  return false;
64
  }
65
 
66
+ /**
67
+ * Whether the One Step Checkout Support option is enabled
68
+ *
69
+ * @return bool
70
+ */
71
+ public function isOscSupportEnabled()
72
+ {
73
+ return Mage::getModel('omise_gateway/paymentMethod')->isOscSupportEnabled();
74
+ }
75
+
76
  /**
77
  * Retrieve Omise keys from database
78
  *
82
  {
83
  // Create a new model instance and query data from 'omise_gateway' table.
84
  $config = Mage::getModel('omise_gateway/config')->load(1);
 
 
 
 
85
 
86
  if ($config->test_mode) {
87
  $data['public_key'] = $config->public_key_test;
88
  $data['secret_key'] = $config->secret_key_test;
89
+ } else {
90
+ $data['public_key'] = $config->public_key;
91
+ $data['secret_key'] = $config->secret_key;
92
  }
93
 
94
  if ($omise_key == '') {
159
  */
160
  public function hasVerification()
161
  {
 
 
 
 
 
 
 
162
  return true;
163
  }
164
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
  /**
166
  * Render block HTML
167
  *
app/code/community/Omise/Gateway/Model/Omise.php CHANGED
@@ -105,7 +105,7 @@ class Omise_Gateway_Model_Omise extends Mage_Core_Model_Abstract
105
  public function defineUserAgent()
106
  {
107
  if (! defined('OMISE_USER_AGENT_SUFFIX')) {
108
- define('OMISE_USER_AGENT_SUFFIX', 'OmiseMagento/1.11 Magento/' . Mage::getVersion());
109
  }
110
  }
111
 
105
  public function defineUserAgent()
106
  {
107
  if (! defined('OMISE_USER_AGENT_SUFFIX')) {
108
+ define('OMISE_USER_AGENT_SUFFIX', 'OmiseMagento/1.12 Magento/' . Mage::getVersion());
109
  }
110
  }
111
 
app/code/community/Omise/Gateway/Model/PaymentMethod.php CHANGED
@@ -242,14 +242,14 @@ class Omise_Gateway_Model_PaymentMethod extends Omise_Gateway_Model_Payment
242
 
243
  if (is_array($data)) {
244
  if (! isset($data['omise_token'])) {
245
- Mage::throwException(Mage::helper('payment')->__('Need Omise\'s keys'));
246
  }
247
 
248
  Mage::log('Data that assign is Array');
249
  $this->getInfoInstance()->setAdditionalInformation('omise_token', $data['omise_token']);
250
  } elseif ($data instanceof Varien_Object) {
251
  if (! $data->getData('omise_token')) {
252
- Mage::throwException(Mage::helper('payment')->__('Need Omise\'s keys'));
253
  }
254
 
255
  Mage::log('Data that assign is Object');
@@ -319,4 +319,12 @@ class Omise_Gateway_Model_PaymentMethod extends Omise_Gateway_Model_Payment
319
  )
320
  );
321
  }
 
 
 
 
 
 
 
 
322
  }
242
 
243
  if (is_array($data)) {
244
  if (! isset($data['omise_token'])) {
245
+ Mage::throwException(Mage::helper('payment')->__('Cannot retrieve your credit card information. Please make sure that you put a proper card information or contact our support team if you have any questions.'));
246
  }
247
 
248
  Mage::log('Data that assign is Array');
249
  $this->getInfoInstance()->setAdditionalInformation('omise_token', $data['omise_token']);
250
  } elseif ($data instanceof Varien_Object) {
251
  if (! $data->getData('omise_token')) {
252
+ Mage::throwException(Mage::helper('payment')->__('Cannot retrieve your credit card information. Please make sure that you put a proper card information or contact our support team if you have any questions.'));
253
  }
254
 
255
  Mage::log('Data that assign is Object');
319
  )
320
  );
321
  }
322
+
323
+ /**
324
+ * @return bool
325
+ */
326
+ public function isOscSupportEnabled()
327
+ {
328
+ return Mage::getStoreConfig('payment/omise_gateway/osc_support') ? true : false;
329
+ }
330
  }
app/code/community/Omise/Gateway/etc/config.xml CHANGED
@@ -14,7 +14,7 @@
14
  -->
15
  <modules>
16
  <Omise_Gateway>
17
- <version>1.11.0</version>
18
  </Omise_Gateway>
19
  </modules>
20
 
@@ -108,6 +108,7 @@
108
  <model>omise_gateway/paymentMethod</model>
109
  <cctypes>VI,MC</cctypes>
110
  <title>Credit Card (Powered by Omise)</title>
 
111
  </omise_gateway>
112
 
113
  <omise_offsite_internet_banking>
14
  -->
15
  <modules>
16
  <Omise_Gateway>
17
+ <version>1.12.0</version>
18
  </Omise_Gateway>
19
  </modules>
20
 
108
  <model>omise_gateway/paymentMethod</model>
109
  <cctypes>VI,MC</cctypes>
110
  <title>Credit Card (Powered by Omise)</title>
111
+ <osc_support>0</osc_support>
112
  </omise_gateway>
113
 
114
  <omise_offsite_internet_banking>
app/code/community/Omise/Gateway/etc/system.xml CHANGED
@@ -79,6 +79,25 @@
79
  <show_in_website>1</show_in_website>
80
  <show_in_store>0</show_in_store>
81
  </cctypes>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  </fields>
83
  </omise_gateway>
84
 
79
  <show_in_website>1</show_in_website>
80
  <show_in_store>0</show_in_store>
81
  </cctypes>
82
+
83
+ <osc_header translate="label">
84
+ <label>One Step Checkout</label>
85
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
86
+ <sort_order>7</sort_order>
87
+ <show_in_default>1</show_in_default>
88
+ <show_in_website>1</show_in_website>
89
+ <show_in_store>0</show_in_store>
90
+ </osc_header>
91
+
92
+ <osc_support translate="label">
93
+ <label>One Step Checkout Support</label>
94
+ <frontend_type>select</frontend_type>
95
+ <source_model>adminhtml/system_config_source_yesno</source_model>
96
+ <sort_order>8</sort_order>
97
+ <show_in_default>1</show_in_default>
98
+ <show_in_website>1</show_in_website>
99
+ <show_in_store>0</show_in_store>
100
+ </osc_support>
101
  </fields>
102
  </omise_gateway>
103
 
app/design/frontend/base/default/template/payment/form/omisecc.phtml CHANGED
@@ -1,122 +1,4 @@
1
- <script type="text/javascript">
2
- function getScript(url, success) {
3
- var script = document.createElement("script");
4
- script.src = url;
5
-
6
- var head = document.getElementsByTagName("head")[0],
7
- done = false;
8
-
9
- // Attach handlers for all browsers
10
- script.onload = script.onreadystatechange = function() {
11
- if (! done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
12
- done = true;
13
-
14
- // callback function provided as param
15
- success();
16
-
17
- script.onload = script.onreadystatechange = null;
18
- head.removeChild(script);
19
- };
20
- };
21
-
22
- head.appendChild(script);
23
- };
24
-
25
- // Hook Payment.save function by wrapping Omise logic on top of the 'Payment.prototype.save'
26
- Payment.prototype.save = Payment.prototype.save.wrap(function(superMethod) {
27
- var omisePayment = document.getElementById("p_method_omise_gateway");
28
-
29
- if (! omisePayment.checked) {
30
- return superMethod();
31
- }
32
-
33
- var validator = new Validation("co-payment-form");
34
-
35
- if (validator.validate()) {
36
- checkout.setLoadWaiting('payment');
37
-
38
- getScript("https://cdn.omise.co/omise.min.js.gz", function() {
39
- // Set Omise key
40
- Omise.setPublicKey("<?php echo $this->getOmiseKeys('public_key'); ?>");
41
-
42
- var formInput = {
43
- "name" : document.getElementById("omise_gateway_cc_name"),
44
- "number" : document.getElementById("omise_gateway_cc_number"),
45
- "expiration_month" : document.getElementById("omise_gateway_expiration"),
46
- "expiration_year" : document.getElementById("omise_gateway_expiration_yr"),
47
- "security_code" : document.getElementById("omise_gateway_cc_cid"),
48
- "omise_token" : document.getElementById("omise_gateway_token")
49
- },
50
- omiseValidationAdvice = document.getElementById("omise-validation-advice");
51
-
52
- var card = {
53
- "name" : formInput.name.value,
54
- "number" : formInput.number.value,
55
- "expiration_month" : formInput.expiration_month.value,
56
- "expiration_year" : formInput.expiration_year.value,
57
- "security_code" : formInput.security_code.value
58
- };
59
-
60
- /**
61
- * Send a request to create a token then trigger the callback function once
62
- * a response is received from Omise.
63
- *
64
- * Note that the response could be an error and this needs to be handled within
65
- * the callback.
66
- */
67
- Omise.createToken("card", card, function(statusCode, response) {
68
- if (response.object == "error") {
69
- omiseValidationAdvice.innerHTML = response.message;
70
- checkout.setLoadWaiting(false);
71
- } else if (typeof response.card != 'undefined' && !response.card.security_code_check) {
72
- omiseValidationAdvice.innerHTML = 'This card cannot authorize, please contact our support.';
73
- checkout.setLoadWaiting(false);
74
- } else {
75
- formInput.omise_token.value = response.id;
76
-
77
- formInput.name.disabled = true;
78
- formInput.number.disabled = true;
79
- formInput.expiration_month.disabled = true;
80
- formInput.expiration_year.disabled = true;
81
- formInput.security_code.disabled = true;
82
-
83
- checkout.setLoadWaiting(false);
84
- return superMethod();
85
- };
86
- });
87
- });
88
- }
89
- });
90
- </script>
91
-
92
- <?php
93
- /**
94
- * Magento
95
- *
96
- * NOTICE OF LICENSE
97
- *
98
- * This source file is subject to the Academic Free License (AFL 3.0)
99
- * that is bundled with this package in the file LICENSE_AFL.txt.
100
- * It is also available through the world-wide-web at this URL:
101
- * http://opensource.org/licenses/afl-3.0.php
102
- * If you did not receive a copy of the license and are unable to
103
- * obtain it through the world-wide-web, please send an email
104
- * to license@magento.com so we can send you a copy immediately.
105
- *
106
- * DISCLAIMER
107
- *
108
- * Do not edit or add to this file if you wish to upgrade Magento to newer
109
- * versions in the future. If you wish to customize Magento for your
110
- * needs please refer to http://www.magento.com for more information.
111
- *
112
- * @category design
113
- * @package base_default
114
- * @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
115
- * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
116
- */
117
-
118
- $_code = $this->getMethodCode();
119
- ?>
120
 
121
  <ul id="payment_form_<?php echo $_code; ?>" class="form-list" style="display:none;">
122
 
@@ -151,7 +33,7 @@ $_code = $this->getMethodCode();
151
  <em>*</em><?php echo $this->__('Credit Card Holder Name'); ?>
152
  </label>
153
  <div class="input-box">
154
- <input id="<?php echo $_code; ?>_cc_name" type="text" name="payment[cc_name]" title="<?php echo $this->__('Credit Card Holder Name'); ?>" value="<?php echo $this->escapeHtml($this->getInfoData('cc_owner')); ?>" class="input-text required-entry" />
155
  </div>
156
  </li>
157
 
@@ -161,7 +43,7 @@ $_code = $this->getMethodCode();
161
  <em>*</em><?php echo $this->__('Credit Card Number'); ?>
162
  </label>
163
  <div class="input-box">
164
- <input id="<?php echo $_code; ?>_cc_number" type="text" name="payment[cc_number]" title="<?php echo $this->__('Credit Card Number'); ?>" autocomplete="off" value="" class="input-text validate-cc-number validate-cc-type" />
165
  </div>
166
  </li>
167
 
@@ -172,7 +54,7 @@ $_code = $this->getMethodCode();
172
  </label>
173
  <div class="input-box">
174
  <div class="v-fix">
175
- <select id="<?php echo $_code; ?>_expiration" name="payment[cc_exp_month]" class="month validate-cc-exp required-entry">
176
  <?php $_ccExpMonth = $this->getInfoData('cc_exp_month'); ?>
177
  <?php foreach ($this->getCcMonths() as $k=>$v): ?>
178
  <option value="<?php echo $k ? $k : ''; ?>"<?php if($k == $_ccExpMonth): ?> selected="selected"<?php endif; ?>><?php echo $v; ?></option>
@@ -181,7 +63,7 @@ $_code = $this->getMethodCode();
181
  </div>
182
  <div class="v-fix">
183
  <?php $_ccExpYear = $this->getInfoData('cc_exp_year'); ?>
184
- <select id="<?php echo $_code; ?>_expiration_yr" name="payment[cc_exp_year]" class="year required-entry">
185
  <?php foreach ($this->getCcYears() as $k=>$v): ?>
186
  <option value="<?php echo $k ? $k : ''; ?>"<?php if($k == $_ccExpYear): ?> selected="selected"<?php endif; ?>><?php echo $v; ?></option>
187
  <?php endforeach; ?>
@@ -190,79 +72,286 @@ $_code = $this->getMethodCode();
190
  </div>
191
  </li>
192
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  <!-- Security Code -->
194
  <?php echo $this->getChildHtml(); ?>
 
195
 
196
- <?php if($this->hasVerification()): ?>
197
- <li id="<?php echo $_code; ?>_cc_type_cvv_div">
198
- <label for="<?php echo $_code; ?>_cc_cid" class="required">
199
- <em>*</em><?php echo $this->__('Card Verification Number'); ?>
200
- </label>
201
- <div class="input-box">
202
- <div class="v-fix">
203
- <input id="<?php echo $_code; ?>_cc_cid" type="password" name="payment[cc_cid]" title="<?php echo $this->__('Card Verification Number'); ?>" autocomplete="off" value="" class="input-text cvv required-entry validate-cc-cvn" />
204
- </div>
205
- <a href="#" class="cvv-what-is-this"><?php echo $this->__('What is this?'); ?></a>
206
- </div>
207
- </li>
208
- <?php endif; ?>
209
-
210
- <?php if ($this->hasSsCardType()): ?>
211
- <li id="<?php echo $_code; ?>_cc_type_ss_div">
212
- <ul class="inner-form">
213
- <li class="form-alt">
214
- <label for="<?php echo $_code; ?>_cc_issue" class="required">
215
- <em>*</em><?php echo $this->__('Switch/Solo/Maestro Only'); ?>
216
- </label>
217
- </li>
218
- <li>
219
- <label for="<?php echo $_code; ?>_cc_issue">
220
- <?php echo $this->__('Issue Number'); ?>:
221
- </label>
222
- <span class="input-box">
223
- <input id="<?php echo $_code; ?>_cc_issue" type="text" name="payment[cc_ss_issue]" title="<?php echo $this->__('Issue Number'); ?>" value="" class="input-text validate-cc-ukss cvv" />
224
- </span>
225
- </li>
226
-
227
- <li>
228
- <label for="<?php echo $_code; ?>_start_month">
229
- <?php echo $this->__('Start Date'); ?>:
230
- </label>
231
- <div class="input-box">
232
- <div class="v-fix">
233
- <select id="<?php echo $_code; ?>_start_month" name="payment[cc_ss_start_month]" class="validate-cc-ukss month">
234
- <?php foreach ($this->getCcMonths() as $k=>$v): ?>
235
- <option value="<?php echo $k ? $k : ''; ?>"<?php if($k == $this->getInfoData('cc_ss_start_month')): ?> selected="selected"<?php endif; ?>><?php echo $v; ?></option>
236
- <?php endforeach; ?>
237
- </select>
238
- </div>
239
- <div class="v-fix">
240
- <select id="<?php echo $_code; ?>_start_year" name="payment[cc_ss_start_year]" class="validate-cc-ukss year">
241
- <?php foreach ($this->getSsStartYears() as $k=>$v): ?>
242
- <option value="<?php echo $k ? $k : ''; ?>"<?php if($k==$this->getInfoData('cc_ss_start_year')): ?> selected="selected"<?php endif; ?>><?php echo $v; ?></option>
243
- <?php endforeach; ?>
244
- </select>
245
- </div>
246
- </div>
247
- </li>
248
- <li class="adv-container">&nbsp;</li>
249
- </ul>
250
-
251
- <script type="text/javascript">
252
- //<![CDATA[
253
- var SSChecked<?php echo $_code; ?> = function() {
254
- var elm = $('<?php echo $_code; ?>_cc_type');
255
- if (['SS','SM','SO'].indexOf(elm.value) != -1) {
256
- $('<?php echo $_code; ?>_cc_type_ss_div').show();
257
- } else {
258
- $('<?php echo $_code; ?>_cc_type_ss_div').hide();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  }
260
- };
261
-
262
- Event.observe($('<?php echo $_code; ?>_cc_type'), 'change', SSChecked<?php echo $_code; ?>);
263
- SSChecked<?php echo $_code; ?>();
264
- //]]>
265
- </script>
266
- </li>
267
- <?php endif; ?>
268
- </ul>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $_code = $this->getMethodCode(); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  <ul id="payment_form_<?php echo $_code; ?>" class="form-list" style="display:none;">
4
 
33
  <em>*</em><?php echo $this->__('Credit Card Holder Name'); ?>
34
  </label>
35
  <div class="input-box">
36
+ <input id="<?php echo $_code; ?>_cc_name" type="text" title="<?php echo $this->__('Credit Card Holder Name'); ?>" value="<?php echo $this->escapeHtml($this->getInfoData('cc_owner')); ?>" class="input-text required-entry" />
37
  </div>
38
  </li>
39
 
43
  <em>*</em><?php echo $this->__('Credit Card Number'); ?>
44
  </label>
45
  <div class="input-box">
46
+ <input id="<?php echo $_code; ?>_cc_number" type="text" title="<?php echo $this->__('Credit Card Number'); ?>" autocomplete="off" value="" class="input-text validate-cc-number validate-cc-type" />
47
  </div>
48
  </li>
49
 
54
  </label>
55
  <div class="input-box">
56
  <div class="v-fix">
57
+ <select id="<?php echo $_code; ?>_expiration" class="month validate-cc-exp required-entry">
58
  <?php $_ccExpMonth = $this->getInfoData('cc_exp_month'); ?>
59
  <?php foreach ($this->getCcMonths() as $k=>$v): ?>
60
  <option value="<?php echo $k ? $k : ''; ?>"<?php if($k == $_ccExpMonth): ?> selected="selected"<?php endif; ?>><?php echo $v; ?></option>
63
  </div>
64
  <div class="v-fix">
65
  <?php $_ccExpYear = $this->getInfoData('cc_exp_year'); ?>
66
+ <select id="<?php echo $_code; ?>_expiration_yr" class="year required-entry">
67
  <?php foreach ($this->getCcYears() as $k=>$v): ?>
68
  <option value="<?php echo $k ? $k : ''; ?>"<?php if($k == $_ccExpYear): ?> selected="selected"<?php endif; ?>><?php echo $v; ?></option>
69
  <?php endforeach; ?>
72
  </div>
73
  </li>
74
 
75
+ <li id="<?php echo $_code; ?>_cc_type_cvv_div">
76
+ <label for="<?php echo $_code; ?>_cc_cid" class="required">
77
+ <em>*</em><?php echo $this->__('Card Verification Number'); ?>
78
+ </label>
79
+ <div class="input-box">
80
+ <div class="v-fix">
81
+ <input id="<?php echo $_code; ?>_cc_cid" type="password" title="<?php echo $this->__('Card Verification Number'); ?>" autocomplete="off" value="" class="input-text cvv required-entry validate-cc-cvn" />
82
+ </div>
83
+ <a href="#" class="cvv-what-is-this"><?php echo $this->__('What is this?'); ?></a>
84
+ </div>
85
+ </li>
86
+
87
  <!-- Security Code -->
88
  <?php echo $this->getChildHtml(); ?>
89
+ </ul>
90
 
91
+ <script type="text/javascript">
92
+ var method, messageBox, tokenField, cardObject, card, processing, dirty,
93
+ buttons, inMemoryButton, getScript, createOmiseToken, successCallback,
94
+ failCallback, alwaysCallback, disableFields, enableFields;
95
+
96
+ method = document.getElementById('p_method_omise_gateway');
97
+ messageBox = document.getElementById('omise-validation-advice');
98
+ tokenField = document.getElementById('omise_gateway_token');
99
+ cardObject = {
100
+ name : document.getElementById('omise_gateway_cc_name'),
101
+ number : document.getElementById('omise_gateway_cc_number'),
102
+ expiration_month : document.getElementById('omise_gateway_expiration'),
103
+ expiration_year : document.getElementById('omise_gateway_expiration_yr'),
104
+ security_code : document.getElementById('omise_gateway_cc_cid')
105
+ };
106
+ card = {};
107
+ processing = false;
108
+ dirty = true;
109
+
110
+ /**
111
+ * @param {string} url
112
+ * @param {Function} success
113
+ *
114
+ * @return {void}
115
+ */
116
+ getScript = function(url, success) {
117
+ var script, head, done;
118
+
119
+ script = document.createElement("script");
120
+ script.src = url;
121
+
122
+ head = document.getElementsByTagName("head")[0];
123
+ done = false;
124
+
125
+ // Attach handlers for all browsers
126
+ script.onload = script.onreadystatechange = function() {
127
+ if (! done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
128
+ done = true;
129
+
130
+ // callback function provided as param
131
+ success();
132
+
133
+ script.onload = script.onreadystatechange = null;
134
+ head.removeChild(script);
135
+ };
136
+ };
137
+
138
+ head.appendChild(script);
139
+ };
140
+
141
+ /**
142
+ * @return {void}
143
+ */
144
+ createOmiseToken = function() {
145
+ Omise.setPublicKey("<?php echo $this->getOmiseKeys('public_key'); ?>");
146
+
147
+ Omise.createToken("card", card, function(statusCode, response) {
148
+ if (statusCode == 200) {
149
+ successCallback(statusCode, response);
150
+ }
151
+ else {
152
+ failCallback(statusCode, response);
153
+ }
154
+
155
+ alwaysCallback(statusCode, response);
156
+ });
157
+ }
158
+
159
+ /**
160
+ * @param {number} statusCode
161
+ * @param {Object} response
162
+ *
163
+ * @return {mix}
164
+ */
165
+ successCallback = function(statusCode, response) {
166
+ tokenField.value = response.id;
167
+ }
168
+
169
+ /**
170
+ * @param {number} statusCode
171
+ * @param {Object} response
172
+ *
173
+ * @return {mix}
174
+ */
175
+ failCallback = function(statusCode, response) {
176
+ messageBox.innerHTML = response.message;
177
+ }
178
+
179
+ /**
180
+ * @param {number} statusCode
181
+ * @param {Object} response
182
+ *
183
+ * @return {mix}
184
+ */
185
+ alwaysCallback = function(statusCode, response) {
186
+ return true;
187
+ }
188
+
189
+ /**
190
+ * @param {Object} fields
191
+ *
192
+ * @return {void}
193
+ */
194
+ disableFields = function(fields) {
195
+ for (field in fields) {
196
+ fields[field].disabled = true;
197
+ }
198
+ }
199
+
200
+ /**
201
+ * @param {Object} fields
202
+ *
203
+ * @return {void}
204
+ */
205
+ enableFields = function(fields) {
206
+ for (field in fields) {
207
+ fields[field].disabled = false;
208
+ }
209
+ }
210
+
211
+ if ('<?php echo $this->isOscSupportEnabled(); ?>') {
212
+ var observeForm;
213
+
214
+ /**
215
+ * @param {number} statusCode
216
+ * @param {Object} response
217
+ *
218
+ * @return {mix}
219
+ */
220
+ successCallback = function(statusCode, response) {
221
+ if (typeof response.card != 'undefined' && !response.card.security_code_check) {
222
+ messageBox.innerHTML = 'This card cannot be authorized, security code is invalid.';
223
+ }
224
+ else {
225
+ tokenField.value = response.id;
226
+ }
227
+ }
228
+
229
+ /**
230
+ * @param {number} statusCode
231
+ * @param {Object} response
232
+ *
233
+ * @return {mix}
234
+ */
235
+ alwaysCallback = function(statusCode, response) {
236
+ var i;
237
+
238
+ for (i = 0; i < inMemoryButton.length; ++i) {
239
+ inMemoryButton[i].disabled = false;
240
+ }
241
+
242
+ processing = false;
243
+ dirty = false;
244
+ enableFields(cardObject);
245
+ }
246
+
247
+ /**
248
+ * @param {Object} event
249
+ *
250
+ * @return {mix}
251
+ */
252
+ observeForm = function(event) {
253
+ event.preventDefault();
254
+
255
+ for (key in cardObject) {
256
+ if (card[key] && card[key] != cardObject[key].value) {
257
+ dirty = true;
258
+ tokenField.value = '';
259
+ }
260
+
261
+ if (cardObject[key].value == '') {
262
+ return false;
263
+ }
264
+
265
+ card[key] = cardObject[key].value;
266
+ }
267
+
268
+ if (! processing && dirty) {
269
+ var i;
270
+
271
+ processing = true;
272
+ buttons = document.getElementsByTagName('button');
273
+ inMemoryButton = [];
274
+ messageBox.innerHTML = '';
275
+
276
+ disableFields(cardObject);
277
+
278
+ for (i = 0; i < buttons.length; ++i) {
279
+ if (! buttons[i].disabled) {
280
+ buttons[i].disabled = true;
281
+ inMemoryButton.push(buttons[i]);
282
  }
283
+ }
284
+
285
+ if (typeof Omise === 'undefined') {
286
+ getScript('https://cdn.omise.co/omise.min.js.gz', createOmiseToken);
287
+ }
288
+ else {
289
+ createOmiseToken();
290
+ }
291
+ }
292
+ }
293
+
294
+ cardObject.name.addEventListener('blur', observeForm);
295
+ cardObject.number.addEventListener('blur', observeForm);
296
+ cardObject.expiration_month.addEventListener('blur', observeForm);
297
+ cardObject.expiration_year.addEventListener('blur', observeForm);
298
+ cardObject.security_code.addEventListener('blur', observeForm);
299
+ }
300
+ else {
301
+ // Hook Payment.save function by wrapping Omise logic on top of the 'Payment.prototype.save'
302
+ Payment.prototype.save = Payment.prototype.save.wrap(function(superMethod) {
303
+ var validator;
304
+
305
+ if (! method.checked) {
306
+ return superMethod();
307
+ }
308
+
309
+ /**
310
+ * @param {number} statusCode
311
+ * @param {Object} response
312
+ *
313
+ * @return {mix}
314
+ */
315
+ successCallback = function(statusCode, response) {
316
+ if (typeof response.card != 'undefined' && !response.card.security_code_check) {
317
+ messageBox.innerHTML = 'This card cannot be authorized, security code is invalid.';
318
+ }
319
+ else {
320
+ tokenField.value = response.id;
321
+ checkout.setLoadWaiting(false);
322
+
323
+ return superMethod();
324
+ }
325
+ }
326
+
327
+ /**
328
+ * @param {number} statusCode
329
+ * @param {Object} response
330
+ *
331
+ * @return {mix}
332
+ */
333
+ alwaysCallback = function(statusCode, response) {
334
+ enableFields(cardObject);
335
+ checkout.setLoadWaiting(false);
336
+ }
337
+
338
+ validator = new Validation('co-payment-form');
339
+
340
+ if (validator.validate()) {
341
+ checkout.setLoadWaiting('payment');
342
+ disableFields(cardObject);
343
+
344
+ for (key in cardObject) {
345
+ card[key] = cardObject[key].value;
346
+ }
347
+
348
+ if (typeof Omise === 'undefined') {
349
+ getScript('https://cdn.omise.co/omise.min.js.gz', createOmiseToken);
350
+ }
351
+ else {
352
+ createOmiseToken();
353
+ }
354
+ }
355
+ });
356
+ }
357
+ </script>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Omise_Gateway</name>
4
- <version>1.11.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/mit-license.php">MIT License</license>
7
  <channel>community</channel>
@@ -44,23 +44,22 @@ Please check the following link to see "Installation Instruction" &amp; "User Gu
44
  &#xD;
45
  &lt;h1&gt;RELEASE NOTE&lt;/h1&gt;&#xD;
46
  &#xD;
47
- &lt;strong&gt;Enhancements&lt;/strong&gt;&#xD;
48
  &#xD;
49
- - Update Omise-PHP library to v2.7.1.&#xD;
50
  &#xD;
51
- &lt;strong&gt;Bug Fixes&lt;/strong&gt;&#xD;
52
  &#xD;
53
- - Fix case-sensitive filename issue.&#xD;
54
  &#xD;
55
  ---&#xD;
56
  &#xD;
57
  For more detail, please check our release note below.&#xD;
58
- &lt;a href="https://github.com/omise/omise-magento/releases/tag/v1.11"&gt;https://github.com/omise/omise-magento/releases/tag/v1.11&lt;/a&gt;&#xD;
59
- </notes>
60
  <authors><author><name>Omise</name><user>omise</user><email>apps@omise.co</email></author></authors>
61
- <date>2017-04-03</date>
62
- <time>13:33:43</time>
63
- <contents><target name="magecommunity"><dir name="Omise"><dir name="Gateway"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Edit"><file name="Form.php" hash="35295e47578bfd3b034bfe6c36c8a4cc"/></dir><file name="Edit.php" hash="84fdd93ef432aba685bcac6cdb9bbe49"/></dir><dir name="Dashboard"><file name="Dashboard.php" hash="993c3d2c63d3b2a6c64940a09042155b"/></dir><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Payment.php" hash="c5c162c6c4d58bd8b479445097ae2299"/></dir></dir></dir></dir><dir name="Form"><file name="Cc.php" hash="9ece8b02993c3e9a84a5cfafe0150438"/><file name="Offsiteinternetbankingpayment.php" hash="8dd6eac77eafcf3d3d77a0a3b6764824"/></dir></dir><dir name="Helper"><file name="Data.php" hash="5c586a7cd4c9ac106cceda2fbd758145"/></dir><dir name="Model"><dir name="Config"><dir name="Var"><file name="Cctype.php" hash="ac2790871eaf969ce9e705c7e499188d"/><file name="Paymentaction.php" hash="2606f24f33aaae56b780e67011711b99"/></dir></dir><file name="Config.php" hash="328cae40a1233e412d3386be9bcf3ce2"/><file name="Offsiteinternetbankingpayment.php" hash="1153232c830e26681766b8b262cd5416"/><file name="Omise.php" hash="44589b5e3a51e1681f87df27f5dcf092"/><file name="OmiseAccount.php" hash="f716dcd2ece38c0381a61c1ff5f1151b"/><file name="OmiseBalance.php" hash="c2ab02f0a72423d4c5bec5df62459477"/><file name="OmiseCharge.php" hash="1fa0ff4a69881f9b67f353af017b76d4"/><file name="OmiseTransfer.php" hash="5d1f80b32ee835629977c483cee53330"/><file name="Payment.php" hash="68d2c07bebe659a841a010d9ead2f411"/><file name="PaymentMethod.php" hash="580295e13553d8eac13d0ee45fb02665"/><dir name="Resource"><file name="Config.php" hash="940c4e25613da01ce6c419c9a69f9577"/></dir><dir name="Strategies"><file name="AuthorizeStrategy.php" hash="fa143b7e10a88846263e8c4098618593"/><file name="AuthorizeThreeDSecureStrategy.php" hash="8c588b44729843b1dc8d3653a189a232"/><file name="CaptureStrategy.php" hash="d7dc0a76f52de532231273070888ac06"/><file name="CaptureThreeDSecureStrategy.php" hash="6abb4dc786965b09a8f460861311cd22"/><file name="ManualCaptureStrategy.php" hash="070b050bd18474d2164b5c36bfd5f81b"/><file name="OffsiteInternetBankingStrategy.php" hash="81dec322da649bad78f64b53d0bd9232"/><file name="StrategyAbstract.php" hash="1fa0a02d32d013da0f19ee286f78b423"/><file name="StrategyInterface.php" hash="b6efc25d7cfe232cd5b597ed6dfdd4cf"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="OmiseController.php" hash="12e10c8f1b72437b5bea2a24df9ecab5"/></dir><dir name="Callback"><file name="ValidateoffsiteinternetbankingController.php" hash="56ed06847cd0405f167e7ab4ebfab937"/><file name="ValidatethreedsecureController.php" hash="0380871a1b590c0465d04b7df85d458a"/></dir></dir><dir name="data"><dir name="omise_gateway_setup"><file name="data-install-0.0.0.1.php" hash="ace699435b757bc10c2f19a5e9555dab"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="6904e384ede6b5e4ba3203d748e9d802"/><file name="config.xml" hash="e78b64894a8d429cd99ad06d75426fd0"/><file name="system.xml" hash="cf6d397505b3aafa199c868f9b6f16a8"/></dir><dir name="sql"><dir name="omise_gateway_setup"><file name="install-0.0.0.1.php" hash="93f7f4a16be87ef83a84215c72e667a1"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Omise_Gateway.xml" hash="6d354708ee537b9bd833e0916135e6bf"/></dir></target><target name="magelib"><dir name="omise-php"><file name="CHANGELOG.md" hash="c0fc5c2ca02a3f16ff2c6c286da3ae7e"/><file name="LICENSE" hash="4b764c86995cbfed1e733d4e1b28edc1"/><file name="README.md" hash="403943c009df14557a173c0d2d741567"/><dir name="data"><file name="ca_certificates.pem" hash="e2c6e1ebee2ffc481d3be02aaf12c46c"/></dir><dir name="lib"><file name="Omise.php" hash="0dd224bf0853d3c99a3cbcd4ceabdcce"/><dir name="omise"><file name="OmiseAccount.php" hash="a6f6065fa76ef7558bc9133ad42202b2"/><file name="OmiseBalance.php" hash="fe3c179b7b07aebe49216ce91fe5f941"/><file name="OmiseCard.php" hash="852846c4427d826011bb609d420134ca"/><file name="OmiseCardList.php" hash="62ea0afd7a3a8b594d8c26f9019bd75b"/><file name="OmiseCharge.php" hash="7e71211c81553de18bd9052fc73b680b"/><file name="OmiseCustomer.php" hash="bd6ce3ba417568dcc5d59ad30dbd4630"/><file name="OmiseDispute.php" hash="5828d42b8ea897d1e38a499979d6d68d"/><file name="OmiseEvent.php" hash="5a9ca900edb659178c4daf336b258c09"/><file name="OmiseLink.php" hash="6a0e55db8c00632eff2f3cefeb5b937b"/><file name="OmiseRecipient.php" hash="8563eb9f56716f19ef8bd86c0c0669a2"/><file name="OmiseRefund.php" hash="2188a91cdc0b8fe65b1eff49bf787935"/><file name="OmiseRefundList.php" hash="47a8b2ac14867921b394f31fe283bf11"/><file name="OmiseTest.php" hash="2c3f9a6aa6e8d074e2c3b62fdef9193b"/><file name="OmiseToken.php" hash="3d47a1fb374a783aa23d913f33a35554"/><file name="OmiseTransaction.php" hash="5913fa5e050ec79b36c95a70eb878579"/><file name="OmiseTransfer.php" hash="370d34418761adb3664b66105a2e78b0"/><dir name="exception"><file name="OmiseExceptions.php" hash="cdfb3256ceda24c0aabe0e4dedfbe3ee"/></dir><dir name="res"><file name="OmiseApiResource.php" hash="4fdeca43703ea6cb8424af75dc575f74"/><file name="OmiseVaultResource.php" hash="989cde47ba91688e1c48e9826e7b559f"/><dir name="obj"><file name="OmiseObject.php" hash="bc1cc21f51d557f8c2640696699e3556"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="omise"><file name="dashboard.phtml" hash="857dcf59e34e484b1e0db3cb49beef7b"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="payment"><dir name="form"><file name="omisecc.phtml" hash="e65ce4f060e83204e37760e4ca813d57"/><file name="omiseoffsiteinternetbankingpayment.phtml" hash="850380c1b5a0e6647abde75aa1613727"/><file name="omise-inapplicable-method.phtml" hash="f829e89be8470f340300c6d0227ddec2"/></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="omise"><file name="omise-admin.css" hash="6a293ba8afa28789c349baa5e2fe1e18"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="omise"><dir name="css"><file name="offsiteinternetbankingpayment.css" hash="2f9407e493c2a769d960e03c2f63ea16"/></dir><dir name="images"><file name="bay.svg" hash="78f135040300d87f34f070141712ea39"/><file name="bbl.svg" hash="23ef91aab184f73cb0fd340d33ec78ba"/><file name="ktb.svg" hash="bccf1cdf5d4383f6403afe26111d47b6"/><file name="scb.svg" hash="341040cf1820811793b30928623cc43f"/></dir></dir></dir></dir></dir></target></contents>
64
  <compatible/>
65
- <dependencies><required><php><min>5.4.0</min><max>7.1.2</max></php></required></dependencies>
66
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Omise_Gateway</name>
4
+ <version>1.12.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/mit-license.php">MIT License</license>
7
  <channel>community</channel>
44
  &#xD;
45
  &lt;h1&gt;RELEASE NOTE&lt;/h1&gt;&#xD;
46
  &#xD;
47
+ &lt;strong&gt;Highlights&lt;/strong&gt;&#xD;
48
  &#xD;
49
+ - Provides a solution for One Step Checkout extensions.&#xD;
50
  &#xD;
51
+ &lt;strong&gt;Enhancements&lt;/strong&gt;&#xD;
52
  &#xD;
53
+ - Refactor and clean up code in Block/Form/Cc.php class and payment/form/omisecc.phtml form&#xD;
54
  &#xD;
55
  ---&#xD;
56
  &#xD;
57
  For more detail, please check our release note below.&#xD;
58
+ &lt;a href="https://github.com/omise/omise-magento/releases/tag/v1.12"&gt;https://github.com/omise/omise-magento/releases/tag/v1.12&lt;/a&gt;</notes>
 
59
  <authors><author><name>Omise</name><user>omise</user><email>apps@omise.co</email></author></authors>
60
+ <date>2017-05-24</date>
61
+ <time>07:22:10</time>
62
+ <contents><target name="magecommunity"><dir name="Omise"><dir name="Gateway"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Edit"><file name="Form.php" hash="35295e47578bfd3b034bfe6c36c8a4cc"/></dir><file name="Edit.php" hash="84fdd93ef432aba685bcac6cdb9bbe49"/></dir><dir name="Dashboard"><file name="Dashboard.php" hash="993c3d2c63d3b2a6c64940a09042155b"/></dir><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Payment.php" hash="c5c162c6c4d58bd8b479445097ae2299"/></dir></dir></dir></dir><dir name="Form"><file name="Cc.php" hash="e7617b7944de4e69692f3ed1ad4eeb66"/><file name="Offsiteinternetbankingpayment.php" hash="8dd6eac77eafcf3d3d77a0a3b6764824"/></dir></dir><dir name="Helper"><file name="Data.php" hash="5c586a7cd4c9ac106cceda2fbd758145"/></dir><dir name="Model"><dir name="Config"><dir name="Var"><file name="Cctype.php" hash="ac2790871eaf969ce9e705c7e499188d"/><file name="Paymentaction.php" hash="2606f24f33aaae56b780e67011711b99"/></dir></dir><file name="Config.php" hash="328cae40a1233e412d3386be9bcf3ce2"/><file name="Offsiteinternetbankingpayment.php" hash="1153232c830e26681766b8b262cd5416"/><file name="Omise.php" hash="1993de5f61ac0d5b37462abd88e8c970"/><file name="OmiseAccount.php" hash="f716dcd2ece38c0381a61c1ff5f1151b"/><file name="OmiseBalance.php" hash="c2ab02f0a72423d4c5bec5df62459477"/><file name="OmiseCharge.php" hash="1fa0ff4a69881f9b67f353af017b76d4"/><file name="OmiseTransfer.php" hash="5d1f80b32ee835629977c483cee53330"/><file name="Payment.php" hash="68d2c07bebe659a841a010d9ead2f411"/><file name="PaymentMethod.php" hash="ae9eeefaf67b5537f9e82283ff68aa4a"/><dir name="Resource"><file name="Config.php" hash="940c4e25613da01ce6c419c9a69f9577"/></dir><dir name="Strategies"><file name="AuthorizeStrategy.php" hash="fa143b7e10a88846263e8c4098618593"/><file name="AuthorizeThreeDSecureStrategy.php" hash="8c588b44729843b1dc8d3653a189a232"/><file name="CaptureStrategy.php" hash="d7dc0a76f52de532231273070888ac06"/><file name="CaptureThreeDSecureStrategy.php" hash="6abb4dc786965b09a8f460861311cd22"/><file name="ManualCaptureStrategy.php" hash="070b050bd18474d2164b5c36bfd5f81b"/><file name="OffsiteInternetBankingStrategy.php" hash="81dec322da649bad78f64b53d0bd9232"/><file name="StrategyAbstract.php" hash="1fa0a02d32d013da0f19ee286f78b423"/><file name="StrategyInterface.php" hash="b6efc25d7cfe232cd5b597ed6dfdd4cf"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="OmiseController.php" hash="12e10c8f1b72437b5bea2a24df9ecab5"/></dir><dir name="Callback"><file name="ValidateoffsiteinternetbankingController.php" hash="56ed06847cd0405f167e7ab4ebfab937"/><file name="ValidatethreedsecureController.php" hash="0380871a1b590c0465d04b7df85d458a"/></dir></dir><dir name="data"><dir name="omise_gateway_setup"><file name="data-install-0.0.0.1.php" hash="ace699435b757bc10c2f19a5e9555dab"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="6904e384ede6b5e4ba3203d748e9d802"/><file name="config.xml" hash="5962edc20cc134ee62784b3e272bb071"/><file name="system.xml" hash="cbf3582c8d453bbe98178272d9f48d6d"/></dir><dir name="sql"><dir name="omise_gateway_setup"><file name="install-0.0.0.1.php" hash="93f7f4a16be87ef83a84215c72e667a1"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Omise_Gateway.xml" hash="6d354708ee537b9bd833e0916135e6bf"/></dir></target><target name="magelib"><dir name="omise-php"><file name="CHANGELOG.md" hash="c0fc5c2ca02a3f16ff2c6c286da3ae7e"/><file name="LICENSE" hash="4b764c86995cbfed1e733d4e1b28edc1"/><file name="README.md" hash="403943c009df14557a173c0d2d741567"/><dir name="data"><file name="ca_certificates.pem" hash="e2c6e1ebee2ffc481d3be02aaf12c46c"/></dir><dir name="lib"><file name="Omise.php" hash="0dd224bf0853d3c99a3cbcd4ceabdcce"/><dir name="omise"><file name="OmiseAccount.php" hash="a6f6065fa76ef7558bc9133ad42202b2"/><file name="OmiseBalance.php" hash="fe3c179b7b07aebe49216ce91fe5f941"/><file name="OmiseCard.php" hash="852846c4427d826011bb609d420134ca"/><file name="OmiseCardList.php" hash="62ea0afd7a3a8b594d8c26f9019bd75b"/><file name="OmiseCharge.php" hash="7e71211c81553de18bd9052fc73b680b"/><file name="OmiseCustomer.php" hash="bd6ce3ba417568dcc5d59ad30dbd4630"/><file name="OmiseDispute.php" hash="5828d42b8ea897d1e38a499979d6d68d"/><file name="OmiseEvent.php" hash="5a9ca900edb659178c4daf336b258c09"/><file name="OmiseLink.php" hash="6a0e55db8c00632eff2f3cefeb5b937b"/><file name="OmiseRecipient.php" hash="8563eb9f56716f19ef8bd86c0c0669a2"/><file name="OmiseRefund.php" hash="2188a91cdc0b8fe65b1eff49bf787935"/><file name="OmiseRefundList.php" hash="47a8b2ac14867921b394f31fe283bf11"/><file name="OmiseTest.php" hash="2c3f9a6aa6e8d074e2c3b62fdef9193b"/><file name="OmiseToken.php" hash="3d47a1fb374a783aa23d913f33a35554"/><file name="OmiseTransaction.php" hash="5913fa5e050ec79b36c95a70eb878579"/><file name="OmiseTransfer.php" hash="370d34418761adb3664b66105a2e78b0"/><dir name="exception"><file name="OmiseExceptions.php" hash="cdfb3256ceda24c0aabe0e4dedfbe3ee"/></dir><dir name="res"><file name="OmiseApiResource.php" hash="4fdeca43703ea6cb8424af75dc575f74"/><file name="OmiseVaultResource.php" hash="989cde47ba91688e1c48e9826e7b559f"/><dir name="obj"><file name="OmiseObject.php" hash="bc1cc21f51d557f8c2640696699e3556"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="omise"><file name="dashboard.phtml" hash="857dcf59e34e484b1e0db3cb49beef7b"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="payment"><dir name="form"><file name="omisecc.phtml" hash="0aca62f93d1898a892961b4af9ea89c0"/><file name="omiseoffsiteinternetbankingpayment.phtml" hash="850380c1b5a0e6647abde75aa1613727"/><file name="omise-inapplicable-method.phtml" hash="f829e89be8470f340300c6d0227ddec2"/></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="omise"><file name="omise-admin.css" hash="6a293ba8afa28789c349baa5e2fe1e18"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="omise"><dir name="css"><file name="offsiteinternetbankingpayment.css" hash="2f9407e493c2a769d960e03c2f63ea16"/></dir><dir name="images"><file name="bay.svg" hash="78f135040300d87f34f070141712ea39"/><file name="bbl.svg" hash="23ef91aab184f73cb0fd340d33ec78ba"/><file name="ktb.svg" hash="bccf1cdf5d4383f6403afe26111d47b6"/><file name="scb.svg" hash="341040cf1820811793b30928623cc43f"/></dir></dir></dir></dir></dir></target></contents>
63
  <compatible/>
64
+ <dependencies><required><php><min>5.4.0</min><max>7.1.4</max></php></required></dependencies>
65
  </package>