Gene_Braintree - Version 2.1.7

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.7
Comparing to
See all releases


Code changes from version 2.1.6 to 2.1.7

Files changed (42) hide show
  1. app/code/community/Gene/Braintree/Block/Assets.php +104 -0
  2. app/code/community/Gene/Braintree/Block/Js.php +18 -5
  3. app/code/community/Gene/Braintree/Helper/Data.php +30 -0
  4. app/code/community/Gene/Braintree/Model/Express/Assets.php +40 -0
  5. app/code/community/Gene/Braintree/Model/Paymentmethod/Creditcard.php +89 -13
  6. app/code/community/Gene/Braintree/Model/System/Config/Source/Payment/Liabilityaction.php +27 -0
  7. app/code/community/Gene/Braintree/Model/Wrapper/Braintree.php +0 -1
  8. app/code/community/Gene/Braintree/controllers/ExpressController.php +7 -1
  9. app/code/community/Gene/Braintree/etc/config.xml +18 -1
  10. app/code/community/Gene/Braintree/etc/jstranslator.xml +3 -0
  11. app/code/community/Gene/Braintree/etc/system.xml +22 -3
  12. app/design/adminhtml/default/default/layout/gene/braintree.xml +2 -13
  13. app/design/adminhtml/default/default/template/gene/braintree/assets.phtml +15 -0
  14. app/design/adminhtml/default/default/template/gene/braintree/creditcard/hostedfields.phtml +8 -0
  15. app/design/frontend/base/default/layout/gene/braintree.xml +7 -16
  16. app/design/frontend/base/default/template/gene/braintree/assets.phtml +15 -0
  17. app/design/frontend/base/default/template/gene/braintree/creditcard/hostedfields.phtml +5 -0
  18. app/design/frontend/base/default/template/gene/braintree/js/firecheckout.phtml +2 -1
  19. app/design/frontend/base/default/template/gene/braintree/js/setup.phtml +2 -0
  20. app/locale/en_US/Gene_Braintree.csv +3 -1
  21. js/gene/braintree/2.1.6/vzero-min.js +0 -1
  22. js/gene/braintree/{2.1.6 → 2.1.7}/express/abstract-min.js +0 -0
  23. js/gene/braintree/{2.1.6 → 2.1.7}/express/paypal-min.js +0 -0
  24. js/gene/braintree/{2.1.6 → 2.1.7}/vzero-integration-min.js +0 -0
  25. js/gene/braintree/2.1.7/vzero-min.js +1 -0
  26. js/gene/braintree/{2.1.6 → 2.1.7}/vzero-paypal-min.js +0 -0
  27. js/gene/braintree/config.codekit +20 -20
  28. js/gene/braintree/source/vzero.js +39 -15
  29. package.xml +4 -4
  30. skin/frontend/base/default/css/gene/braintree/aheadworks.css +3 -0
  31. skin/frontend/base/default/css/gene/braintree/amasty.css +3 -0
  32. skin/frontend/base/default/css/gene/braintree/awesomecheckout.css +3 -0
  33. skin/frontend/base/default/css/gene/braintree/core/_hostedfields.less +4 -0
  34. skin/frontend/base/default/css/gene/braintree/default.css +3 -0
  35. skin/frontend/base/default/css/gene/braintree/fancycheckout.css +3 -0
  36. skin/frontend/base/default/css/gene/braintree/firecheckout.css +3 -0
  37. skin/frontend/base/default/css/gene/braintree/fme.css +3 -0
  38. skin/frontend/base/default/css/gene/braintree/idev.css +3 -0
  39. skin/frontend/base/default/css/gene/braintree/iwd.css +3 -0
  40. skin/frontend/base/default/css/gene/braintree/magestore.css +3 -0
  41. skin/frontend/base/default/css/gene/braintree/oye.css +3 -0
  42. skin/frontend/base/default/css/gene/braintree/unicode.css +3 -0
app/code/community/Gene/Braintree/Block/Assets.php ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Gene_Braintree_Block_Assets
5
+ *
6
+ * @author Dave Macaulay <dave@gene.co.uk>
7
+ */
8
+ class Gene_Braintree_Block_Assets extends Mage_Core_Block_Template
9
+ {
10
+ /**
11
+ * Record the current version
12
+ *
13
+ * @var null|string|float
14
+ */
15
+ protected $version = null;
16
+
17
+ /**
18
+ * Return the Braintree module version
19
+ *
20
+ * @return mixed
21
+ */
22
+ public function getModuleVersion()
23
+ {
24
+ if ($this->version === null) {
25
+ if ($version = Mage::getConfig()->getModuleConfig('Gene_Braintree')->version) {
26
+ $this->version = $version;
27
+ } else {
28
+ $this->version = false;
29
+ }
30
+ }
31
+
32
+ return $this->version;
33
+ }
34
+
35
+ /**
36
+ * Replace {VERSION} with the current module verison
37
+ *
38
+ * @param string $fileName
39
+ *
40
+ * @return string
41
+ */
42
+ public function getJsUrl($fileName = '')
43
+ {
44
+ $fileName = str_replace('{VERSION}', $this->getModuleVersion(), $fileName);
45
+ return parent::getJsUrl($fileName);
46
+ }
47
+
48
+ /**
49
+ * Determine whether or not assets are required for the current page
50
+ *
51
+ * @throws \Exception
52
+ */
53
+ protected function handleRequiresAssets()
54
+ {
55
+ // Build up the request string
56
+ $request = $this->getRequest();
57
+ $requestString =
58
+ $request->getModuleName() . '_' . $request->getControllerName() . '_' . $request->getActionName();
59
+
60
+ // Determine if we're viewing a product or cart and handle different logic
61
+ if ($requestString == 'catalog_product_view') {
62
+ return $this->checkAssetsForProduct();
63
+ } elseif ($requestString == 'checkout_cart_index') {
64
+ return $this->checkAssetsForCart();
65
+ }
66
+
67
+ // Otherwise assume the block has been included on the checkout
68
+ return true;
69
+ }
70
+
71
+ /**
72
+ * Do we need to include assets on the product view page?
73
+ *
74
+ * @return bool
75
+ */
76
+ protected function checkAssetsForProduct()
77
+ {
78
+ return Mage::helper('gene_braintree')->isExpressEnabled('catalog_product_view');
79
+ }
80
+
81
+ /**
82
+ * Do we need to include assets on the cart page?
83
+ *
84
+ * @return bool
85
+ */
86
+ protected function checkAssetsForCart()
87
+ {
88
+ return Mage::helper('gene_braintree')->isExpressEnabled('checkout_cart_index');
89
+ }
90
+
91
+ /**
92
+ * Does the module require setup and thus these assets?
93
+ *
94
+ * @return bool|string
95
+ */
96
+ protected function _toHtml()
97
+ {
98
+ if (Mage::helper('gene_braintree')->isSetupRequired() && $this->handleRequiresAssets()) {
99
+ return parent::_toHtml();
100
+ }
101
+
102
+ return false;
103
+ }
104
+ }
app/code/community/Gene/Braintree/Block/Js.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * @author Dave Macaulay <dave@gene.co.uk>
7
  */
8
- class Gene_Braintree_Block_Js extends Mage_Core_Block_Template
9
  {
10
  /**
11
  * We can use the same token twice
@@ -95,7 +95,21 @@ class Gene_Braintree_Block_Js extends Mage_Core_Block_Template
95
  return Mage::getStoreConfig('payment/gene_braintree_creditcard/cctypes');
96
  }
97
 
98
- return [];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  }
100
 
101
  /**
@@ -205,11 +219,10 @@ class Gene_Braintree_Block_Js extends Mage_Core_Block_Template
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);
212
 
 
213
  return parent::_toHtml();
214
  }
215
 
5
  *
6
  * @author Dave Macaulay <dave@gene.co.uk>
7
  */
8
+ class Gene_Braintree_Block_Js extends Gene_Braintree_Block_Assets
9
  {
10
  /**
11
  * We can use the same token twice
95
  return Mage::getStoreConfig('payment/gene_braintree_creditcard/cctypes');
96
  }
97
 
98
+ return '';
99
+ }
100
+
101
+ /**
102
+ * Return the failed action for 3D secure payments
103
+ *
104
+ * @return int
105
+ */
106
+ protected function getThreeDSecureFailedAction()
107
+ {
108
+ if ($this->isCreditCardActive() && $this->is3DEnabled()) {
109
+ return Mage::getStoreConfig('payment/gene_braintree_creditcard/threedsecure_failed_liability');
110
+ }
111
+
112
+ return 0;
113
  }
114
 
115
  /**
219
  protected function _toHtml()
220
  {
221
  // Check the payment method is active, block duplicate rendering of this block
222
+ if (!Mage::registry('gene_js_loaded_' . $this->getTemplate())) {
 
 
223
  Mage::register('gene_js_loaded_' . $this->getTemplate(), true);
224
 
225
+ // The parent handles whether or not the module is enabled
226
  return parent::_toHtml();
227
  }
228
 
app/code/community/Gene/Braintree/Helper/Data.php CHANGED
@@ -183,4 +183,34 @@ class Gene_Braintree_Helper_Data extends Mage_Core_Helper_Abstract
183
 
184
  return false;
185
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  }
183
 
184
  return false;
185
  }
186
+
187
+ /**
188
+ * Determine if express is enabled by a page handle
189
+ *
190
+ * @param $handle
191
+ *
192
+ * @return bool
193
+ */
194
+ public function isExpressEnabled($handle)
195
+ {
196
+ $assetRequiredFunctions = Mage::getConfig()->getNode('global/payment/assets_required/' . $handle);
197
+ if ($assetRequiredFunctions) {
198
+ $checkFunctions = $assetRequiredFunctions->asArray();
199
+ if (is_array($checkFunctions) && count($checkFunctions) > 0) {
200
+ foreach ($checkFunctions as $check) {
201
+ if (isset($check['class']) && isset($check['method'])) {
202
+ $model = Mage::getModel($check['class']);
203
+ if ($model) {
204
+ // If the method returns true, express is enabled for this handle
205
+ if (method_exists($model, $check['method']) && $model->{$check['method']}()) {
206
+ return true;
207
+ }
208
+ }
209
+ }
210
+ }
211
+ }
212
+ }
213
+
214
+ return false;
215
+ }
216
  }
app/code/community/Gene/Braintree/Model/Express/Assets.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Gene_Braintree_Model_Express_Assets
5
+ *
6
+ * @author Dave Macaulay <dave@gene.co.uk>
7
+ */
8
+ class Gene_Braintree_Model_Express_Assets extends Mage_Core_Model_Abstract
9
+ {
10
+ /**
11
+ * Is the express mode enabled
12
+ *
13
+ * @return bool
14
+ */
15
+ public function isEnabled()
16
+ {
17
+ return Mage::getStoreConfig('payment/gene_braintree_paypal/active')
18
+ && Mage::getStoreConfig('payment/gene_braintree_paypal/express_active');
19
+ }
20
+
21
+ /**
22
+ * Is express enabled on the product page?
23
+ *
24
+ * @return bool
25
+ */
26
+ public function isEnabledPdp()
27
+ {
28
+ return $this->isEnabled() && Mage::getStoreConfig('payment/gene_braintree_paypal/express_pdp');
29
+ }
30
+
31
+ /**
32
+ * Is express enabled in the cart?
33
+ *
34
+ * @return bool
35
+ */
36
+ public function isEnabledCart()
37
+ {
38
+ return $this->isEnabled() && Mage::getStoreConfig('payment/gene_braintree_paypal/express_cart');
39
+ }
40
+ }
app/code/community/Gene/Braintree/Model/Paymentmethod/Creditcard.php CHANGED
@@ -295,20 +295,53 @@ class Gene_Braintree_Model_Paymentmethod_Creditcard extends Gene_Braintree_Model
295
  'exception' => $e
296
  ));
297
 
298
- return $this->_processFailedResult($this->_getHelper()->__('There was an issue whilst trying to process your card payment, please try again or another method.'), $e);
 
 
 
 
 
 
299
  }
300
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
  // Log the initial sale array, no protected data is included
302
  Gene_Braintree_Model_Debug::log(array('_authorize:result' => $result));
303
 
304
  // If the transaction was 3Ds but doesn't contain a 3Ds response
305
- if (($this->is3DEnabled() && isset($saleArray['options']['three_d_secure']['required']) &&
306
- $saleArray['options']['three_d_secure']['required'] == true) &&
307
- (!isset($result->transaction->threeDSecureInfo) || (isset($result->transaction->threeDSecureInfo) &&
308
- is_null($result->transaction->threeDSecureInfo)))
309
  ) {
310
- return $this->_processFailedResult($this->_getHelper()->__('This transaction must be passed through 3D secure, please try again or consider using an alternate payment method.'), false, $result);
311
-
 
 
 
 
 
 
 
 
 
 
 
 
 
312
  }
313
 
314
  // If the sale has failed
@@ -320,8 +353,14 @@ class Gene_Braintree_Model_Paymentmethod_Creditcard extends Gene_Braintree_Model
320
  if (isset($result->transaction->status)) {
321
  // Return a custom response for processor declined messages
322
  if ($result->transaction->status == Braintree_Transaction::PROCESSOR_DECLINED) {
323
- return $this->_processFailedResult($this->_getHelper()->__('Your transaction has been declined, please try another payment method or contacting your issuing bank.'), false, $result);
324
-
 
 
 
 
 
 
325
  } elseif ($result->transaction->status == Braintree_Transaction::GATEWAY_REJECTED
326
  && isset($result->transaction->gatewayRejectionReason)
327
  && $result->transaction->gatewayRejectionReason == Braintree_Transaction::THREE_D_SECURE
@@ -332,18 +371,53 @@ class Gene_Braintree_Model_Paymentmethod_Creditcard extends Gene_Braintree_Model
332
  'result' => $result
333
  ));
334
 
335
- return $this->_processFailedResult($this->_getHelper()->__('Your card has failed 3D secure validation, please try again or consider using an alternate payment method.'), 'Transaction failed with 3D secure', false, $result);
 
 
 
 
 
 
 
336
  }
337
  }
338
 
339
- return $this->_processFailedResult($this->_getHelper()->__('%s Please try again or attempt refreshing the page.', $this->_getWrapper()->parseMessage($result->message)), $result);
 
 
 
 
 
 
 
 
340
  }
341
 
 
342
  $this->_processSuccessResult($payment, $result, $amount);
343
 
344
  return $this;
345
  }
346
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
347
  /**
348
  * Build up the payment request
349
  *
@@ -496,9 +570,11 @@ class Gene_Braintree_Model_Paymentmethod_Creditcard extends Gene_Braintree_Model
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
 
504
  // Iterate through and pull out any data we want
295
  'exception' => $e
296
  ));
297
 
298
+ return $this->_processFailedResult(
299
+ $this->_getHelper()->__(
300
+ 'There was an issue whilst trying to process your card payment, please try again or another' .
301
+ ' method.'
302
+ ),
303
+ $e
304
+ );
305
  }
306
 
307
+ return $this->handleResult($result, $payment, $amount, $saleArray);
308
+ }
309
+
310
+ /**
311
+ * Handle the result of the sale
312
+ *
313
+ * @param $result
314
+ * @param $payment
315
+ * @param $amount
316
+ * @param $saleArray
317
+ *
318
+ * @return $this
319
+ */
320
+ protected function handleResult($result, $payment, $amount, $saleArray)
321
+ {
322
  // Log the initial sale array, no protected data is included
323
  Gene_Braintree_Model_Debug::log(array('_authorize:result' => $result));
324
 
325
  // If the transaction was 3Ds but doesn't contain a 3Ds response
326
+ if ($this->is3DEnabled()
327
+ && isset($saleArray['options']['threeDSecure']['required'])
328
+ && $saleArray['options']['threeDSecure']['required'] == true
 
329
  ) {
330
+ // Check to see if the liability was shifted
331
+ if (!isset($result->transaction->threeDSecureInfo)
332
+ || empty($result->transaction->threeDSecureInfo)
333
+ || !$result->transaction->threeDSecureInfo->liabilityShifted
334
+ ) {
335
+ switch ($this->_getConfig('threedsecure_failed_liability')) {
336
+ case Gene_Braintree_Model_System_Config_Source_Payment_Liabilityaction::BLOCK:
337
+ return $this->processFailedThreeDResult($result);
338
+ break;
339
+ case Gene_Braintree_Model_System_Config_Source_Payment_Liabilityaction::FRAUD:
340
+ $payment->setIsTransactionPending(true);
341
+ $payment->setIsFraudDetected(true);
342
+ break;
343
+ }
344
+ }
345
  }
346
 
347
  // If the sale has failed
353
  if (isset($result->transaction->status)) {
354
  // Return a custom response for processor declined messages
355
  if ($result->transaction->status == Braintree_Transaction::PROCESSOR_DECLINED) {
356
+ return $this->_processFailedResult(
357
+ $this->_getHelper()->__(
358
+ 'Your transaction has been declined, please try another payment method or contacting ' .
359
+ 'your issuing bank.'
360
+ ),
361
+ false,
362
+ $result
363
+ );
364
  } elseif ($result->transaction->status == Braintree_Transaction::GATEWAY_REJECTED
365
  && isset($result->transaction->gatewayRejectionReason)
366
  && $result->transaction->gatewayRejectionReason == Braintree_Transaction::THREE_D_SECURE
371
  'result' => $result
372
  ));
373
 
374
+ return $this->_processFailedResult(
375
+ $this->_getHelper()->__(
376
+ 'Your card has failed 3D secure validation, please try again or consider using an ' .
377
+ 'alternate payment method.'
378
+ ),
379
+ false,
380
+ $result
381
+ );
382
  }
383
  }
384
 
385
+ return $this->_processFailedResult(
386
+ $this->_getHelper()->__(
387
+ '%s Please try again or attempt refreshing the page.',
388
+ $this->_getHelper()->__(
389
+ $this->_getWrapper()->parseMessage($result->message)
390
+ )
391
+ ),
392
+ $result
393
+ );
394
  }
395
 
396
+ // If no errors are thrown we're safe to process the transaction as a success
397
  $this->_processSuccessResult($payment, $result, $amount);
398
 
399
  return $this;
400
  }
401
 
402
+ /**
403
+ * The transaction has failed due to 3D secure
404
+ *
405
+ * @param $result
406
+ *
407
+ * @return $this
408
+ */
409
+ protected function processFailedThreeDResult($result)
410
+ {
411
+ return $this->_processFailedResult(
412
+ $this->_getHelper()->__(
413
+ 'This transaction must be passed through 3D secure, please try again or consider using an ' .
414
+ 'alternate payment method.'
415
+ ),
416
+ false,
417
+ $result
418
+ );
419
+ }
420
+
421
  /**
422
  * Build up the payment request
423
  *
570
  // If 3D secure is enabled, presume it's passed
571
  if ($this->_is3DEnabled()
572
  && isset($result->transaction->threeDSecureInfo->liabilityShifted)
573
+ && $result->transaction->threeDSecureInfo->liabilityShifted
574
  ) {
575
+ $additionalInfo['threeDSecure'] = Mage::helper('gene_braintree')->__('Liability Shifted');
576
+ } elseif ($this->_is3DEnabled()) {
577
+ $additionalInfo['threeDSecure'] = Mage::helper('gene_braintree')->__('Liability Not Shifted');
578
  }
579
 
580
  // Iterate through and pull out any data we want
app/code/community/Gene/Braintree/Model/System/Config/Source/Payment/Liabilityaction.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Gene_Braintree_Model_System_Config_Source_Payment_Liabilityaction
5
+ *
6
+ * @author Dave Macaulay <dave@gene.co.uk>
7
+ */
8
+ class Gene_Braintree_Model_System_Config_Source_Payment_Liabilityaction
9
+ {
10
+ const BLOCK = 1;
11
+ const FRAUD = 2;
12
+ const PROCESS = 3;
13
+
14
+ /**
15
+ * Return options for 3D secure specific countries option
16
+ *
17
+ * @return array
18
+ */
19
+ public function toOptionArray()
20
+ {
21
+ return array(
22
+ array('value' => self::BLOCK, 'label' => Mage::helper('adminhtml')->__('Request Alternative Payment Method')),
23
+ array('value' => self::FRAUD, 'label' => Mage::helper('adminhtml')->__('Accept & Mark as Fraud')),
24
+ array('value' => self::PROCESS, 'label' => Mage::helper('adminhtml')->__('Accept')),
25
+ );
26
+ }
27
+ }
app/code/community/Gene/Braintree/Model/Wrapper/Braintree.php CHANGED
@@ -632,7 +632,6 @@ class Gene_Braintree_Model_Wrapper_Braintree extends Mage_Core_Model_Abstract
632
  if ($storeInVault && Mage::getSingleton('checkout/session')->getGuestBraintreeCustomerId() &&
633
  ($token = Mage::getSingleton('checkout/session')->getGuestPaymentToken())
634
  ) {
635
- echo '1';
636
  if ($this->checkPaymentMethod($token)) {
637
  // Remove this from the session so it doesn't get deleted at the end of checkout
638
  Mage::getSingleton('checkout/session')->unsGuestBraintreeCustomerId();
632
  if ($storeInVault && Mage::getSingleton('checkout/session')->getGuestBraintreeCustomerId() &&
633
  ($token = Mage::getSingleton('checkout/session')->getGuestPaymentToken())
634
  ) {
 
635
  if ($this->checkPaymentMethod($token)) {
636
  // Remove this from the session so it doesn't get deleted at the end of checkout
637
  Mage::getSingleton('checkout/session')->unsGuestBraintreeCustomerId();
app/code/community/Gene/Braintree/controllers/ExpressController.php CHANGED
@@ -155,8 +155,14 @@ class Gene_Braintree_ExpressController extends Mage_Core_Controller_Front_Action
155
  }
156
 
157
  // Build the address
158
- list($firstName, $lastName) = explode(" ", $paypalData['shippingAddress']['recipientName'], 2);
 
 
 
 
 
159
 
 
160
  $street = $paypalData['shippingAddress']['line1'];
161
  if (isset($paypalData['shippingAddress']['line2'])) {
162
  $street .= ' ' . $paypalData['shippingAddress']['line2'];
155
  }
156
 
157
  // Build the address
158
+ if (isset($paypalData['firstName']) && isset($paypalData['lastName'])) {
159
+ $firstName = $paypalData['firstName'];
160
+ $lastName = $paypalData['lastName'];
161
+ } elseif (isset($paypalData['shippingAddress']['recipientName'])) {
162
+ list($firstName, $lastName) = explode(" ", $paypalData['shippingAddress']['recipientName'], 2);
163
+ }
164
 
165
+ // Retrieve the street
166
  $street = $paypalData['shippingAddress']['line1'];
167
  if (isset($paypalData['shippingAddress']['line2'])) {
168
  $street .= ' ' . $paypalData['shippingAddress']['line2'];
app/code/community/Gene/Braintree/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Gene_Braintree>
5
- <version>2.1.6</version>
6
  </Gene_Braintree>
7
  </modules>
8
  <global>
@@ -57,6 +57,22 @@
57
  <gene_braintree_creditcard />
58
  <gene_braintree_paypal />
59
  </setup_required>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  </payment>
61
 
62
  <events>
@@ -112,6 +128,7 @@
112
  <form_integration>hosted</form_integration>
113
  <use_vault>0</use_vault>
114
  <threedsecure>0</threedsecure>
 
115
  <threedsecure_threshold>0</threedsecure_threshold>
116
  <useccv>1</useccv>
117
  <kount_ens_ips>209.81.12.0/24,64.128.91.0/24,64.128.87.0/24</kount_ens_ips>
2
  <config>
3
  <modules>
4
  <Gene_Braintree>
5
+ <version>2.1.7</version>
6
  </Gene_Braintree>
7
  </modules>
8
  <global>
57
  <gene_braintree_creditcard />
58
  <gene_braintree_paypal />
59
  </setup_required>
60
+
61
+ <!-- Function checks for assets on specific pages -->
62
+ <assets_required>
63
+ <catalog_product_view>
64
+ <paypal>
65
+ <class>gene_braintree/express_assets</class>
66
+ <method>isEnabledPdp</method>
67
+ </paypal>
68
+ </catalog_product_view>
69
+ <checkout_cart_index>
70
+ <paypal>
71
+ <class>gene_braintree/express_assets</class>
72
+ <method>isEnabledCart</method>
73
+ </paypal>
74
+ </checkout_cart_index>
75
+ </assets_required>
76
  </payment>
77
 
78
  <events>
128
  <form_integration>hosted</form_integration>
129
  <use_vault>0</use_vault>
130
  <threedsecure>0</threedsecure>
131
+ <threedsecure_failed_liability>1</threedsecure_failed_liability>
132
  <threedsecure_threshold>0</threedsecure_threshold>
133
  <useccv>1</useccv>
134
  <kount_ens_ips>209.81.12.0/24,64.128.91.0/24,64.128.87.0/24</kount_ens_ips>
app/code/community/Gene/Braintree/etc/jstranslator.xml CHANGED
@@ -18,5 +18,8 @@
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
 
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
+ <braintree-threed-failed translate="message" module="gene_braintree">
22
+ <message>Your payment has failed 3D secure verification, please try an alternate payment method.</message>
23
+ </braintree-threed-failed>
24
  </jstranslator>
25
 
app/code/community/Gene/Braintree/etc/system.xml CHANGED
@@ -781,10 +781,29 @@
781
  ]]></comment>
782
  </threedsecure>
783
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
784
  <threedsecure_threshold translate="label comment">
785
  <label>3D Secure Threshold</label>
786
  <frontend_type>text</frontend_type>
787
- <sort_order>101</sort_order>
788
  <show_in_default>1</show_in_default>
789
  <show_in_website>1</show_in_website>
790
  <show_in_store>1</show_in_store>
@@ -799,7 +818,7 @@
799
  <threedsecure_allowspecific translate="label comment">
800
  <label>3D Secure for Applicable Countries</label>
801
  <frontend_type>allowspecific</frontend_type>
802
- <sort_order>102</sort_order>
803
  <source_model>gene_braintree/system_config_source_payment_threedsecurecountries</source_model>
804
  <show_in_default>1</show_in_default>
805
  <show_in_website>1</show_in_website>
@@ -815,7 +834,7 @@
815
  <threedsecure_specificcountry translate="label">
816
  <label>3D Secure for Specific Countries</label>
817
  <frontend_type>multiselect</frontend_type>
818
- <sort_order>103</sort_order>
819
  <source_model>adminhtml/system_config_source_country</source_model>
820
  <show_in_default>1</show_in_default>
821
  <show_in_website>1</show_in_website>
781
  ]]></comment>
782
  </threedsecure>
783
 
784
+ <threedsecure_failed_liability translate="label comment">
785
+ <label>Failed Liability Shift Action</label>
786
+ <frontend_type>select</frontend_type>
787
+ <source_model>gene_braintree/system_config_source_payment_liabilityaction</source_model>
788
+ <sort_order>101</sort_order>
789
+ <show_in_default>1</show_in_default>
790
+ <show_in_website>1</show_in_website>
791
+ <show_in_store>1</show_in_store>
792
+ <comment><![CDATA[
793
+ Action to complete if the liability shift fails after the 3D secure. If the liability cannot be shifted the merchant is liable for charge backs.<br />
794
+ <strong>Request Alternative Payment Method</strong> - Block the payment and inform the customer to choose a different payment method.<br />
795
+ <strong>Accept & Mark as Fraud</strong> - Will accept the payment but mark as fraudulent within Magento for manual inspection.<br />
796
+ <strong>Accept</strong> - Will accept the payment and be processed as a normal order (this setting is not recommended).
797
+ ]]></comment>
798
+ <depends>
799
+ <threedsecure>1</threedsecure>
800
+ </depends>
801
+ </threedsecure_failed_liability>
802
+
803
  <threedsecure_threshold translate="label comment">
804
  <label>3D Secure Threshold</label>
805
  <frontend_type>text</frontend_type>
806
+ <sort_order>105</sort_order>
807
  <show_in_default>1</show_in_default>
808
  <show_in_website>1</show_in_website>
809
  <show_in_store>1</show_in_store>
818
  <threedsecure_allowspecific translate="label comment">
819
  <label>3D Secure for Applicable Countries</label>
820
  <frontend_type>allowspecific</frontend_type>
821
+ <sort_order>106</sort_order>
822
  <source_model>gene_braintree/system_config_source_payment_threedsecurecountries</source_model>
823
  <show_in_default>1</show_in_default>
824
  <show_in_website>1</show_in_website>
834
  <threedsecure_specificcountry translate="label">
835
  <label>3D Secure for Specific Countries</label>
836
  <frontend_type>multiselect</frontend_type>
837
+ <sort_order>110</sort_order>
838
  <source_model>adminhtml/system_config_source_country</source_model>
839
  <show_in_default>1</show_in_default>
840
  <show_in_website>1</show_in_website>
app/design/adminhtml/default/default/layout/gene/braintree.xml CHANGED
@@ -17,23 +17,12 @@
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.6/vzero-min.js</file></action>
21
- <action method="addJs"><file>gene/braintree/2.1.6/vzero-paypal-min.js</file></action>
22
- <action method="addJs"><file>gene/braintree/2.1.6/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>
26
  </reference>
27
  <reference name="js">
28
- <block type="core/text" name="braintree-js">
29
- <action method="setText"><text><![CDATA[
30
- <script src="https://js.braintreegateway.com/web/3.5.0/js/client.min.js"></script>
31
- <script src="https://js.braintreegateway.com/web/3.5.0/js/hosted-fields.min.js"></script>
32
- <script src="https://js.braintreegateway.com/web/3.5.0/js/three-d-secure.min.js"></script>
33
- <script src="https://js.braintreegateway.com/web/3.5.0/js/paypal.min.js"></script>
34
- <script src="https://js.braintreegateway.com/web/3.5.0/js/data-collector.min.js"></script>
35
- ]]></text></action>
36
- </block>
37
  </reference>
38
  <reference name="before_body_end">
39
  <block type="gene_braintree/js" name="gene_braintree_js" template="gene/braintree/js.phtml" />
17
  <adminhtml_sales_order_create_index>
18
  <reference name="head">
19
  <action method="addCss"><file>css/gene/braintree/adminhtml.css</file></action>
 
 
 
 
20
  <!-- If Braintree_Payments is enabled remove the JS -->
21
  <action method="removeItem"><type>js</type><name>braintree/braintree-1.3.4.js</name></action>
22
  </reference>
23
  <reference name="js">
24
+ <!-- Include all Braintree assets through a dynamic block -->
25
+ <block type="gene_braintree/assets" name="gene.braintree.head.assets" template="gene/braintree/assets.phtml" after="-" />
 
 
 
 
 
 
 
26
  </reference>
27
  <reference name="before_body_end">
28
  <block type="gene_braintree/js" name="gene_braintree_js" template="gene/braintree/js.phtml" />
app/design/adminhtml/default/default/template/gene/braintree/assets.phtml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* @var $this Gene_Braintree_Block_Assets */
3
+ ?>
4
+ <!-- Braintree External SDK -->
5
+ <script src="https://js.braintreegateway.com/web/3.6.0/js/client.min.js"></script>
6
+ <script src="https://js.braintreegateway.com/web/3.6.0/js/hosted-fields.min.js"></script>
7
+ <script src="https://js.braintreegateway.com/web/3.6.0/js/three-d-secure.min.js"></script>
8
+ <script src="https://js.braintreegateway.com/web/3.6.0/js/paypal.min.js"></script>
9
+ <script src="https://js.braintreegateway.com/web/3.6.0/js/data-collector.min.js"></script>
10
+
11
+ <!-- Internal SDK Magento Interfaces -->
12
+ <?php /* {VERSION} is replaced with the current version of the Braintree module */ ?>
13
+ <script src="<?php echo $this->getJsUrl('gene/braintree/{VERSION}/vzero-min.js'); ?>"></script>
14
+ <script src="<?php echo $this->getJsUrl('gene/braintree/{VERSION}/vzero-paypal-min.js'); ?>"></script>
15
+ <script src="<?php echo $this->getJsUrl('gene/braintree/{VERSION}/vzero-integration-min.js'); ?>"></script>
app/design/adminhtml/default/default/template/gene/braintree/creditcard/hostedfields.phtml CHANGED
@@ -31,6 +31,11 @@ $_code = $this->getMethodCode()
31
  <label for="cvv"><?php echo $this->__('CVV'); ?></label>
32
  <div id="cvv" class="braintree-input-field braintree-cvv"></div>
33
  </li>
 
 
 
 
 
34
  <?php if ($this->canSaveCard()) : ?>
35
  <li id="<?php echo $_code ?>_store_in_vault_div">
36
  <input type="checkbox" title="<?php echo $this->__('Save card against customers account') ?>"
@@ -84,6 +89,9 @@ $_code = $this->getMethodCode()
84
  border: 1px solid lightgrey;
85
  background: white;
86
  }
 
 
 
87
  .braintree-card-input-field {
88
  height: 50px;
89
  width: 100%;
31
  <label for="cvv"><?php echo $this->__('CVV'); ?></label>
32
  <div id="cvv" class="braintree-input-field braintree-cvv"></div>
33
  </li>
34
+ <?php /* This field is automatically shown by JavaScript based on the merchants AVS settings */ ?>
35
+ <li class="braintree-avs-postal-code" style="display: none;">
36
+ <label for="postal-code"><?php echo $this->__('Postal Code'); ?></label>
37
+ <div id="postal-code" class="braintree-input-field braintree-postal-code"></div>
38
+ </li>
39
  <?php if ($this->canSaveCard()) : ?>
40
  <li id="<?php echo $_code ?>_store_in_vault_div">
41
  <input type="checkbox" title="<?php echo $this->__('Save card against customers account') ?>"
89
  border: 1px solid lightgrey;
90
  background: white;
91
  }
92
+ .braintree-input-field.braintree-postal-code {
93
+ width: 140px;
94
+ }
95
  .braintree-card-input-field {
96
  height: 50px;
97
  width: 100%;
app/design/frontend/base/default/layout/gene/braintree.xml CHANGED
@@ -4,18 +4,9 @@
4
  <!-- All checkout integrations must include this as a handle -->
5
  <gene_braintree_assets>
6
  <reference name="head">
7
- <block type="core/text" name="braintree-js">
8
- <action method="setText"><text><![CDATA[
9
- <script src="https://js.braintreegateway.com/web/3.5.0/js/client.min.js"></script>
10
- <script src="https://js.braintreegateway.com/web/3.5.0/js/hosted-fields.min.js"></script>
11
- <script src="https://js.braintreegateway.com/web/3.5.0/js/three-d-secure.min.js"></script>
12
- <script src="https://js.braintreegateway.com/web/3.5.0/js/paypal.min.js"></script>
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.6/vzero-min.js</file></action>
17
- <action method="addJs"><file>gene/braintree/2.1.6/vzero-paypal-min.js</file></action>
18
- <action method="addJs"><file>gene/braintree/2.1.6/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 +229,8 @@
238
  <catalog_product_view>
239
  <update handle="gene_braintree_assets" />
240
  <reference name="head">
241
- <action method="addJs"><file>gene/braintree/2.1.6/express/abstract-min.js</file></action>
242
- <action method="addJs"><file>gene/braintree/2.1.6/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 +251,8 @@
260
  <checkout_cart_index>
261
  <update handle="gene_braintree_assets" />
262
  <reference name="head">
263
- <action method="addJs"><file>gene/braintree/2.1.6/express/abstract-min.js</file></action>
264
- <action method="addJs"><file>gene/braintree/2.1.6/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>
4
  <!-- All checkout integrations must include this as a handle -->
5
  <gene_braintree_assets>
6
  <reference name="head">
7
+ <!-- Include all Braintree assets through a dynamic block -->
8
+ <block type="gene_braintree/assets" name="gene.braintree.head.assets" template="gene/braintree/assets.phtml" after="-" />
9
+
 
 
 
 
 
 
 
 
 
10
  <!-- If Braintree_Payments is enabled remove their JS -->
11
  <action method="removeItem"><type>js</type><name>braintree/braintree-1.3.4.js</name></action>
12
  </reference>
229
  <catalog_product_view>
230
  <update handle="gene_braintree_assets" />
231
  <reference name="head">
232
+ <action method="addJs"><file>gene/braintree/2.1.7/express/abstract-min.js</file></action>
233
+ <action method="addJs"><file>gene/braintree/2.1.7/express/paypal-min.js</file></action>
234
  <action method="addCss"><file>css/gene/braintree/default.css</file></action>
235
  <action method="addCss"><file>css/gene/braintree/express.css</file></action>
236
  </reference>
251
  <checkout_cart_index>
252
  <update handle="gene_braintree_assets" />
253
  <reference name="head">
254
+ <action method="addJs"><file>gene/braintree/2.1.7/express/abstract-min.js</file></action>
255
+ <action method="addJs"><file>gene/braintree/2.1.7/express/paypal-min.js</file></action>
256
  <action method="addCss"><file>css/gene/braintree/default.css</file></action>
257
  <action method="addCss"><file>css/gene/braintree/express.css</file></action>
258
  </reference>
app/design/frontend/base/default/template/gene/braintree/assets.phtml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* @var $this Gene_Braintree_Block_Assets */
3
+ ?>
4
+ <!-- Braintree External SDK -->
5
+ <script src="https://js.braintreegateway.com/web/3.6.0/js/client.min.js"></script>
6
+ <script src="https://js.braintreegateway.com/web/3.6.0/js/hosted-fields.min.js"></script>
7
+ <script src="https://js.braintreegateway.com/web/3.6.0/js/three-d-secure.min.js"></script>
8
+ <script src="https://js.braintreegateway.com/web/3.6.0/js/paypal.min.js"></script>
9
+ <script src="https://js.braintreegateway.com/web/3.6.0/js/data-collector.min.js"></script>
10
+
11
+ <!-- Internal SDK Magento Interfaces -->
12
+ <?php /* {VERSION} is replaced with the current version of the Braintree module */ ?>
13
+ <script src="<?php echo $this->getJsUrl('gene/braintree/{VERSION}/vzero-min.js'); ?>"></script>
14
+ <script src="<?php echo $this->getJsUrl('gene/braintree/{VERSION}/vzero-paypal-min.js'); ?>"></script>
15
+ <script src="<?php echo $this->getJsUrl('gene/braintree/{VERSION}/vzero-integration-min.js'); ?>"></script>
app/design/frontend/base/default/template/gene/braintree/creditcard/hostedfields.phtml CHANGED
@@ -55,6 +55,11 @@ $_code = $this->getMethodCode()
55
  <a href="#" class="cvv-what-is-this"><?php echo $this->__('What is this?') ?></a>
56
  </li>
57
  <?php endif; ?>
 
 
 
 
 
58
  <?php if ($this->canSaveCard()): ?>
59
  <li id="<?php echo $_code ?>_store_in_vault_div">
60
  <input type="checkbox" title="<?php echo $this->__('Save this card for future use') ?>"
55
  <a href="#" class="cvv-what-is-this"><?php echo $this->__('What is this?') ?></a>
56
  </li>
57
  <?php endif; ?>
58
+ <?php /* This field is automatically shown by JavaScript based on the merchants AVS settings */ ?>
59
+ <li class="braintree-avs-postal-code" style="display: none;">
60
+ <label for="postal-code"><?php echo $this->__('Postal Code'); ?></label>
61
+ <div id="postal-code" class="braintree-input-field braintree-postal-code"></div>
62
+ </li>
63
  <?php if ($this->canSaveCard()): ?>
64
  <li id="<?php echo $_code ?>_store_in_vault_div">
65
  <input type="checkbox" title="<?php echo $this->__('Save this card for future use') ?>"
app/design/frontend/base/default/template/gene/braintree/js/firecheckout.phtml CHANGED
@@ -99,7 +99,8 @@
99
  $$('.firecheckout-set.onecolumn').length === 0,
100
  {
101
  ignoreAjax: ['firecheckout/index/saveOrder']
102
- }
 
103
  );
104
 
105
  </script>
99
  $$('.firecheckout-set.onecolumn').length === 0,
100
  {
101
  ignoreAjax: ['firecheckout/index/saveOrder']
102
+ },
103
+ $$('.firecheckout-set.onecolumn').length === 1
104
  );
105
 
106
  </script>
app/design/frontend/base/default/template/gene/braintree/js/setup.phtml CHANGED
@@ -33,6 +33,8 @@
33
  vzero.setThreeDCountries('<?php echo $this->getThreeDSpecificCountries(); ?>');
34
  <?php endif; ?>
35
 
 
 
36
  <?php if ($this->isPayPalActive()) : ?>
37
  // Pass some data through to the PayPal integration
38
  var vzeroPaypal = new vZeroPayPalButton(
33
  vzero.setThreeDCountries('<?php echo $this->getThreeDSpecificCountries(); ?>');
34
  <?php endif; ?>
35
 
36
+ vzero.setThreeDFailedAction('<?php echo $this->getThreeDSecureFailedAction(); ?>');
37
+
38
  <?php if ($this->isPayPalActive()) : ?>
39
  // Pass some data through to the PayPal integration
40
  var vzeroPaypal = new vZeroPayPalButton(
app/locale/en_US/Gene_Braintree.csv CHANGED
@@ -140,4 +140,6 @@
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."
 
 
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."
144
+ "Your payment has failed 3D secure verification, please try an alternate payment method.","Your payment has failed 3D secure verification, please try an alternate payment method."
145
+ "Gateway rejected: AVS","There has been an issue whilst validating your billing address."
js/gene/braintree/2.1.6/vzero-min.js DELETED
@@ -1 +0,0 @@
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.6 → 2.1.7}/express/abstract-min.js RENAMED
File without changes
js/gene/braintree/{2.1.6 → 2.1.7}/express/paypal-min.js RENAMED
File without changes
js/gene/braintree/{2.1.6 → 2.1.7}/vzero-integration-min.js RENAMED
File without changes
js/gene/braintree/2.1.7/vzero-min.js ADDED
@@ -0,0 +1 @@
 
1
+ var vZero=Class.create();vZero.prototype={initialize:function(e,t,i,n,o,r,s,a){this.code=e,this.clientToken=t,this.threeDSecure=i,this.hostedFields=n,o&&(this.billingName=o),r&&(this.billingPostcode=r),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.threeDSecureFailedAction=0,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},setThreeDFailedAction:function(e){this.threeDSecureFailedAction=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"});var i=e.getConfiguration();"object"==typeof i.gatewayConfiguration.challenges&&i.gatewayConfiguration.challenges.indexOf("postal_code")!==-1&&(void 0==$$(".braintree-avs-postal-code").first()?console.error("We've detected you have AVS rules enabled, however the braintree-avs-postal-code field is not present in your Hosted Fields form. Please ensure you haven't overriden hostedfields.phtml and if you have please update it."):($$(".braintree-avs-postal-code").first().show(),t.fields.postalCode={selector:"#postal-code"})),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,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._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 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):1==this.threeDSecureFailedAction?t.onFailure&&t.onFailure(i,Translator.translate("Your payment has failed 3D secure verification, please try an alternate payment method.")):t.onSuccess&&t.onSuccess(i)}.bind(this))}.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.6 → 2.1.7}/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.6\/express\/abstract-min.js": {
6
  "fileType": 64,
7
  "ignore": 1,
8
  "ignoreWasSetByUser": 0,
9
- "inputAbbreviatedPath": "\/2.1.6\/express\/abstract-min.js",
10
- "outputAbbreviatedPath": "\/2.1.6\/express\/min\/abstract-min-min.js",
11
  "outputPathIsOutsideProject": 0,
12
  "outputPathIsSetByUser": 0,
13
  "outputStyle": 1,
14
  "syntaxCheckerStyle": 1
15
  },
16
- "\/2.1.6\/express\/paypal-min.js": {
17
  "fileType": 64,
18
  "ignore": 1,
19
  "ignoreWasSetByUser": 0,
20
- "inputAbbreviatedPath": "\/2.1.6\/express\/paypal-min.js",
21
- "outputAbbreviatedPath": "\/2.1.6\/express\/min\/paypal-min-min.js",
22
  "outputPathIsOutsideProject": 0,
23
  "outputPathIsSetByUser": 0,
24
  "outputStyle": 1,
25
  "syntaxCheckerStyle": 1
26
  },
27
- "\/2.1.6\/vzero-integration-min.js": {
28
  "fileType": 64,
29
  "ignore": 1,
30
  "ignoreWasSetByUser": 0,
31
- "inputAbbreviatedPath": "\/2.1.6\/vzero-integration-min.js",
32
- "outputAbbreviatedPath": "\/2.1.6\/min\/vzero-integration-min-min.js",
33
  "outputPathIsOutsideProject": 0,
34
  "outputPathIsSetByUser": 0,
35
  "outputStyle": 1,
36
  "syntaxCheckerStyle": 1
37
  },
38
- "\/2.1.6\/vzero-min.js": {
39
  "fileType": 64,
40
  "ignore": 1,
41
  "ignoreWasSetByUser": 0,
42
- "inputAbbreviatedPath": "\/2.1.6\/vzero-min.js",
43
- "outputAbbreviatedPath": "\/2.1.6\/min\/vzero-min-min.js",
44
  "outputPathIsOutsideProject": 0,
45
  "outputPathIsSetByUser": 0,
46
  "outputStyle": 1,
47
  "syntaxCheckerStyle": 1
48
  },
49
- "\/2.1.6\/vzero-paypal-min.js": {
50
  "fileType": 64,
51
  "ignore": 1,
52
  "ignoreWasSetByUser": 0,
53
- "inputAbbreviatedPath": "\/2.1.6\/vzero-paypal-min.js",
54
- "outputAbbreviatedPath": "\/2.1.6\/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.6\/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.6\/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.6\/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.6\/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.6\/vzero-min.js",
110
  "outputPathIsOutsideProject": 0,
111
  "outputPathIsSetByUser": 1,
112
  "outputStyle": 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.7\/express\/abstract-min.js": {
6
  "fileType": 64,
7
  "ignore": 1,
8
  "ignoreWasSetByUser": 0,
9
+ "inputAbbreviatedPath": "\/2.1.7\/express\/abstract-min.js",
10
+ "outputAbbreviatedPath": "\/2.1.7\/express\/min\/abstract-min-min.js",
11
  "outputPathIsOutsideProject": 0,
12
  "outputPathIsSetByUser": 0,
13
  "outputStyle": 1,
14
  "syntaxCheckerStyle": 1
15
  },
16
+ "\/2.1.7\/express\/paypal-min.js": {
17
  "fileType": 64,
18
  "ignore": 1,
19
  "ignoreWasSetByUser": 0,
20
+ "inputAbbreviatedPath": "\/2.1.7\/express\/paypal-min.js",
21
+ "outputAbbreviatedPath": "\/2.1.7\/express\/min\/paypal-min-min.js",
22
  "outputPathIsOutsideProject": 0,
23
  "outputPathIsSetByUser": 0,
24
  "outputStyle": 1,
25
  "syntaxCheckerStyle": 1
26
  },
27
+ "\/2.1.7\/vzero-integration-min.js": {
28
  "fileType": 64,
29
  "ignore": 1,
30
  "ignoreWasSetByUser": 0,
31
+ "inputAbbreviatedPath": "\/2.1.7\/vzero-integration-min.js",
32
+ "outputAbbreviatedPath": "\/2.1.7\/min\/vzero-integration-min-min.js",
33
  "outputPathIsOutsideProject": 0,
34
  "outputPathIsSetByUser": 0,
35
  "outputStyle": 1,
36
  "syntaxCheckerStyle": 1
37
  },
38
+ "\/2.1.7\/vzero-min.js": {
39
  "fileType": 64,
40
  "ignore": 1,
41
  "ignoreWasSetByUser": 0,
42
+ "inputAbbreviatedPath": "\/2.1.7\/vzero-min.js",
43
+ "outputAbbreviatedPath": "\/2.1.7\/min\/vzero-min-min.js",
44
  "outputPathIsOutsideProject": 0,
45
  "outputPathIsSetByUser": 0,
46
  "outputStyle": 1,
47
  "syntaxCheckerStyle": 1
48
  },
49
+ "\/2.1.7\/vzero-paypal-min.js": {
50
  "fileType": 64,
51
  "ignore": 1,
52
  "ignoreWasSetByUser": 0,
53
+ "inputAbbreviatedPath": "\/2.1.7\/vzero-paypal-min.js",
54
+ "outputAbbreviatedPath": "\/2.1.7\/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.7\/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.7\/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.7\/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.7\/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.7\/vzero-min.js",
110
  "outputPathIsOutsideProject": 0,
111
  "outputPathIsSetByUser": 1,
112
  "outputStyle": 1,
js/gene/braintree/source/vzero.js CHANGED
@@ -54,6 +54,7 @@ vZero.prototype = {
54
 
55
  this.threeDSpecificCountries = false;
56
  this.threeDCountries = [];
 
57
 
58
  this.supportedCards = [];
59
  this.cardType = false;
@@ -122,6 +123,15 @@ vZero.prototype = {
122
  this.threeDCountries = countries;
123
  },
124
 
 
 
 
 
 
 
 
 
 
125
  /**
126
  * Add an event into the system
127
  *
@@ -317,6 +327,21 @@ vZero.prototype = {
317
  };
318
  }
319
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
320
  // Create a new instance of hosted fields
321
  braintree.hostedFields.create(options, function (hostedFieldsErr, hostedFieldsInstance) {
322
  // Handle hosted fields errors
@@ -1043,21 +1068,20 @@ vZero.prototype = {
1043
  if (options.onSuccess) {
1044
  options.onSuccess(payload);
1045
  }
1046
- } else if (payload.liabilityShiftPossible) {
1047
- // Liablity may still be shifted
1048
- // Decide if you want to submit the nonce
1049
-
1050
- // Treat as success, allow the server to handle the decision
1051
- if (options.onSuccess) {
1052
- options.onSuccess(payload);
1053
- }
1054
  } else {
1055
- // Liablity has not shifted and will not shift
1056
- // Decide if you want to submit the nonce
1057
-
1058
- // Treat as success, allow the server to handle the decision
1059
- if (options.onSuccess) {
1060
- options.onSuccess(payload);
 
 
 
 
 
 
 
1061
  }
1062
  }
1063
  } else {
@@ -1065,7 +1089,7 @@ vZero.prototype = {
1065
  options.onFailure(payload, verifyError);
1066
  }
1067
  }
1068
- });
1069
  }.bind(this));
1070
  }.bind(this));
1071
 
54
 
55
  this.threeDSpecificCountries = false;
56
  this.threeDCountries = [];
57
+ this.threeDSecureFailedAction = 0;
58
 
59
  this.supportedCards = [];
60
  this.cardType = false;
123
  this.threeDCountries = countries;
124
  },
125
 
126
+ /**
127
+ * Set the action to occur when a 3Ds transactions liability doesn't shift
128
+ *
129
+ * @param action
130
+ */
131
+ setThreeDFailedAction: function (action) {
132
+ this.threeDSecureFailedAction = action;
133
+ },
134
+
135
  /**
136
  * Add an event into the system
137
  *
327
  };
328
  }
329
 
330
+ // Detect if AVS is enabled, if so we need to display a postal code field
331
+ var config = clientInstance.getConfiguration();
332
+ if (typeof config.gatewayConfiguration.challenges === 'object'
333
+ && config.gatewayConfiguration.challenges.indexOf('postal_code') !== -1
334
+ ) {
335
+ if ($$('.braintree-avs-postal-code').first() == undefined) {
336
+ console.error('We\'ve detected you have AVS rules enabled, however the braintree-avs-postal-code field is not present in your Hosted Fields form. Please ensure you haven\'t overriden hostedfields.phtml and if you have please update it.');
337
+ } else {
338
+ $$('.braintree-avs-postal-code').first().show();
339
+ options.fields.postalCode = {
340
+ selector: "#postal-code"
341
+ };
342
+ }
343
+ }
344
+
345
  // Create a new instance of hosted fields
346
  braintree.hostedFields.create(options, function (hostedFieldsErr, hostedFieldsInstance) {
347
  // Handle hosted fields errors
1068
  if (options.onSuccess) {
1069
  options.onSuccess(payload);
1070
  }
 
 
 
 
 
 
 
 
1071
  } else {
1072
+ // Block the payment
1073
+ if (this.threeDSecureFailedAction == 1) {
1074
+ if (options.onFailure) {
1075
+ options.onFailure(
1076
+ payload,
1077
+ Translator.translate('Your payment has failed 3D secure verification, please try an alternate payment method.')
1078
+ );
1079
+ }
1080
+ } else {
1081
+ // Otherwise let the server side handle this
1082
+ if (options.onSuccess) {
1083
+ options.onSuccess(payload);
1084
+ }
1085
  }
1086
  }
1087
  } else {
1089
  options.onFailure(payload, verifyError);
1090
  }
1091
  }
1092
+ }.bind(this));
1093
  }.bind(this));
1094
  }.bind(this));
1095
 
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Gene_Braintree</name>
4
- <version>2.1.6</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-11</date>
40
- <time>09:35:10</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="8a6a9121754c971744c3cf5681e77e39"/></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="7819ae164f6636b834776618be19fe00"/><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="63872fbe77603e2d8883416b74126ad4"/></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="16b1a19420bfab65b146f1349063f3d4"/></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="848bb7c614bee8cdd8c344dca3705e39"/><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.6"><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="6836b0bc5e4881f70ba9d5170c64f2e1"/><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>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Gene_Braintree</name>
4
+ <version>2.1.7</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-16</date>
40
+ <time>10:06:36</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><file name="Assets.php" hash="46f74f685b6077a63b483368a6291217"/><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="ba30f0430bde2c45a6ed7fe5a35be676"/><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="257e98f11463d1d3a2f0c9d73e801b05"/></dir><dir name="Model"><file name="Debug.php" hash="f3360f71e2346881f93424792ed9f209"/><dir name="Entity"><file name="Setup.php" hash="c580e73ec53ac455698ee6b0ff005e39"/></dir><dir name="Express"><file name="Assets.php" hash="9618a73154cb1083f8511fc7dc9c2d81"/></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="4dba0a50b5df53efcafd1eed3289f1ff"/><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="Liabilityaction.php" hash="62350b96b2f77b4e37d9530d3b9e030a"/><file name="Threedsecurecountries.php" hash="d6c636f1e83676acd385312142221037"/></dir></dir></dir></dir><dir name="Wrapper"><file name="Braintree.php" hash="0ed9bf0ed1331d824563ab6a868ec886"/></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="a3f14acd6834cbaae440e3a67fa09290"/><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="f0f7c0a069363d0449be089990e57301"/><file name="jstranslator.xml" hash="48c491259929e52f281b6c57fd57cdb2"/><file name="system.xml" hash="ac50230b723d17f85caeb304a13aac6d"/></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="e7bbfbb01591403dfa486606c4c515a8"/></dir></dir><dir name="template"><dir name="gene"><dir name="braintree"><file name="assets.phtml" hash="091137e3400224911cbaa157fa11cf65"/><dir name="creditcard"><file name="hostedfields.phtml" hash="d46038a8f81ff6f02d1651f030c8f56c"/><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="6ee998383f1c88132e3dea9e8aeaf3e1"/><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="5f997e0274a8b104be6d38a5be88899d"/><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="9a73d141d32d69198e2cc945f2358ff2"/></dir></dir><dir name="template"><dir name="gene"><dir name="braintree"><file name="assets.phtml" hash="091137e3400224911cbaa157fa11cf65"/><dir name="creditcard"><file name="hostedfields.phtml" hash="bae55f7d398540acdf2a892d01a6791f"/><file name="info.phtml" hash="958d514582e3de1f91f5e0f7a7169b47"/><file name="saved.phtml" hash="ca27adb601aebf97cd25a892082a8663"/></dir><file name="js.phtml" hash="848bb7c614bee8cdd8c344dca3705e39"/><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.7"><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="91b0b87333d33c546b04b43e7a2f7c90"/><file name="vzero-paypal-min.js" hash="33cda474d266cb596c4b85f057d47134"/></dir><file name="config.codekit" hash="d04d8f36eefe3cef4143f02398f1eeb4"/><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="894b0eb7d438383524ab4cb38ad9bfc1"/></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="dad2e3821b6453c45bedd9505b603beb"/><file name="amasty.css" hash="668d36c51696f2070c38c7d04e8639b4"/><file name="awesomecheckout.css" hash="91a3d2833ef956df6c502b67e9986f23"/><file name="config.codekit" hash="506bfad608130ba1ce130508695d54d9"/><dir name="core"><file name="_general.less" hash="5848708373d8ed5eda5e5b23c3e4e05c"/><file name="_hostedfields.less" hash="d613b23ee1731345334aa423bf14c6db"/><file name="_paypal.less" hash="df0239894dfef5c905bea44938ee4658"/><file name="_saved.less" hash="66ec8d894e336f9934a1e54972c4b220"/></dir><file name="default.css" hash="8e0c5ce4cfc8592b580c8d9c27ac0f86"/><file name="express.css" hash="1c9eb3b9abb7e798b65701b2815d2e07"/><file name="express.less" hash="29acfc18e38f300972f27cfd44ca41c2"/><file name="fancycheckout.css" hash="523b1606fcd5a893bc5a06de83085137"/><file name="firecheckout.css" hash="c338590a06f2ff2b4bc3861cefb76559"/><file name="fme.css" hash="b9b5d0153c42b6f3335f1edd007acc56"/><file name="idev.css" hash="2f7011c36839ddda6dafa97a3253c0e7"/><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="4dea034fd87559f406a21760f0205101"/><file name="magestore.css" hash="752dfb740303b5e1e2f1d2ab0aa5bdb4"/><file name="oye.css" hash="741399c67a2a822af7f17e428c6cba82"/><file name="unicode.css" hash="d048a04807172d1fe974a9e938a98fb6"/><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="428b924149c6eea93a8a45101a67f125"/></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
@@ -48,6 +48,9 @@
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
 
 
 
51
  .braintree-card-input-field {
52
  height: 50px;
53
  width: 100%;
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
51
+ .braintree-input-field.braintree-postal-code {
52
+ width: 140px;
53
+ }
54
  .braintree-card-input-field {
55
  height: 50px;
56
  width: 100%;
skin/frontend/base/default/css/gene/braintree/amasty.css CHANGED
@@ -48,6 +48,9 @@
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
 
 
 
51
  .braintree-card-input-field {
52
  height: 50px;
53
  width: 100%;
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
51
+ .braintree-input-field.braintree-postal-code {
52
+ width: 140px;
53
+ }
54
  .braintree-card-input-field {
55
  height: 50px;
56
  width: 100%;
skin/frontend/base/default/css/gene/braintree/awesomecheckout.css CHANGED
@@ -48,6 +48,9 @@
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
 
 
 
51
  .braintree-card-input-field {
52
  height: 50px;
53
  width: 100%;
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
51
+ .braintree-input-field.braintree-postal-code {
52
+ width: 140px;
53
+ }
54
  .braintree-card-input-field {
55
  height: 50px;
56
  width: 100%;
skin/frontend/base/default/css/gene/braintree/core/_hostedfields.less CHANGED
@@ -43,6 +43,10 @@
43
  padding: 0 10px;
44
  border: 1px solid lightgrey;
45
  background: white;
 
 
 
 
46
  }
47
  .braintree-card-input-field {
48
  height: 50px;
43
  padding: 0 10px;
44
  border: 1px solid lightgrey;
45
  background: white;
46
+
47
+ &.braintree-postal-code {
48
+ width: 140px;
49
+ }
50
  }
51
  .braintree-card-input-field {
52
  height: 50px;
skin/frontend/base/default/css/gene/braintree/default.css CHANGED
@@ -48,6 +48,9 @@
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
 
 
 
51
  .braintree-card-input-field {
52
  height: 50px;
53
  width: 100%;
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
51
+ .braintree-input-field.braintree-postal-code {
52
+ width: 140px;
53
+ }
54
  .braintree-card-input-field {
55
  height: 50px;
56
  width: 100%;
skin/frontend/base/default/css/gene/braintree/fancycheckout.css CHANGED
@@ -48,6 +48,9 @@
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
 
 
 
51
  .braintree-card-input-field {
52
  height: 50px;
53
  width: 100%;
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
51
+ .braintree-input-field.braintree-postal-code {
52
+ width: 140px;
53
+ }
54
  .braintree-card-input-field {
55
  height: 50px;
56
  width: 100%;
skin/frontend/base/default/css/gene/braintree/firecheckout.css CHANGED
@@ -48,6 +48,9 @@
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
 
 
 
51
  .braintree-card-input-field {
52
  height: 50px;
53
  width: 100%;
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
51
+ .braintree-input-field.braintree-postal-code {
52
+ width: 140px;
53
+ }
54
  .braintree-card-input-field {
55
  height: 50px;
56
  width: 100%;
skin/frontend/base/default/css/gene/braintree/fme.css CHANGED
@@ -48,6 +48,9 @@
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
 
 
 
51
  .braintree-card-input-field {
52
  height: 50px;
53
  width: 100%;
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
51
+ .braintree-input-field.braintree-postal-code {
52
+ width: 140px;
53
+ }
54
  .braintree-card-input-field {
55
  height: 50px;
56
  width: 100%;
skin/frontend/base/default/css/gene/braintree/idev.css CHANGED
@@ -48,6 +48,9 @@
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
 
 
 
51
  .braintree-card-input-field {
52
  height: 50px;
53
  width: 100%;
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
51
+ .braintree-input-field.braintree-postal-code {
52
+ width: 140px;
53
+ }
54
  .braintree-card-input-field {
55
  height: 50px;
56
  width: 100%;
skin/frontend/base/default/css/gene/braintree/iwd.css CHANGED
@@ -48,6 +48,9 @@
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
 
 
 
51
  .braintree-card-input-field {
52
  height: 50px;
53
  width: 100%;
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
51
+ .braintree-input-field.braintree-postal-code {
52
+ width: 140px;
53
+ }
54
  .braintree-card-input-field {
55
  height: 50px;
56
  width: 100%;
skin/frontend/base/default/css/gene/braintree/magestore.css CHANGED
@@ -48,6 +48,9 @@
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
 
 
 
51
  .braintree-card-input-field {
52
  height: 50px;
53
  width: 100%;
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
51
+ .braintree-input-field.braintree-postal-code {
52
+ width: 140px;
53
+ }
54
  .braintree-card-input-field {
55
  height: 50px;
56
  width: 100%;
skin/frontend/base/default/css/gene/braintree/oye.css CHANGED
@@ -48,6 +48,9 @@
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
 
 
 
51
  .braintree-card-input-field {
52
  height: 50px;
53
  width: 100%;
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
51
+ .braintree-input-field.braintree-postal-code {
52
+ width: 140px;
53
+ }
54
  .braintree-card-input-field {
55
  height: 50px;
56
  width: 100%;
skin/frontend/base/default/css/gene/braintree/unicode.css CHANGED
@@ -48,6 +48,9 @@
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
 
 
 
51
  .braintree-card-input-field {
52
  height: 50px;
53
  width: 100%;
48
  border: 1px solid lightgrey;
49
  background: white;
50
  }
51
+ .braintree-input-field.braintree-postal-code {
52
+ width: 140px;
53
+ }
54
  .braintree-card-input-field {
55
  height: 50px;
56
  width: 100%;