Gene_Braintree - Version 2.1.4

Version Notes

Connect your Magento store to Braintree to accept Credit Cards & PayPal using V.Zero SDK

Download this release

Release Info

Developer Dave Macaulay
Extension Gene_Braintree
Version 2.1.4
Comparing to
See all releases


Code changes from version 2.1.3 to 2.1.4

Files changed (39) hide show
  1. app/code/community/Gene/Braintree/Block/Js.php +42 -9
  2. app/code/community/Gene/Braintree/Helper/Data.php +27 -1
  3. app/code/community/Gene/Braintree/Model/Paymentmethod/Creditcard.php +4 -1
  4. app/code/community/Gene/Braintree/Model/Wrapper/Braintree.php +0 -3
  5. app/code/community/Gene/Braintree/controllers/ExpressController.php +21 -3
  6. app/code/community/Gene/Braintree/etc/config.xml +8 -1
  7. app/code/community/Gene/Braintree/etc/jstranslator.xml +22 -0
  8. app/code/community/Gene/Braintree/etc/system.xml +16 -0
  9. app/design/adminhtml/default/default/layout/gene/braintree.xml +3 -3
  10. app/design/frontend/base/default/layout/gene/braintree.xml +7 -7
  11. app/design/frontend/base/default/template/gene/braintree/js/default.phtml +17 -0
  12. app/design/frontend/base/default/template/gene/braintree/js/setup.phtml +10 -1
  13. app/locale/en_US/Gene_Braintree.csv +8 -1
  14. js/gene/braintree/2.1.3/express/paypal-min.js +0 -1
  15. js/gene/braintree/2.1.3/vzero-integration-min.js +0 -1
  16. js/gene/braintree/2.1.3/vzero-min.js +0 -1
  17. js/gene/braintree/{2.1.3 → 2.1.4}/express/abstract-min.js +0 -0
  18. js/gene/braintree/2.1.4/express/paypal-min.js +1 -0
  19. js/gene/braintree/2.1.4/vzero-integration-min.js +1 -0
  20. js/gene/braintree/2.1.4/vzero-min.js +1 -0
  21. js/gene/braintree/{2.1.3 → 2.1.4}/vzero-paypal-min.js +0 -0
  22. js/gene/braintree/config.codekit +22 -22
  23. js/gene/braintree/source/express/paypal.js +1 -1
  24. js/gene/braintree/source/vzero-integration.js +131 -61
  25. js/gene/braintree/source/vzero.js +134 -88
  26. package.xml +4 -4
  27. skin/frontend/base/default/css/gene/braintree/aheadworks.css +13 -0
  28. skin/frontend/base/default/css/gene/braintree/amasty.css +13 -0
  29. skin/frontend/base/default/css/gene/braintree/awesomecheckout.css +13 -0
  30. skin/frontend/base/default/css/gene/braintree/core/_hostedfields.less +16 -0
  31. skin/frontend/base/default/css/gene/braintree/default.css +13 -0
  32. skin/frontend/base/default/css/gene/braintree/fancycheckout.css +13 -0
  33. skin/frontend/base/default/css/gene/braintree/firecheckout.css +13 -0
  34. skin/frontend/base/default/css/gene/braintree/fme.css +13 -0
  35. skin/frontend/base/default/css/gene/braintree/idev.css +13 -0
  36. skin/frontend/base/default/css/gene/braintree/iwd.css +13 -0
  37. skin/frontend/base/default/css/gene/braintree/magestore.css +13 -0
  38. skin/frontend/base/default/css/gene/braintree/oye.css +13 -0
  39. skin/frontend/base/default/css/gene/braintree/unicode.css +13 -0
app/code/community/Gene/Braintree/Block/Js.php CHANGED
@@ -77,22 +77,55 @@ class Gene_Braintree_Block_Js extends Mage_Core_Block_Template
77
  */
78
  protected function getThreeDSpecificCountries()
79
  {
80
- if (!$this->isThreeDSpecificCountries()) {
81
- return '';
82
  }
83
 
84
- return Mage::getStoreConfig('payment/gene_braintree_creditcard/threedsecure_specificcountry');
85
  }
86
 
87
  /**
88
- * Is the system set to use hosted fields for credit card processing?
89
- * Hosted Fields is currently the only integration option
90
  *
91
- * @return bool
92
  */
93
- protected function isHostedFields()
94
  {
95
- return 'true';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  }
97
 
98
  /**
@@ -172,7 +205,7 @@ class Gene_Braintree_Block_Js extends Mage_Core_Block_Template
172
  protected function _toHtml()
173
  {
174
  // Check the payment method is active, block duplicate rendering of this block
175
- if (($this->isCreditCardActive() || $this->isPayPalActive()) &&
176
  !Mage::registry('gene_js_loaded_' . $this->getTemplate())
177
  ) {
178
  Mage::register('gene_js_loaded_' . $this->getTemplate(), true);
77
  */
78
  protected function getThreeDSpecificCountries()
79
  {
80
+ if ($this->isThreeDSpecificCountries()) {
81
+ return Mage::getStoreConfig('payment/gene_braintree_creditcard/threedsecure_specificcountry');
82
  }
83
 
84
+ return '';
85
  }
86
 
87
  /**
88
+ * Return supported credit cards
 
89
  *
90
+ * @return array
91
  */
92
+ protected function getSupportedCardTypes()
93
  {
94
+ if ($this->isCreditCardActive()) {
95
+ return Mage::getStoreConfig('payment/gene_braintree_creditcard/cctypes');
96
+ }
97
+
98
+ return [];
99
+ }
100
+
101
+ /**
102
+ * Return the Kount environment
103
+ *
104
+ * @return mixed|string
105
+ */
106
+ protected function getKountEnvironment()
107
+ {
108
+ $env = Mage::getStoreConfig('payment/gene_braintree_creditcard/kount_environment');
109
+ if ($env) {
110
+ return $env;
111
+ }
112
+
113
+ return 'production';
114
+ }
115
+
116
+ /**
117
+ * Return the Kount ID
118
+ *
119
+ * @return bool|string
120
+ */
121
+ protected function getKountId()
122
+ {
123
+ $kountId = Mage::getStoreConfig('payment/gene_braintree_creditcard/kount_merchant_id');
124
+ if ($kountId) {
125
+ return $kountId;
126
+ }
127
+
128
+ return '';
129
  }
130
 
131
  /**
205
  protected function _toHtml()
206
  {
207
  // Check the payment method is active, block duplicate rendering of this block
208
+ if (Mage::helper('gene_braintree')->isSetupRequired() &&
209
  !Mage::registry('gene_js_loaded_' . $this->getTemplate())
210
  ) {
211
  Mage::register('gene_js_loaded_' . $this->getTemplate(), true);
app/code/community/Gene/Braintree/Helper/Data.php CHANGED
@@ -157,4 +157,30 @@ class Gene_Braintree_Helper_Data extends Mage_Core_Helper_Abstract
157
  && !Mage::getStoreConfig('payment/gene_braintree/merchant_id')
158
  && !Mage::getStoreConfig('payment/gene_braintree/sandbox_merchant_id');
159
  }
160
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  && !Mage::getStoreConfig('payment/gene_braintree/merchant_id')
158
  && !Mage::getStoreConfig('payment/gene_braintree/sandbox_merchant_id');
159
  }
160
+
161
+ /**
162
+ * Do we need to include various setup files?
163
+ *
164
+ * Utilising the 'setup_required' feature in XML files, loop through and determine if setup is required based on
165
+ * various modules being "available"
166
+ *
167
+ * @return bool
168
+ */
169
+ public function isSetupRequired()
170
+ {
171
+ $methodCodes = Mage::getConfig()->getNode('global/payment/setup_required')->asArray();
172
+ if (is_array($methodCodes) && count($methodCodes) > 0) {
173
+ foreach (array_keys($methodCodes) as $methodCode) {
174
+ $methodModel = Mage::getConfig()->getNode('default/payment/' . (string) $methodCode . '/model');
175
+ if ($methodModel) {
176
+ $model = Mage::getModel($methodModel);
177
+ if ($model && method_exists($model, 'isAvailable') && $model->isAvailable()) {
178
+ return true;
179
+ }
180
+ }
181
+ }
182
+ }
183
+
184
+ return false;
185
+ }
186
+ }
app/code/community/Gene/Braintree/Model/Paymentmethod/Creditcard.php CHANGED
@@ -494,7 +494,10 @@ class Gene_Braintree_Model_Paymentmethod_Creditcard extends Gene_Braintree_Model
494
  $this->handleFraud($result, $payment);
495
 
496
  // If 3D secure is enabled, presume it's passed
497
- if ($this->_is3DEnabled() && $result->transaction->threeDSecureInfo->liabilityShifted == 1) {
 
 
 
498
  $additionalInfo['threeDSecure'] = Mage::helper('gene_braintree')->__('Passed');
499
  }
500
 
494
  $this->handleFraud($result, $payment);
495
 
496
  // If 3D secure is enabled, presume it's passed
497
+ if ($this->_is3DEnabled()
498
+ && isset($result->transaction->threeDSecureInfo->liabilityShifted)
499
+ && $result->transaction->threeDSecureInfo->liabilityShifted == 1
500
+ ) {
501
  $additionalInfo['threeDSecure'] = Mage::helper('gene_braintree')->__('Passed');
502
  }
503
 
app/code/community/Gene/Braintree/Model/Wrapper/Braintree.php CHANGED
@@ -662,11 +662,9 @@ class Gene_Braintree_Model_Wrapper_Braintree extends Mage_Core_Model_Abstract
662
  );
663
  }
664
  } elseif ($storeInVault && $this->checkIsCustomer() && isset($paymentDataArray['paymentMethodNonce'])) {
665
- echo '2';
666
  // If the user is already a customer and wants to store in the vault we've gotta do something a bit special
667
  // Do we already have a saved token in the session?
668
  if ($token = Mage::getSingleton('checkout/session')->getTemporaryPaymentToken()) {
669
- echo '3';
670
  if ($this->checkPaymentMethod($token)) {
671
  // Is the submitted nonce different?
672
  if (Mage::getSingleton('checkout/session')->getVaultedNonce() == $paymentDataArray['paymentMethodNonce']) {
@@ -695,7 +693,6 @@ class Gene_Braintree_Model_Wrapper_Braintree extends Mage_Core_Model_Abstract
695
  }
696
 
697
  } else {
698
- echo '4';
699
  // Create the payment method with this data
700
  $paymentMethodCreate = array(
701
  'customerId' => $this->getBraintreeId(),
662
  );
663
  }
664
  } elseif ($storeInVault && $this->checkIsCustomer() && isset($paymentDataArray['paymentMethodNonce'])) {
 
665
  // If the user is already a customer and wants to store in the vault we've gotta do something a bit special
666
  // Do we already have a saved token in the session?
667
  if ($token = Mage::getSingleton('checkout/session')->getTemporaryPaymentToken()) {
 
668
  if ($this->checkPaymentMethod($token)) {
669
  // Is the submitted nonce different?
670
  if (Mage::getSingleton('checkout/session')->getVaultedNonce() == $paymentDataArray['paymentMethodNonce']) {
693
  }
694
 
695
  } else {
 
696
  // Create the payment method with this data
697
  $paymentMethodCreate = array(
698
  'customerId' => $this->getBraintreeId(),
app/code/community/Gene/Braintree/controllers/ExpressController.php CHANGED
@@ -114,13 +114,25 @@ class Gene_Braintree_ExpressController extends Mage_Core_Controller_Front_Action
114
  } else {
115
  // Save the email address
116
  $quote->setCustomerEmail($paypalData['email']);
 
 
 
 
 
 
 
 
 
 
117
  }
118
 
119
  // Is this express checkout request coming from the product page?
120
  if (isset($formData['product']) && isset($formData['qty'])) {
121
  $product = Mage::getModel('catalog/product')->load($formData['product']);
122
  if (!$product->getId()) {
123
- Mage::getSingleton('core/session')->addError(Mage::helper('gene_braintree')->__('We\'re unable to load that product.'));
 
 
124
 
125
  return $this->_redirect("braintree/express/error");
126
  }
@@ -132,7 +144,11 @@ class Gene_Braintree_ExpressController extends Mage_Core_Controller_Front_Action
132
  try {
133
  $quote->addProduct($product, $request);
134
  } catch (Exception $e) {
135
- Mage::getSingleton('core/session')->addError(Mage::helper('gene_braintree')->__('Sorry, we were unable to process your request. Please try again.'));
 
 
 
 
136
 
137
  return $this->_redirect("braintree/express/error");
138
  }
@@ -269,7 +285,7 @@ class Gene_Braintree_ExpressController extends Mage_Core_Controller_Front_Action
269
 
270
  return $this->_returnJson(array(
271
  'success' => true,
272
- 'totals' => $this->_returnTotals()
273
  ));
274
  }
275
 
@@ -380,9 +396,11 @@ class Gene_Braintree_ExpressController extends Mage_Core_Controller_Front_Action
380
  $service->submitAll();
381
  } catch (Mage_Core_Exception $e) {
382
  $this->errorAction($e->getMessage());
 
383
  return false;
384
  } catch (Exception $e) {
385
  $this->errorAction($e->getMessage());
 
386
  return false;
387
  }
388
  $order = $service->getOrder();
114
  } else {
115
  // Save the email address
116
  $quote->setCustomerEmail($paypalData['email']);
117
+
118
+ // Should we link guest orders to customers if they match?
119
+ if (Mage::getStoreConfigFlag('payment/gene_braintree_paypal/express_link_guest')) {
120
+ $customer = Mage::getModel('customer/customer')
121
+ ->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
122
+ ->loadByEmail($paypalData['email']);
123
+ if ($customer && $customer->getId()) {
124
+ $quote->setCustomer($customer);
125
+ }
126
+ }
127
  }
128
 
129
  // Is this express checkout request coming from the product page?
130
  if (isset($formData['product']) && isset($formData['qty'])) {
131
  $product = Mage::getModel('catalog/product')->load($formData['product']);
132
  if (!$product->getId()) {
133
+ Mage::getSingleton('core/session')->addError(
134
+ Mage::helper('gene_braintree')->__('We\'re unable to load that product.')
135
+ );
136
 
137
  return $this->_redirect("braintree/express/error");
138
  }
144
  try {
145
  $quote->addProduct($product, $request);
146
  } catch (Exception $e) {
147
+ Mage::getSingleton('core/session')->addError(
148
+ Mage::helper('gene_braintree')->__(
149
+ 'Sorry, we were unable to process your request. Please try again.'
150
+ )
151
+ );
152
 
153
  return $this->_redirect("braintree/express/error");
154
  }
285
 
286
  return $this->_returnJson(array(
287
  'success' => true,
288
+ 'totals' => $this->_returnTotals()
289
  ));
290
  }
291
 
396
  $service->submitAll();
397
  } catch (Mage_Core_Exception $e) {
398
  $this->errorAction($e->getMessage());
399
+
400
  return false;
401
  } catch (Exception $e) {
402
  $this->errorAction($e->getMessage());
403
+
404
  return false;
405
  }
406
  $order = $service->getOrder();
app/code/community/Gene/Braintree/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Gene_Braintree>
5
- <version>2.1.3</version>
6
  </Gene_Braintree>
7
  </modules>
8
  <global>
@@ -51,6 +51,12 @@
51
  </ME>
52
  </types>
53
  </cc>
 
 
 
 
 
 
54
  </payment>
55
 
56
  <events>
@@ -81,6 +87,7 @@
81
  <gene_braintree_paypal>
82
  <active>0</active>
83
  <express_active>1</express_active>
 
84
  <model>gene_braintree/paymentmethod_paypal</model>
85
  <order_status>processing</order_status>
86
  <payment_action>authorize_capture</payment_action>
2
  <config>
3
  <modules>
4
  <Gene_Braintree>
5
+ <version>2.1.4</version>
6
  </Gene_Braintree>
7
  </modules>
8
  <global>
51
  </ME>
52
  </types>
53
  </cc>
54
+
55
+ <!-- When one of these methods is active setup is required by the system -->
56
+ <setup_required>
57
+ <gene_braintree_creditcard />
58
+ <gene_braintree_paypal />
59
+ </setup_required>
60
  </payment>
61
 
62
  <events>
87
  <gene_braintree_paypal>
88
  <active>0</active>
89
  <express_active>1</express_active>
90
+ <express_link_guest>0</express_link_guest>
91
  <model>gene_braintree/paymentmethod_paypal</model>
92
  <order_status>processing</order_status>
93
  <payment_action>authorize_capture</payment_action>
app/code/community/Gene/Braintree/etc/jstranslator.xml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <jstranslator>
3
+ <braintree-card-number translate="message" module="gene_braintree">
4
+ <message>Card Number</message>
5
+ </braintree-card-number>
6
+ <braintree-expiry-month translate="message" module="gene_braintree">
7
+ <message>Expiry Month</message>
8
+ </braintree-expiry-month>
9
+ <braintree-expiry-year translate="message" module="gene_braintree">
10
+ <message>Expiry Year</message>
11
+ </braintree-expiry-year>
12
+ <braintree-cvv translate="message" module="gene_braintree">
13
+ <message>CVV</message>
14
+ </braintree-cvv>
15
+ <braintree-is-invalid translate="message" module="gene_braintree">
16
+ <message>is invalid.</message>
17
+ </braintree-is-invalid>
18
+ <braintree-hosted-fields-error translate="message" module="gene_braintree">
19
+ <message>There are a number of errors present with the credit card form:</message>
20
+ </braintree-hosted-fields-error>
21
+ </jstranslator>
22
+
app/code/community/Gene/Braintree/etc/system.xml CHANGED
@@ -341,6 +341,22 @@
341
  </comment>
342
  </express_pdp>
343
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
344
  <capture_heading translate="label">
345
  <label>Capture</label>
346
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
341
  </comment>
342
  </express_pdp>
343
 
344
+ <express_link_guest>
345
+ <label>Link Guest Orders to Customers</label>
346
+ <frontend_type>select</frontend_type>
347
+ <source_model>adminhtml/system_config_source_yesno</source_model>
348
+ <sort_order>75</sort_order>
349
+ <show_in_default>1</show_in_default>
350
+ <show_in_website>1</show_in_website>
351
+ <show_in_store>1</show_in_store>
352
+ <depends><express_active>1</express_active></depends>
353
+ <comment>
354
+ <![CDATA[
355
+ If an existing customer makes an express order using their customer account email should we link the guest order to their customer account?
356
+ ]]>
357
+ </comment>
358
+ </express_link_guest>
359
+
360
  <capture_heading translate="label">
361
  <label>Capture</label>
362
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
app/design/adminhtml/default/default/layout/gene/braintree.xml CHANGED
@@ -17,9 +17,9 @@
17
  <adminhtml_sales_order_create_index>
18
  <reference name="head">
19
  <action method="addCss"><file>css/gene/braintree/adminhtml.css</file></action>
20
- <action method="addJs"><file>gene/braintree/2.1.3/vzero-min.js</file></action>
21
- <action method="addJs"><file>gene/braintree/2.1.3/vzero-paypal-min.js</file></action>
22
- <action method="addJs"><file>gene/braintree/2.1.3/vzero-integration-min.js</file></action>
23
 
24
  <!-- If Braintree_Payments is enabled remove the JS -->
25
  <action method="removeItem"><type>js</type><name>braintree/braintree-1.3.4.js</name></action>
17
  <adminhtml_sales_order_create_index>
18
  <reference name="head">
19
  <action method="addCss"><file>css/gene/braintree/adminhtml.css</file></action>
20
+ <action method="addJs"><file>gene/braintree/2.1.4/vzero-min.js</file></action>
21
+ <action method="addJs"><file>gene/braintree/2.1.4/vzero-paypal-min.js</file></action>
22
+ <action method="addJs"><file>gene/braintree/2.1.4/vzero-integration-min.js</file></action>
23
 
24
  <!-- If Braintree_Payments is enabled remove the JS -->
25
  <action method="removeItem"><type>js</type><name>braintree/braintree-1.3.4.js</name></action>
app/design/frontend/base/default/layout/gene/braintree.xml CHANGED
@@ -13,9 +13,9 @@
13
  <script src="https://js.braintreegateway.com/web/3.5.0/js/data-collector.min.js"></script>
14
  ]]></text></action>
15
  </block>
16
- <action method="addJs"><file>gene/braintree/2.1.3/vzero-min.js</file></action>
17
- <action method="addJs"><file>gene/braintree/2.1.3/vzero-paypal-min.js</file></action>
18
- <action method="addJs"><file>gene/braintree/2.1.3/vzero-integration-min.js</file></action>
19
  <!-- If Braintree_Payments is enabled remove their JS -->
20
  <action method="removeItem"><type>js</type><name>braintree/braintree-1.3.4.js</name></action>
21
  </reference>
@@ -238,8 +238,8 @@
238
  <catalog_product_view>
239
  <update handle="gene_braintree_assets" />
240
  <reference name="head">
241
- <action method="addJs"><file>gene/braintree/2.1.3/express/abstract-min.js</file></action>
242
- <action method="addJs"><file>gene/braintree/2.1.3/express/paypal-min.js</file></action>
243
  <action method="addCss"><file>css/gene/braintree/default.css</file></action>
244
  <action method="addCss"><file>css/gene/braintree/express.css</file></action>
245
  </reference>
@@ -260,8 +260,8 @@
260
  <checkout_cart_index>
261
  <update handle="gene_braintree_assets" />
262
  <reference name="head">
263
- <action method="addJs"><file>gene/braintree/2.1.3/express/abstract-min.js</file></action>
264
- <action method="addJs"><file>gene/braintree/2.1.3/express/paypal-min.js</file></action>
265
  <action method="addCss"><file>css/gene/braintree/default.css</file></action>
266
  <action method="addCss"><file>css/gene/braintree/express.css</file></action>
267
  </reference>
13
  <script src="https://js.braintreegateway.com/web/3.5.0/js/data-collector.min.js"></script>
14
  ]]></text></action>
15
  </block>
16
+ <action method="addJs"><file>gene/braintree/2.1.4/vzero-min.js</file></action>
17
+ <action method="addJs"><file>gene/braintree/2.1.4/vzero-paypal-min.js</file></action>
18
+ <action method="addJs"><file>gene/braintree/2.1.4/vzero-integration-min.js</file></action>
19
  <!-- If Braintree_Payments is enabled remove their JS -->
20
  <action method="removeItem"><type>js</type><name>braintree/braintree-1.3.4.js</name></action>
21
  </reference>
238
  <catalog_product_view>
239
  <update handle="gene_braintree_assets" />
240
  <reference name="head">
241
+ <action method="addJs"><file>gene/braintree/2.1.4/express/abstract-min.js</file></action>
242
+ <action method="addJs"><file>gene/braintree/2.1.4/express/paypal-min.js</file></action>
243
  <action method="addCss"><file>css/gene/braintree/default.css</file></action>
244
  <action method="addCss"><file>css/gene/braintree/express.css</file></action>
245
  </reference>
260
  <checkout_cart_index>
261
  <update handle="gene_braintree_assets" />
262
  <reference name="head">
263
+ <action method="addJs"><file>gene/braintree/2.1.4/express/abstract-min.js</file></action>
264
+ <action method="addJs"><file>gene/braintree/2.1.4/express/paypal-min.js</file></action>
265
  <action method="addCss"><file>css/gene/braintree/default.css</file></action>
266
  <action method="addCss"><file>css/gene/braintree/express.css</file></action>
267
  </reference>
app/design/frontend/base/default/template/gene/braintree/js/default.phtml CHANGED
@@ -15,6 +15,7 @@
15
  captureOriginalSubmitFn: function () {
16
  this._originalSubmitFn = Review.prototype.save;
17
  this._originalNextStep = Review.prototype.nextStep;
 
18
  return true;
19
  },
20
 
@@ -26,6 +27,17 @@
26
  // Store a pointer to the vZero integration
27
  var vzeroIntegration = this;
28
 
 
 
 
 
 
 
 
 
 
 
 
29
  // As the default checkout submits more data on the review step, we need to make sure various elements
30
  // are disabled
31
  Review.prototype.save = function() {
@@ -99,6 +111,11 @@
99
  // Intercept the save function
100
  Review.prototype.initialize = function(saveUrl, successUrl, agreementsForm) {
101
 
 
 
 
 
 
102
  // Do the original action
103
  var reviewResponse = _originalReviewInitialize.apply(this, arguments);
104
 
15
  captureOriginalSubmitFn: function () {
16
  this._originalSubmitFn = Review.prototype.save;
17
  this._originalNextStep = Review.prototype.nextStep;
18
+ this._originalPaymentSaveFn = Payment.prototype.save;
19
  return true;
20
  },
21
 
27
  // Store a pointer to the vZero integration
28
  var vzeroIntegration = this;
29
 
30
+ // On payment save validate that Hosted Fields is valid
31
+ Payment.prototype.save = function () {
32
+ if (vzeroIntegration.shouldInterceptSubmit('creditcard')) {
33
+ if (vzeroIntegration.validateHostedFields()) {
34
+ return vzeroIntegration._originalPaymentSaveFn.apply(this, arguments);
35
+ }
36
+ } else {
37
+ return vzeroIntegration._originalPaymentSaveFn.apply(this, arguments);
38
+ }
39
+ };
40
+
41
  // As the default checkout submits more data on the review step, we need to make sure various elements
42
  // are disabled
43
  Review.prototype.save = function() {
111
  // Intercept the save function
112
  Review.prototype.initialize = function(saveUrl, successUrl, agreementsForm) {
113
 
114
+ // If the vZero class is available run an updateData to ensure our totals are correct
115
+ if (vzero && typeof vzero.updateData === 'function') {
116
+ vzero.updateData();
117
+ }
118
+
119
  // Do the original action
120
  var reviewResponse = _originalReviewInitialize.apply(this, arguments);
121
 
app/design/frontend/base/default/template/gene/braintree/js/setup.phtml CHANGED
@@ -13,13 +13,22 @@
13
  'gene_braintree_creditcard',
14
  '<?php echo $this->getClientToken(); ?>',
15
  <?php echo $this->is3DEnabled(); ?>,
16
- <?php echo $this->isHostedFields(); ?>,
17
  false,
18
  false,
19
  '<?php echo Mage::getUrl('braintree/checkout/quoteTotal', array('_secure' => Mage::app()->getFrontController()->getRequest()->isSecure())); ?>',
20
  '<?php echo Mage::getUrl('braintree/checkout/tokenizeCard', array('_secure' => Mage::app()->getFrontController()->getRequest()->isSecure())); ?>'
21
  );
22
 
 
 
 
 
 
 
 
 
 
23
  <?php if ($this->isThreeDSpecificCountries()) : ?>
24
  vzero.setThreeDCountries('<?php echo $this->getThreeDSpecificCountries(); ?>');
25
  <?php endif; ?>
13
  'gene_braintree_creditcard',
14
  '<?php echo $this->getClientToken(); ?>',
15
  <?php echo $this->is3DEnabled(); ?>,
16
+ true,
17
  false,
18
  false,
19
  '<?php echo Mage::getUrl('braintree/checkout/quoteTotal', array('_secure' => Mage::app()->getFrontController()->getRequest()->isSecure())); ?>',
20
  '<?php echo Mage::getUrl('braintree/checkout/tokenizeCard', array('_secure' => Mage::app()->getFrontController()->getRequest()->isSecure())); ?>'
21
  );
22
 
23
+ // Pass the supported card types over to the front-end
24
+ vzero.setSupportedCards('<?php echo $this->getSupportedCardTypes(); ?>');
25
+
26
+ // Pass over the merchants Kount credentials
27
+ vzero.setKount(
28
+ '<?php echo $this->getKountEnvironment(); ?>',
29
+ '<?php echo $this->getKountId(); ?>'
30
+ );
31
+
32
  <?php if ($this->isThreeDSpecificCountries()) : ?>
33
  vzero.setThreeDCountries('<?php echo $this->getThreeDSpecificCountries(); ?>');
34
  <?php endif; ?>
app/locale/en_US/Gene_Braintree.csv CHANGED
@@ -133,4 +133,11 @@
133
  "Close","Close"
134
  "We were unable to complete the request. Please try again.","We were unable to complete the request. Please try again."
135
  "Buy Now","Buy Now"
136
- "Checkout with PayPal","Checkout with PayPal"
 
 
 
 
 
 
 
133
  "Close","Close"
134
  "We were unable to complete the request. Please try again.","We were unable to complete the request. Please try again."
135
  "Buy Now","Buy Now"
136
+ "Checkout with PayPal","Checkout with PayPal"
137
+ "There are a number of errors present with the credit card form:","There are a number of errors present with the credit card form:"
138
+ "Card Number","Card Number"
139
+ "Expiry Month","Expiry Month"
140
+ "Expiry Year","Expiry Year"
141
+ "CVV","CVV"
142
+ "is invalid.","is invalid."
143
+ "We\'re currently unable to process this card type, please try another card or payment method.","We\'re currently unable to process this card type, please try another card or payment method."
js/gene/braintree/2.1.3/express/paypal-min.js DELETED
@@ -1 +0,0 @@
1
- var BraintreePayPalExpress=Class.create(BraintreeExpressAbstract,{vzeroPayPal:!1,_init:function(){this.vzeroPayPal=new vZeroPayPalButton(this.config.token,"",this.config.singleUse,this.config.locale)},attachToButtons:function(t){var a={validate:this.validateForm,onSuccess:function(t){var a={paypal:JSON.stringify(t)};"undefined"!=typeof this.config.productId&&(a.product_id=this.config.productId,a.form_data=$("product_addtocart_form")?$("product_addtocart_form").serialize():$("pp_express_form").serialize()),this.initModal(a)}.bind(this),tokenizeRequest:{enableShippingAddress:!0}};t.each(function(t){t.up().addClassName("braintree-paypal-express-container")}),this.vzeroPayPal.attachPayPalButtonEvent(t,a)}});
 
js/gene/braintree/2.1.3/vzero-integration-min.js DELETED
@@ -1 +0,0 @@
1
- var vZeroIntegration=Class.create();vZeroIntegration.prototype={initialize:function(e,t,i,n,a,o,s){return vZeroIntegration.prototype.loaded?(console.error("Your checkout is including the Braintree resources multiple times, please resolve this."),!1):(vZeroIntegration.prototype.loaded=!0,this.vzero=e||!1,this.vzeroPaypal=t||!1,this.vzero===!1&&this.vzeroPaypal===!1?(console.warn("The vzero and vzeroPaypal objects are not initiated."),!1):(this.paypalWrapperMarkUp=i||!1,this.paypalButtonClass=n||!1,this.submitButtonClass=this.paypalButtonClass,this.isOnepage=a||!1,this.config=o||{},this.submitAfterPayment=s||!1,this._methodSwitchTimeout=!1,this._originalSubmitFn=!1,document.observe("dom:loaded",function(){this.captureOriginalSubmitFn()&&this.observeSubmissionOverride(),this.prepareSubmitObserver(),this.preparePaymentMethodSwitchObserver()}.bind(this)),this.hostedFieldsGenerated=!1,this.isOnepage&&(this.observeAjaxRequests(),document.observe("dom:loaded",function(){this.initSavedPayPal(),this.initDefaultMethod(),null!==$("braintree-hosted-submit")&&this.initHostedFields()}.bind(this))),document.observe("dom:loaded",function(){this.initSavedMethods(),null!==$("braintree-hosted-submit")&&this.initHostedFields()}.bind(this)),this._deviceDataInit=!1,this.vzero.observeEvent(["onHandleAjaxRequest","integration.onInitSavedMethods"],this.initDeviceData,this),this.vzero.observeEvent("integration.onBeforeSubmit",function(){null!=$("braintree-device-data")&&$("braintree-device-data").writeAttribute("disabled",!1)},this),void this.vzero.fireEvent(this,"integration.onInit",{integration:this})))},initDeviceData:function(e,t){if(null!=$("credit-card-form")){var i=$("credit-card-form").up("form");if(void 0!=i&&0==i.select("#braintree-device-data").length){if(t._deviceDataInit===!0)return!1;t._deviceDataInit=!0;var n=new Element("input",{type:"hidden",name:"payment[device_data]",id:"braintree-device-data"});i.insert(n),t.populateDeviceData(n)}}},populateDeviceData:function(e){this.vzero.getClient(function(t){braintree.dataCollector.create({client:t,kount:!0,paypal:!0},function(t,i){return t?void console.warn(t):(e.value=i.deviceData,e.writeAttribute("disabled",!1),void(this._deviceDataInit=!1))}.bind(this))}.bind(this))},initSavedMethods:function(){$$('#creditcard-saved-accounts input[type="radio"], #paypal-saved-accounts input[type="radio"]').each(function(e){var t="",i="";void 0!==e.up("#creditcard-saved-accounts")?(t="#creditcard-saved-accounts",i="#credit-card-form"):void 0!==e.up("#paypal-saved-accounts")&&(t="#paypal-saved-accounts",i=".paypal-info"),$(e).stopObserving("change").observe("change",function(e){return this.showHideOtherMethod(t,i)}.bind(this))}.bind(this)),this.vzero.fireEvent(this,"integration.onInitSavedMethods")},showHideOtherMethod:function(e,t){void 0!==$$(e+" input:checked[type=radio]").first()&&"other"==$$(e+" input:checked[type=radio]").first().value?void 0!==$$(t).first()&&($$(t).first().show(),$$(t+" input, "+t+" select").each(function(e){e.removeAttribute("disabled")})):void 0!==$$(e+" input:checked[type=radio]").first()&&void 0!==$$(t).first()&&($$(t).first().hide(),$$(t+" input, "+t+" select").each(function(e){e.setAttribute("disabled","disabled")})),this.vzero.fireEvent(this,"integration.onShowHideOtherMethod",{parentElement:e,targetElement:t})},checkSavedOther:function(){var e="",t="";"gene_braintree_creditcard"==this.getPaymentMethod()?(e="#creditcard-saved-accounts",t="#credit-card-form"):"gene_braintree_paypal"==this.getPaymentMethod()&&(e="#paypal-saved-accounts",t=".paypal-info"),void 0!==$$(e).first()&&this.showHideOtherMethod(e,t),this.vzero.fireEvent(this,"integration.onCheckSavedOther")},afterPaymentMethodSwitch:function(){return!0},initHostedFields:function(){this.vzero.hostedFields&&null!==$("braintree-hosted-submit")&&(void 0!==$("braintree-hosted-submit").up("form")?(this.form=$("braintree-hosted-submit").up("form"),this.vzero.initHostedFields(this)):console.error("Hosted Fields cannot be initialized as we're unable to locate the parent form."))},initDefaultMethod:function(){this.shouldAddPayPalButton(!1)&&(this.setLoading(),this.vzero.updateData(function(){this.resetLoading(),this.updatePayPalButton("add")}.bind(this))),this.afterPaymentMethodSwitch(),this.vzero.fireEvent(this,"integration.onInitDefaultMethod")},observeAjaxRequests:function(){this.vzero.observeAjaxRequests(function(){this.vzero.updateData(function(){this.isOnepage&&(this.initSavedPayPal(),this.rebuildPayPalButton(),this.checkSavedOther(),this.vzero.hostedFields&&this.initHostedFields()),this.initSavedMethods(),this.afterPaymentMethodSwitch(),this.vzero.fireEvent(this,"integration.onObserveAjaxRequests")}.bind(this))}.bind(this),"undefined"!=typeof this.config.ignoreAjax&&this.config.ignoreAjax)},rebuildPayPalButton:function(){null==$("paypal-container")&&this.updatePayPalButton()},initSavedPayPal:function(){void 0!==$$("#paypal-saved-accounts input[type=radio]").first()&&$("paypal-saved-accounts").on("change","input[type=radio]",function(e){this.updatePayPalButton(!1,"gene_braintree_paypal")}.bind(this))},captureOriginalSubmitFn:function(){return!1},observeSubmissionOverride:function(){setInterval(function(){this._originalSubmitFn&&this.prepareSubmitObserver()}.bind(this),500)},prepareSubmitObserver:function(){return!1},beforeSubmit:function(e){return this._beforeSubmit(e)},_beforeSubmit:function(e){this.vzero.fireEvent(this,"integration.onBeforeSubmit"),this.submitAfterPayment&&$("braintree-submit-after-payment")&&$("braintree-submit-after-payment").remove(),e()},afterSubmit:function(){return this.vzero.fireEvent(this,"integration.onAfterSubmit"),!1},submit:function(e,t,i,n){this.vzero._hostedFieldsTokenGenerated=!1,this.hostedFieldsGenerated=!1,this.shouldInterceptSubmit(e)&&(this.validateAll()?(this.setLoading(),this.beforeSubmit(function(){void 0!=$$('[data-genebraintree-name="number"]').first()&&this.vzero.updateCardType($$('[data-genebraintree-name="number"]').first().value),this.vzero.updateData(function(){this.updateBilling(),this.vzero.process({onSuccess:function(){if(this.enableDeviceData(),this.resetLoading(),this.afterSubmit(),this.enableDisableNonce(),this.vzero._hostedFieldsTokenGenerated=!0,this.hostedFieldsGenerated=!0,"function"==typeof t)var e=t();return this.setLoading(),e}.bind(this),onFailure:function(){if(this.vzero._hostedFieldsTokenGenerated=!1,this.hostedFieldsGenerated=!1,this.resetLoading(),this.afterSubmit(),"function"==typeof i)return i()}.bind(this)})}.bind(this),this.getUpdateDataParams())}.bind(this))):(this.vzero._hostedFieldsTokenGenerated=!1,this.hostedFieldsGenerated=!1,this.resetLoading(),"function"==typeof n&&n()))},submitCheckout:function(){window.review&&review.save()},submitPayment:function(){payment.save&&payment.save()},enableDisableNonce:function(){"gene_braintree_creditcard"==this.getPaymentMethod()?(null!==$("creditcard-payment-nonce")&&$("creditcard-payment-nonce").removeAttribute("disabled"),null!==$("paypal-payment-nonce")&&$("paypal-payment-nonce").setAttribute("disabled","disabled")):"gene_braintree_paypal"==this.getPaymentMethod()&&(null!==$("creditcard-payment-nonce")&&$("creditcard-payment-nonce").setAttribute("disabled","disabled"),null!==$("paypal-payment-nonce")&&$("paypal-payment-nonce").removeAttribute("disabled"))},preparePaymentMethodSwitchObserver:function(){return this.defaultPaymentMethodSwitch()},defaultPaymentMethodSwitch:function(){var e=this,t=Payment.prototype.switchMethod;Payment.prototype.switchMethod=function(i){return e.paymentMethodSwitch(i),t.apply(this,arguments)}},paymentMethodSwitch:function(e){clearTimeout(this._methodSwitchTimeout),this._methodSwitchTimeout=setTimeout(function(){this.shouldAddPayPalButton(e)?this.updatePayPalButton("add",e):this.updatePayPalButton("remove",e),"gene_braintree_creditcard"==(e?e:this.getPaymentMethod())&&this.initHostedFields(),this.checkSavedOther(),this.afterPaymentMethodSwitch(),this.vzero.fireEvent(this,"integration.onPaymentMethodSwitch",{method:e})}.bind(this),50)},completePayPal:function(e){return this.enableDisableNonce(),this.enableDeviceData(),e.nonce&&null!==$("paypal-payment-nonce")?($("paypal-payment-nonce").value=e.nonce,$("paypal-payment-nonce").setAttribute("value",e.nonce)):console.warn("Unable to update PayPal nonce, please verify that the nonce input field has the ID: paypal-payment-nonce"),this.afterPayPalComplete(),!1},afterPayPalComplete:function(){return this.resetLoading(),this.submitCheckout()},getPayPalMarkUp:function(){return $("braintree-paypal-button").innerHTML},updatePayPalButton:function(e,t){if(this.paypalWrapperMarkUp===!1)return!1;if("refresh"==e)return!0;if(this.shouldAddPayPalButton(t)&&"remove"!=e||"add"==e)if(void 0!==$$(this.paypalButtonClass).first()){if($$(this.paypalButtonClass).first().hide(),void 0!==$$("#paypal-complete").first())return $$("#paypal-complete").first().show(),!0;$$(this.paypalButtonClass).first().insert({after:this.paypalWrapperMarkUp}),this.vzeroPaypal.addPayPalButton({validate:this.validateAll.bind(this),onSuccess:this.completePayPal.bind(this),onReady:this.paypalOnReady.bind(this)},this.getPayPalMarkUp(),"#paypal-container")}else console.warn("We're unable to find the element "+this.paypalButtonClass+". Please check your integration.");else void 0!==$$(this.paypalButtonClass).first()&&$$(this.paypalButtonClass).first().show(),void 0!==$$("#paypal-complete").first()&&$("paypal-complete").hide()},onReviewInit:function(){this.isOnepage||this.updatePayPalButton(),this.vzero.fireEvent(this,"integration.onReviewInit")},paypalOnReady:function(e){return!0},setLoading:function(){checkout.setLoadWaiting("payment")},resetLoading:function(){checkout.setLoadWaiting(!1)},enableDeviceData:function(){null!==$("device_data")&&$("device_data").removeAttribute("disabled")},updateBilling:function(){(null!==$("billing-address-select")&&""==$("billing-address-select").value||null===$("billing-address-select"))&&(null!==$("billing:firstname")&&null!==$("billing:lastname")&&this.vzero.setBillingName($("billing:firstname").value+" "+$("billing:lastname").value),null!==$("billing:postcode")&&this.vzero.setBillingPostcode($("billing:postcode").value))},getUpdateDataParams:function(){var e={};return null!==$("billing-address-select")&&""!=$("billing-address-select").value&&(e.addressId=$("billing-address-select").value),e},getPaymentMethod:function(){return payment.currentMethod},shouldInterceptSubmit:function(e){switch(e){case"creditcard":return"gene_braintree_creditcard"==this.getPaymentMethod()&&this.vzero.shouldInterceptCreditCard();break;case"paypal":return"gene_braintree_paypal"==this.getPaymentMethod()&&this.vzero.shouldInterceptCreditCard()}return!1},shouldAddPayPalButton:function(e){return"gene_braintree_paypal"==(e?e:this.getPaymentMethod())&&null===$("paypal-saved-accounts")||"gene_braintree_paypal"==(e?e:this.getPaymentMethod())&&void 0!==$$("#paypal-saved-accounts input:checked[type=radio]").first()&&"other"==$$("#paypal-saved-accounts input:checked[type=radio]").first().value},threeDTokenizationComplete:function(){this.resetLoading()},validateAll:function(){return!0},disableCreditCardForm:function(){},enableCreditCardForm:function(){}};
 
js/gene/braintree/2.1.3/vzero-min.js DELETED
@@ -1 +0,0 @@
1
- var vZero=Class.create();vZero.prototype={initialize:function(e,t,i,n,o,s,r,a){this.code=e,this.clientToken=t,this.threeDSecure=i,this.hostedFields=n,o&&(this.billingName=o),s&&(this.billingPostcode=s),this.billingCountryId=!1,r&&(this.quoteUrl=r),a&&(this.tokenizeUrl=a),this._hostedFieldsTokenGenerated=!1,this.acceptedCards=!1,this._hostedFieldsTimeout=!1,this._updateDataXhr=!1,this._updateDataCallbacks=[],this._updateDataParams={},this.client=!1,this.threeDSpecificCountries=!1,this.threeDCountries=[],this.initEvents()},initEvents:function(){this.events={onBeforeUpdateData:[],onAfterUpdateData:[],onHandleAjaxRequest:[],integration:{onInit:[],onInitDefaultMethod:[],onInitSavedMethods:[],onShowHideOtherMethod:[],onCheckSavedOther:[],onPaymentMethodSwitch:[],onReviewInit:[],onBeforeSubmit:[],onAfterSubmit:[],onObserveAjaxRequests:[]}}},setThreeDCountries:function(e){"string"==typeof e&&(e=e.split(",")),this.threeDSpecificCountries=!0,this.threeDCountries=e},observeEvent:function(e,t,i){Array.isArray(e)||(e=[e]),e.each(function(e){var n=this._resolveEvent(e);void 0===n?console.warn("Event for "+e+" does not exist."):n.push({fn:t,params:i})}.bind(this))},fireEvent:function(e,t,i){var n=this._resolveEvent(t);void 0!==n&&n.length>0&&n.each(function(t){if("function"==typeof t.fn){var arguments=[i];"object"==typeof t.params&&arguments.push(t.params),t.fn.apply(e,arguments)}})},_resolveEvent:function(e){return e.split(".").reduce(function(e,t){return e?e[t]:void 0},this.events)},getClient:function(e){this.client!==!1?"function"==typeof e&&e(this.client):braintree.client.create({authorization:this.clientToken},function(t,i){return t?void console.error(t):(this.client=i,void e(this.client))}.bind(this))},initHostedFields:function(e){return!($$('iframe[name^="braintree-"]').length>0)&&(null!==$("braintree-hosted-submit")&&(this.integration=e,this._hostedFieldsTokenGenerated=!1,clearTimeout(this._hostedFieldsTimeout),void(this._hostedFieldsTimeout=setTimeout(function(){if(this._hostedIntegration!==!1)try{this._hostedIntegration.teardown(function(){this._hostedIntegration=!1,this.setupHostedFieldsClient()}.bind(this))}catch(e){this.setupHostedFieldsClient()}else this.setupHostedFieldsClient()}.bind(this),50))))},teardownHostedFields:function(e){"undefined"!=typeof this._hostedIntegration&&this._hostedIntegration!==!1?this._hostedIntegration.teardown(function(){this._hostedIntegration=!1,"function"==typeof e&&e()}.bind(this)):"function"==typeof e&&e()},setupHostedFieldsClient:function(){return!($$('iframe[name^="braintree-"]').length>0)&&(this._hostedIntegration=!1,void this.getClient(function(e){var t={client:e,styles:this.getHostedFieldsStyles(),fields:{number:{selector:"#card-number",placeholder:"0000 0000 0000 0000"},expirationMonth:{selector:"#expiration-month",placeholder:"MM"},expirationYear:{selector:"#expiration-year",placeholder:"YY"}}};null!==$("cvv")&&(t.fields.cvv={selector:"#cvv"}),braintree.hostedFields.create(t,function(e,t){if(e){if("HOSTED_FIELDS_FIELD_DUPLICATE_IFRAME"==e.code)return;return void console.error(e)}return this.hostedFieldsOnReady(t)}.bind(this))}.bind(this)))},hostedFieldsOnReady:function(e){if(this._hostedIntegration=e,$$("#credit-card-form.loading").length&&$$("#credit-card-form.loading").first().removeClassName("loading"),this.integration.submitAfterPayment){var t=new Element("input",{type:"hidden",name:"payment[submit_after_payment]",value:1,id:"braintree-submit-after-payment"});$("payment_form_gene_braintree_creditcard").insert(t)}else $("braintree-submit-after-payment")&&$("braintree-submit-after-payment").remove();e.on("cardTypeChange",this.hostedFieldsCardTypeChange.bind(this))},getHostedFieldsStyles:function(){return"function"==typeof this.integration.getHostedFieldsStyles?this.integration.getHostedFieldsStyles():{input:{"font-size":"14pt",color:"#3A3A3A"},":focus":{color:"black"},".valid":{color:"green"},".invalid":{color:"red"}}},hostedFieldsCardTypeChange:function(e){if("undefined"!=typeof e.cards){var t={visa:"VI","american-express":"AE","master-card":"MC",discover:"DI",jcb:"JCB",maestro:"ME"};void 0!==typeof t[e.cards[0].type]?this.updateCardType(!1,t[e.cards[0].type]):this.updateCardType(!1,"card")}},getBillingCountryId:function(){if(null==$("billing-address-select")||""==$("billing-address-select").value){var e=this.getBillingAddress();if("undefined"!=typeof e["billing[country_id]"])return e["billing[country_id]"]}return!!this.billingCountryId&&this.billingCountryId},shouldInvokeThreeDSecure:function(){if(this.threeDSpecificCountries&&this.threeDCountries.length>0){var e;if(e=this.getBillingCountryId())return this.threeDCountries.indexOf(e)!==-1}return this.threeDSecure},hostedFieldsNonceReceived:function(e,t){this.shouldInvokeThreeDSecure()?("function"==typeof this.integration.setLoading&&this.integration.setLoading(),this.updateData(function(){this.verify3dSecureNonce(e,{onSuccess:function(e){this.updateNonce(e.nonce),"function"==typeof t.onSuccess&&t.onSuccess()}.bind(this),onFailure:function(){"function"==typeof t.onFailure&&t.onFailure()}.bind(this)})}.bind(this))):(this.updateNonce(e),"function"==typeof t.onSuccess&&t.onSuccess())},updateNonce:function(e){$("creditcard-payment-nonce").value=e,$("creditcard-payment-nonce").setAttribute("value",e),"function"==typeof this.integration.resetLoading&&this.integration.resetLoading(),this._hostedFieldsTokenGenerated=!0},hostedFieldsError:function(e){return"function"==typeof this.integration.resetLoading&&this.integration.resetLoading(),"undefined"!=typeof e.message&&e.message.indexOf("Cannot place two elements in")==-1&&e.message.indexOf("Unable to find element with selector")==-1&&e.message.indexOf("User did not enter a payment method")==-1&&alert(e.message),this._hostedFieldsTokenGenerated=!1,"function"==typeof this.integration.afterHostedFieldsError&&this.integration.afterHostedFieldsError(e.message),!1},usingSavedCard:function(){return void 0!=$("creditcard-saved-accounts")&&void 0!=$$("#creditcard-saved-accounts input:checked[type=radio]").first()&&"other"!==$$("#creditcard-saved-accounts input:checked[type=radio]").first().value},usingSavedThreeDCard:function(){return this.usingSavedCard()&&$$("#creditcard-saved-accounts input:checked[type=radio]").first().hasAttribute("data-threedsecure-nonce")},setThreeDSecure:function(e){this.threeDSecure=e},setAmount:function(e){this.amount=parseFloat(e)},setBillingName:function(e){this.billingName=e},getBillingName:function(){return"object"==typeof this.billingName?this.combineElementsValues(this.billingName):this.billingName},setBillingPostcode:function(e){this.billingPostcode=e},getBillingPostcode:function(){return"object"==typeof this.billingPostcode?this.combineElementsValues(this.billingPostcode):this.billingPostcode},setAcceptedCards:function(e){this.acceptedCards=e},getBillingAddress:function(){if("function"==typeof this.integration.getBillingAddress)return this.integration.getBillingAddress();var e={};return null!==$("co-billing-form")?e="FORM"==$("co-billing-form").tagName?$("co-billing-form").serialize(!0):this.extractBilling($("co-billing-form").up("form").serialize(!0)):null!==$("billing:firstname")&&(e=this.extractBilling($("billing:firstname").up("form").serialize(!0))),e?e:void 0},extractBilling:function(e){var t={};return $H(e).each(function(e){0==e.key.indexOf("billing")&&e.key.indexOf("password")==-1&&(t[e.key]=e.value)}),t},getAcceptedCards:function(){return this.acceptedCards},combineElementsValues:function(e,t){t||(t=" ");var i=[];return e.each(function(e,t){void 0!==$(e)&&(i[t]=$(e).value)}),i.join(t)},updateCardType:function(e,t){if(void 0!=$("card-type-image")){var i=$("card-type-image").src.substring(0,$("card-type-image").src.lastIndexOf("/"));$("card-type-image").setAttribute("src",i+"/"+t+".png")}},observeAjaxRequests:function(e,t){return!vZero.prototype.observingAjaxRequests&&(vZero.prototype.observingAjaxRequests=!0,Ajax.Responders.register({onComplete:function(i){return this.handleAjaxRequest(i.url,e,t)}.bind(this)}),void(window.jQuery&&jQuery(document).ajaxComplete(function(i,n,o){return this.handleAjaxRequest(o.url,e,t)}.bind(this))))},handleAjaxRequest:function(e,t,i){if("undefined"!=typeof i&&i instanceof Array&&i.length>0){var n=!1;if(i.each(function(t){e&&e.indexOf(t)!=-1&&(n=!0)}),n===!0)return!1}e&&e.indexOf("/braintree/")==-1&&(this.fireEvent(this,"onHandleAjaxRequest",{url:e}),t?t(e):this.updateData())},updateData:function(e,t){this.fireEvent(this,"integration.onBeforeUpdateData",{params:t}),this._updateDataCallbacks.push(e),this._updateDataParams=t,this._updateDataXhr!==!1&&this._updateDataXhr.transport.abort(),this._updateDataXhr=new Ajax.Request(this.quoteUrl,{method:"post",parameters:this._updateDataParams,onSuccess:function(e){if(e&&(e.responseJSON||e.responseText)){var t=this._parseTransportAsJson(e);void 0!=t.billingName&&(this.billingName=t.billingName),void 0!=t.billingPostcode&&(this.billingPostcode=t.billingPostcode),void 0!=t.billingCountryId&&(this.billingCountryId=t.billingCountryId),void 0!=t.grandTotal&&(this.amount=t.grandTotal),void 0!=t.threeDSecure&&this.setThreeDSecure(t.threeDSecure),"undefined"!=typeof vzeroPaypal&&void 0!=t.grandTotal&&void 0!=t.currencyCode&&vzeroPaypal.setPricing(t.grandTotal,t.currencyCode),this._updateDataParams={},this._updateDataXhr=!1,this._updateDataCallbacks.length&&(this._updateDataCallbacks.each(function(e){e(t)}.bind(this)),this._updateDataCallbacks=[]),this.fireEvent(this,"onAfterUpdateData",{response:t})}}.bind(this),onFailure:function(){this._updateDataParams={},this._updateDataXhr=!1,this._updateDataCallbacks=[]}.bind(this)})},tokenize3dSavedCards:function(e){if(this.threeDSecure)if(void 0!==$$("[data-token]").first()){var t=[];$$("[data-token]").each(function(e,i){t[i]=e.getAttribute("data-token")}),new Ajax.Request(this.tokenizeUrl,{method:"post",onSuccess:function(t){if(t&&(t.responseJSON||t.responseText)){var i=this._parseTransportAsJson(t);i.success&&$H(i.tokens).each(function(e){void 0!=$$('[data-token="'+e.key+'"]').first()&&$$('[data-token="'+e.key+'"]').first().setAttribute("data-threedsecure-nonce",e.value)}),e&&e(i)}}.bind(this),parameters:{tokens:Object.toJSON(t)}})}else e();else e()},verify3dSecureNonce:function(e,t){this.getClient(function(i){braintree.threeDSecure.create({client:i},function(i,n){if(i)return void console.error(i);var o={amount:this.amount,nonce:e,addFrame:function(e,t){$$("#three-d-modal .bt-modal-body").first().insert(t),$("three-d-modal").removeClassName("hidden")},removeFrame:function(){$$("#three-d-modal .bt-modal-body iframe").first().remove(),$("three-d-modal").addClassName("hidden")}.bind(this)};n.verifyCard(o,function(e,i){e?t.onFailure&&t.onFailure(i,e):i.liabilityShifted?t.onSuccess&&t.onSuccess(i):i.liabilityShiftPossible?t.onSuccess&&t.onSuccess(i):t.onSuccess&&t.onSuccess(i)})}.bind(this))}.bind(this))},verify3dSecureVault:function(e){var t=$$("#creditcard-saved-accounts input:checked[type=radio]").first().getAttribute("data-threedsecure-nonce");t?this.verify3dSecureNonce(t,{onSuccess:function(t){$("creditcard-payment-nonce").removeAttribute("disabled"),$("creditcard-payment-nonce").value=t.nonce,$("creditcard-payment-nonce").setAttribute("value",t.nonce),"function"==typeof e.onSuccess&&e.onSuccess()},onFailure:function(t,i){alert(i),"function"==typeof e.onFailure?e.onFailure():checkout.setLoadWaiting(!1)}}):(alert("No payment nonce present."),"function"==typeof e.onFailure?e.onFailure():checkout.setLoadWaiting(!1))},processCard:function(e){this._hostedIntegration.tokenize(function(t,i){return t?("function"==typeof e.onFailure?e.onFailure():checkout.setLoadWaiting(!1),void("string"==typeof t.message&&alert(t.message))):this.hostedFieldsNonceReceived(i.nonce,e)}.bind(this))},shouldInterceptCreditCard:function(){return"0.00"!=this.amount},shouldInterceptPayPal:function(){return!0},process:function(e){return e=e||{},this._hostedFieldsTokenGenerated||this.usingSavedCard()&&!this.usingSavedThreeDCard()?void("function"==typeof e.onSuccess&&e.onSuccess()):this.usingSavedThreeDCard()?this.verify3dSecureVault(e):this.processCard(e)},creditCardLoaded:function(){return!1},paypalLoaded:function(){return!1},_parseTransportAsJson:function(transport){return transport.responseJSON&&"object"==typeof transport.responseJSON?transport.responseJSON:transport.responseText?"object"==typeof JSON&&"function"==typeof JSON.parse?JSON.parse(transport.responseText):eval("("+transport.responseText+")"):{}}},function(){for(var e,t=function(){},i=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],n=i.length,o=window.console=window.console||{};n--;)e=i[n],o[e]||(o[e]=t)}();
 
js/gene/braintree/{2.1.3 → 2.1.4}/express/abstract-min.js RENAMED
File without changes
js/gene/braintree/2.1.4/express/paypal-min.js ADDED
@@ -0,0 +1 @@
 
1
+ var BraintreePayPalExpress=Class.create(BraintreeExpressAbstract,{vzeroPayPal:!1,_init:function(){this.vzeroPayPal=new vZeroPayPalButton(this.config.token,"",!1,this.config.locale)},attachToButtons:function(t){var a={validate:this.validateForm,onSuccess:function(t){var a={paypal:JSON.stringify(t)};"undefined"!=typeof this.config.productId&&(a.product_id=this.config.productId,a.form_data=$("product_addtocart_form")?$("product_addtocart_form").serialize():$("pp_express_form").serialize()),this.initModal(a)}.bind(this),tokenizeRequest:{enableShippingAddress:!0}};t.each(function(t){t.up().addClassName("braintree-paypal-express-container")}),this.vzeroPayPal.attachPayPalButtonEvent(t,a)}});
js/gene/braintree/2.1.4/vzero-integration-min.js ADDED
@@ -0,0 +1 @@
 
1
+ var vZeroIntegration=Class.create();vZeroIntegration.prototype={initialize:function(e,t,i,n,a,r,o){return vZeroIntegration.prototype.loaded?(console.error("Your checkout is including the Braintree resources multiple times, please resolve this."),!1):(vZeroIntegration.prototype.loaded=!0,this.vzero=e||!1,this.vzeroPaypal=t||!1,this.vzero===!1&&this.vzeroPaypal===!1?(console.warn("The vzero and vzeroPaypal objects are not initiated."),!1):(this.paypalWrapperMarkUp=i||!1,this.paypalButtonClass=n||!1,this.submitButtonClass=this.paypalButtonClass,this.isOnepage=a||!1,this.config=r||{},this.submitAfterPayment=o||!1,this._methodSwitchTimeout=!1,this._originalSubmitFn=!1,this.kountEnvironment=!1,this.kountId=!1,document.observe("dom:loaded",function(){this.captureOriginalSubmitFn()&&this.observeSubmissionOverride(),this.prepareSubmitObserver(),this.preparePaymentMethodSwitchObserver()}.bind(this)),this.hostedFieldsGenerated=!1,this.isOnepage&&(this.observeAjaxRequests(),document.observe("dom:loaded",function(){this.initSavedPayPal(),this.initDefaultMethod(),null!==$("braintree-hosted-submit")&&this.initHostedFields()}.bind(this))),document.observe("dom:loaded",function(){this.initSavedMethods(),null!==$("braintree-hosted-submit")&&this.initHostedFields()}.bind(this)),this._deviceDataInit=!1,this.vzero.observeEvent(["onHandleAjaxRequest","integration.onInitSavedMethods"],this.initDeviceData,this),this.vzero.observeEvent("integration.onBeforeSubmit",function(){null!=$("braintree-device-data")&&$("braintree-device-data").writeAttribute("disabled",!1)},this),void this.vzero.fireEvent(this,"integration.onInit",{integration:this})))},initDeviceData:function(e,t){if(null!=$("credit-card-form")){var i=$("credit-card-form").up("form");if(void 0!=i&&0==i.select("#braintree-device-data").length){if(t._deviceDataInit===!0)return!1;t._deviceDataInit=!0;var n=new Element("input",{type:"hidden",name:"payment[device_data]",id:"braintree-device-data"});i.insert(n),t.populateDeviceData(n)}}},populateDeviceData:function(e){this.vzero.getClient(function(t){var i={client:t,kount:!0};this.vzeroPaypal!==!1&&(i.paypal=!0),braintree.dataCollector.create(i,function(t,i){return t?void("DATA_COLLECTOR_KOUNT_NOT_ENABLED"!=t.code&&"DATA_COLLECTOR_PAYPAL_NOT_ENABLED"!=t.code?console.error(t):(console.warn("A warning occurred whilst initialisation the Braintree data collector. This warning can be safely ignored."),console.warn(t))):(e.value=i.deviceData,e.writeAttribute("disabled",!1),void(this._deviceDataInit=!1))}.bind(this))}.bind(this))},initSavedMethods:function(){$$('#creditcard-saved-accounts input[type="radio"], #paypal-saved-accounts input[type="radio"]').each(function(e){var t="",i="";void 0!==e.up("#creditcard-saved-accounts")?(t="#creditcard-saved-accounts",i="#credit-card-form"):void 0!==e.up("#paypal-saved-accounts")&&(t="#paypal-saved-accounts",i=".paypal-info"),$(e).stopObserving("change").observe("change",function(e){return this.showHideOtherMethod(t,i)}.bind(this))}.bind(this)),this.vzero.fireEvent(this,"integration.onInitSavedMethods")},showHideOtherMethod:function(e,t){void 0!==$$(e+" input:checked[type=radio]").first()&&"other"==$$(e+" input:checked[type=radio]").first().value?void 0!==$$(t).first()&&($$(t).first().show(),$$(t+" input, "+t+" select").each(function(e){e.removeAttribute("disabled")})):void 0!==$$(e+" input:checked[type=radio]").first()&&void 0!==$$(t).first()&&($$(t).first().hide(),$$(t+" input, "+t+" select").each(function(e){e.setAttribute("disabled","disabled")})),this.vzero.fireEvent(this,"integration.onShowHideOtherMethod",{parentElement:e,targetElement:t})},checkSavedOther:function(){var e="",t="";"gene_braintree_creditcard"==this.getPaymentMethod()?(e="#creditcard-saved-accounts",t="#credit-card-form"):"gene_braintree_paypal"==this.getPaymentMethod()&&(e="#paypal-saved-accounts",t=".paypal-info"),void 0!==$$(e).first()&&this.showHideOtherMethod(e,t),this.vzero.fireEvent(this,"integration.onCheckSavedOther")},afterPaymentMethodSwitch:function(){return!0},initHostedFields:function(){this.vzero.hostedFields&&null!==$("braintree-hosted-submit")&&(void 0!==$("braintree-hosted-submit").up("form")?(this.form=$("braintree-hosted-submit").up("form"),this.vzero.initHostedFields(this)):console.error("Hosted Fields cannot be initialized as we're unable to locate the parent form."))},validateHostedFields:function(){if(!this.vzero.usingSavedCard()&&this.vzero._hostedIntegration){var e=this.vzero._hostedIntegration.getState(),t=[],i={number:Translator.translate("Card Number"),expirationMonth:Translator.translate("Expiry Month"),expirationYear:Translator.translate("Expiry Year"),cvv:Translator.translate("CVV")};if($H(e.fields).each(function(e){0==e[1].isValid&&t.push(i[e[0]]+" "+Translator.translate("is invalid."))}.bind(this)),t.length>0)return alert(Translator.translate("There are a number of errors present with the credit card form:")+"\n"+t.join("\n")),!1;if(this.vzero.cardType&&this.vzero.supportedCards&&this.vzero.supportedCards.indexOf(this.vzero.cardType)==-1)return alert(Translator.translate("We're currently unable to process this card type, please try another card or payment method.")),!1}return!0},initDefaultMethod:function(){this.shouldAddPayPalButton(!1)&&(this.setLoading(),this.vzero.updateData(function(){this.resetLoading(),this.updatePayPalButton("add")}.bind(this))),this.afterPaymentMethodSwitch(),this.vzero.fireEvent(this,"integration.onInitDefaultMethod")},observeAjaxRequests:function(){this.vzero.observeAjaxRequests(function(){this.vzero.updateData(function(){this.isOnepage&&(this.initSavedPayPal(),this.rebuildPayPalButton(),this.checkSavedOther(),this.vzero.hostedFields&&this.initHostedFields()),this.initSavedMethods(),this.afterPaymentMethodSwitch(),this.vzero.fireEvent(this,"integration.onObserveAjaxRequests")}.bind(this))}.bind(this),"undefined"!=typeof this.config.ignoreAjax&&this.config.ignoreAjax)},rebuildPayPalButton:function(){null==$("paypal-container")&&this.updatePayPalButton()},initSavedPayPal:function(){void 0!==$$("#paypal-saved-accounts input[type=radio]").first()&&$("paypal-saved-accounts").on("change","input[type=radio]",function(e){this.updatePayPalButton(!1,"gene_braintree_paypal")}.bind(this))},captureOriginalSubmitFn:function(){return!1},observeSubmissionOverride:function(){setInterval(function(){this._originalSubmitFn&&this.prepareSubmitObserver()}.bind(this),500)},prepareSubmitObserver:function(){return!1},beforeSubmit:function(e){return this._beforeSubmit(e)},_beforeSubmit:function(e){this.vzero.fireEvent(this,"integration.onBeforeSubmit"),this.submitAfterPayment&&$("braintree-submit-after-payment")&&$("braintree-submit-after-payment").remove(),e()},afterSubmit:function(){return this.vzero.fireEvent(this,"integration.onAfterSubmit"),!1},submit:function(e,t,i,n){this.vzero._hostedFieldsTokenGenerated=!1,this.hostedFieldsGenerated=!1,this.shouldInterceptSubmit(e)&&("creditcard"!=e||"creditcard"==e&&this.validateHostedFields())&&(this.validateAll()?(this.setLoading(),this.beforeSubmit(function(){void 0!=$$('[data-genebraintree-name="number"]').first()&&this.vzero.updateCardType($$('[data-genebraintree-name="number"]').first().value),this.vzero.updateData(function(){this.updateBilling(),this.vzero.process({onSuccess:function(){if(this.enableDeviceData(),this.resetLoading(),this.afterSubmit(),this.enableDisableNonce(),this.vzero._hostedFieldsTokenGenerated=!0,this.hostedFieldsGenerated=!0,"function"==typeof t)var e=t();return this.setLoading(),e}.bind(this),onFailure:function(){if(this.vzero._hostedFieldsTokenGenerated=!1,this.hostedFieldsGenerated=!1,this.resetLoading(),this.afterSubmit(),"function"==typeof i)return i()}.bind(this)})}.bind(this),this.getUpdateDataParams())}.bind(this))):(this.vzero._hostedFieldsTokenGenerated=!1,this.hostedFieldsGenerated=!1,this.resetLoading(),"function"==typeof n&&n()))},submitCheckout:function(){window.review&&review.save()},submitPayment:function(){payment.save&&payment.save()},enableDisableNonce:function(){"gene_braintree_creditcard"==this.getPaymentMethod()?(null!==$("creditcard-payment-nonce")&&$("creditcard-payment-nonce").removeAttribute("disabled"),null!==$("paypal-payment-nonce")&&$("paypal-payment-nonce").setAttribute("disabled","disabled")):"gene_braintree_paypal"==this.getPaymentMethod()&&(null!==$("creditcard-payment-nonce")&&$("creditcard-payment-nonce").setAttribute("disabled","disabled"),null!==$("paypal-payment-nonce")&&$("paypal-payment-nonce").removeAttribute("disabled"))},preparePaymentMethodSwitchObserver:function(){return this.defaultPaymentMethodSwitch()},defaultPaymentMethodSwitch:function(){var e=this,t=Payment.prototype.switchMethod;Payment.prototype.switchMethod=function(i){return e.paymentMethodSwitch(i),t.apply(this,arguments)}},paymentMethodSwitch:function(e){clearTimeout(this._methodSwitchTimeout),this._methodSwitchTimeout=setTimeout(function(){this.shouldAddPayPalButton(e)?this.updatePayPalButton("add",e):this.updatePayPalButton("remove",e),"gene_braintree_creditcard"==(e?e:this.getPaymentMethod())&&this.initHostedFields(),this.checkSavedOther(),this.afterPaymentMethodSwitch(),this.vzero.fireEvent(this,"integration.onPaymentMethodSwitch",{method:e})}.bind(this),50)},completePayPal:function(e){return this.enableDisableNonce(),this.enableDeviceData(),e.nonce&&null!==$("paypal-payment-nonce")?($("paypal-payment-nonce").value=e.nonce,$("paypal-payment-nonce").setAttribute("value",e.nonce)):console.warn("Unable to update PayPal nonce, please verify that the nonce input field has the ID: paypal-payment-nonce"),this.afterPayPalComplete(),!1},afterPayPalComplete:function(){return this.resetLoading(),this.submitCheckout()},getPayPalMarkUp:function(){return $("braintree-paypal-button").innerHTML},updatePayPalButton:function(e,t){if(this.paypalWrapperMarkUp===!1)return!1;if("refresh"==e)return!0;if(this.shouldAddPayPalButton(t)&&"remove"!=e||"add"==e)if(void 0!==$$(this.paypalButtonClass).first()){if($$(this.paypalButtonClass).first().hide(),void 0!==$$("#paypal-complete").first())return $$("#paypal-complete").first().show(),!0;$$(this.paypalButtonClass).first().insert({after:this.paypalWrapperMarkUp}),this.vzeroPaypal.addPayPalButton({validate:this.validateAll.bind(this),onSuccess:this.completePayPal.bind(this),onReady:this.paypalOnReady.bind(this)},this.getPayPalMarkUp(),"#paypal-container")}else console.warn("We're unable to find the element "+this.paypalButtonClass+". Please check your integration.");else void 0!==$$(this.paypalButtonClass).first()&&$$(this.paypalButtonClass).first().show(),void 0!==$$("#paypal-complete").first()&&$("paypal-complete").hide()},onReviewInit:function(){this.isOnepage||this.updatePayPalButton(),this.vzero.fireEvent(this,"integration.onReviewInit")},paypalOnReady:function(e){return!0},setLoading:function(){checkout.setLoadWaiting("payment")},resetLoading:function(){checkout.setLoadWaiting(!1)},enableDeviceData:function(){null!==$("device_data")&&$("device_data").removeAttribute("disabled")},updateBilling:function(){(null!==$("billing-address-select")&&""==$("billing-address-select").value||null===$("billing-address-select"))&&(null!==$("billing:firstname")&&null!==$("billing:lastname")&&this.vzero.setBillingName($("billing:firstname").value+" "+$("billing:lastname").value),null!==$("billing:postcode")&&this.vzero.setBillingPostcode($("billing:postcode").value))},getUpdateDataParams:function(){var e={};return null!==$("billing-address-select")&&""!=$("billing-address-select").value&&(e.addressId=$("billing-address-select").value),e},getPaymentMethod:function(){return payment.currentMethod},shouldInterceptSubmit:function(e){switch(e){case"creditcard":return"gene_braintree_creditcard"==this.getPaymentMethod()&&this.vzero.shouldInterceptCreditCard();break;case"paypal":return"gene_braintree_paypal"==this.getPaymentMethod()&&this.vzero.shouldInterceptCreditCard()}return!1},shouldAddPayPalButton:function(e){return"gene_braintree_paypal"==(e?e:this.getPaymentMethod())&&null===$("paypal-saved-accounts")||"gene_braintree_paypal"==(e?e:this.getPaymentMethod())&&void 0!==$$("#paypal-saved-accounts input:checked[type=radio]").first()&&"other"==$$("#paypal-saved-accounts input:checked[type=radio]").first().value},threeDTokenizationComplete:function(){this.resetLoading()},validateAll:function(){return!0},disableCreditCardForm:function(){},enableCreditCardForm:function(){}};
js/gene/braintree/2.1.4/vzero-min.js ADDED
@@ -0,0 +1 @@
 
1
+ var vZero=Class.create();vZero.prototype={initialize:function(e,t,i,n,r,o,s,a){this.code=e,this.clientToken=t,this.threeDSecure=i,this.hostedFields=n,r&&(this.billingName=r),o&&(this.billingPostcode=o),this.billingCountryId=!1,s&&(this.quoteUrl=s),a&&(this.tokenizeUrl=a),this._hostedFieldsTokenGenerated=!1,this.acceptedCards=!1,this._hostedFieldsTimeout=!1,this._updateDataCallbacks=[],this._updateDataTimeout=null,this.client=!1,this.threeDSpecificCountries=!1,this.threeDCountries=[],this.supportedCards=[],this.cardType=!1,this.initEvents()},initEvents:function(){this.events={onBeforeUpdateData:[],onAfterUpdateData:[],onHandleAjaxRequest:[],integration:{onInit:[],onInitDefaultMethod:[],onInitSavedMethods:[],onShowHideOtherMethod:[],onCheckSavedOther:[],onPaymentMethodSwitch:[],onReviewInit:[],onBeforeSubmit:[],onAfterSubmit:[],onObserveAjaxRequests:[]}}},setKount:function(e,t){this.kountEnvironment=e,""!=t&&(this.kountId=t)},setSupportedCards:function(e){"string"==typeof e&&(e=e.split(",")),this.supportedCards=e},setThreeDCountries:function(e){"string"==typeof e&&(e=e.split(",")),this.threeDSpecificCountries=!0,this.threeDCountries=e},observeEvent:function(e,t,i){Array.isArray(e)||(e=[e]),e.each(function(e){var n=this._resolveEvent(e);void 0===n?console.warn("Event for "+e+" does not exist."):n.push({fn:t,params:i})}.bind(this))},fireEvent:function(e,t,i){var n=this._resolveEvent(t);void 0!==n&&n.length>0&&n.each(function(t){if("function"==typeof t.fn){var arguments=[i];"object"==typeof t.params&&arguments.push(t.params),t.fn.apply(e,arguments)}})},_resolveEvent:function(e){return e.split(".").reduce(function(e,t){return e?e[t]:void 0},this.events)},getClient:function(e){this.client!==!1?"function"==typeof e&&e(this.client):braintree.client.create({authorization:this.clientToken},function(t,i){return t?void console.error(t):(this.client=i,void e(this.client))}.bind(this))},initHostedFields:function(e){return!($$('iframe[name^="braintree-"]').length>0)&&(null!==$("braintree-hosted-submit")&&(this.integration=e,this._hostedFieldsTokenGenerated=!1,clearTimeout(this._hostedFieldsTimeout),void(this._hostedFieldsTimeout=setTimeout(function(){if(this._hostedIntegration!==!1)try{this._hostedIntegration.teardown(function(){this._hostedIntegration=!1,this.setupHostedFieldsClient()}.bind(this))}catch(e){this.setupHostedFieldsClient()}else this.setupHostedFieldsClient()}.bind(this),50))))},teardownHostedFields:function(e){"undefined"!=typeof this._hostedIntegration&&this._hostedIntegration!==!1?this._hostedIntegration.teardown(function(){this._hostedIntegration=!1,"function"==typeof e&&e()}.bind(this)):"function"==typeof e&&e()},setupHostedFieldsClient:function(){return!($$('iframe[name^="braintree-"]').length>0)&&(this._hostedIntegration=!1,void this.getClient(function(e){var t={client:e,styles:this.getHostedFieldsStyles(),fields:{number:{selector:"#card-number",placeholder:"0000 0000 0000 0000"},expirationMonth:{selector:"#expiration-month",placeholder:"MM"},expirationYear:{selector:"#expiration-year",placeholder:"YY"}}};null!==$("cvv")&&(t.fields.cvv={selector:"#cvv"}),braintree.hostedFields.create(t,function(e,t){if(e){if("HOSTED_FIELDS_FIELD_DUPLICATE_IFRAME"==e.code)return;return void console.error(e)}return this.hostedFieldsOnReady(t)}.bind(this))}.bind(this)))},hostedFieldsOnReady:function(e){if(this._hostedIntegration=e,$$("#credit-card-form.loading").length&&$$("#credit-card-form.loading").first().removeClassName("loading"),this.integration.submitAfterPayment){var t=new Element("input",{type:"hidden",name:"payment[submit_after_payment]",value:1,id:"braintree-submit-after-payment"});$("payment_form_gene_braintree_creditcard").insert(t)}else $("braintree-submit-after-payment")&&$("braintree-submit-after-payment").remove();e.on("cardTypeChange",this.hostedFieldsCardTypeChange.bind(this))},getHostedFieldsStyles:function(){return"function"==typeof this.integration.getHostedFieldsStyles?this.integration.getHostedFieldsStyles():{input:{"font-size":"14pt",color:"#3A3A3A"},":focus":{color:"black"},".valid":{color:"green"},".invalid":{color:"red"}}},hostedFieldsCardTypeChange:function(e){if("undefined"!=typeof e.cards){var t={visa:"VI","american-express":"AE","master-card":"MC",discover:"DI",jcb:"JCB",maestro:"ME"};void 0!==typeof t[e.cards[0].type]?(this.cardType=t[e.cards[0].type],this.updateCardType(!1,this.cardType),this.supportedCards.indexOf(this.cardType)==-1?this.showCardUnsupported():this.removeCardUnsupported()):(this.removeCardUnsupported(),this.cardType=!1,this.updateCardType(!1,"card"))}},showCardUnsupported:function(){if($$(".braintree-card-input-field").length>0){var e=$$(".braintree-card-input-field").first().up();if(0==e.select(".braintree-card-unsupported").length){var t=new Element("div",{class:"braintree-card-unsupported"}).update(Translator.translate("We're currently unable to process this card type, please try another card or payment method."));e.insert(t)}}},removeCardUnsupported:function(){$$(".braintree-card-unsupported").length>0&&$$(".braintree-card-unsupported").each(function(e){e.remove()})},getBillingCountryId:function(){if(null==$("billing-address-select")||""==$("billing-address-select").value){var e=this.getBillingAddress();if("undefined"!=typeof e["billing[country_id]"])return e["billing[country_id]"]}return!!this.billingCountryId&&this.billingCountryId},shouldInvokeThreeDSecure:function(){if(this.threeDSpecificCountries&&this.threeDCountries.length>0){var e;if(e=this.getBillingCountryId())return this.threeDCountries.indexOf(e)!==-1}return this.threeDSecure},hostedFieldsNonceReceived:function(e,t){this.shouldInvokeThreeDSecure()?("function"==typeof this.integration.setLoading&&this.integration.setLoading(),this.verify3dSecureNonce(e,{onSuccess:function(e){this.updateNonce(e.nonce),"function"==typeof t.onSuccess&&t.onSuccess()}.bind(this),onFailure:function(){"function"==typeof t.onFailure&&t.onFailure()}.bind(this)})):(this.updateNonce(e),"function"==typeof t.onSuccess&&t.onSuccess())},updateNonce:function(e){$("creditcard-payment-nonce").value=e,$("creditcard-payment-nonce").setAttribute("value",e),"function"==typeof this.integration.resetLoading&&this.integration.resetLoading(),this._hostedFieldsTokenGenerated=!0},hostedFieldsError:function(e){return"function"==typeof this.integration.resetLoading&&this.integration.resetLoading(),"undefined"!=typeof e.message&&e.message.indexOf("Cannot place two elements in")==-1&&e.message.indexOf("Unable to find element with selector")==-1&&e.message.indexOf("User did not enter a payment method")==-1&&alert(e.message),this._hostedFieldsTokenGenerated=!1,"function"==typeof this.integration.afterHostedFieldsError&&this.integration.afterHostedFieldsError(e.message),!1},usingSavedCard:function(){return void 0!=$("creditcard-saved-accounts")&&void 0!=$$("#creditcard-saved-accounts input:checked[type=radio]").first()&&"other"!==$$("#creditcard-saved-accounts input:checked[type=radio]").first().value},usingSavedThreeDCard:function(){return this.usingSavedCard()&&$$("#creditcard-saved-accounts input:checked[type=radio]").first().hasAttribute("data-threedsecure-nonce")},setThreeDSecure:function(e){this.threeDSecure=e},setAmount:function(e){this.amount=parseFloat(e)},setBillingName:function(e){this.billingName=e},getBillingName:function(){return"object"==typeof this.billingName?this.combineElementsValues(this.billingName):this.billingName},setBillingPostcode:function(e){this.billingPostcode=e},getBillingPostcode:function(){return"object"==typeof this.billingPostcode?this.combineElementsValues(this.billingPostcode):this.billingPostcode},setAcceptedCards:function(e){this.acceptedCards=e},getBillingAddress:function(){if("function"==typeof this.integration.getBillingAddress)return this.integration.getBillingAddress();var e={};return null!==$("co-billing-form")?e="FORM"==$("co-billing-form").tagName?$("co-billing-form").serialize(!0):this.extractBilling($("co-billing-form").up("form").serialize(!0)):null!==$("billing:firstname")&&(e=this.extractBilling($("billing:firstname").up("form").serialize(!0))),e?e:void 0},extractBilling:function(e){var t={};return $H(e).each(function(e){0==e.key.indexOf("billing")&&e.key.indexOf("password")==-1&&(t[e.key]=e.value)}),t},getAcceptedCards:function(){return this.acceptedCards},combineElementsValues:function(e,t){t||(t=" ");var i=[];return e.each(function(e,t){void 0!==$(e)&&(i[t]=$(e).value)}),i.join(t)},updateCardType:function(e,t){if(void 0!=$("card-type-image")){var i=$("card-type-image").src.substring(0,$("card-type-image").src.lastIndexOf("/"));$("card-type-image").setAttribute("src",i+"/"+t+".png")}},observeAjaxRequests:function(e,t){return!vZero.prototype.observingAjaxRequests&&(vZero.prototype.observingAjaxRequests=!0,Ajax.Responders.register({onComplete:function(i){return this.handleAjaxRequest(i.url,e,t)}.bind(this)}),void(window.jQuery&&jQuery(document).ajaxComplete(function(i,n,r){return this.handleAjaxRequest(r.url,e,t)}.bind(this))))},handleAjaxRequest:function(e,t,i){if("undefined"!=typeof i&&i instanceof Array&&i.length>0){var n=!1;if(i.each(function(t){e&&e.indexOf(t)!=-1&&(n=!0)}),n===!0)return!1}e&&e.indexOf("/braintree/")==-1&&(this.fireEvent(this,"onHandleAjaxRequest",{url:e}),t?t(e):this.updateData())},updateData:function(e,t){this._updateDataCallbacks.push(e),clearTimeout(this._updateDataTimeout),this._updateDataTimeout=setTimeout(function(){var e=this._updateDataCallbacks;this._updateDataCallbacks=[],this.fireEvent(this,"integration.onBeforeUpdateData",{params:t}),new Ajax.Request(this.quoteUrl,{method:"post",parameters:t,onSuccess:function(t){if(t&&(t.responseJSON||t.responseText)){var i=this._parseTransportAsJson(t);void 0!=i.billingName&&(this.billingName=i.billingName),void 0!=i.billingPostcode&&(this.billingPostcode=i.billingPostcode),void 0!=i.billingCountryId&&(this.billingCountryId=i.billingCountryId),void 0!=i.grandTotal&&(this.amount=i.grandTotal),void 0!=i.threeDSecure&&this.setThreeDSecure(i.threeDSecure),"undefined"!=typeof vzeroPaypal&&void 0!=i.grandTotal&&void 0!=i.currencyCode&&vzeroPaypal.setPricing(i.grandTotal,i.currencyCode),e.length>0&&e.each(function(e){e(i)}.bind(this)),this.fireEvent(this,"onAfterUpdateData",{response:i})}}.bind(this),onFailure:function(){}.bind(this)})}.bind(this),250)},tokenize3dSavedCards:function(e){if(this.threeDSecure)if(void 0!==$$("[data-token]").first()){var t=[];$$("[data-token]").each(function(e,i){t[i]=e.getAttribute("data-token")}),new Ajax.Request(this.tokenizeUrl,{method:"post",onSuccess:function(t){if(t&&(t.responseJSON||t.responseText)){var i=this._parseTransportAsJson(t);i.success&&$H(i.tokens).each(function(e){void 0!=$$('[data-token="'+e.key+'"]').first()&&$$('[data-token="'+e.key+'"]').first().setAttribute("data-threedsecure-nonce",e.value)}),e&&e(i)}}.bind(this),parameters:{tokens:Object.toJSON(t)}})}else e();else e()},verify3dSecureNonce:function(e,t){this.getClient(function(i){braintree.threeDSecure.create({client:i},function(i,n){if(i)return void console.error(i);var r={amount:this.amount,nonce:e,addFrame:function(e,t){$$("#three-d-modal .bt-modal-body").first().insert(t),$("three-d-modal").removeClassName("hidden")},removeFrame:function(){$$("#three-d-modal .bt-modal-body iframe").first().remove(),$("three-d-modal").addClassName("hidden")}.bind(this)};n.verifyCard(r,function(e,i){e?t.onFailure&&t.onFailure(i,e):i.liabilityShifted?t.onSuccess&&t.onSuccess(i):i.liabilityShiftPossible?t.onSuccess&&t.onSuccess(i):t.onSuccess&&t.onSuccess(i)})}.bind(this))}.bind(this))},verify3dSecureVault:function(e){var t=$$("#creditcard-saved-accounts input:checked[type=radio]").first().getAttribute("data-threedsecure-nonce");t?this.verify3dSecureNonce(t,{onSuccess:function(t){$("creditcard-payment-nonce").removeAttribute("disabled"),$("creditcard-payment-nonce").value=t.nonce,$("creditcard-payment-nonce").setAttribute("value",t.nonce),"function"==typeof e.onSuccess&&e.onSuccess()},onFailure:function(t,i){alert(i),"function"==typeof e.onFailure?e.onFailure():checkout.setLoadWaiting(!1)}}):(alert("No payment nonce present."),"function"==typeof e.onFailure?e.onFailure():checkout.setLoadWaiting(!1))},processCard:function(e){this._hostedIntegration.tokenize(function(t,i){return t?("function"==typeof e.onFailure?e.onFailure():checkout.setLoadWaiting(!1),void("string"==typeof t.message&&alert(t.message))):this.hostedFieldsNonceReceived(i.nonce,e)}.bind(this))},shouldInterceptCreditCard:function(){return"0.00"!=this.amount},shouldInterceptPayPal:function(){return!0},process:function(e){return e=e||{},this._hostedFieldsTokenGenerated||this.usingSavedCard()&&!this.usingSavedThreeDCard()?void("function"==typeof e.onSuccess&&e.onSuccess()):this.usingSavedThreeDCard()?this.verify3dSecureVault(e):this.processCard(e)},creditCardLoaded:function(){return!1},paypalLoaded:function(){return!1},_parseTransportAsJson:function(transport){return transport.responseJSON&&"object"==typeof transport.responseJSON?transport.responseJSON:transport.responseText?"object"==typeof JSON&&"function"==typeof JSON.parse?JSON.parse(transport.responseText):eval("("+transport.responseText+")"):{}}},function(){for(var e,t=function(){},i=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],n=i.length,r=window.console=window.console||{};n--;)e=i[n],r[e]||(r[e]=t)}();
js/gene/braintree/{2.1.3 → 2.1.4}/vzero-paypal-min.js RENAMED
File without changes
js/gene/braintree/config.codekit CHANGED
@@ -2,56 +2,56 @@
2
  "CodeKitInfo": "This is a CodeKit 2.x project configuration file. It is designed to sync project settings across multiple machines. MODIFYING THE CONTENTS OF THIS FILE IS A POOR LIFE DECISION. If you do so, you will likely cause CodeKit to crash. This file is not useful unless accompanied by the project that created it in CodeKit 2. This file is not backwards-compatible with CodeKit 1.x. For more information, see: http:\/\/incident57.com\/codekit",
3
  "creatorBuild": "19142",
4
  "files": {
5
- "\/2.1.3\/express\/abstract-min.js": {
6
  "fileType": 64,
7
  "ignore": 1,
8
  "ignoreWasSetByUser": 0,
9
- "inputAbbreviatedPath": "\/2.1.3\/express\/abstract-min.js",
10
- "outputAbbreviatedPath": "\/2.1.3\/express\/min\/abstract-min-min.js",
11
  "outputPathIsOutsideProject": 0,
12
  "outputPathIsSetByUser": 0,
13
  "outputStyle": 1,
14
  "syntaxCheckerStyle": 1
15
  },
16
- "\/2.1.3\/express\/paypal-min.js": {
17
  "fileType": 64,
18
  "ignore": 1,
19
  "ignoreWasSetByUser": 0,
20
- "inputAbbreviatedPath": "\/2.1.3\/express\/paypal-min.js",
21
- "outputAbbreviatedPath": "\/2.1.3\/express\/min\/paypal-min-min.js",
22
  "outputPathIsOutsideProject": 0,
23
  "outputPathIsSetByUser": 0,
24
  "outputStyle": 1,
25
  "syntaxCheckerStyle": 1
26
  },
27
- "\/2.1.3\/vzero-integration-min.js": {
28
  "fileType": 64,
29
  "ignore": 1,
30
  "ignoreWasSetByUser": 0,
31
- "inputAbbreviatedPath": "\/2.1.3\/vzero-integration-min.js",
32
- "outputAbbreviatedPath": "\/2.1.3\/min\/vzero-integration-min-min.js",
33
  "outputPathIsOutsideProject": 0,
34
  "outputPathIsSetByUser": 0,
35
  "outputStyle": 1,
36
  "syntaxCheckerStyle": 1
37
  },
38
- "\/2.1.3\/vzero-min.js": {
39
  "fileType": 64,
40
  "ignore": 1,
41
  "ignoreWasSetByUser": 0,
42
- "inputAbbreviatedPath": "\/2.1.3\/vzero-min.js",
43
- "outputAbbreviatedPath": "\/2.1.3\/min\/vzero-min-min.js",
44
  "outputPathIsOutsideProject": 0,
45
  "outputPathIsSetByUser": 0,
46
  "outputStyle": 1,
47
  "syntaxCheckerStyle": 1
48
  },
49
- "\/2.1.3\/vzero-paypal-min.js": {
50
  "fileType": 64,
51
  "ignore": 1,
52
  "ignoreWasSetByUser": 0,
53
- "inputAbbreviatedPath": "\/2.1.3\/vzero-paypal-min.js",
54
- "outputAbbreviatedPath": "\/2.1.3\/min\/vzero-paypal-min-min.js",
55
  "outputPathIsOutsideProject": 0,
56
  "outputPathIsSetByUser": 0,
57
  "outputStyle": 1,
@@ -62,7 +62,7 @@
62
  "ignore": 0,
63
  "ignoreWasSetByUser": 0,
64
  "inputAbbreviatedPath": "\/source\/express\/abstract.js",
65
- "outputAbbreviatedPath": "\/2.1.3\/express\/abstract-min.js",
66
  "outputPathIsOutsideProject": 0,
67
  "outputPathIsSetByUser": 1,
68
  "outputStyle": 1,
@@ -73,7 +73,7 @@
73
  "ignore": 0,
74
  "ignoreWasSetByUser": 0,
75
  "inputAbbreviatedPath": "\/source\/express\/paypal.js",
76
- "outputAbbreviatedPath": "\/2.1.3\/express\/paypal-min.js",
77
  "outputPathIsOutsideProject": 0,
78
  "outputPathIsSetByUser": 1,
79
  "outputStyle": 1,
@@ -84,7 +84,7 @@
84
  "ignore": 0,
85
  "ignoreWasSetByUser": 0,
86
  "inputAbbreviatedPath": "\/source\/vzero-integration.js",
87
- "outputAbbreviatedPath": "\/2.1.3\/vzero-integration-min.js",
88
  "outputPathIsOutsideProject": 0,
89
  "outputPathIsSetByUser": 1,
90
  "outputStyle": 1,
@@ -95,7 +95,7 @@
95
  "ignore": 0,
96
  "ignoreWasSetByUser": 0,
97
  "inputAbbreviatedPath": "\/source\/vzero-paypal.js",
98
- "outputAbbreviatedPath": "\/2.1.3\/vzero-paypal-min.js",
99
  "outputPathIsOutsideProject": 0,
100
  "outputPathIsSetByUser": 1,
101
  "outputStyle": 1,
@@ -106,7 +106,7 @@
106
  "ignore": 0,
107
  "ignoreWasSetByUser": 0,
108
  "inputAbbreviatedPath": "\/source\/vzero.js",
109
- "outputAbbreviatedPath": "\/2.1.3\/vzero-min.js",
110
  "outputPathIsOutsideProject": 0,
111
  "outputPathIsSetByUser": 1,
112
  "outputStyle": 1,
@@ -125,7 +125,7 @@
125
  "iconImageName": "brackets_gray"
126
  },
127
  "projectSettings": {
128
- "alwaysUseExternalServer": 0,
129
  "animateCSSInjections": 1,
130
  "autoApplyPSLanguageSettingsStyle": 0,
131
  "autoprefixerBrowserString": "> 1%, last 2 versions, Firefox ESR, Opera 12.1",
@@ -279,7 +279,7 @@
279
  "coffeeMinifyOutput": 1,
280
  "coffeeOutputStyle": 0,
281
  "coffeeSyntaxCheckerStyle": 1,
282
- "externalServerAddress": "http:\/\/localhost:8888",
283
  "externalServerPreviewPathAddition": "",
284
  "genericWebpageFileExtensionsString": "html, htm, shtml, shtm, xhtml, php, jsp, asp, aspx, erb, ctp",
285
  "hamlAutoOutputPathEnabled": 1,
2
  "CodeKitInfo": "This is a CodeKit 2.x project configuration file. It is designed to sync project settings across multiple machines. MODIFYING THE CONTENTS OF THIS FILE IS A POOR LIFE DECISION. If you do so, you will likely cause CodeKit to crash. This file is not useful unless accompanied by the project that created it in CodeKit 2. This file is not backwards-compatible with CodeKit 1.x. For more information, see: http:\/\/incident57.com\/codekit",
3
  "creatorBuild": "19142",
4
  "files": {
5
+ "\/2.1.4\/express\/abstract-min.js": {
6
  "fileType": 64,
7
  "ignore": 1,
8
  "ignoreWasSetByUser": 0,
9
+ "inputAbbreviatedPath": "\/2.1.4\/express\/abstract-min.js",
10
+ "outputAbbreviatedPath": "\/2.1.4\/express\/min\/abstract-min-min.js",
11
  "outputPathIsOutsideProject": 0,
12
  "outputPathIsSetByUser": 0,
13
  "outputStyle": 1,
14
  "syntaxCheckerStyle": 1
15
  },
16
+ "\/2.1.4\/express\/paypal-min.js": {
17
  "fileType": 64,
18
  "ignore": 1,
19
  "ignoreWasSetByUser": 0,
20
+ "inputAbbreviatedPath": "\/2.1.4\/express\/paypal-min.js",
21
+ "outputAbbreviatedPath": "\/2.1.4\/express\/min\/paypal-min-min.js",
22
  "outputPathIsOutsideProject": 0,
23
  "outputPathIsSetByUser": 0,
24
  "outputStyle": 1,
25
  "syntaxCheckerStyle": 1
26
  },
27
+ "\/2.1.4\/vzero-integration-min.js": {
28
  "fileType": 64,
29
  "ignore": 1,
30
  "ignoreWasSetByUser": 0,
31
+ "inputAbbreviatedPath": "\/2.1.4\/vzero-integration-min.js",
32
+ "outputAbbreviatedPath": "\/2.1.4\/min\/vzero-integration-min-min.js",
33
  "outputPathIsOutsideProject": 0,
34
  "outputPathIsSetByUser": 0,
35
  "outputStyle": 1,
36
  "syntaxCheckerStyle": 1
37
  },
38
+ "\/2.1.4\/vzero-min.js": {
39
  "fileType": 64,
40
  "ignore": 1,
41
  "ignoreWasSetByUser": 0,
42
+ "inputAbbreviatedPath": "\/2.1.4\/vzero-min.js",
43
+ "outputAbbreviatedPath": "\/2.1.4\/min\/vzero-min-min.js",
44
  "outputPathIsOutsideProject": 0,
45
  "outputPathIsSetByUser": 0,
46
  "outputStyle": 1,
47
  "syntaxCheckerStyle": 1
48
  },
49
+ "\/2.1.4\/vzero-paypal-min.js": {
50
  "fileType": 64,
51
  "ignore": 1,
52
  "ignoreWasSetByUser": 0,
53
+ "inputAbbreviatedPath": "\/2.1.4\/vzero-paypal-min.js",
54
+ "outputAbbreviatedPath": "\/2.1.4\/min\/vzero-paypal-min-min.js",
55
  "outputPathIsOutsideProject": 0,
56
  "outputPathIsSetByUser": 0,
57
  "outputStyle": 1,
62
  "ignore": 0,
63
  "ignoreWasSetByUser": 0,
64
  "inputAbbreviatedPath": "\/source\/express\/abstract.js",
65
+ "outputAbbreviatedPath": "\/2.1.4\/express\/abstract-min.js",
66
  "outputPathIsOutsideProject": 0,
67
  "outputPathIsSetByUser": 1,
68
  "outputStyle": 1,
73
  "ignore": 0,
74
  "ignoreWasSetByUser": 0,
75
  "inputAbbreviatedPath": "\/source\/express\/paypal.js",
76
+ "outputAbbreviatedPath": "\/2.1.4\/express\/paypal-min.js",
77
  "outputPathIsOutsideProject": 0,
78
  "outputPathIsSetByUser": 1,
79
  "outputStyle": 1,
84
  "ignore": 0,
85
  "ignoreWasSetByUser": 0,
86
  "inputAbbreviatedPath": "\/source\/vzero-integration.js",
87
+ "outputAbbreviatedPath": "\/2.1.4\/vzero-integration-min.js",
88
  "outputPathIsOutsideProject": 0,
89
  "outputPathIsSetByUser": 1,
90
  "outputStyle": 1,
95
  "ignore": 0,
96
  "ignoreWasSetByUser": 0,
97
  "inputAbbreviatedPath": "\/source\/vzero-paypal.js",
98
+ "outputAbbreviatedPath": "\/2.1.4\/vzero-paypal-min.js",
99
  "outputPathIsOutsideProject": 0,
100
  "outputPathIsSetByUser": 1,
101
  "outputStyle": 1,
106
  "ignore": 0,
107
  "ignoreWasSetByUser": 0,
108
  "inputAbbreviatedPath": "\/source\/vzero.js",
109
+ "outputAbbreviatedPath": "\/2.1.4\/vzero-min.js",
110
  "outputPathIsOutsideProject": 0,
111
  "outputPathIsSetByUser": 1,
112
  "outputStyle": 1,
125
  "iconImageName": "brackets_gray"
126
  },
127
  "projectSettings": {
128
+ "alwaysUseExternalServer": 1,
129
  "animateCSSInjections": 1,
130
  "autoApplyPSLanguageSettingsStyle": 0,
131
  "autoprefixerBrowserString": "> 1%, last 2 versions, Firefox ESR, Opera 12.1",
279
  "coffeeMinifyOutput": 1,
280
  "coffeeOutputStyle": 0,
281
  "coffeeSyntaxCheckerStyle": 1,
282
+ "externalServerAddress": "http:\/\/default.braintree.dave.gene.co.uk\/",
283
  "externalServerPreviewPathAddition": "",
284
  "genericWebpageFileExtensionsString": "html, htm, shtml, shtm, xhtml, php, jsp, asp, aspx, erb, ctp",
285
  "hamlAutoOutputPathEnabled": 1,
js/gene/braintree/source/express/paypal.js CHANGED
@@ -10,7 +10,7 @@ var BraintreePayPalExpress = Class.create(BraintreeExpressAbstract, {
10
  this.vzeroPayPal = new vZeroPayPalButton(
11
  this.config.token,
12
  '',
13
- this.config.singleUse,
14
  this.config.locale
15
  );
16
  },
10
  this.vzeroPayPal = new vZeroPayPalButton(
11
  this.config.token,
12
  '',
13
+ false, /* Vault flow forced as the final amount can change */
14
  this.config.locale
15
  );
16
  },
js/gene/braintree/source/vzero-integration.js CHANGED
@@ -50,6 +50,9 @@ vZeroIntegration.prototype = {
50
 
51
  this._originalSubmitFn = false;
52
 
 
 
 
53
  // Wait for the DOM to finish loading before creating observers
54
  document.observe("dom:loaded", function () {
55
 
@@ -141,14 +144,29 @@ vZeroIntegration.prototype = {
141
  */
142
  populateDeviceData: function (input) {
143
  this.vzero.getClient(function (clientInstance) {
144
- braintree.dataCollector.create({
145
  client: clientInstance,
146
- kount: true,
147
- paypal: true
148
- }, function (err, dataCollectorInstance) {
 
 
 
 
 
 
149
  if (err) {
150
- // Handle error in creation of data collector
151
- console.warn(err);
 
 
 
 
 
 
 
 
 
152
  return;
153
  }
154
 
@@ -292,6 +310,54 @@ vZeroIntegration.prototype = {
292
  }
293
  },
294
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
295
  /**
296
  * Init the default payment methods
297
  */
@@ -457,81 +523,85 @@ vZeroIntegration.prototype = {
457
  // Check we actually want to intercept this credit card transaction?
458
  if (this.shouldInterceptSubmit(type)) {
459
 
460
- // Validate the form before submission
461
- if (this.validateAll()) {
462
 
463
- // Show the loading information
464
- this.setLoading();
465
 
466
- // Call the before submit function
467
- this.beforeSubmit(function () {
468
 
469
- // Always attempt to update the card type on submission
470
- if ($$('[data-genebraintree-name="number"]').first() != undefined) {
471
- this.vzero.updateCardType($$('[data-genebraintree-name="number"]').first().value);
472
- }
473
 
474
- // Update the data within the vZero object
475
- this.vzero.updateData(
476
- function () {
 
477
 
478
- // Update the billing details if they're present on the page
479
- this.updateBilling();
 
480
 
481
- // Process the data on the page
482
- this.vzero.process({
483
- onSuccess: function () {
484
 
485
- // Make some modifications to the form
486
- this.enableDeviceData();
 
487
 
488
- // Unset the loading, as this can block success functions
489
- this.resetLoading();
490
- this.afterSubmit();
491
 
492
- // Enable/disable the correct nonce input fields
493
- this.enableDisableNonce();
 
494
 
495
- this.vzero._hostedFieldsTokenGenerated = true;
496
- this.hostedFieldsGenerated = true;
497
 
498
- // Call the callback function
499
- if (typeof successCallback === 'function') {
500
- var response = successCallback();
501
- }
502
 
503
- // Enable loading again, as things are happening!
504
- this.setLoading();
 
 
505
 
506
- return response;
 
507
 
508
- }.bind(this),
509
- onFailure: function () {
510
 
511
- this.vzero._hostedFieldsTokenGenerated = false;
512
- this.hostedFieldsGenerated = false;
513
 
514
- this.resetLoading();
515
- this.afterSubmit();
516
- if (typeof failedCallback === 'function') {
517
- return failedCallback();
518
- }
519
- }.bind(this)
520
- })
521
- }.bind(this),
522
- this.getUpdateDataParams()
523
- );
524
 
525
- }.bind(this));
 
 
 
 
 
 
 
 
 
526
 
527
- } else {
 
 
528
 
529
- this.vzero._hostedFieldsTokenGenerated = false;
530
- this.hostedFieldsGenerated = false;
531
 
532
- this.resetLoading();
533
- if (typeof validateFailedCallback === 'function') {
534
- validateFailedCallback();
 
535
  }
536
  }
537
  }
50
 
51
  this._originalSubmitFn = false;
52
 
53
+ this.kountEnvironment = false;
54
+ this.kountId = false;
55
+
56
  // Wait for the DOM to finish loading before creating observers
57
  document.observe("dom:loaded", function () {
58
 
144
  */
145
  populateDeviceData: function (input) {
146
  this.vzero.getClient(function (clientInstance) {
147
+ var params = {
148
  client: clientInstance,
149
+ kount: true
150
+ };
151
+
152
+ // Should we generate device data for PayPal?
153
+ if (this.vzeroPaypal !== false) {
154
+ params.paypal = true;
155
+ }
156
+
157
+ braintree.dataCollector.create(params, function (err, dataCollectorInstance) {
158
  if (err) {
159
+ // We don't want to console warn if the merchant isn't setup to accept Kount
160
+ if (err.code != 'DATA_COLLECTOR_KOUNT_NOT_ENABLED' &&
161
+ err.code != 'DATA_COLLECTOR_PAYPAL_NOT_ENABLED'
162
+ ) {
163
+ // Handle error in creation of data collector
164
+ console.error(err);
165
+ } else {
166
+ // Warn the user of the issue, but it's not important
167
+ console.warn('A warning occurred whilst initialisation the Braintree data collector. This warning can be safely ignored.');
168
+ console.warn(err);
169
+ }
170
  return;
171
  }
172
 
310
  }
311
  },
312
 
313
+ /**
314
+ * Validate hosted fields is complete and error free
315
+ *
316
+ * @returns {boolean}
317
+ */
318
+ validateHostedFields: function () {
319
+ if (!this.vzero.usingSavedCard() && this.vzero._hostedIntegration) {
320
+ var state = this.vzero._hostedIntegration.getState(),
321
+ errorMsgs = [],
322
+ translate = {
323
+ 'number': Translator.translate('Card Number'),
324
+ 'expirationMonth': Translator.translate('Expiry Month'),
325
+ 'expirationYear': Translator.translate('Expiry Year'),
326
+ 'cvv': Translator.translate('CVV')
327
+ };
328
+
329
+ // Loop through each field and ensure it's validity
330
+ $H(state.fields).each(function (field) {
331
+ if (field[1].isValid == false) {
332
+ errorMsgs.push(translate[field[0]] + ' ' + Translator.translate('is invalid.'));
333
+ }
334
+ }.bind(this));
335
+
336
+ // If any errors are present, alert the user and stop the checkout process
337
+ if (errorMsgs.length > 0) {
338
+ alert(
339
+ Translator.translate('There are a number of errors present with the credit card form:') +
340
+ "\n" +
341
+ errorMsgs.join("\n")
342
+ );
343
+ return false;
344
+ }
345
+
346
+ // Validate the card type
347
+ if (this.vzero.cardType && this.vzero.supportedCards) {
348
+ // Detect whether or not the card is supported
349
+ if (this.vzero.supportedCards.indexOf(this.vzero.cardType) == -1) {
350
+ alert(Translator.translate(
351
+ 'We\'re currently unable to process this card type, please try another card or payment method.'
352
+ ));
353
+ return false;
354
+ }
355
+ }
356
+ }
357
+
358
+ return true;
359
+ },
360
+
361
  /**
362
  * Init the default payment methods
363
  */
523
  // Check we actually want to intercept this credit card transaction?
524
  if (this.shouldInterceptSubmit(type)) {
525
 
526
+ // If the type is card, validate Hosted Fields
527
+ if (type != 'creditcard' || (type == 'creditcard' && this.validateHostedFields())) {
528
 
529
+ // Validate the form before submission
530
+ if (this.validateAll()) {
531
 
532
+ // Show the loading information
533
+ this.setLoading();
534
 
535
+ // Call the before submit function
536
+ this.beforeSubmit(function () {
 
 
537
 
538
+ // Always attempt to update the card type on submission
539
+ if ($$('[data-genebraintree-name="number"]').first() != undefined) {
540
+ this.vzero.updateCardType($$('[data-genebraintree-name="number"]').first().value);
541
+ }
542
 
543
+ // Update the data within the vZero object
544
+ this.vzero.updateData(
545
+ function () {
546
 
547
+ // Update the billing details if they're present on the page
548
+ this.updateBilling();
 
549
 
550
+ // Process the data on the page
551
+ this.vzero.process({
552
+ onSuccess: function () {
553
 
554
+ // Make some modifications to the form
555
+ this.enableDeviceData();
 
556
 
557
+ // Unset the loading, as this can block success functions
558
+ this.resetLoading();
559
+ this.afterSubmit();
560
 
561
+ // Enable/disable the correct nonce input fields
562
+ this.enableDisableNonce();
563
 
564
+ this.vzero._hostedFieldsTokenGenerated = true;
565
+ this.hostedFieldsGenerated = true;
 
 
566
 
567
+ // Call the callback function
568
+ if (typeof successCallback === 'function') {
569
+ var response = successCallback();
570
+ }
571
 
572
+ // Enable loading again, as things are happening!
573
+ this.setLoading();
574
 
575
+ return response;
 
576
 
577
+ }.bind(this),
578
+ onFailure: function () {
579
 
580
+ this.vzero._hostedFieldsTokenGenerated = false;
581
+ this.hostedFieldsGenerated = false;
 
 
 
 
 
 
 
 
582
 
583
+ this.resetLoading();
584
+ this.afterSubmit();
585
+ if (typeof failedCallback === 'function') {
586
+ return failedCallback();
587
+ }
588
+ }.bind(this)
589
+ })
590
+ }.bind(this),
591
+ this.getUpdateDataParams()
592
+ );
593
 
594
+ }.bind(this));
595
+
596
+ } else {
597
 
598
+ this.vzero._hostedFieldsTokenGenerated = false;
599
+ this.hostedFieldsGenerated = false;
600
 
601
+ this.resetLoading();
602
+ if (typeof validateFailedCallback === 'function') {
603
+ validateFailedCallback();
604
+ }
605
  }
606
  }
607
  }
js/gene/braintree/source/vzero.js CHANGED
@@ -23,7 +23,7 @@ vZero.prototype = {
23
  this.code = code;
24
  this.clientToken = clientToken;
25
  this.threeDSecure = threeDSecure;
26
- this.hostedFields = hostedFields;
27
 
28
  if (billingName) {
29
  this.billingName = billingName;
@@ -47,15 +47,17 @@ vZero.prototype = {
47
  this._hostedFieldsTimeout = false;
48
 
49
  // Store the Ajax request for the updateData
50
- this._updateDataXhr = false;
51
  this._updateDataCallbacks = [];
52
- this._updateDataParams = {};
53
 
54
  this.client = false;
55
 
56
  this.threeDSpecificCountries = false;
57
  this.threeDCountries = [];
58
 
 
 
 
59
  this.initEvents();
60
  },
61
 
@@ -82,6 +84,31 @@ vZero.prototype = {
82
  };
83
  },
84
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  /**
86
  * Set the 3D secure specific countries
87
  *
@@ -388,13 +415,49 @@ vZero.prototype = {
388
  'maestro': 'ME'
389
  };
390
  if (typeof cardMapping[event.cards[0].type] !== undefined) {
391
- this.updateCardType(false, cardMapping[event.cards[0].type]);
 
 
 
 
 
 
 
 
392
  } else {
 
 
393
  this.updateCardType(false, 'card');
394
  }
395
  }
396
  },
397
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
398
  /**
399
  * Retrieve the billing country ID
400
  *
@@ -446,24 +509,22 @@ vZero.prototype = {
446
  this.integration.setLoading();
447
  }
448
 
449
- // Update the quote totals first
450
- this.updateData(function () {
451
- // Verify the nonce through 3Ds
452
- this.verify3dSecureNonce(nonce, {
453
- onSuccess: function (response) {
454
- this.updateNonce(response.nonce);
455
 
456
- if (typeof options.onSuccess === 'function') {
457
- options.onSuccess();
458
- }
459
- }.bind(this),
460
- onFailure: function () {
461
- if (typeof options.onFailure === 'function') {
462
- options.onFailure();
463
- }
464
- }.bind(this)
465
- });
466
- }.bind(this));
 
 
 
 
467
  } else {
468
  this.updateNonce(nonce);
469
 
@@ -813,85 +874,70 @@ vZero.prototype = {
813
  * @param params any extra data to be passed to the controller
814
  */
815
  updateData: function (callback, params) {
816
-
817
- this.fireEvent(this, 'integration.onBeforeUpdateData', {params: params});
818
-
819
- // Push the callbacks into our array
820
  this._updateDataCallbacks.push(callback);
821
- this._updateDataParams = params;
822
 
823
- // If an updateData ajax request is running, cancel it
824
- if (this._updateDataXhr !== false) {
825
- this._updateDataXhr.transport.abort();
826
- }
827
 
828
- // Make a new ajax request to the server
829
- this._updateDataXhr = new Ajax.Request(
830
- this.quoteUrl,
831
- {
832
- method: 'post',
833
- parameters: this._updateDataParams,
834
- onSuccess: function (transport) {
835
- // Verify we have some response text
836
- if (transport && (transport.responseJSON || transport.responseText)) {
837
-
838
- // Parse the response from the server
839
- var response = this._parseTransportAsJson(transport);
840
-
841
- if (response.billingName != undefined) {
842
- this.billingName = response.billingName;
843
- }
844
- if (response.billingPostcode != undefined) {
845
- this.billingPostcode = response.billingPostcode;
846
- }
847
- if (response.billingCountryId != undefined) {
848
- this.billingCountryId = response.billingCountryId;
849
- }
850
- if (response.grandTotal != undefined) {
851
- this.amount = response.grandTotal;
852
- }
853
- if (response.threeDSecure != undefined) {
854
- this.setThreeDSecure(response.threeDSecure);
855
- }
856
 
857
- // If PayPal is active update it
858
- if (typeof vzeroPaypal != "undefined") {
 
 
 
 
 
 
 
859
 
860
- // Update the totals within the PayPal system
861
- if (response.grandTotal != undefined && response.currencyCode != undefined) {
862
- vzeroPaypal.setPricing(response.grandTotal, response.currencyCode);
863
- }
864
 
865
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
866
 
867
- // Reset the params
868
- this._updateDataParams = {};
 
 
 
 
 
869
 
870
- // Set the flag back
871
- this._updateDataXhr = false;
 
 
 
 
872
 
873
- // Run any callbacks that have been stored
874
- if (this._updateDataCallbacks.length) {
875
- this._updateDataCallbacks.each(function (callback) {
876
- callback(response);
877
- }.bind(this));
878
- this._updateDataCallbacks = [];
879
  }
 
 
880
 
881
- this.fireEvent(this, 'onAfterUpdateData', {response: response});
882
- }
883
- }.bind(this),
884
- onFailure: function () {
885
-
886
- // Reset the params
887
- this._updateDataParams = {};
888
- this._updateDataXhr = false;
889
- this._updateDataCallbacks = [];
890
-
891
- }.bind(this)
892
- }
893
- );
894
 
 
 
 
 
895
  },
896
 
897
  /**
23
  this.code = code;
24
  this.clientToken = clientToken;
25
  this.threeDSecure = threeDSecure;
26
+ this.hostedFields = hostedFields; /* deprecated, hosted fields is the only option */
27
 
28
  if (billingName) {
29
  this.billingName = billingName;
47
  this._hostedFieldsTimeout = false;
48
 
49
  // Store the Ajax request for the updateData
 
50
  this._updateDataCallbacks = [];
51
+ this._updateDataTimeout = null;
52
 
53
  this.client = false;
54
 
55
  this.threeDSpecificCountries = false;
56
  this.threeDCountries = [];
57
 
58
+ this.supportedCards = [];
59
+ this.cardType = false;
60
+
61
  this.initEvents();
62
  },
63
 
84
  };
85
  },
86
 
87
+ /**
88
+ * Set the Kount data for the data collector
89
+ *
90
+ * @param environment
91
+ * @param kountId
92
+ */
93
+ setKount: function (environment, kountId) {
94
+ this.kountEnvironment = environment;
95
+ if (kountId != '') {
96
+ this.kountId = kountId;
97
+ }
98
+ },
99
+
100
+ /**
101
+ * Set the supported card types
102
+ *
103
+ * @param cardTypes
104
+ */
105
+ setSupportedCards: function (cardTypes) {
106
+ if (typeof cardTypes === 'string') {
107
+ cardTypes = cardTypes.split(',');
108
+ }
109
+ this.supportedCards = cardTypes;
110
+ },
111
+
112
  /**
113
  * Set the 3D secure specific countries
114
  *
415
  'maestro': 'ME'
416
  };
417
  if (typeof cardMapping[event.cards[0].type] !== undefined) {
418
+ this.cardType = cardMapping[event.cards[0].type];
419
+ this.updateCardType(false, this.cardType);
420
+
421
+ // Detect whether or not the card is supported
422
+ if (this.supportedCards.indexOf(this.cardType) == -1) {
423
+ this.showCardUnsupported();
424
+ } else {
425
+ this.removeCardUnsupported();
426
+ }
427
  } else {
428
+ this.removeCardUnsupported();
429
+ this.cardType = false;
430
  this.updateCardType(false, 'card');
431
  }
432
  }
433
  },
434
 
435
+ /**
436
+ * Show the card unsupported message by the card field
437
+ */
438
+ showCardUnsupported: function () {
439
+ if ($$('.braintree-card-input-field').length > 0) {
440
+ var parentElement = $$('.braintree-card-input-field').first().up();
441
+ if (parentElement.select('.braintree-card-unsupported').length == 0) {
442
+ var error = new Element('div', {class: 'braintree-card-unsupported'}).update(
443
+ Translator.translate('We\'re currently unable to process this card type, please try another card or payment method.')
444
+ );
445
+ parentElement.insert(error);
446
+ }
447
+ }
448
+ },
449
+
450
+ /**
451
+ * Remove the card unsupported message
452
+ */
453
+ removeCardUnsupported: function () {
454
+ if ($$('.braintree-card-unsupported').length > 0) {
455
+ $$('.braintree-card-unsupported').each(function (ele) {
456
+ ele.remove();
457
+ })
458
+ }
459
+ },
460
+
461
  /**
462
  * Retrieve the billing country ID
463
  *
509
  this.integration.setLoading();
510
  }
511
 
 
 
 
 
 
 
512
 
513
+ // Verify the nonce through 3Ds
514
+ this.verify3dSecureNonce(nonce, {
515
+ onSuccess: function (response) {
516
+ this.updateNonce(response.nonce);
517
+
518
+ if (typeof options.onSuccess === 'function') {
519
+ options.onSuccess();
520
+ }
521
+ }.bind(this),
522
+ onFailure: function () {
523
+ if (typeof options.onFailure === 'function') {
524
+ options.onFailure();
525
+ }
526
+ }.bind(this)
527
+ });
528
  } else {
529
  this.updateNonce(nonce);
530
 
874
  * @param params any extra data to be passed to the controller
875
  */
876
  updateData: function (callback, params) {
 
 
 
 
877
  this._updateDataCallbacks.push(callback);
 
878
 
879
+ clearTimeout(this._updateDataTimeout);
880
+ this._updateDataTimeout = setTimeout(function () {
881
+ var callbacks = this._updateDataCallbacks;
882
+ this._updateDataCallbacks = [];
883
 
884
+ this.fireEvent(this, 'integration.onBeforeUpdateData', {params: params});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
885
 
886
+ // Make a new ajax request to the server
887
+ new Ajax.Request(
888
+ this.quoteUrl,
889
+ {
890
+ method: 'post',
891
+ parameters: params,
892
+ onSuccess: function (transport) {
893
+ // Verify we have some response text
894
+ if (transport && (transport.responseJSON || transport.responseText)) {
895
 
896
+ // Parse the response from the server
897
+ var response = this._parseTransportAsJson(transport);
 
 
898
 
899
+ if (response.billingName != undefined) {
900
+ this.billingName = response.billingName;
901
+ }
902
+ if (response.billingPostcode != undefined) {
903
+ this.billingPostcode = response.billingPostcode;
904
+ }
905
+ if (response.billingCountryId != undefined) {
906
+ this.billingCountryId = response.billingCountryId;
907
+ }
908
+ if (response.grandTotal != undefined) {
909
+ this.amount = response.grandTotal;
910
+ }
911
+ if (response.threeDSecure != undefined) {
912
+ this.setThreeDSecure(response.threeDSecure);
913
+ }
914
 
915
+ // If PayPal is active update it
916
+ if (typeof vzeroPaypal != "undefined") {
917
+ // Update the totals within the PayPal system
918
+ if (response.grandTotal != undefined && response.currencyCode != undefined) {
919
+ vzeroPaypal.setPricing(response.grandTotal, response.currencyCode);
920
+ }
921
+ }
922
 
923
+ // Run any callbacks that have been stored
924
+ if (callbacks.length > 0) {
925
+ callbacks.each(function (callback) {
926
+ callback(response);
927
+ }.bind(this));
928
+ }
929
 
930
+ this.fireEvent(this, 'onAfterUpdateData', {response: response});
 
 
 
 
 
931
  }
932
+ }.bind(this),
933
+ onFailure: function () {
934
 
935
+ // Update Data failed
 
 
 
 
 
 
 
 
 
 
 
 
936
 
937
+ }.bind(this)
938
+ }
939
+ );
940
+ }.bind(this), 250);
941
  },
942
 
943
  /**
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Gene_Braintree</name>
4
- <version>2.1.3</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/mit-license.php">MIT License</license>
7
  <channel>community</channel>
@@ -36,9 +36,9 @@
36
  &lt;/ul&gt;</description>
37
  <notes>Connect your Magento store to Braintree to accept Credit Cards &amp;amp; PayPal using V.Zero SDK</notes>
38
  <authors><author><name>Dave Macaulay</name><user>dave</user><email>support@gene.co.uk</email></author></authors>
39
- <date>2016-11-01</date>
40
- <time>10:02:29</time>
41
- <contents><target name="magecommunity"><dir name="Gene"><dir name="Braintree"><dir name="Block"><dir name="Adminhtml"><dir name="Report"><dir name="Transactions"><file name="Grid.php" hash="32b32086548f62ae4aca4baf456b9ed2"/><file name="Search.php" hash="81d57c3744530f36c37782ce9d0f3a70"/></dir><file name="Transactions.php" hash="7afe45b49353e52b432aa0392d76a08e"/></dir><dir name="System"><dir name="Config"><dir name="Braintree"><file name="Config.php" hash="9a7b4dac33799961712b98094e4fd6ff"/><file name="Currency.php" hash="5855bb4e1eff5c095b07666baaa9e0e0"/><dir name="Kount"><file name="Ens.php" hash="56ef3f1e4da9d09b6bc8d0814a882358"/></dir><file name="Migration.php" hash="e967c3a0e07d510c6aac12c88a27a098"/><file name="Moduleversion.php" hash="b74179be6853486ad2801c29c0ea830d"/><file name="Version.php" hash="9b12af242a8e96018554b35cd3a51a4d"/></dir><file name="Migration.php" hash="e3c31756ea93ed40322583b5afb10cc1"/></dir></dir></dir><dir name="Cart"><file name="Totals.php" hash="55d1ce06bc84c9229f4f245e5aee8edd"/></dir><dir name="Creditcard"><file name="Info.php" hash="1d069fc769a1478532634978ce550aa6"/><file name="Saved.php" hash="2d0a3c3543d8eecc7c94a50cea7810d9"/><file name="Threedsecure.php" hash="7848d4ecac743be985f328fa969318bf"/></dir><file name="Creditcard.php" hash="2fae0e3085a4c479e9a7dedde9fa95da"/><dir name="Express"><file name="Abstract.php" hash="c3ff5b1586e939154fe3ba305f3d22cd"/><file name="Button.php" hash="476caeaca95f24e07be4737c932a6301"/><file name="Checkout.php" hash="dd0a143b74c5b3c8fab8463e6b6e4ee1"/><file name="Setup.php" hash="694c8c7c44a7670070f379af373d711f"/></dir><file name="Info.php" hash="8891038708e60a3e1974e007c2a32de1"/><file name="Js.php" hash="65b29618d7c330a9833a9dcbbc0d83a7"/><dir name="Paypal"><file name="Info.php" hash="be437bd72ca057fc641ce8ce79f475cc"/><file name="Saved.php" hash="6a99ef8a384d7ab8f4537e995867ec85"/></dir><file name="Paypal.php" hash="c861ed7a3206fef5324eaab752b7e9b6"/><dir name="Saved"><file name="Edit.php" hash="ae2d80ecab7cdda39b18054b057f2dc5"/></dir><file name="Saved.php" hash="782f17589219da087e57035a1c0b9a4a"/></dir><dir name="Helper"><file name="Data.php" hash="afd45e51f380acb08e2027348c3a2375"/></dir><dir name="Model"><file name="Debug.php" hash="f3360f71e2346881f93424792ed9f209"/><dir name="Entity"><file name="Setup.php" hash="c580e73ec53ac455698ee6b0ff005e39"/></dir><dir name="Kount"><file name="Ens.php" hash="3f672b000d43363406b1df7e2b52f620"/><file name="Rest.php" hash="5dfb5265a431da0210cb87dba023b7b6"/></dir><file name="Migration.php" hash="595f2f2d03b78ab057436609c8a73261"/><file name="Observer.php" hash="3d8c428e753d9335b2c9e748273924e9"/><dir name="Paymentmethod"><file name="Abstract.php" hash="d6c2a980770c401b5f311329198e2050"/><file name="Creditcard.php" hash="b5d67a0284d34f0dad7da2fa415b71ec"/><dir name="Legacy"><file name="Creditcard.php" hash="d31335cd41e72c54eccbe608e7257e02"/><file name="Paypal.php" hash="f929b4917e09007b226e6387bf4e1a22"/></dir><file name="Paypal.php" hash="b62caf908bd3845405ff62c1b96f960f"/></dir><file name="Saved.php" hash="3c9318122fbe56bdb915c837d834f392"/><dir name="Source"><file name="Cctype.php" hash="d76aa6c3a4bd798e3a47695f579d21d4"/><dir name="Creditcard"><file name="CaptureAction.php" hash="d39ff81be4b54620410ceeda7f960f0f"/><file name="FormIntegration.php" hash="9788f349430e0d48c9e13c262da3fe06"/><file name="PaymentAction.php" hash="d6e997ae4f6ed57129bf4d5da06a0a82"/></dir><file name="Environment.php" hash="5c2f5ce4d6d9f6f178102b90ec15aa2c"/><dir name="Paypal"><file name="CaptureAction.php" hash="0dd0c6da578aee4b7508f78cab982176"/><file name="Locale.php" hash="adc0ab30619eb3a34d8f5fe1087b07b0"/><file name="PaymentAction.php" hash="ab430eaf7ced39e9d6fd80ad0a7f6b3c"/><file name="Paymenttype.php" hash="48225fa7b3f5e54d81711397dd5bd96b"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Currency.php" hash="73cb15b1de303e88c487db4c585ef94e"/></dir><dir name="Source"><dir name="Payment"><file name="Threedsecurecountries.php" hash="d6c636f1e83676acd385312142221037"/></dir></dir></dir></dir><dir name="Wrapper"><file name="Braintree.php" hash="5c7611ac3d2c4152125c392716d48e9e"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Braintree"><file name="MigrationController.php" hash="84323fa4665ece605f6b8e906d0edd40"/></dir><file name="BraintreeController.php" hash="d7ece21342a7b4b37ee41ea0e7ff20ad"/></dir><file name="CheckoutController.php" hash="a38e423b0434f232f1cff247243f0509"/><file name="ExpressController.php" hash="29de8d457dd6b36848397fb756b16355"/><dir name="Kount"><file name="EnsController.php" hash="1db795afa1df901c37bbe48a3f01db2f"/></dir><file name="SavedController.php" hash="083777b1536e8dda604107af9f0081a9"/></dir><dir name="etc"><file name="adminhtml.xml" hash="c9c940beffa0ec19e4a1499a66f7fd12"/><file name="config.xml" hash="04bb26fe43e9363104851492a5949681"/><file name="system.xml" hash="82d2918ba9b9a09a8936a4e33a2bb91c"/></dir><dir name="sql"><dir name="gene_braintree_setup"><file name="install-0.1.0.php" hash="503f428384f687d3f55a19ea57450212"/><file name="upgrade-1.0.5.4-2.0.0.php" hash="62d37c35ba39a77ea14cad842f143393"/><file name="upgrade-2.0.0-2.0.1.php" hash="a08927707bb43a5c22b3b6ce3dd7a3c7"/><file name="upgrade-2.0.4-2.1.0.php" hash="e1b31c2459ea0aaebb679e456bab3ec1"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="gene"><file name="braintree.xml" hash="cb957d1c03c975a2ae691013fa985c02"/></dir></dir><dir name="template"><dir name="gene"><dir name="braintree"><dir name="creditcard"><file name="hostedfields.phtml" hash="4edf6db7f931248a2882be8d6d1e756c"/><file name="info.phtml" hash="2ae1e397b3a633dd305bc26c7b9c1065"/><file name="saved.phtml" hash="579ec8ca726de3b5bea8600663d1e61f"/><file name="threedsecure.phtml" hash="ee8ad689afde041c39dd92ffa5274883"/></dir><dir name="customer"><file name="edit.phtml" hash="ed8a9533f07fbfa36ec78623afd1a04d"/><file name="methods.phtml" hash="794ad8cb20314d1657a746b365c82540"/><file name="saved.phtml" hash="0457b0fa38f9db788133e54f359baa63"/></dir><dir name="express"><file name="button.phtml" hash="ef1c839a8f1a190610fcfce46bd78efd"/><file name="cart.phtml" hash="e695ba86a3e1c157d131193834a4d34d"/><file name="catalog.phtml" hash="8dea3debbcd26d3359b5618ffd37f71f"/><file name="error.phtml" hash="0ec2ea2f9b909d9f0543e5df83eea055"/><file name="shipping_details.phtml" hash="0bb6ceafaac0ba522278df310d6136e2"/></dir><dir name="js"><file name="aheadworks.phtml" hash="e03a075e174246c88ffb7f53c5be6e7b"/><file name="amasty.phtml" hash="f5cdae19e5a5f5a1cbc836406611dd80"/><file name="awesomecheckout.phtml" hash="92e14252435c4c314d28d5278544ca0e"/><file name="default.phtml" hash="a7fa1951187e2b85fa3c0edd6b08030e"/><file name="fancycheckout.phtml" hash="f603bcd50dea98dbb45c1ec8b692314c"/><file name="firecheckout.phtml" hash="b93d312e1c3127dbb51e74676d7da00a"/><file name="fme.phtml" hash="111a6f7c7f39aa5adc59694978779731"/><file name="idev.phtml" hash="22e15682c66a3a744c7ed08bfe761e54"/><file name="iwd.phtml" hash="05aefd0a2af552a494f1796082f4af96"/><file name="magestore.phtml" hash="3b5454efb603731334ac17a6760e774a"/><file name="multishipping.phtml" hash="c9e11fbc30e52e6354c8d7a5d9dff0ac"/><file name="oye.phtml" hash="939d2a614a14f98b6bf425c7fbcc762b"/><file name="setup.phtml" hash="881609152779d36a9993b4c63b4bb86a"/><file name="unicode.phtml" hash="18ee47529b28c6eaa40597eded2e6a37"/></dir><dir name="paypal"><file name="info.phtml" hash="5149b273730121e4dec3c3179820f747"/><file name="saved.phtml" hash="3dd56f96bcdd14be594d355ae8fff329"/></dir><file name="paypal.phtml" hash="d12c20e5fb76f31270a5d47061e42715"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="gene"><file name="braintree.xml" hash="f3585bf793de534a1b3d60b01e835dec"/></dir></dir><dir name="template"><dir name="gene"><dir name="braintree"><dir name="creditcard"><file name="hostedfields.phtml" hash="f768711e61eaca4b048927e189c5195d"/><file name="info.phtml" hash="958d514582e3de1f91f5e0f7a7169b47"/><file name="saved.phtml" hash="ca27adb601aebf97cd25a892082a8663"/></dir><file name="js.phtml" hash="d4ca65543b38a851f160799fade24849"/><dir name="paypal"><file name="info.phtml" hash="0485ea82dc9cc8ebea092b378672f1cd"/><file name="saved.phtml" hash="779ca8e907d7d463eafce58dfaf94f0c"/></dir><file name="paypal.phtml" hash="f81578f64c8a30560299bd993d8e996d"/><dir name="system"><dir name="config"><file name="migration.phtml" hash="8ef2a5e5561d7909d065c987ded5e592"/></dir></dir><dir name="transactions"><file name="index.phtml" hash="1791b6393f319616dd79c0b46e391847"/><file name="search.phtml" hash="1682ce6200681681f0ce3c848e2e6694"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Gene_Braintree.xml" hash="8c0ffda8566dca2f0b98a999921e3e55"/></dir></target><target name="mageweb"><dir name="js"><dir name="gene"><dir name="braintree"><dir name="2.1.3"><dir name="express"><file name="abstract-min.js" hash="8b9af774fc6a9f0610f4f80ac218f1ef"/><file name="paypal-min.js" hash="d22f702b4cda10e2843512d53548311b"/></dir><file name="vzero-integration-min.js" hash="68feb9ffc1e6c5231e177583a895f407"/><file name="vzero-min.js" hash="94aac8be25c14442492ebdd64af6fc0c"/><file name="vzero-paypal-min.js" hash="33cda474d266cb596c4b85f057d47134"/></dir><file name="config.codekit" hash="6d6ea5edd3af972d3e797d2d67e220ad"/><dir name="express"><file name="abstract-min.js" hash="8b9af774fc6a9f0610f4f80ac218f1ef"/></dir><dir name="source"><dir name="express"><file name="abstract.js" hash="f057fd97081c785c43751cd1b07c4d42"/><file name="paypal.js" hash="2b474188838452e0257be66ed1d91046"/></dir><file name="vzero-integration.js" hash="5fcdc966257c34cf3d13f23f3b8dcdba"/><file name="vzero-paypal.js" hash="d670587d88f396ba8111d5386905bc39"/><file name="vzero.js" hash="bac49e190dd07400df057475acf11d63"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="images"><dir name="gene"><dir name="braintree"><file name="AE.png" hash="6b6f405105413b0723a62ee498f88bf6"/><file name="DI.png" hash="d8e3c3022dda9e723f466b8976ae428f"/><file name="JCB.png" hash="3aa9a71ed8a1d6610bbe0dfe2040e29e"/><file name="MC.png" hash="1fcd14928245139962b72f9368bdbe32"/><file name="ME.png" hash="b9389913c47b9546a67f907fcca73706"/><file name="PP.png" hash="b4946bccba574e86c9716a4986e21c36"/><file name="VI.png" hash="c9f74d1d54e61ab2c748f45a4bdface0"/><file name="card.png" hash="66e16f8c573fad93bb0d62258dce28bb"/><file name="paypal-loading.gif" hash="078a2daf55245b227c09a7bed86750c6"/><file name="paypal.png" hash="40d5f74305e565bd14aef19bcf696541"/></dir><file name="loader.gif" hash="f48ee069890b16455c3ddcacee9b5f75"/><file name="loader-white.gif" hash="1fc0e911558e8dfe77cfdfafa0d38f88"/></dir></dir><dir name="css"><dir name="gene"><dir name="braintree"><dir name="account"><file name="account.less" hash="ddf6bf208f290316300ab20682f34473"/></dir><file name="account.css" hash="73bb46f85320b2f2b4de9beb6c0e0bd6"/><file name="aheadworks.css" hash="213006228b4441db7b58f1b3ae9748e8"/><file name="amasty.css" hash="e59eba0c3fbd14df941d7492a0e478e4"/><file name="awesomecheckout.css" hash="569f3675ae5dbf09d069c4553c61a26d"/><file name="config.codekit" hash="506bfad608130ba1ce130508695d54d9"/><dir name="core"><file name="_general.less" hash="5848708373d8ed5eda5e5b23c3e4e05c"/><file name="_hostedfields.less" hash="43b3a8c9c102c6babbe7eada4a0bcd3d"/><file name="_paypal.less" hash="df0239894dfef5c905bea44938ee4658"/><file name="_saved.less" hash="66ec8d894e336f9934a1e54972c4b220"/></dir><file name="default.css" hash="b5a9c005aad60217cb4455f21ce04856"/><file name="express.css" hash="1c9eb3b9abb7e798b65701b2815d2e07"/><file name="express.less" hash="29acfc18e38f300972f27cfd44ca41c2"/><file name="fancycheckout.css" hash="45d1129b4d8a660e574f0bb8cb069cfe"/><file name="firecheckout.css" hash="5d211881940d75fc8b50cd5c4ec96236"/><file name="fme.css" hash="988e97aaaf2565908504a62114d6c6bb"/><file name="idev.css" hash="3c90d7d93fc4d61a3bf1c75e9bb15c82"/><dir name="integrations"><file name="aheadworks.less" hash="09b0304383e198885f030119c15641f7"/><file name="amasty.less" hash="4cdf236e1d44112205750cefa11448b4"/><file name="awesomecheckout.less" hash="e774da637a5c6bbdb2e5decc998afae1"/><file name="default.less" hash="d366d4560ed1ce3e9e120309e56bec2f"/><file name="fancycheckout.less" hash="18281c460bb32da164964abe585b092b"/><file name="firecheckout.less" hash="459704b8b6efca52fcee7c335b3ad625"/><file name="fme.less" hash="580ed66608560fcd1195246c22e3559c"/><file name="idev.less" hash="47485cc963e16d12e673c06cd9efe4b1"/><file name="iwd.less" hash="5081477c7946e0f5cf8cc4198895ca11"/><file name="magestore.less" hash="0af5cd105be3995dc2044d33f990bbb5"/><file name="oye.less" hash="06a0f79190b16dfbce3aec6d14f07461"/><file name="unicode.less" hash="1416abe9a38965d9aead022b238f7d4f"/></dir><file name="iwd.css" hash="b0010f4c529babedcebbd1cdad6b7f13"/><file name="magestore.css" hash="25899483163212c97418097d2c6b6209"/><file name="oye.css" hash="56746e9955d428fa57d3c728cd9ed671"/><file name="unicode.css" hash="3d1878035493ceddf88b94a5b6d2a4be"/><file name=".DS_Store" hash="1405352d803d5c88cf3ec19a82f173d0"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><dir name="gene"><dir name="braintree"><file name="adminhtml.css" hash="affb40183f3620e4ee157daf613dc2a9"/><file name="adminhtml.less" hash="b3a4d504055c85d872c5b9544d192840"/><file name="config.codekit" hash="00c3aa866faad2384b4042057d6eaeec"/><file name="migration.css" hash="158e143a99028313d6ad6f6612112dd4"/><file name="migration.less" hash="bbf09530cf530f78f4a7c3229194c5ff"/><file name=".DS_Store" hash="63617e9dd9988a3d3773937a3f7e2f9a"/></dir></dir></dir><dir name="images"><dir name="gene"><dir name="braintree"><file name="AE.png" hash="6b6f405105413b0723a62ee498f88bf6"/><file name="DI.png" hash="d8e3c3022dda9e723f466b8976ae428f"/><file name="JCB.png" hash="3aa9a71ed8a1d6610bbe0dfe2040e29e"/><file name="MC.png" hash="1fcd14928245139962b72f9368bdbe32"/><file name="ME.png" hash="b9389913c47b9546a67f907fcca73706"/><file name="PP.png" hash="b4946bccba574e86c9716a4986e21c36"/><file name="VI.png" hash="c9f74d1d54e61ab2c748f45a4bdface0"/><file name="card.png" hash="66e16f8c573fad93bb0d62258dce28bb"/><dir name="migration"><file name="braintree.png" hash="396d721824a86b169ce0055090ce9766"/><file name="gene-logo.png" hash="16efb1b148acc59c46c84a21d726b6e9"/><file name="loader.gif" hash="66b9100930b8e58d46acf2e13d41f7ea"/></dir></dir><file name="loader.gif" hash="f48ee069890b16455c3ddcacee9b5f75"/></dir></dir></dir></dir></dir></target><target name="magelib"><dir name="Gene"><dir name="Braintree"><file name="autoload.php" hash="e991881d055b037b316776d6332e7f72"/><dir name="braintree"><dir name="braintree_php"><file name="CHANGELOG.md" hash="06dc0857eec40e158267c271b2042845"/><file name="LICENSE" hash="5ba90c75203e338c9479ed8237839feb"/><file name="README.md" hash="e5c49652ce9f9857af6a1c3f02841bfa"/><file name="Rakefile" hash="3ca648a6b2c78b0546bf36323998036e"/><file name="ci.sh" hash="8abad344d97531d13613833d1d081954"/><file name="composer.json" hash="7f925434c3334ed83d7f73f15d937985"/><dir name="lib"><dir name="Braintree"><file name="AccountUpdaterDailyReport.php" hash="e1bb254f0dc2482190b2a3cf57ca8ecc"/><file name="AddOn.php" hash="82925560fd6d09575150d03851132999"/><file name="AddOnGateway.php" hash="71f1cf435ad4a0f846cbdb61f54582b6"/><file name="Address.php" hash="38b64d0235e498f761d871446670c9d3"/><file name="AddressGateway.php" hash="1b8889c596f9a10ec351f2cc2a59fabe"/><file name="AmexExpressCheckoutCard.php" hash="a4b48e18f08686aa5aaeec4849ff54a6"/><file name="AndroidPayCard.php" hash="5b9412761d364c39313925a0b1aa5308"/><file name="ApplePayCard.php" hash="4879b7885a3a3f549a3cc661b1f3a145"/><file name="Base.php" hash="33edbe8c326501ef64e6701e25ce8eb4"/><file name="ClientToken.php" hash="81e2f643f912c8943560008d2fa7869d"/><file name="ClientTokenGateway.php" hash="46c9885e3c3f40cc60d98dd94ccfa849"/><file name="CoinbaseAccount.php" hash="00d363870a777a39b89924092b8aba7f"/><file name="Collection.php" hash="18bed88fe994bab06d91c4f11f9e5e62"/><file name="Configuration.php" hash="9af3f355124c7bcfcb1022553d2680dc"/><file name="CredentialsParser.php" hash="76aea512fec3932cf3311ba96e855728"/><file name="CreditCard.php" hash="7510387703f315770542ae280ed908b9"/><file name="CreditCardGateway.php" hash="3afc61390565f93f227797c180623340"/><file name="CreditCardVerification.php" hash="b06ad08b7120572732498d2035a25952"/><file name="CreditCardVerificationGateway.php" hash="38a299c6e9a500fbf7e962e39f34e4bf"/><file name="CreditCardVerificationSearch.php" hash="93e08c9a258af84003700013d497cd82"/><file name="Customer.php" hash="b0d3236dcb0f4a421431e8d7b64bdfad"/><file name="CustomerGateway.php" hash="632a4aa892bbc99d84987ee4e235d577"/><file name="CustomerSearch.php" hash="8e8d024b951a4baa458556d4281fe988"/><file name="Descriptor.php" hash="97dc19a001fb6845c0c0eb0ee396f9bf"/><file name="Digest.php" hash="3105cc8f66a176f636b8f5a1075638a0"/><file name="Disbursement.php" hash="851eb18f89594984838ce1c59f8e6d8c"/><file name="DisbursementDetails.php" hash="ebe67e4dfb543f2b81f2f6de6de4bdfa"/><file name="Discount.php" hash="ba59054dd8d42d600c6dfb5813267150"/><file name="DiscountGateway.php" hash="8c354a122a23e3ad2136905e1c9b1d95"/><dir name="Dispute"><file name="TransactionDetails.php" hash="b56e01778ab14aaef2a5a9f8bc85d695"/></dir><file name="Dispute.php" hash="b374f0814c6c237cba252093ad37ee82"/><file name="EqualityNode.php" hash="62715d694920f751dfa270ee6234eb43"/><dir name="Error"><file name="Codes.php" hash="17409bb5360708c3a011ccb474b92ded"/><file name="ErrorCollection.php" hash="5bfc2fecced63c0acca329760619ff38"/><file name="Validation.php" hash="177a09214e3832293dd74a6cde911c48"/><file name="ValidationErrorCollection.php" hash="a7d24a31592d1e664245bbc7d0bca60a"/></dir><file name="EuropeBankAccount.php" hash="1652f5c0400e3704de4077a5b9e6e714"/><dir name="Exception"><file name="Authentication.php" hash="5db82263dddde988ddb228c840156bb9"/><file name="Authorization.php" hash="d76c984a4699f10844f58d2f8bcec5d6"/><file name="Configuration.php" hash="225dfca2a3fcb48620e971a03acc6213"/><file name="DownForMaintenance.php" hash="60ec727ae01bef4a7a9242d55be70d67"/><file name="ForgedQueryString.php" hash="b0a150c17296046e3777879256f5fcea"/><file name="InvalidChallenge.php" hash="d825f5fc7acf8dd0e92dc886e7351721"/><file name="InvalidSignature.php" hash="a627af00c19b01a92fe01d432e3296d9"/><file name="NotFound.php" hash="9f28a7c11a5388c85de2f050f5a2a68d"/><file name="SSLCaFileNotFound.php" hash="c4b9474a14791ca4bd40f94e55428ecb"/><file name="SSLCertificate.php" hash="96dcb90043e9ce3668ef68568b932d77"/><file name="ServerError.php" hash="a095932cac27c6ebf707b217efb3d2b1"/><file name="TestOperationPerformedInProduction.php" hash="156421e2ccb2ac69c051516b1d6a6707"/><file name="Timeout.php" hash="834026b48d9a2317bf9e487174158be4"/><file name="TooManyRequests.php" hash="0e6d904113c3d8a3a60136e1ea5db00f"/><file name="Unexpected.php" hash="f09fd761eb5909327d02f1fa2a2dd894"/><file name="UpgradeRequired.php" hash="6cd48333f93a0a96ddd58654e5f27f85"/><file name="ValidationsFailed.php" hash="b7b129ec4b3d72d27947e8b11b6ebca2"/></dir><file name="Exception.php" hash="29a1f3a94ed378d93879d5d64858fbaf"/><file name="FacilitatorDetails.php" hash="7a25557b06c663197d1aea39bd93e776"/><file name="Gateway.php" hash="116919442d2d4699d05ab272a3711485"/><file name="Http.php" hash="3440f599ee47ba57a6f08958763af14e"/><file name="Instance.php" hash="64573829ba050b6d291d082b50382e46"/><file name="IsNode.php" hash="783c6ad65c6030a12ad52253cd5bc1a8"/><file name="KeyValueNode.php" hash="6668a312a6aaaddbdcfc940775ed5820"/><file name="Merchant.php" hash="b1f8444fc109708a43017d6cda9536a2"/><dir name="MerchantAccount"><file name="AddressDetails.php" hash="540f9e79b8df5da5267835dd01db45c1"/><file name="BusinessDetails.php" hash="ca8a0dc16bce3fff5831fd22652b2f6b"/><file name="FundingDetails.php" hash="9ba992a0dda1be9a0cf8bd8b53ea33be"/><file name="IndividualDetails.php" hash="4855a6aa64b35ecab7bada4e3e0fc0c3"/></dir><file name="MerchantAccount.php" hash="a4ba2e530164c06b8e50ef8ff10f76f2"/><file name="MerchantAccountGateway.php" hash="c966aa6a8a5700e60993dec8833f36de"/><file name="MerchantGateway.php" hash="e9d0fc529b7a32f7080201991deb29d1"/><file name="Modification.php" hash="5df7d89d7365e9edf7235f09b9b7ced4"/><file name="MultipleValueNode.php" hash="2555632262d8b7d81a69739817e1887d"/><file name="MultipleValueOrTextNode.php" hash="9d4a49bc8051d47fd820da2ffef03936"/><file name="OAuthCredentials.php" hash="4a6991039aff0d1c9917c02f9548b4a3"/><file name="OAuthGateway.php" hash="b7c38d9a61fa4cfc749efcdb5dfcf7c9"/><file name="OAuthResult.php" hash="ea859d4da557c860e8f36793f66455e4"/><file name="PartialMatchNode.php" hash="084258b5f9f39a493ca6b02e7019a101"/><file name="PartnerMerchant.php" hash="0659cebbbba2d128c263f6785ece7cbf"/><file name="PayPalAccount.php" hash="7a1654759201f54bb1a58d08362ddc28"/><file name="PayPalAccountGateway.php" hash="865826f46ce0af80404dea0c51632bd5"/><file name="PaymentInstrumentType.php" hash="ce15f765f0cec73a04c9debda3052d6d"/><file name="PaymentMethod.php" hash="e94336d5fdde2d03747551b09fc5831f"/><file name="PaymentMethodGateway.php" hash="4830027d7105f881700fc4bc52dbe43f"/><file name="PaymentMethodNonce.php" hash="6ab72220362afa9ec1e9e1fe1da049b6"/><file name="PaymentMethodNonceGateway.php" hash="393c1736d0290d0b0e8d9732692c475c"/><file name="Plan.php" hash="fcf369071d74d273604fc63ea2548f2b"/><file name="PlanGateway.php" hash="8713f672e916f26460b06a156b511e32"/><file name="RangeNode.php" hash="a3f74af2c4811a68c9f31ca136cc1c82"/><file name="ResourceCollection.php" hash="d52323710fbe909cc96e0b09509c57d5"/><dir name="Result"><file name="CreditCardVerification.php" hash="80274f1df14aff2fc83153f899084146"/><file name="Error.php" hash="1a43f4387b95e960023899356dfa971e"/><file name="Successful.php" hash="a07de8d191e4c425ea139e585b662245"/></dir><file name="RiskData.php" hash="61de70d88d4b40168e54cea84d2afc70"/><file name="SettlementBatchSummary.php" hash="73a3b6b583b5a852b3d1437b2d62ec5f"/><file name="SettlementBatchSummaryGateway.php" hash="d66b1708f32d1bcc4d738bf39df649b7"/><file name="SignatureService.php" hash="566a5d18567a513f4a527ebf3c8cd410"/><dir name="Subscription"><file name="StatusDetails.php" hash="cfec6a5f756091d72642b2505c2cc523"/></dir><file name="Subscription.php" hash="12477b5b2174c2af515a241b1ca0c494"/><file name="SubscriptionGateway.php" hash="43d59eb14e8426de39b86af042d48e11"/><file name="SubscriptionSearch.php" hash="e97a9a2a7187058082afab7701f37b1a"/><dir name="Test"><file name="CreditCardNumbers.php" hash="7265dd0e237fdc2ed6549218852734ee"/><file name="MerchantAccount.php" hash="072dd9f4c532d59b4d29cf1573046969"/><file name="Nonces.php" hash="ed136a194d09fd372b904b67c22ce14d"/><file name="Transaction.php" hash="37136a4a49213b808e05e6072ea47745"/><file name="TransactionAmounts.php" hash="d3ee44240274fcc671cb40f24c7f6887"/><file name="VenmoSdk.php" hash="33de614daaf4dad09f1165d74d08cdb0"/></dir><file name="TestingGateway.php" hash="3ec7fe4a5a11f2db91b5ecaa6ab6d1c1"/><file name="TextNode.php" hash="da1cc61af2896b945552318d67bd2a46"/><file name="ThreeDSecureInfo.php" hash="8cbb2a63c256368123cb01f2e2a2a194"/><dir name="Transaction"><file name="AddressDetails.php" hash="080b64d3fcf6f61759b227e570de6faf"/><file name="AmexExpressCheckoutCardDetails.php" hash="c4cde5f34ebe934e7a712cb1a75c1170"/><file name="AndroidPayCardDetails.php" hash="708a09910991517ad4507d0f1a82f8c7"/><file name="ApplePayCardDetails.php" hash="26093a57a1f0525210f3295a5a6b834c"/><file name="CoinbaseDetails.php" hash="ebd00610e9cfe1b67e6f3ff518f142c8"/><file name="CreditCardDetails.php" hash="81f0a10e1b56af0b06d2fa858ee56287"/><file name="CustomerDetails.php" hash="76e163794fd2e32d70ece5a780a80ef6"/><file name="EuropeBankAccountDetails.php" hash="440f492270d7f50d2eeb7f3c93e48ffe"/><file name="PayPalDetails.php" hash="4e38ea53a13980378d44b8f512f92411"/><file name="StatusDetails.php" hash="2914ad7f3b8a8244694f95949660b99e"/><file name="SubscriptionDetails.php" hash="009ba167870d9d3558d9186401c970e6"/><file name="UsBankAccountDetails.php" hash="ac74d6fdcfa4b9253c6efe7c4d57f2db"/><file name="VenmoAccountDetails.php" hash="097e98658fe058a4e82c50129dd6a72f"/></dir><file name="Transaction.php" hash="a98cf6120ea3ac199db9b7547eeece28"/><file name="TransactionGateway.php" hash="f06999aa9248851f2c5f4061fc48fe45"/><file name="TransactionSearch.php" hash="634b7a51905a41c1f037f186b53b540e"/><file name="TransparentRedirect.php" hash="63a525df15682ecf4511cdaf3154c954"/><file name="TransparentRedirectGateway.php" hash="9a56b5d98c562316e346bcedf0f04bfd"/><file name="UnknownPaymentMethod.php" hash="f3731d70766ae5ecab1017fa33d06b7f"/><file name="UsBankAccount.php" hash="eed3e14a2b88f10cbc33734b5347e00e"/><file name="UsBankAccountGateway.php" hash="4d0082aac6cfe4b04e9bf1adf976c02b"/><file name="Util.php" hash="bd31461e0b7a67d5686d325fe32c5350"/><file name="VenmoAccount.php" hash="fa0f15888eda08545321eb20178fe4ac"/><file name="Version.php" hash="aada06398ac1c7993d4b10f7bd6f75bd"/><file name="WebhookNotification.php" hash="bbe5859def86dbde4298e09470cccacc"/><file name="WebhookTesting.php" hash="4fa3fb7c1c4591a30cb073cbd4c2ec5a"/><dir name="Xml"><file name="Generator.php" hash="b7b28436de76fc7b5ca13e556963d28e"/><file name="Parser.php" hash="29fbccf32c05e9dcf07bb3a40ea119c9"/></dir><file name="Xml.php" hash="e60971869ae63c3f258eac082ff9a3bf"/></dir><file name="Braintree.php" hash="e6dbb615b697b7641d9b81b8811a9d52"/><file name="autoload.php" hash="700bd7dbe39f8d89d925ccbb33651898"/><dir name="ssl"><file name="api_braintreegateway_com.ca.crt" hash="d1155107b085a1ee04dd13a634b00c42"/></dir></dir><file name="phpunit.xml.dist" hash="80635d87e10eb5bf1a4ba767d168eba8"/><dir name="tests"><dir name="Braintree"><file name="CreditCardDefaults.php" hash="caceb16d3b2fc21f7dc2bf6244000485"/><dir name="CreditCardNumbers"><file name="CardTypeIndicators.php" hash="fca486e18deed295d0d9961b19e71c6e"/></dir><file name="OAuthTestHelper.php" hash="7678b026a2d19450150999999a0cddcc"/></dir><file name="Helper.php" hash="d16f5164eb17af1eec938f07a975f93f"/><file name="SanityTest.php" hash="e75fcbab2870381b960a0583fb9d3ce3"/><file name="Setup.php" hash="d21ea963b4103c6f082aff93a97d75b9"/><dir name="integration"><file name="AddOnsTest.php" hash="6caa89249c72d7746cb1de6ef1460079"/><file name="AddressTest.php" hash="b78f498609625e2d2f5eadf5c07dc303"/><file name="ClientTokenTest.php" hash="83d93f7812082bcbdf0099652b98b183"/><file name="CreditCardTest.php" hash="c2c5eb3bd53c701ce5a259da11b7743f"/><file name="CreditCardVerificationAdvancedSearchTest.php" hash="1b741a14706c14fe27b6383f37989ea8"/><file name="CreditCardVerificationTest.php" hash="7f29467a7f84a029fc4ccb36b52b5ced"/><file name="CustomerAdvancedSearchTest.php" hash="f1657f3ef6992d7ab2dfddb60e88f5ce"/><file name="CustomerTest.php" hash="9636390eeb312e02f0ddaeab79c1d1ff"/><file name="DisbursementTest.php" hash="26505b6c688c23f52617aff41d301020"/><file name="DiscountTest.php" hash="0fc13502d1323679af95ca7e0a5a2622"/><dir name="Error"><file name="ErrorCollectionTest.php" hash="f72638e7a4ce876ee83740f11986a3a8"/><file name="ValidationErrorCollectionTest.php" hash="3db5c126101fd5878d0862af5afb921a"/></dir><file name="EuropeBankAccountTest.php" hash="1fa1e38472ea992c558f20284d50fea3"/><file name="HttpClientApi.php" hash="6f76f301d78ae0b01e080e25c3c9d666"/><file name="HttpTest.php" hash="1a9d8ad93330b4032480c7db7bc1e385"/><file name="MerchantAccountTest.php" hash="023a6ec18b9ecc4996c1d7af5df217ba"/><file name="MerchantTest.php" hash="6be39a24c21307e95c8d18b2f3cbbf09"/><file name="MultipleValueNodeTest.php" hash="1b21f6431b0dc593f18d887ed88a30f3"/><file name="OAuthTest.php" hash="cf09acef408069c6131ede44f0004cd3"/><file name="PayPalAccountTest.php" hash="8bfdfdcb1e08687d25bf80260051d820"/><file name="PaymentMethodNonceTest.php" hash="7cc2cdb6c6e72fc1750ee09f134e22c9"/><file name="PaymentMethodTest.php" hash="e29e0b1ec325c15a7723d59761a344c3"/><file name="PlanTest.php" hash="bbc260c8a0cd36869f0de96c4639cb2a"/><dir name="Result"><file name="ErrorTest.php" hash="3ff0aedd05f5868c8e28bb7f2f98f8f8"/></dir><file name="SettlementBatchSummaryTest.php" hash="86e8847f6cdf4c6120b473e7bdafc196"/><file name="SubscriptionHelper.php" hash="0d717139be147a5d72f16cd4ff465d22"/><file name="SubscriptionSearchTest.php" hash="712536a2484872abf8b6b3003e67c0bd"/><file name="SubscriptionTest.php" hash="1e4ff49856af4942dc14c199764ee82c"/><file name="TestTransactionTest.php" hash="27cce6bf160d8777358332eb9d7a7eae"/><file name="TextNodeTest.php" hash="6f8afc0387144088127d65ce3e926cba"/><file name="TransactionAdvancedSearchTest.php" hash="430d532eec84d163a6b9e5d7170156f0"/><file name="TransactionTest.php" hash="ddc9cd18c3062019edfa82a4ede798b9"/><file name="TransparentRedirectTest.php" hash="632073911d63ec46fedc0007b8e1d96c"/><file name="UsBankAccountTest.php" hash="87a1b99e82b385fb1fcc9f0ac214057d"/></dir><dir name="unit"><file name="AddOnTest.php" hash="1e9ca24b1d1076d838868b46f3b8db31"/><file name="AddressTest.php" hash="971b65131de89d97627d5fce6d23948f"/><file name="BraintreeTest.php" hash="d5661eb2e0d23eec624cc039bc209baa"/><dir name="ClientApi"><file name="ClientTokenTest.php" hash="ecd06e8aa6238f1a2b4af69d0e8de798"/></dir><file name="ConfigurationTest.php" hash="e8a6feb7044965075a99fcb57eeac625"/><file name="CreditCardTest.php" hash="aff6920d4a64f82c25947a0aad622491"/><file name="CreditCardVerificationTest.php" hash="aadef2854162a79ec7f974a4511c74dc"/><file name="CustomerTest.php" hash="b34959a82a0a9ac2f917086135e30ec3"/><file name="DigestTest.php" hash="91a198a97d0469223d9cda1c032c82cf"/><file name="DisbursementDetailsTest.php" hash="5417ff00d8780050cd3468e891a46f7c"/><file name="DisbursementTest.php" hash="7df421883c72e00553827d5c0e7816d7"/><file name="DiscountTest.php" hash="cda7b5ba54e11c4b0ed852e146236d6d"/><file name="GatewayTest.php" hash="182a77395c8c791754f8f9fd70f1561a"/><file name="InstanceTest.php" hash="fc35293e35840a740e44da14929f13ce"/><file name="MerchantAccountTest.php" hash="2938575dc44d37d494519750e7699c0c"/><file name="MultipleValueNodeTest.php" hash="0821a1e0ea469210e4cd7ac2dcdd2f3a"/><file name="MultipleValueOrTextNodeTest.php" hash="cb82ba391dbd216a413da9777f50a4d7"/><file name="OAuthTest.php" hash="450ee30874c358112731fb39e0c7a898"/><file name="PayPalAccountTest.php" hash="5d5ed45062b3f4fddf38a95fda7fcec0"/><file name="PaymentMethodTest.php" hash="81db0a16f1c77a2bade9e008816c7691"/><file name="RangeNodeTest.php" hash="c1aef8c246c603736ed5a7000a150f4a"/><file name="ResourceCollectionTest.php" hash="5b22b79a4e50f486c2f3e9e268cf9d80"/><dir name="Result"><file name="ErrorTest.php" hash="bfa4fbcb181cd8a7fbc05c86f617899b"/><file name="SuccessfulTest.php" hash="a809212d472948c166915eb901f641d7"/></dir><file name="SanityTest.php" hash="80485b716aba99b6eba814c73466994b"/><file name="SubscriptionSearchTest.php" hash="60408ca6fa6249a0edabc6e0d5ffc637"/><file name="SubscriptionTest.php" hash="b53934d3cd0d20df7edac1d658e66f0a"/><file name="TextNodeTest.php" hash="5bce91e12b012a3d55f3478721d85060"/><file name="TransactionTest.php" hash="a9452fffc9b6399540f7cd575f179d80"/><file name="TransparentRedirectTest.php" hash="5a3c18b3b30ddaaedd82b146aaa0b2a1"/><file name="UnknownPaymentMethodTest.php" hash="99dba90eebaee849d207d8c8eaf1146c"/><file name="UtilTest.php" hash="e7a45f618244339912f1e57687d28c29"/><file name="WebhookNotificationTest.php" hash="367564d0667c80354881e4e185b87127"/><file name="Xml_GeneratorTest.php" hash="c83aeb1546ab2d4165d6ea970b66aed3"/><file name="Xml_ParserTest.php" hash="00bd1b07f1b34df846e70efc0788bcc3"/></dir></dir><file name=".gitignore" hash="bfbaaa10ed6adceb1ea6602d629c0273"/></dir></dir><dir name="composer"><file name="ClassLoader.php" hash="c67ebce5ff31e99311ceb750202adf2e"/><file name="LICENSE" hash="9b01fc9e0129adc080344653fbcbbc0f"/><file name="autoload_classmap.php" hash="8645d3a4e3ad87e7cf4d88a46717aab4"/><file name="autoload_namespaces.php" hash="6bcb68a8ffccb365c563b6de56eb356f"/><file name="autoload_psr4.php" hash="b8019895be4802f81f71a93ef6245399"/><file name="autoload_real.php" hash="45569e6f98c3747a3f2f331b764ed50f"/><file name="autoload_static.php" hash="40ab82695bb09efa8c888979f369175a"/><file name="installed.json" hash="b53f52e83f1cda64d0660f05eb3a15ac"/></dir></dir><file name="composer.json" hash="f39b9e8fb5b344fdce96725859f949c2"/><file name="composer.lock" hash="b967b686cc6409d06b61da171b17ae28"/></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="Gene_Braintree.csv" hash="b0c520cbdf0f42b11c8c6dfafbe999bd"/></dir></dir></target></contents>
42
  <compatible/>
43
  <dependencies><required><php><min>5.4.0</min><max>6.0.0</max></php><package><name></name><channel>connect.magentocommerce.com/core</channel><min></min><max></max></package></required></dependencies>
44
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Gene_Braintree</name>
4
+ <version>2.1.4</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/mit-license.php">MIT License</license>
7
  <channel>community</channel>
36
  &lt;/ul&gt;</description>
37
  <notes>Connect your Magento store to Braintree to accept Credit Cards &amp;amp; PayPal using V.Zero SDK</notes>
38
  <authors><author><name>Dave Macaulay</name><user>dave</user><email>support@gene.co.uk</email></author></authors>
39
+ <date>2016-11-09</date>
40
+ <time>09:06:41</time>
41
+ <contents><target name="magecommunity"><dir name="Gene"><dir name="Braintree"><dir name="Block"><dir name="Adminhtml"><dir name="Report"><dir name="Transactions"><file name="Grid.php" hash="32b32086548f62ae4aca4baf456b9ed2"/><file name="Search.php" hash="81d57c3744530f36c37782ce9d0f3a70"/></dir><file name="Transactions.php" hash="7afe45b49353e52b432aa0392d76a08e"/></dir><dir name="System"><dir name="Config"><dir name="Braintree"><file name="Config.php" hash="9a7b4dac33799961712b98094e4fd6ff"/><file name="Currency.php" hash="5855bb4e1eff5c095b07666baaa9e0e0"/><dir name="Kount"><file name="Ens.php" hash="56ef3f1e4da9d09b6bc8d0814a882358"/></dir><file name="Migration.php" hash="e967c3a0e07d510c6aac12c88a27a098"/><file name="Moduleversion.php" hash="b74179be6853486ad2801c29c0ea830d"/><file name="Version.php" hash="9b12af242a8e96018554b35cd3a51a4d"/></dir><file name="Migration.php" hash="e3c31756ea93ed40322583b5afb10cc1"/></dir></dir></dir><dir name="Cart"><file name="Totals.php" hash="55d1ce06bc84c9229f4f245e5aee8edd"/></dir><dir name="Creditcard"><file name="Info.php" hash="1d069fc769a1478532634978ce550aa6"/><file name="Saved.php" hash="2d0a3c3543d8eecc7c94a50cea7810d9"/><file name="Threedsecure.php" hash="7848d4ecac743be985f328fa969318bf"/></dir><file name="Creditcard.php" hash="2fae0e3085a4c479e9a7dedde9fa95da"/><dir name="Express"><file name="Abstract.php" hash="c3ff5b1586e939154fe3ba305f3d22cd"/><file name="Button.php" hash="476caeaca95f24e07be4737c932a6301"/><file name="Checkout.php" hash="dd0a143b74c5b3c8fab8463e6b6e4ee1"/><file name="Setup.php" hash="694c8c7c44a7670070f379af373d711f"/></dir><file name="Info.php" hash="8891038708e60a3e1974e007c2a32de1"/><file name="Js.php" hash="590b361b2bcbd381c5e5e6398398c235"/><dir name="Paypal"><file name="Info.php" hash="be437bd72ca057fc641ce8ce79f475cc"/><file name="Saved.php" hash="6a99ef8a384d7ab8f4537e995867ec85"/></dir><file name="Paypal.php" hash="c861ed7a3206fef5324eaab752b7e9b6"/><dir name="Saved"><file name="Edit.php" hash="ae2d80ecab7cdda39b18054b057f2dc5"/></dir><file name="Saved.php" hash="782f17589219da087e57035a1c0b9a4a"/></dir><dir name="Helper"><file name="Data.php" hash="30577857b6ebcedfd91394e7e60a48f3"/></dir><dir name="Model"><file name="Debug.php" hash="f3360f71e2346881f93424792ed9f209"/><dir name="Entity"><file name="Setup.php" hash="c580e73ec53ac455698ee6b0ff005e39"/></dir><dir name="Kount"><file name="Ens.php" hash="3f672b000d43363406b1df7e2b52f620"/><file name="Rest.php" hash="5dfb5265a431da0210cb87dba023b7b6"/></dir><file name="Migration.php" hash="595f2f2d03b78ab057436609c8a73261"/><file name="Observer.php" hash="3d8c428e753d9335b2c9e748273924e9"/><dir name="Paymentmethod"><file name="Abstract.php" hash="d6c2a980770c401b5f311329198e2050"/><file name="Creditcard.php" hash="b5291e0c7ed262f04bfd05fae7bd9440"/><dir name="Legacy"><file name="Creditcard.php" hash="d31335cd41e72c54eccbe608e7257e02"/><file name="Paypal.php" hash="f929b4917e09007b226e6387bf4e1a22"/></dir><file name="Paypal.php" hash="b62caf908bd3845405ff62c1b96f960f"/></dir><file name="Saved.php" hash="3c9318122fbe56bdb915c837d834f392"/><dir name="Source"><file name="Cctype.php" hash="d76aa6c3a4bd798e3a47695f579d21d4"/><dir name="Creditcard"><file name="CaptureAction.php" hash="d39ff81be4b54620410ceeda7f960f0f"/><file name="FormIntegration.php" hash="9788f349430e0d48c9e13c262da3fe06"/><file name="PaymentAction.php" hash="d6e997ae4f6ed57129bf4d5da06a0a82"/></dir><file name="Environment.php" hash="5c2f5ce4d6d9f6f178102b90ec15aa2c"/><dir name="Paypal"><file name="CaptureAction.php" hash="0dd0c6da578aee4b7508f78cab982176"/><file name="Locale.php" hash="adc0ab30619eb3a34d8f5fe1087b07b0"/><file name="PaymentAction.php" hash="ab430eaf7ced39e9d6fd80ad0a7f6b3c"/><file name="Paymenttype.php" hash="48225fa7b3f5e54d81711397dd5bd96b"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Currency.php" hash="73cb15b1de303e88c487db4c585ef94e"/></dir><dir name="Source"><dir name="Payment"><file name="Threedsecurecountries.php" hash="d6c636f1e83676acd385312142221037"/></dir></dir></dir></dir><dir name="Wrapper"><file name="Braintree.php" hash="94184ede6617679cd28118d7e4b837d9"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Braintree"><file name="MigrationController.php" hash="84323fa4665ece605f6b8e906d0edd40"/></dir><file name="BraintreeController.php" hash="d7ece21342a7b4b37ee41ea0e7ff20ad"/></dir><file name="CheckoutController.php" hash="a38e423b0434f232f1cff247243f0509"/><file name="ExpressController.php" hash="0416009c6bd23430e0fa60953eb759d7"/><dir name="Kount"><file name="EnsController.php" hash="1db795afa1df901c37bbe48a3f01db2f"/></dir><file name="SavedController.php" hash="083777b1536e8dda604107af9f0081a9"/></dir><dir name="etc"><file name="adminhtml.xml" hash="c9c940beffa0ec19e4a1499a66f7fd12"/><file name="config.xml" hash="6f8992a9550d00d3462da39647ef8019"/><file name="jstranslator.xml" hash="00ba0adf57e4ec754b4f565dbed0ac55"/><file name="system.xml" hash="44cf3308a1605d4167a997891b33f363"/></dir><dir name="sql"><dir name="gene_braintree_setup"><file name="install-0.1.0.php" hash="503f428384f687d3f55a19ea57450212"/><file name="upgrade-1.0.5.4-2.0.0.php" hash="62d37c35ba39a77ea14cad842f143393"/><file name="upgrade-2.0.0-2.0.1.php" hash="a08927707bb43a5c22b3b6ce3dd7a3c7"/><file name="upgrade-2.0.4-2.1.0.php" hash="e1b31c2459ea0aaebb679e456bab3ec1"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="gene"><file name="braintree.xml" hash="76455936fe5ef29baccdf80e8648cefd"/></dir></dir><dir name="template"><dir name="gene"><dir name="braintree"><dir name="creditcard"><file name="hostedfields.phtml" hash="4edf6db7f931248a2882be8d6d1e756c"/><file name="info.phtml" hash="2ae1e397b3a633dd305bc26c7b9c1065"/><file name="saved.phtml" hash="579ec8ca726de3b5bea8600663d1e61f"/><file name="threedsecure.phtml" hash="ee8ad689afde041c39dd92ffa5274883"/></dir><dir name="customer"><file name="edit.phtml" hash="ed8a9533f07fbfa36ec78623afd1a04d"/><file name="methods.phtml" hash="794ad8cb20314d1657a746b365c82540"/><file name="saved.phtml" hash="0457b0fa38f9db788133e54f359baa63"/></dir><dir name="express"><file name="button.phtml" hash="ef1c839a8f1a190610fcfce46bd78efd"/><file name="cart.phtml" hash="e695ba86a3e1c157d131193834a4d34d"/><file name="catalog.phtml" hash="8dea3debbcd26d3359b5618ffd37f71f"/><file name="error.phtml" hash="0ec2ea2f9b909d9f0543e5df83eea055"/><file name="shipping_details.phtml" hash="0bb6ceafaac0ba522278df310d6136e2"/></dir><dir name="js"><file name="aheadworks.phtml" hash="e03a075e174246c88ffb7f53c5be6e7b"/><file name="amasty.phtml" hash="f5cdae19e5a5f5a1cbc836406611dd80"/><file name="awesomecheckout.phtml" hash="92e14252435c4c314d28d5278544ca0e"/><file name="default.phtml" hash="02f8fb813c635972b2a88ea858ffbe4f"/><file name="fancycheckout.phtml" hash="f603bcd50dea98dbb45c1ec8b692314c"/><file name="firecheckout.phtml" hash="b93d312e1c3127dbb51e74676d7da00a"/><file name="fme.phtml" hash="111a6f7c7f39aa5adc59694978779731"/><file name="idev.phtml" hash="22e15682c66a3a744c7ed08bfe761e54"/><file name="iwd.phtml" hash="05aefd0a2af552a494f1796082f4af96"/><file name="magestore.phtml" hash="3b5454efb603731334ac17a6760e774a"/><file name="multishipping.phtml" hash="c9e11fbc30e52e6354c8d7a5d9dff0ac"/><file name="oye.phtml" hash="939d2a614a14f98b6bf425c7fbcc762b"/><file name="setup.phtml" hash="5af020cb46ba0b9d551992461ebceb99"/><file name="unicode.phtml" hash="18ee47529b28c6eaa40597eded2e6a37"/></dir><dir name="paypal"><file name="info.phtml" hash="5149b273730121e4dec3c3179820f747"/><file name="saved.phtml" hash="3dd56f96bcdd14be594d355ae8fff329"/></dir><file name="paypal.phtml" hash="d12c20e5fb76f31270a5d47061e42715"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="gene"><file name="braintree.xml" hash="c8ecd667ae63705003889fd0d830adad"/></dir></dir><dir name="template"><dir name="gene"><dir name="braintree"><dir name="creditcard"><file name="hostedfields.phtml" hash="f768711e61eaca4b048927e189c5195d"/><file name="info.phtml" hash="958d514582e3de1f91f5e0f7a7169b47"/><file name="saved.phtml" hash="ca27adb601aebf97cd25a892082a8663"/></dir><file name="js.phtml" hash="d4ca65543b38a851f160799fade24849"/><dir name="paypal"><file name="info.phtml" hash="0485ea82dc9cc8ebea092b378672f1cd"/><file name="saved.phtml" hash="779ca8e907d7d463eafce58dfaf94f0c"/></dir><file name="paypal.phtml" hash="f81578f64c8a30560299bd993d8e996d"/><dir name="system"><dir name="config"><file name="migration.phtml" hash="8ef2a5e5561d7909d065c987ded5e592"/></dir></dir><dir name="transactions"><file name="index.phtml" hash="1791b6393f319616dd79c0b46e391847"/><file name="search.phtml" hash="1682ce6200681681f0ce3c848e2e6694"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Gene_Braintree.xml" hash="8c0ffda8566dca2f0b98a999921e3e55"/></dir></target><target name="mageweb"><dir name="js"><dir name="gene"><dir name="braintree"><dir name="2.1.4"><dir name="express"><file name="abstract-min.js" hash="8b9af774fc6a9f0610f4f80ac218f1ef"/><file name="paypal-min.js" hash="e3b9915b23745df357a0ecb4bf44f21c"/></dir><file name="vzero-integration-min.js" hash="91899cabe64b45a49f0de5f26e89de53"/><file name="vzero-min.js" hash="87876daa30409a2ab896df4ab4ea11a1"/><file name="vzero-paypal-min.js" hash="33cda474d266cb596c4b85f057d47134"/></dir><file name="config.codekit" hash="b20b933f5e2899d03b2c6c09ddee5a81"/><dir name="express"><file name="abstract-min.js" hash="8b9af774fc6a9f0610f4f80ac218f1ef"/></dir><dir name="source"><dir name="express"><file name="abstract.js" hash="f057fd97081c785c43751cd1b07c4d42"/><file name="paypal.js" hash="38b2ff510eaea8a3d82e15628f2ee768"/></dir><file name="vzero-integration.js" hash="655e21a89168874aeadf13181de51e21"/><file name="vzero-paypal.js" hash="d670587d88f396ba8111d5386905bc39"/><file name="vzero.js" hash="57d9960d9ff82ca02cd0cecd1cefef84"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="images"><dir name="gene"><dir name="braintree"><file name="AE.png" hash="6b6f405105413b0723a62ee498f88bf6"/><file name="DI.png" hash="d8e3c3022dda9e723f466b8976ae428f"/><file name="JCB.png" hash="3aa9a71ed8a1d6610bbe0dfe2040e29e"/><file name="MC.png" hash="1fcd14928245139962b72f9368bdbe32"/><file name="ME.png" hash="b9389913c47b9546a67f907fcca73706"/><file name="PP.png" hash="b4946bccba574e86c9716a4986e21c36"/><file name="VI.png" hash="c9f74d1d54e61ab2c748f45a4bdface0"/><file name="card.png" hash="66e16f8c573fad93bb0d62258dce28bb"/><file name="paypal-loading.gif" hash="078a2daf55245b227c09a7bed86750c6"/><file name="paypal.png" hash="40d5f74305e565bd14aef19bcf696541"/></dir><file name="loader.gif" hash="f48ee069890b16455c3ddcacee9b5f75"/><file name="loader-white.gif" hash="1fc0e911558e8dfe77cfdfafa0d38f88"/></dir></dir><dir name="css"><dir name="gene"><dir name="braintree"><dir name="account"><file name="account.less" hash="ddf6bf208f290316300ab20682f34473"/></dir><file name="account.css" hash="73bb46f85320b2f2b4de9beb6c0e0bd6"/><file name="aheadworks.css" hash="06ae2bc001b7fba7d16e1d03a0bd96b2"/><file name="amasty.css" hash="bade6eaca0e0f887ef9beb4b8cfa16ab"/><file name="awesomecheckout.css" hash="1d5d54b5d9c515ceaba541d023c06401"/><file name="config.codekit" hash="506bfad608130ba1ce130508695d54d9"/><dir name="core"><file name="_general.less" hash="5848708373d8ed5eda5e5b23c3e4e05c"/><file name="_hostedfields.less" hash="9d2d652e407ab1902ef36c4aa4656c37"/><file name="_paypal.less" hash="df0239894dfef5c905bea44938ee4658"/><file name="_saved.less" hash="66ec8d894e336f9934a1e54972c4b220"/></dir><file name="default.css" hash="d2f8e57149969d365d8df5a9efccf786"/><file name="express.css" hash="1c9eb3b9abb7e798b65701b2815d2e07"/><file name="express.less" hash="29acfc18e38f300972f27cfd44ca41c2"/><file name="fancycheckout.css" hash="a1e88710e68a0314a92af3524a599528"/><file name="firecheckout.css" hash="ff67555ae34645df68732bbda8178fa0"/><file name="fme.css" hash="b125abfc105ea5059f125ebabf815691"/><file name="idev.css" hash="7cae9bc82ad59510ef95eb06ad51414a"/><dir name="integrations"><file name="aheadworks.less" hash="09b0304383e198885f030119c15641f7"/><file name="amasty.less" hash="4cdf236e1d44112205750cefa11448b4"/><file name="awesomecheckout.less" hash="e774da637a5c6bbdb2e5decc998afae1"/><file name="default.less" hash="d366d4560ed1ce3e9e120309e56bec2f"/><file name="fancycheckout.less" hash="18281c460bb32da164964abe585b092b"/><file name="firecheckout.less" hash="459704b8b6efca52fcee7c335b3ad625"/><file name="fme.less" hash="580ed66608560fcd1195246c22e3559c"/><file name="idev.less" hash="47485cc963e16d12e673c06cd9efe4b1"/><file name="iwd.less" hash="5081477c7946e0f5cf8cc4198895ca11"/><file name="magestore.less" hash="0af5cd105be3995dc2044d33f990bbb5"/><file name="oye.less" hash="06a0f79190b16dfbce3aec6d14f07461"/><file name="unicode.less" hash="1416abe9a38965d9aead022b238f7d4f"/></dir><file name="iwd.css" hash="4fb606f9a3f17ae927d7deb69a413c04"/><file name="magestore.css" hash="6f3a3a196879dff8aae2fa58dca97381"/><file name="oye.css" hash="d465413987ff78241a85000720f7b49b"/><file name="unicode.css" hash="60f3673ed84d0a95af2ee083e738b8e9"/><file name=".DS_Store" hash="1405352d803d5c88cf3ec19a82f173d0"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><dir name="gene"><dir name="braintree"><file name="adminhtml.css" hash="affb40183f3620e4ee157daf613dc2a9"/><file name="adminhtml.less" hash="b3a4d504055c85d872c5b9544d192840"/><file name="config.codekit" hash="00c3aa866faad2384b4042057d6eaeec"/><file name="migration.css" hash="158e143a99028313d6ad6f6612112dd4"/><file name="migration.less" hash="bbf09530cf530f78f4a7c3229194c5ff"/><file name=".DS_Store" hash="63617e9dd9988a3d3773937a3f7e2f9a"/></dir></dir></dir><dir name="images"><dir name="gene"><dir name="braintree"><file name="AE.png" hash="6b6f405105413b0723a62ee498f88bf6"/><file name="DI.png" hash="d8e3c3022dda9e723f466b8976ae428f"/><file name="JCB.png" hash="3aa9a71ed8a1d6610bbe0dfe2040e29e"/><file name="MC.png" hash="1fcd14928245139962b72f9368bdbe32"/><file name="ME.png" hash="b9389913c47b9546a67f907fcca73706"/><file name="PP.png" hash="b4946bccba574e86c9716a4986e21c36"/><file name="VI.png" hash="c9f74d1d54e61ab2c748f45a4bdface0"/><file name="card.png" hash="66e16f8c573fad93bb0d62258dce28bb"/><dir name="migration"><file name="braintree.png" hash="396d721824a86b169ce0055090ce9766"/><file name="gene-logo.png" hash="16efb1b148acc59c46c84a21d726b6e9"/><file name="loader.gif" hash="66b9100930b8e58d46acf2e13d41f7ea"/></dir></dir><file name="loader.gif" hash="f48ee069890b16455c3ddcacee9b5f75"/></dir></dir></dir></dir></dir></target><target name="magelib"><dir name="Gene"><dir name="Braintree"><file name="autoload.php" hash="e991881d055b037b316776d6332e7f72"/><dir name="braintree"><dir name="braintree_php"><file name="CHANGELOG.md" hash="06dc0857eec40e158267c271b2042845"/><file name="LICENSE" hash="5ba90c75203e338c9479ed8237839feb"/><file name="README.md" hash="e5c49652ce9f9857af6a1c3f02841bfa"/><file name="Rakefile" hash="3ca648a6b2c78b0546bf36323998036e"/><file name="ci.sh" hash="8abad344d97531d13613833d1d081954"/><file name="composer.json" hash="7f925434c3334ed83d7f73f15d937985"/><dir name="lib"><dir name="Braintree"><file name="AccountUpdaterDailyReport.php" hash="e1bb254f0dc2482190b2a3cf57ca8ecc"/><file name="AddOn.php" hash="82925560fd6d09575150d03851132999"/><file name="AddOnGateway.php" hash="71f1cf435ad4a0f846cbdb61f54582b6"/><file name="Address.php" hash="38b64d0235e498f761d871446670c9d3"/><file name="AddressGateway.php" hash="1b8889c596f9a10ec351f2cc2a59fabe"/><file name="AmexExpressCheckoutCard.php" hash="a4b48e18f08686aa5aaeec4849ff54a6"/><file name="AndroidPayCard.php" hash="5b9412761d364c39313925a0b1aa5308"/><file name="ApplePayCard.php" hash="4879b7885a3a3f549a3cc661b1f3a145"/><file name="Base.php" hash="33edbe8c326501ef64e6701e25ce8eb4"/><file name="ClientToken.php" hash="81e2f643f912c8943560008d2fa7869d"/><file name="ClientTokenGateway.php" hash="46c9885e3c3f40cc60d98dd94ccfa849"/><file name="CoinbaseAccount.php" hash="00d363870a777a39b89924092b8aba7f"/><file name="Collection.php" hash="18bed88fe994bab06d91c4f11f9e5e62"/><file name="Configuration.php" hash="9af3f355124c7bcfcb1022553d2680dc"/><file name="CredentialsParser.php" hash="76aea512fec3932cf3311ba96e855728"/><file name="CreditCard.php" hash="7510387703f315770542ae280ed908b9"/><file name="CreditCardGateway.php" hash="3afc61390565f93f227797c180623340"/><file name="CreditCardVerification.php" hash="b06ad08b7120572732498d2035a25952"/><file name="CreditCardVerificationGateway.php" hash="38a299c6e9a500fbf7e962e39f34e4bf"/><file name="CreditCardVerificationSearch.php" hash="93e08c9a258af84003700013d497cd82"/><file name="Customer.php" hash="b0d3236dcb0f4a421431e8d7b64bdfad"/><file name="CustomerGateway.php" hash="632a4aa892bbc99d84987ee4e235d577"/><file name="CustomerSearch.php" hash="8e8d024b951a4baa458556d4281fe988"/><file name="Descriptor.php" hash="97dc19a001fb6845c0c0eb0ee396f9bf"/><file name="Digest.php" hash="3105cc8f66a176f636b8f5a1075638a0"/><file name="Disbursement.php" hash="851eb18f89594984838ce1c59f8e6d8c"/><file name="DisbursementDetails.php" hash="ebe67e4dfb543f2b81f2f6de6de4bdfa"/><file name="Discount.php" hash="ba59054dd8d42d600c6dfb5813267150"/><file name="DiscountGateway.php" hash="8c354a122a23e3ad2136905e1c9b1d95"/><dir name="Dispute"><file name="TransactionDetails.php" hash="b56e01778ab14aaef2a5a9f8bc85d695"/></dir><file name="Dispute.php" hash="b374f0814c6c237cba252093ad37ee82"/><file name="EqualityNode.php" hash="62715d694920f751dfa270ee6234eb43"/><dir name="Error"><file name="Codes.php" hash="17409bb5360708c3a011ccb474b92ded"/><file name="ErrorCollection.php" hash="5bfc2fecced63c0acca329760619ff38"/><file name="Validation.php" hash="177a09214e3832293dd74a6cde911c48"/><file name="ValidationErrorCollection.php" hash="a7d24a31592d1e664245bbc7d0bca60a"/></dir><file name="EuropeBankAccount.php" hash="1652f5c0400e3704de4077a5b9e6e714"/><dir name="Exception"><file name="Authentication.php" hash="5db82263dddde988ddb228c840156bb9"/><file name="Authorization.php" hash="d76c984a4699f10844f58d2f8bcec5d6"/><file name="Configuration.php" hash="225dfca2a3fcb48620e971a03acc6213"/><file name="DownForMaintenance.php" hash="60ec727ae01bef4a7a9242d55be70d67"/><file name="ForgedQueryString.php" hash="b0a150c17296046e3777879256f5fcea"/><file name="InvalidChallenge.php" hash="d825f5fc7acf8dd0e92dc886e7351721"/><file name="InvalidSignature.php" hash="a627af00c19b01a92fe01d432e3296d9"/><file name="NotFound.php" hash="9f28a7c11a5388c85de2f050f5a2a68d"/><file name="SSLCaFileNotFound.php" hash="c4b9474a14791ca4bd40f94e55428ecb"/><file name="SSLCertificate.php" hash="96dcb90043e9ce3668ef68568b932d77"/><file name="ServerError.php" hash="a095932cac27c6ebf707b217efb3d2b1"/><file name="TestOperationPerformedInProduction.php" hash="156421e2ccb2ac69c051516b1d6a6707"/><file name="Timeout.php" hash="834026b48d9a2317bf9e487174158be4"/><file name="TooManyRequests.php" hash="0e6d904113c3d8a3a60136e1ea5db00f"/><file name="Unexpected.php" hash="f09fd761eb5909327d02f1fa2a2dd894"/><file name="UpgradeRequired.php" hash="6cd48333f93a0a96ddd58654e5f27f85"/><file name="ValidationsFailed.php" hash="b7b129ec4b3d72d27947e8b11b6ebca2"/></dir><file name="Exception.php" hash="29a1f3a94ed378d93879d5d64858fbaf"/><file name="FacilitatorDetails.php" hash="7a25557b06c663197d1aea39bd93e776"/><file name="Gateway.php" hash="116919442d2d4699d05ab272a3711485"/><file name="Http.php" hash="3440f599ee47ba57a6f08958763af14e"/><file name="Instance.php" hash="64573829ba050b6d291d082b50382e46"/><file name="IsNode.php" hash="783c6ad65c6030a12ad52253cd5bc1a8"/><file name="KeyValueNode.php" hash="6668a312a6aaaddbdcfc940775ed5820"/><file name="Merchant.php" hash="b1f8444fc109708a43017d6cda9536a2"/><dir name="MerchantAccount"><file name="AddressDetails.php" hash="540f9e79b8df5da5267835dd01db45c1"/><file name="BusinessDetails.php" hash="ca8a0dc16bce3fff5831fd22652b2f6b"/><file name="FundingDetails.php" hash="9ba992a0dda1be9a0cf8bd8b53ea33be"/><file name="IndividualDetails.php" hash="4855a6aa64b35ecab7bada4e3e0fc0c3"/></dir><file name="MerchantAccount.php" hash="a4ba2e530164c06b8e50ef8ff10f76f2"/><file name="MerchantAccountGateway.php" hash="c966aa6a8a5700e60993dec8833f36de"/><file name="MerchantGateway.php" hash="e9d0fc529b7a32f7080201991deb29d1"/><file name="Modification.php" hash="5df7d89d7365e9edf7235f09b9b7ced4"/><file name="MultipleValueNode.php" hash="2555632262d8b7d81a69739817e1887d"/><file name="MultipleValueOrTextNode.php" hash="9d4a49bc8051d47fd820da2ffef03936"/><file name="OAuthCredentials.php" hash="4a6991039aff0d1c9917c02f9548b4a3"/><file name="OAuthGateway.php" hash="b7c38d9a61fa4cfc749efcdb5dfcf7c9"/><file name="OAuthResult.php" hash="ea859d4da557c860e8f36793f66455e4"/><file name="PartialMatchNode.php" hash="084258b5f9f39a493ca6b02e7019a101"/><file name="PartnerMerchant.php" hash="0659cebbbba2d128c263f6785ece7cbf"/><file name="PayPalAccount.php" hash="7a1654759201f54bb1a58d08362ddc28"/><file name="PayPalAccountGateway.php" hash="865826f46ce0af80404dea0c51632bd5"/><file name="PaymentInstrumentType.php" hash="ce15f765f0cec73a04c9debda3052d6d"/><file name="PaymentMethod.php" hash="e94336d5fdde2d03747551b09fc5831f"/><file name="PaymentMethodGateway.php" hash="4830027d7105f881700fc4bc52dbe43f"/><file name="PaymentMethodNonce.php" hash="6ab72220362afa9ec1e9e1fe1da049b6"/><file name="PaymentMethodNonceGateway.php" hash="393c1736d0290d0b0e8d9732692c475c"/><file name="Plan.php" hash="fcf369071d74d273604fc63ea2548f2b"/><file name="PlanGateway.php" hash="8713f672e916f26460b06a156b511e32"/><file name="RangeNode.php" hash="a3f74af2c4811a68c9f31ca136cc1c82"/><file name="ResourceCollection.php" hash="d52323710fbe909cc96e0b09509c57d5"/><dir name="Result"><file name="CreditCardVerification.php" hash="80274f1df14aff2fc83153f899084146"/><file name="Error.php" hash="1a43f4387b95e960023899356dfa971e"/><file name="Successful.php" hash="a07de8d191e4c425ea139e585b662245"/></dir><file name="RiskData.php" hash="61de70d88d4b40168e54cea84d2afc70"/><file name="SettlementBatchSummary.php" hash="73a3b6b583b5a852b3d1437b2d62ec5f"/><file name="SettlementBatchSummaryGateway.php" hash="d66b1708f32d1bcc4d738bf39df649b7"/><file name="SignatureService.php" hash="566a5d18567a513f4a527ebf3c8cd410"/><dir name="Subscription"><file name="StatusDetails.php" hash="cfec6a5f756091d72642b2505c2cc523"/></dir><file name="Subscription.php" hash="12477b5b2174c2af515a241b1ca0c494"/><file name="SubscriptionGateway.php" hash="43d59eb14e8426de39b86af042d48e11"/><file name="SubscriptionSearch.php" hash="e97a9a2a7187058082afab7701f37b1a"/><dir name="Test"><file name="CreditCardNumbers.php" hash="7265dd0e237fdc2ed6549218852734ee"/><file name="MerchantAccount.php" hash="072dd9f4c532d59b4d29cf1573046969"/><file name="Nonces.php" hash="ed136a194d09fd372b904b67c22ce14d"/><file name="Transaction.php" hash="37136a4a49213b808e05e6072ea47745"/><file name="TransactionAmounts.php" hash="d3ee44240274fcc671cb40f24c7f6887"/><file name="VenmoSdk.php" hash="33de614daaf4dad09f1165d74d08cdb0"/></dir><file name="TestingGateway.php" hash="3ec7fe4a5a11f2db91b5ecaa6ab6d1c1"/><file name="TextNode.php" hash="da1cc61af2896b945552318d67bd2a46"/><file name="ThreeDSecureInfo.php" hash="8cbb2a63c256368123cb01f2e2a2a194"/><dir name="Transaction"><file name="AddressDetails.php" hash="080b64d3fcf6f61759b227e570de6faf"/><file name="AmexExpressCheckoutCardDetails.php" hash="c4cde5f34ebe934e7a712cb1a75c1170"/><file name="AndroidPayCardDetails.php" hash="708a09910991517ad4507d0f1a82f8c7"/><file name="ApplePayCardDetails.php" hash="26093a57a1f0525210f3295a5a6b834c"/><file name="CoinbaseDetails.php" hash="ebd00610e9cfe1b67e6f3ff518f142c8"/><file name="CreditCardDetails.php" hash="81f0a10e1b56af0b06d2fa858ee56287"/><file name="CustomerDetails.php" hash="76e163794fd2e32d70ece5a780a80ef6"/><file name="EuropeBankAccountDetails.php" hash="440f492270d7f50d2eeb7f3c93e48ffe"/><file name="PayPalDetails.php" hash="4e38ea53a13980378d44b8f512f92411"/><file name="StatusDetails.php" hash="2914ad7f3b8a8244694f95949660b99e"/><file name="SubscriptionDetails.php" hash="009ba167870d9d3558d9186401c970e6"/><file name="UsBankAccountDetails.php" hash="ac74d6fdcfa4b9253c6efe7c4d57f2db"/><file name="VenmoAccountDetails.php" hash="097e98658fe058a4e82c50129dd6a72f"/></dir><file name="Transaction.php" hash="a98cf6120ea3ac199db9b7547eeece28"/><file name="TransactionGateway.php" hash="f06999aa9248851f2c5f4061fc48fe45"/><file name="TransactionSearch.php" hash="634b7a51905a41c1f037f186b53b540e"/><file name="TransparentRedirect.php" hash="63a525df15682ecf4511cdaf3154c954"/><file name="TransparentRedirectGateway.php" hash="9a56b5d98c562316e346bcedf0f04bfd"/><file name="UnknownPaymentMethod.php" hash="f3731d70766ae5ecab1017fa33d06b7f"/><file name="UsBankAccount.php" hash="eed3e14a2b88f10cbc33734b5347e00e"/><file name="UsBankAccountGateway.php" hash="4d0082aac6cfe4b04e9bf1adf976c02b"/><file name="Util.php" hash="bd31461e0b7a67d5686d325fe32c5350"/><file name="VenmoAccount.php" hash="fa0f15888eda08545321eb20178fe4ac"/><file name="Version.php" hash="aada06398ac1c7993d4b10f7bd6f75bd"/><file name="WebhookNotification.php" hash="bbe5859def86dbde4298e09470cccacc"/><file name="WebhookTesting.php" hash="4fa3fb7c1c4591a30cb073cbd4c2ec5a"/><dir name="Xml"><file name="Generator.php" hash="b7b28436de76fc7b5ca13e556963d28e"/><file name="Parser.php" hash="29fbccf32c05e9dcf07bb3a40ea119c9"/></dir><file name="Xml.php" hash="e60971869ae63c3f258eac082ff9a3bf"/></dir><file name="Braintree.php" hash="e6dbb615b697b7641d9b81b8811a9d52"/><file name="autoload.php" hash="700bd7dbe39f8d89d925ccbb33651898"/><dir name="ssl"><file name="api_braintreegateway_com.ca.crt" hash="d1155107b085a1ee04dd13a634b00c42"/></dir></dir><file name="phpunit.xml.dist" hash="80635d87e10eb5bf1a4ba767d168eba8"/><dir name="tests"><dir name="Braintree"><file name="CreditCardDefaults.php" hash="caceb16d3b2fc21f7dc2bf6244000485"/><dir name="CreditCardNumbers"><file name="CardTypeIndicators.php" hash="fca486e18deed295d0d9961b19e71c6e"/></dir><file name="OAuthTestHelper.php" hash="7678b026a2d19450150999999a0cddcc"/></dir><file name="Helper.php" hash="d16f5164eb17af1eec938f07a975f93f"/><file name="SanityTest.php" hash="e75fcbab2870381b960a0583fb9d3ce3"/><file name="Setup.php" hash="d21ea963b4103c6f082aff93a97d75b9"/><dir name="integration"><file name="AddOnsTest.php" hash="6caa89249c72d7746cb1de6ef1460079"/><file name="AddressTest.php" hash="b78f498609625e2d2f5eadf5c07dc303"/><file name="ClientTokenTest.php" hash="83d93f7812082bcbdf0099652b98b183"/><file name="CreditCardTest.php" hash="c2c5eb3bd53c701ce5a259da11b7743f"/><file name="CreditCardVerificationAdvancedSearchTest.php" hash="1b741a14706c14fe27b6383f37989ea8"/><file name="CreditCardVerificationTest.php" hash="7f29467a7f84a029fc4ccb36b52b5ced"/><file name="CustomerAdvancedSearchTest.php" hash="f1657f3ef6992d7ab2dfddb60e88f5ce"/><file name="CustomerTest.php" hash="9636390eeb312e02f0ddaeab79c1d1ff"/><file name="DisbursementTest.php" hash="26505b6c688c23f52617aff41d301020"/><file name="DiscountTest.php" hash="0fc13502d1323679af95ca7e0a5a2622"/><dir name="Error"><file name="ErrorCollectionTest.php" hash="f72638e7a4ce876ee83740f11986a3a8"/><file name="ValidationErrorCollectionTest.php" hash="3db5c126101fd5878d0862af5afb921a"/></dir><file name="EuropeBankAccountTest.php" hash="1fa1e38472ea992c558f20284d50fea3"/><file name="HttpClientApi.php" hash="6f76f301d78ae0b01e080e25c3c9d666"/><file name="HttpTest.php" hash="1a9d8ad93330b4032480c7db7bc1e385"/><file name="MerchantAccountTest.php" hash="023a6ec18b9ecc4996c1d7af5df217ba"/><file name="MerchantTest.php" hash="6be39a24c21307e95c8d18b2f3cbbf09"/><file name="MultipleValueNodeTest.php" hash="1b21f6431b0dc593f18d887ed88a30f3"/><file name="OAuthTest.php" hash="cf09acef408069c6131ede44f0004cd3"/><file name="PayPalAccountTest.php" hash="8bfdfdcb1e08687d25bf80260051d820"/><file name="PaymentMethodNonceTest.php" hash="7cc2cdb6c6e72fc1750ee09f134e22c9"/><file name="PaymentMethodTest.php" hash="e29e0b1ec325c15a7723d59761a344c3"/><file name="PlanTest.php" hash="bbc260c8a0cd36869f0de96c4639cb2a"/><dir name="Result"><file name="ErrorTest.php" hash="3ff0aedd05f5868c8e28bb7f2f98f8f8"/></dir><file name="SettlementBatchSummaryTest.php" hash="86e8847f6cdf4c6120b473e7bdafc196"/><file name="SubscriptionHelper.php" hash="0d717139be147a5d72f16cd4ff465d22"/><file name="SubscriptionSearchTest.php" hash="712536a2484872abf8b6b3003e67c0bd"/><file name="SubscriptionTest.php" hash="1e4ff49856af4942dc14c199764ee82c"/><file name="TestTransactionTest.php" hash="27cce6bf160d8777358332eb9d7a7eae"/><file name="TextNodeTest.php" hash="6f8afc0387144088127d65ce3e926cba"/><file name="TransactionAdvancedSearchTest.php" hash="430d532eec84d163a6b9e5d7170156f0"/><file name="TransactionTest.php" hash="ddc9cd18c3062019edfa82a4ede798b9"/><file name="TransparentRedirectTest.php" hash="632073911d63ec46fedc0007b8e1d96c"/><file name="UsBankAccountTest.php" hash="87a1b99e82b385fb1fcc9f0ac214057d"/></dir><dir name="unit"><file name="AddOnTest.php" hash="1e9ca24b1d1076d838868b46f3b8db31"/><file name="AddressTest.php" hash="971b65131de89d97627d5fce6d23948f"/><file name="BraintreeTest.php" hash="d5661eb2e0d23eec624cc039bc209baa"/><dir name="ClientApi"><file name="ClientTokenTest.php" hash="ecd06e8aa6238f1a2b4af69d0e8de798"/></dir><file name="ConfigurationTest.php" hash="e8a6feb7044965075a99fcb57eeac625"/><file name="CreditCardTest.php" hash="aff6920d4a64f82c25947a0aad622491"/><file name="CreditCardVerificationTest.php" hash="aadef2854162a79ec7f974a4511c74dc"/><file name="CustomerTest.php" hash="b34959a82a0a9ac2f917086135e30ec3"/><file name="DigestTest.php" hash="91a198a97d0469223d9cda1c032c82cf"/><file name="DisbursementDetailsTest.php" hash="5417ff00d8780050cd3468e891a46f7c"/><file name="DisbursementTest.php" hash="7df421883c72e00553827d5c0e7816d7"/><file name="DiscountTest.php" hash="cda7b5ba54e11c4b0ed852e146236d6d"/><file name="GatewayTest.php" hash="182a77395c8c791754f8f9fd70f1561a"/><file name="InstanceTest.php" hash="fc35293e35840a740e44da14929f13ce"/><file name="MerchantAccountTest.php" hash="2938575dc44d37d494519750e7699c0c"/><file name="MultipleValueNodeTest.php" hash="0821a1e0ea469210e4cd7ac2dcdd2f3a"/><file name="MultipleValueOrTextNodeTest.php" hash="cb82ba391dbd216a413da9777f50a4d7"/><file name="OAuthTest.php" hash="450ee30874c358112731fb39e0c7a898"/><file name="PayPalAccountTest.php" hash="5d5ed45062b3f4fddf38a95fda7fcec0"/><file name="PaymentMethodTest.php" hash="81db0a16f1c77a2bade9e008816c7691"/><file name="RangeNodeTest.php" hash="c1aef8c246c603736ed5a7000a150f4a"/><file name="ResourceCollectionTest.php" hash="5b22b79a4e50f486c2f3e9e268cf9d80"/><dir name="Result"><file name="ErrorTest.php" hash="bfa4fbcb181cd8a7fbc05c86f617899b"/><file name="SuccessfulTest.php" hash="a809212d472948c166915eb901f641d7"/></dir><file name="SanityTest.php" hash="80485b716aba99b6eba814c73466994b"/><file name="SubscriptionSearchTest.php" hash="60408ca6fa6249a0edabc6e0d5ffc637"/><file name="SubscriptionTest.php" hash="b53934d3cd0d20df7edac1d658e66f0a"/><file name="TextNodeTest.php" hash="5bce91e12b012a3d55f3478721d85060"/><file name="TransactionTest.php" hash="a9452fffc9b6399540f7cd575f179d80"/><file name="TransparentRedirectTest.php" hash="5a3c18b3b30ddaaedd82b146aaa0b2a1"/><file name="UnknownPaymentMethodTest.php" hash="99dba90eebaee849d207d8c8eaf1146c"/><file name="UtilTest.php" hash="e7a45f618244339912f1e57687d28c29"/><file name="WebhookNotificationTest.php" hash="367564d0667c80354881e4e185b87127"/><file name="Xml_GeneratorTest.php" hash="c83aeb1546ab2d4165d6ea970b66aed3"/><file name="Xml_ParserTest.php" hash="00bd1b07f1b34df846e70efc0788bcc3"/></dir></dir><file name=".gitignore" hash="bfbaaa10ed6adceb1ea6602d629c0273"/></dir></dir><dir name="composer"><file name="ClassLoader.php" hash="c67ebce5ff31e99311ceb750202adf2e"/><file name="LICENSE" hash="9b01fc9e0129adc080344653fbcbbc0f"/><file name="autoload_classmap.php" hash="8645d3a4e3ad87e7cf4d88a46717aab4"/><file name="autoload_namespaces.php" hash="6bcb68a8ffccb365c563b6de56eb356f"/><file name="autoload_psr4.php" hash="b8019895be4802f81f71a93ef6245399"/><file name="autoload_real.php" hash="45569e6f98c3747a3f2f331b764ed50f"/><file name="autoload_static.php" hash="40ab82695bb09efa8c888979f369175a"/><file name="installed.json" hash="b53f52e83f1cda64d0660f05eb3a15ac"/></dir></dir><file name="composer.json" hash="f39b9e8fb5b344fdce96725859f949c2"/><file name="composer.lock" hash="b967b686cc6409d06b61da171b17ae28"/></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="Gene_Braintree.csv" hash="78e4e1a9155d65f676550acfff8de29d"/></dir></dir></target></contents>
42
  <compatible/>
43
  <dependencies><required><php><min>5.4.0</min><max>6.0.0</max></php><package><name></name><channel>connect.magentocommerce.com/core</channel><min></min><max></max></package></required></dependencies>
44
  </package>
skin/frontend/base/default/css/gene/braintree/aheadworks.css CHANGED
@@ -13,6 +13,11 @@
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
 
 
 
 
 
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
@@ -29,6 +34,9 @@
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
 
 
 
32
  /* Hosted Fields */
33
  #braintree-hosted-submit {
34
  display: none;
@@ -144,6 +152,11 @@
144
  background-color: black;
145
  opacity: 0.75;
146
  }
 
 
 
 
 
147
  #paypal-container iframe {
148
  display: none;
149
  }
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
16
+ #credit-card-form .braintree-card-unsupported {
17
+ color: darkred;
18
+ font-weight: bold;
19
+ padding: 6px 0 4px 0;
20
+ }
21
  #credit-card-form.loading .credit-card-loading {
22
  position: absolute;
23
  top: 30%;
34
  #credit-card-form.loading .braintree-hostedfield {
35
  opacity: 0;
36
  }
37
+ #credit-card-form label {
38
+ float: none;
39
+ }
40
  /* Hosted Fields */
41
  #braintree-hosted-submit {
42
  display: none;
152
  background-color: black;
153
  opacity: 0.75;
154
  }
155
+ @media (max-width: 650px) {
156
+ #three-d-modal .bt-modal-frame {
157
+ width: 100%;
158
+ }
159
+ }
160
  #paypal-container iframe {
161
  display: none;
162
  }
skin/frontend/base/default/css/gene/braintree/amasty.css CHANGED
@@ -13,6 +13,11 @@
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
 
 
 
 
 
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
@@ -29,6 +34,9 @@
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
 
 
 
32
  /* Hosted Fields */
33
  #braintree-hosted-submit {
34
  display: none;
@@ -144,6 +152,11 @@
144
  background-color: black;
145
  opacity: 0.75;
146
  }
 
 
 
 
 
147
  #paypal-container iframe {
148
  display: none;
149
  }
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
16
+ #credit-card-form .braintree-card-unsupported {
17
+ color: darkred;
18
+ font-weight: bold;
19
+ padding: 6px 0 4px 0;
20
+ }
21
  #credit-card-form.loading .credit-card-loading {
22
  position: absolute;
23
  top: 30%;
34
  #credit-card-form.loading .braintree-hostedfield {
35
  opacity: 0;
36
  }
37
+ #credit-card-form label {
38
+ float: none;
39
+ }
40
  /* Hosted Fields */
41
  #braintree-hosted-submit {
42
  display: none;
152
  background-color: black;
153
  opacity: 0.75;
154
  }
155
+ @media (max-width: 650px) {
156
+ #three-d-modal .bt-modal-frame {
157
+ width: 100%;
158
+ }
159
+ }
160
  #paypal-container iframe {
161
  display: none;
162
  }
skin/frontend/base/default/css/gene/braintree/awesomecheckout.css CHANGED
@@ -13,6 +13,11 @@
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
 
 
 
 
 
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
@@ -29,6 +34,9 @@
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
 
 
 
32
  /* Hosted Fields */
33
  #braintree-hosted-submit {
34
  display: none;
@@ -144,6 +152,11 @@
144
  background-color: black;
145
  opacity: 0.75;
146
  }
 
 
 
 
 
147
  #paypal-container iframe {
148
  display: none;
149
  }
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
16
+ #credit-card-form .braintree-card-unsupported {
17
+ color: darkred;
18
+ font-weight: bold;
19
+ padding: 6px 0 4px 0;
20
+ }
21
  #credit-card-form.loading .credit-card-loading {
22
  position: absolute;
23
  top: 30%;
34
  #credit-card-form.loading .braintree-hostedfield {
35
  opacity: 0;
36
  }
37
+ #credit-card-form label {
38
+ float: none;
39
+ }
40
  /* Hosted Fields */
41
  #braintree-hosted-submit {
42
  display: none;
152
  background-color: black;
153
  opacity: 0.75;
154
  }
155
+ @media (max-width: 650px) {
156
+ #three-d-modal .bt-modal-frame {
157
+ width: 100%;
158
+ }
159
+ }
160
  #paypal-container iframe {
161
  display: none;
162
  }
skin/frontend/base/default/css/gene/braintree/core/_hostedfields.less CHANGED
@@ -8,6 +8,11 @@
8
  #credit-card-form .credit-card-loading {
9
  display: none;
10
  }
 
 
 
 
 
11
  #credit-card-form.loading .credit-card-loading {
12
  position: absolute;
13
  top: 30%;
@@ -24,6 +29,9 @@
24
  #credit-card-form.loading .braintree-hostedfield {
25
  opacity: 0;
26
  }
 
 
 
27
 
28
  /* Hosted Fields */
29
  #braintree-hosted-submit {
@@ -148,4 +156,12 @@
148
  background-color: black;
149
  opacity: 0.75;
150
  }
 
 
 
 
 
 
 
 
151
  }
8
  #credit-card-form .credit-card-loading {
9
  display: none;
10
  }
11
+ #credit-card-form .braintree-card-unsupported {
12
+ color: darkred;
13
+ font-weight: bold;
14
+ padding: 6px 0 4px 0;
15
+ }
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
32
+ #credit-card-form label {
33
+ float: none;
34
+ }
35
 
36
  /* Hosted Fields */
37
  #braintree-hosted-submit {
156
  background-color: black;
157
  opacity: 0.75;
158
  }
159
+ }
160
+
161
+ @media (max-width: 650px) {
162
+ #three-d-modal {
163
+ .bt-modal-frame {
164
+ width: 100%;
165
+ }
166
+ }
167
  }
skin/frontend/base/default/css/gene/braintree/default.css CHANGED
@@ -13,6 +13,11 @@
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
 
 
 
 
 
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
@@ -29,6 +34,9 @@
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
 
 
 
32
  /* Hosted Fields */
33
  #braintree-hosted-submit {
34
  display: none;
@@ -144,6 +152,11 @@
144
  background-color: black;
145
  opacity: 0.75;
146
  }
 
 
 
 
 
147
  #paypal-container iframe {
148
  display: none;
149
  }
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
16
+ #credit-card-form .braintree-card-unsupported {
17
+ color: darkred;
18
+ font-weight: bold;
19
+ padding: 6px 0 4px 0;
20
+ }
21
  #credit-card-form.loading .credit-card-loading {
22
  position: absolute;
23
  top: 30%;
34
  #credit-card-form.loading .braintree-hostedfield {
35
  opacity: 0;
36
  }
37
+ #credit-card-form label {
38
+ float: none;
39
+ }
40
  /* Hosted Fields */
41
  #braintree-hosted-submit {
42
  display: none;
152
  background-color: black;
153
  opacity: 0.75;
154
  }
155
+ @media (max-width: 650px) {
156
+ #three-d-modal .bt-modal-frame {
157
+ width: 100%;
158
+ }
159
+ }
160
  #paypal-container iframe {
161
  display: none;
162
  }
skin/frontend/base/default/css/gene/braintree/fancycheckout.css CHANGED
@@ -13,6 +13,11 @@
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
 
 
 
 
 
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
@@ -29,6 +34,9 @@
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
 
 
 
32
  /* Hosted Fields */
33
  #braintree-hosted-submit {
34
  display: none;
@@ -144,6 +152,11 @@
144
  background-color: black;
145
  opacity: 0.75;
146
  }
 
 
 
 
 
147
  #paypal-container iframe {
148
  display: none;
149
  }
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
16
+ #credit-card-form .braintree-card-unsupported {
17
+ color: darkred;
18
+ font-weight: bold;
19
+ padding: 6px 0 4px 0;
20
+ }
21
  #credit-card-form.loading .credit-card-loading {
22
  position: absolute;
23
  top: 30%;
34
  #credit-card-form.loading .braintree-hostedfield {
35
  opacity: 0;
36
  }
37
+ #credit-card-form label {
38
+ float: none;
39
+ }
40
  /* Hosted Fields */
41
  #braintree-hosted-submit {
42
  display: none;
152
  background-color: black;
153
  opacity: 0.75;
154
  }
155
+ @media (max-width: 650px) {
156
+ #three-d-modal .bt-modal-frame {
157
+ width: 100%;
158
+ }
159
+ }
160
  #paypal-container iframe {
161
  display: none;
162
  }
skin/frontend/base/default/css/gene/braintree/firecheckout.css CHANGED
@@ -13,6 +13,11 @@
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
 
 
 
 
 
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
@@ -29,6 +34,9 @@
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
 
 
 
32
  /* Hosted Fields */
33
  #braintree-hosted-submit {
34
  display: none;
@@ -144,6 +152,11 @@
144
  background-color: black;
145
  opacity: 0.75;
146
  }
 
 
 
 
 
147
  #paypal-container iframe {
148
  display: none;
149
  }
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
16
+ #credit-card-form .braintree-card-unsupported {
17
+ color: darkred;
18
+ font-weight: bold;
19
+ padding: 6px 0 4px 0;
20
+ }
21
  #credit-card-form.loading .credit-card-loading {
22
  position: absolute;
23
  top: 30%;
34
  #credit-card-form.loading .braintree-hostedfield {
35
  opacity: 0;
36
  }
37
+ #credit-card-form label {
38
+ float: none;
39
+ }
40
  /* Hosted Fields */
41
  #braintree-hosted-submit {
42
  display: none;
152
  background-color: black;
153
  opacity: 0.75;
154
  }
155
+ @media (max-width: 650px) {
156
+ #three-d-modal .bt-modal-frame {
157
+ width: 100%;
158
+ }
159
+ }
160
  #paypal-container iframe {
161
  display: none;
162
  }
skin/frontend/base/default/css/gene/braintree/fme.css CHANGED
@@ -13,6 +13,11 @@
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
 
 
 
 
 
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
@@ -29,6 +34,9 @@
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
 
 
 
32
  /* Hosted Fields */
33
  #braintree-hosted-submit {
34
  display: none;
@@ -144,6 +152,11 @@
144
  background-color: black;
145
  opacity: 0.75;
146
  }
 
 
 
 
 
147
  #paypal-container iframe {
148
  display: none;
149
  }
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
16
+ #credit-card-form .braintree-card-unsupported {
17
+ color: darkred;
18
+ font-weight: bold;
19
+ padding: 6px 0 4px 0;
20
+ }
21
  #credit-card-form.loading .credit-card-loading {
22
  position: absolute;
23
  top: 30%;
34
  #credit-card-form.loading .braintree-hostedfield {
35
  opacity: 0;
36
  }
37
+ #credit-card-form label {
38
+ float: none;
39
+ }
40
  /* Hosted Fields */
41
  #braintree-hosted-submit {
42
  display: none;
152
  background-color: black;
153
  opacity: 0.75;
154
  }
155
+ @media (max-width: 650px) {
156
+ #three-d-modal .bt-modal-frame {
157
+ width: 100%;
158
+ }
159
+ }
160
  #paypal-container iframe {
161
  display: none;
162
  }
skin/frontend/base/default/css/gene/braintree/idev.css CHANGED
@@ -13,6 +13,11 @@
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
 
 
 
 
 
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
@@ -29,6 +34,9 @@
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
 
 
 
32
  /* Hosted Fields */
33
  #braintree-hosted-submit {
34
  display: none;
@@ -144,6 +152,11 @@
144
  background-color: black;
145
  opacity: 0.75;
146
  }
 
 
 
 
 
147
  #paypal-container iframe {
148
  display: none;
149
  }
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
16
+ #credit-card-form .braintree-card-unsupported {
17
+ color: darkred;
18
+ font-weight: bold;
19
+ padding: 6px 0 4px 0;
20
+ }
21
  #credit-card-form.loading .credit-card-loading {
22
  position: absolute;
23
  top: 30%;
34
  #credit-card-form.loading .braintree-hostedfield {
35
  opacity: 0;
36
  }
37
+ #credit-card-form label {
38
+ float: none;
39
+ }
40
  /* Hosted Fields */
41
  #braintree-hosted-submit {
42
  display: none;
152
  background-color: black;
153
  opacity: 0.75;
154
  }
155
+ @media (max-width: 650px) {
156
+ #three-d-modal .bt-modal-frame {
157
+ width: 100%;
158
+ }
159
+ }
160
  #paypal-container iframe {
161
  display: none;
162
  }
skin/frontend/base/default/css/gene/braintree/iwd.css CHANGED
@@ -13,6 +13,11 @@
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
 
 
 
 
 
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
@@ -29,6 +34,9 @@
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
 
 
 
32
  /* Hosted Fields */
33
  #braintree-hosted-submit {
34
  display: none;
@@ -144,6 +152,11 @@
144
  background-color: black;
145
  opacity: 0.75;
146
  }
 
 
 
 
 
147
  #paypal-container iframe {
148
  display: none;
149
  }
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
16
+ #credit-card-form .braintree-card-unsupported {
17
+ color: darkred;
18
+ font-weight: bold;
19
+ padding: 6px 0 4px 0;
20
+ }
21
  #credit-card-form.loading .credit-card-loading {
22
  position: absolute;
23
  top: 30%;
34
  #credit-card-form.loading .braintree-hostedfield {
35
  opacity: 0;
36
  }
37
+ #credit-card-form label {
38
+ float: none;
39
+ }
40
  /* Hosted Fields */
41
  #braintree-hosted-submit {
42
  display: none;
152
  background-color: black;
153
  opacity: 0.75;
154
  }
155
+ @media (max-width: 650px) {
156
+ #three-d-modal .bt-modal-frame {
157
+ width: 100%;
158
+ }
159
+ }
160
  #paypal-container iframe {
161
  display: none;
162
  }
skin/frontend/base/default/css/gene/braintree/magestore.css CHANGED
@@ -13,6 +13,11 @@
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
 
 
 
 
 
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
@@ -29,6 +34,9 @@
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
 
 
 
32
  /* Hosted Fields */
33
  #braintree-hosted-submit {
34
  display: none;
@@ -144,6 +152,11 @@
144
  background-color: black;
145
  opacity: 0.75;
146
  }
 
 
 
 
 
147
  #paypal-container iframe {
148
  display: none;
149
  }
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
16
+ #credit-card-form .braintree-card-unsupported {
17
+ color: darkred;
18
+ font-weight: bold;
19
+ padding: 6px 0 4px 0;
20
+ }
21
  #credit-card-form.loading .credit-card-loading {
22
  position: absolute;
23
  top: 30%;
34
  #credit-card-form.loading .braintree-hostedfield {
35
  opacity: 0;
36
  }
37
+ #credit-card-form label {
38
+ float: none;
39
+ }
40
  /* Hosted Fields */
41
  #braintree-hosted-submit {
42
  display: none;
152
  background-color: black;
153
  opacity: 0.75;
154
  }
155
+ @media (max-width: 650px) {
156
+ #three-d-modal .bt-modal-frame {
157
+ width: 100%;
158
+ }
159
+ }
160
  #paypal-container iframe {
161
  display: none;
162
  }
skin/frontend/base/default/css/gene/braintree/oye.css CHANGED
@@ -13,6 +13,11 @@
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
 
 
 
 
 
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
@@ -29,6 +34,9 @@
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
 
 
 
32
  /* Hosted Fields */
33
  #braintree-hosted-submit {
34
  display: none;
@@ -144,6 +152,11 @@
144
  background-color: black;
145
  opacity: 0.75;
146
  }
 
 
 
 
 
147
  #paypal-container iframe {
148
  display: none;
149
  }
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
16
+ #credit-card-form .braintree-card-unsupported {
17
+ color: darkred;
18
+ font-weight: bold;
19
+ padding: 6px 0 4px 0;
20
+ }
21
  #credit-card-form.loading .credit-card-loading {
22
  position: absolute;
23
  top: 30%;
34
  #credit-card-form.loading .braintree-hostedfield {
35
  opacity: 0;
36
  }
37
+ #credit-card-form label {
38
+ float: none;
39
+ }
40
  /* Hosted Fields */
41
  #braintree-hosted-submit {
42
  display: none;
152
  background-color: black;
153
  opacity: 0.75;
154
  }
155
+ @media (max-width: 650px) {
156
+ #three-d-modal .bt-modal-frame {
157
+ width: 100%;
158
+ }
159
+ }
160
  #paypal-container iframe {
161
  display: none;
162
  }
skin/frontend/base/default/css/gene/braintree/unicode.css CHANGED
@@ -13,6 +13,11 @@
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
 
 
 
 
 
16
  #credit-card-form.loading .credit-card-loading {
17
  position: absolute;
18
  top: 30%;
@@ -29,6 +34,9 @@
29
  #credit-card-form.loading .braintree-hostedfield {
30
  opacity: 0;
31
  }
 
 
 
32
  /* Hosted Fields */
33
  #braintree-hosted-submit {
34
  display: none;
@@ -144,6 +152,11 @@
144
  background-color: black;
145
  opacity: 0.75;
146
  }
 
 
 
 
 
147
  #paypal-container iframe {
148
  display: none;
149
  }
13
  #credit-card-form .credit-card-loading {
14
  display: none;
15
  }
16
+ #credit-card-form .braintree-card-unsupported {
17
+ color: darkred;
18
+ font-weight: bold;
19
+ padding: 6px 0 4px 0;
20
+ }
21
  #credit-card-form.loading .credit-card-loading {
22
  position: absolute;
23
  top: 30%;
34
  #credit-card-form.loading .braintree-hostedfield {
35
  opacity: 0;
36
  }
37
+ #credit-card-form label {
38
+ float: none;
39
+ }
40
  /* Hosted Fields */
41
  #braintree-hosted-submit {
42
  display: none;
152
  background-color: black;
153
  opacity: 0.75;
154
  }
155
+ @media (max-width: 650px) {
156
+ #three-d-modal .bt-modal-frame {
157
+ width: 100%;
158
+ }
159
+ }
160
  #paypal-container iframe {
161
  display: none;
162
  }