Adyen_Payment - Version 2.1.1

Version Notes

Features:
* Make installments possible for the OneClick Payments
* Added cash express checkout button on the shopping card for easy pay with cash
* Added possibility to open cash drawer after cash payment
* Cancel the order in Adyen as well when order is cancelled in Magento
* Automatically create shipment for cash payment and added setting to do this for POS payments as well
* Added checkbox for shoppers in CreditCard payments to not save their creditcard data for OneClick payments
* Added Setting to disable payment method openinvoice(Klarna/AfterPay) when billing and delivery addresses differ
* Show the payment method in Payment Information block of the order
* After canceling payment on Adyen HPP reactivate current quote instead of creating a new quote
* Added client side validation on "delivery_days" on the settings page in Magento
* HPP Payment method show correct label in payment information panel in the Magento checkout page
* POS now acts on CAPTURE notification instead of AUTHORIZATION
* CANCEL_OR_REFUND improvements for POS
* Improved support for Scanners that press enter after scanning barcode
* OneStepCheckout improvments

Bugs:
* Fixed that OneClick will not breaks when creditcard name has special characters
* Fixed that the extra fee totals in the order confirmation email is not visible when the amount is zero.
* Fixed Directory Lookup for amounts under the one euro and improved error messages when payment methods cannot be shown because of incorrect settings
* Fixed that PaymentMethod is shown if you print the invoice
* Fixed incorrect rounding in tax for OpenInvoice payment method
* Fixed that GetInstallments call is not executed when installments are disabled
* Fixed Client side validation for JCB, Maestro and CarteBlue
* Fixed that in the backend the configuration are loaded from the store view where the order has been made instead of the default settings
* Fixed that BankTransfer and SEPA are always auto captured because you can’t capture the payment method
* Fixed that DeliveryDate For Boleto is now correctly send to Adyen platform
* Fixed that Ajax calls now support the HTTPS protocol

Download this release

Release Info

Developer Adyen
Extension Adyen_Payment
Version 2.1.1
Comparing to
See all releases


Code changes from version 2.1.0 to 2.1.1

Files changed (57) hide show
  1. app/code/community/Adyen/Payment/.DS_Store +0 -0
  2. app/code/community/Adyen/Payment/Block/Form/Cc.php +4 -0
  3. app/code/community/Adyen/Payment/Block/Form/Oneclick.php +10 -0
  4. app/code/community/Adyen/Payment/Block/Info/Boleto.php +1 -1
  5. app/code/community/Adyen/Payment/Block/Info/Cc.php +1 -1
  6. app/code/community/Adyen/Payment/Block/Info/Elv.php +1 -1
  7. app/code/community/Adyen/Payment/Block/Info/Sepa.php +1 -1
  8. app/code/community/Adyen/Payment/Block/PosExpressCheckout.php +10 -0
  9. app/code/community/Adyen/Payment/Block/Redirect.php +1 -1
  10. app/code/community/Adyen/Payment/Block/Sales/Order/Totals.php +31 -26
  11. app/code/community/Adyen/Payment/Block/SavedCards.php +55 -0
  12. app/code/community/Adyen/Payment/Block/ScanProduct.php +4 -0
  13. app/code/community/Adyen/Payment/Helper/Data.php +208 -0
  14. app/code/community/Adyen/Payment/Helper/Installments.php +63 -0
  15. app/code/community/Adyen/Payment/Model/Adyen/Abstract.php +28 -99
  16. app/code/community/Adyen/Payment/Model/Adyen/Cc.php +16 -64
  17. app/code/community/Adyen/Payment/Model/Adyen/Data/InvoiceRow.php +4 -1
  18. app/code/community/Adyen/Payment/Model/Adyen/Data/ModificationRequest.php +4 -0
  19. app/code/community/Adyen/Payment/Model/Adyen/Data/PaymentRequest.php +12 -3
  20. app/code/community/Adyen/Payment/Model/Adyen/Hpp.php +139 -133
  21. app/code/community/Adyen/Payment/Model/Adyen/Oneclick.php +33 -14
  22. app/code/community/Adyen/Payment/Model/Adyen/Openinvoice.php +39 -20
  23. app/code/community/Adyen/Payment/Model/Event.php +1 -19
  24. app/code/community/Adyen/Payment/Model/Mysql4/Adyen/Event.php +0 -17
  25. app/code/community/Adyen/Payment/Model/Mysql4/Adyen/Event/Collection.php +10 -0
  26. app/code/community/Adyen/Payment/Model/Observer.php +10 -0
  27. app/code/community/Adyen/Payment/Model/Process.php +171 -52
  28. app/code/community/Adyen/Payment/Model/Sales/Quote/Address/Total/PaymentInstallmentFee.php +1 -1
  29. app/code/community/Adyen/Payment/Model/Source/SepaFlow.php +37 -0
  30. app/code/community/Adyen/Payment/controllers/CheckoutCashController.php +87 -0
  31. app/code/community/Adyen/Payment/controllers/GetInstallmentsController.php +1 -59
  32. app/code/community/Adyen/Payment/controllers/ProcessController.php +140 -144
  33. app/code/community/Adyen/Payment/controllers/SavedCardController.php +74 -0
  34. app/code/community/Adyen/Payment/etc/Payment.wsdl +3 -0
  35. app/code/community/Adyen/Payment/etc/config.xml +23 -7
  36. app/code/community/Adyen/Payment/etc/system.xml +97 -12
  37. app/design/adminhtml/default/default/template/adyen/.DS_Store +0 -0
  38. app/design/adminhtml/default/default/template/adyen/info/cc.phtml +12 -7
  39. app/design/adminhtml/default/default/template/adyen/info/hpp.phtml +1 -1
  40. app/design/adminhtml/default/default/template/adyen/order/view/history.phtml +0 -80
  41. app/design/adminhtml/default/default/template/adyen/pdf.tar.bz2 +0 -0
  42. app/design/frontend/base/default/layout/adyen.xml +37 -0
  43. app/design/frontend/{rwd/adyen/template → base/default/template/adyen}/checkout/onepage/payment/methods.phtml +14 -0
  44. app/design/frontend/base/default/template/adyen/form/cc.phtml +41 -28
  45. app/design/frontend/base/default/template/adyen/form/hpp.phtml +15 -0
  46. app/design/frontend/base/default/template/adyen/form/oneclick.phtml +32 -0
  47. app/design/frontend/base/default/template/adyen/info/hpp.phtml +5 -1
  48. app/design/frontend/base/default/template/adyen/posExpressCheckout.phtml +20 -7
  49. app/design/frontend/base/default/template/adyen/savedCards.phtml +77 -0
  50. app/design/frontend/base/default/template/adyen/scanProduct.phtml +20 -4
  51. app/design/frontend/default/adyen/template/checkout/onepage/payment/methods.phtml +0 -149
  52. app/design/frontend/enterprise/adyen/template/checkout/onepage/payment/methods.phtml +0 -139
  53. package.xml +33 -28
  54. skin/frontend/base/default/css/adyenstyle.css +52 -7
  55. skin/frontend/default/adyen/onestepcheckout/js/onestepcheckout.js +58 -2
  56. skin/frontend/enterprise/adyen/onestepcheckout/js/onestepcheckout.js +58 -2
  57. skin/frontend/rwd/adyen/onestepcheckout/js/onestepcheckout.js +58 -2
app/code/community/Adyen/Payment/.DS_Store CHANGED
Binary file
app/code/community/Adyen/Payment/Block/Form/Cc.php CHANGED
@@ -56,6 +56,10 @@ class Adyen_Payment_Block_Form_Cc extends Mage_Payment_Block_Form_Cc {
56
  return Mage::helper('adyen/installments')->isInstallmentsEnabled();
57
  }
58
 
 
 
 
 
59
  /**
60
  * Alway's return true for creditcard verification otherwise api call to adyen won't work
61
  *
56
  return Mage::helper('adyen/installments')->isInstallmentsEnabled();
57
  }
58
 
59
+ public function getRecurringType() {
60
+ return $this->getMethod()->getRecurringType();
61
+ }
62
+
63
  /**
64
  * Alway's return true for creditcard verification otherwise api call to adyen won't work
65
  *
app/code/community/Adyen/Payment/Block/Form/Oneclick.php CHANGED
@@ -39,4 +39,14 @@ class Adyen_Payment_Block_Form_Oneclick extends Adyen_Payment_Block_Form_Cc {
39
  public function isNotRecurring() {
40
  return $this->getMethod()->isNotRecurring();
41
  }
 
 
 
 
 
 
 
 
 
 
42
  }
39
  public function isNotRecurring() {
40
  return $this->getMethod()->isNotRecurring();
41
  }
42
+
43
+ public function getInstallmentForCreditCardType($ccType) {
44
+
45
+ // map $ccType to creditcard type we saved in backend
46
+
47
+ $ccType = Mage::helper('adyen/data')->getMagentoCreditCartType($ccType);
48
+ $result = Mage::helper('adyen/installments')->getInstallmentForCreditCardType($ccType);
49
+
50
+ return $result;
51
+ }
52
  }
app/code/community/Adyen/Payment/Block/Info/Boleto.php CHANGED
@@ -36,7 +36,7 @@ class Adyen_Payment_Block_Info_Boleto extends Mage_Payment_Block_Info {
36
  }
37
 
38
  public function toPdf() {
39
- $this->setTemplate('adyen/info/pdf/boleto.phtml');
40
  return $this->toHtml();
41
  }
42
 
36
  }
37
 
38
  public function toPdf() {
39
+ $this->setTemplate('adyen/pdf/boleto.phtml');
40
  return $this->toHtml();
41
  }
42
 
app/code/community/Adyen/Payment/Block/Info/Cc.php CHANGED
@@ -40,7 +40,7 @@ class Adyen_Payment_Block_Info_Cc extends Mage_Payment_Block_Info_Cc {
40
  }
41
 
42
  public function toPdf() {
43
- $this->setTemplate('adyen/info/pdf/cc.phtml');
44
  return $this->toHtml();
45
  }
46
 
40
  }
41
 
42
  public function toPdf() {
43
+ $this->setTemplate('adyen/pdf/cc.phtml');
44
  return $this->toHtml();
45
  }
46
 
app/code/community/Adyen/Payment/Block/Info/Elv.php CHANGED
@@ -36,7 +36,7 @@ class Adyen_Payment_Block_Info_Elv extends Mage_Payment_Block_Info {
36
  }
37
 
38
  public function toPdf() {
39
- $this->setTemplate('adyen/info/pdf/elv.phtml');
40
  return $this->toHtml();
41
  }
42
 
36
  }
37
 
38
  public function toPdf() {
39
+ $this->setTemplate('adyen/pdf/elv.phtml');
40
  return $this->toHtml();
41
  }
42
 
app/code/community/Adyen/Payment/Block/Info/Sepa.php CHANGED
@@ -36,7 +36,7 @@ class Adyen_Payment_Block_Info_Sepa extends Mage_Payment_Block_Info {
36
  }
37
 
38
  public function toPdf() {
39
- $this->setTemplate('adyen/info/pdf/sepa.phtml');
40
  return $this->toHtml();
41
  }
42
 
36
  }
37
 
38
  public function toPdf() {
39
+ $this->setTemplate('adyen/pdf/sepa.phtml');
40
  return $this->toHtml();
41
  }
42
 
app/code/community/Adyen/Payment/Block/PosExpressCheckout.php CHANGED
@@ -38,4 +38,14 @@ class Adyen_Payment_Block_PosExpressCheckout extends Mage_Core_Block_Template
38
  }
39
  }
40
 
 
 
 
 
 
 
 
 
 
 
41
  }
38
  }
39
  }
40
 
41
+ public function hasCashExpressCheckout()
42
+ {
43
+ // must be login to show this checkout option
44
+ if(Mage::getSingleton('customer/session')->isLoggedIn()) {
45
+ return (string) Mage::helper('adyen')->hasCashExpressCheckout();
46
+ } else {
47
+ return false;
48
+ }
49
+ }
50
+
51
  }
app/code/community/Adyen/Payment/Block/Redirect.php CHANGED
@@ -94,7 +94,7 @@
94
 
95
  function checkStatus() {
96
  $.ajax({
97
- url: "'. $this->getUrl('adyen/process/getOrderStatus') . '",
98
  type: "POST",
99
  data: "merchantReference='.$adyFields['merchantReference'] .'",
100
  success: function(data) {
94
 
95
  function checkStatus() {
96
  $.ajax({
97
+ url: "'. $this->getUrl('adyen/process/getOrderStatus', array('_secure'=>true)) . '",
98
  type: "POST",
99
  data: "merchantReference='.$adyFields['merchantReference'] .'",
100
  success: function(data) {
app/code/community/Adyen/Payment/Block/Sales/Order/Totals.php CHANGED
@@ -30,33 +30,38 @@ class Adyen_Payment_Block_Sales_Order_Totals extends Mage_Sales_Block_Order_Tota
30
  protected function _initTotals()
31
  {
32
  parent::_initTotals();
33
- $this->addTotal(
34
- new Varien_Object(
35
- array(
36
- 'code' => 'payment_fee',
37
- 'strong' => false,
38
- 'value' => $this->getSource()->getPaymentFeeAmount(),
39
- 'base_value'=> $this->getSource()->getBasePaymentFeeAmount(),
40
- 'label' => $this->helper('adyen')->__('Payment Fee'),
41
- 'area' => '',
42
- )
43
- ),
44
- 'subtotal'
45
- );
46
 
47
- $this->addTotal(
48
- new Varien_Object(
49
- array(
50
- 'code' => 'payment_installment_fee',
51
- 'strong' => false,
52
- 'value' => $this->getSource()->getPaymentInstallmentFeeAmount(),
53
- 'base_value'=> $this->getSource()->getBasePaymentInstallmentFeeAmount(),
54
- 'label' => $this->helper('adyen')->__('Payment Fee Installments'),
55
- 'area' => '',
56
- )
57
- ),
58
- 'subtotal'
59
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  return $this;
61
  }
62
  }
30
  protected function _initTotals()
31
  {
32
  parent::_initTotals();
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
+ if (((float)$this->getSource()->getPaymentFeeAmount()) != 0) {
35
+ $this->addTotal(
36
+ new Varien_Object(
37
+ array(
38
+ 'code' => 'payment_fee',
39
+ 'strong' => false,
40
+ 'value' => $this->getSource()->getPaymentFeeAmount(),
41
+ 'base_value'=> $this->getSource()->getBasePaymentFeeAmount(),
42
+ 'label' => $this->helper('adyen')->__('Payment Fee'),
43
+ 'area' => '',
44
+ )
45
+ ),
46
+ 'subtotal'
47
+ );
48
+ }
49
+
50
+ if (((float)$this->getSource()->getPaymentInstallmentFeeAmount()) != 0) {
51
+ $this->addTotal(
52
+ new Varien_Object(
53
+ array(
54
+ 'code' => 'payment_installment_fee',
55
+ 'strong' => false,
56
+ 'value' => $this->getSource()->getPaymentInstallmentFeeAmount(),
57
+ 'base_value'=> $this->getSource()->getBasePaymentInstallmentFeeAmount(),
58
+ 'label' => $this->helper('adyen')->__('Payment Fee Installments'),
59
+ 'area' => '',
60
+ )
61
+ ),
62
+ 'subtotal'
63
+ );
64
+ }
65
  return $this;
66
  }
67
  }
app/code/community/Adyen/Payment/Block/SavedCards.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Adyen Payment Module
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * that is bundled with this package in the file LICENSE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/osl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magentocommerce.com so we can send you a copy immediately.
15
+ *
16
+ * @category Adyen
17
+ * @package Adyen_Payment
18
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+ /**
22
+ * @category Payment Gateway
23
+ * @package Adyen_Payment
24
+ * @author Adyen
25
+ * @property Adyen B.V
26
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
+ */
28
+
29
+ class Adyen_Payment_Block_SavedCards extends Mage_Core_Block_Template {
30
+
31
+
32
+ public function getlistRecurringDetails() {
33
+
34
+
35
+ $storeId = Mage::app()->getStore()->getStoreId();
36
+ $customer = Mage::registry('current_customer');
37
+ $customerId = $customer->getId();
38
+ $merchantAccount = Mage::getStoreConfig("payment/adyen_abstract/merchantAccount", $storeId);
39
+ $recurringType = Mage::getStoreConfig("payment/adyen_abstract/recurringtypes", $storeId);
40
+
41
+ return Mage::helper('adyen')->getRecurringCards($merchantAccount, $customerId, $recurringType);
42
+
43
+ }
44
+
45
+ public function getBackUrl()
46
+ {
47
+ if ($this->getRefererUrl()) {
48
+ return $this->getRefererUrl();
49
+ }
50
+ return $this->getUrl('customer/account/', array('_secure'=>true));
51
+ }
52
+
53
+
54
+
55
+ }
app/code/community/Adyen/Payment/Block/ScanProduct.php CHANGED
@@ -33,4 +33,8 @@ class Adyen_Payment_Block_ScanProduct extends Mage_Core_Block_Template
33
  return (string) Mage::helper('adyen')->hasEnableScanner();
34
  }
35
 
 
 
 
 
36
  }
33
  return (string) Mage::helper('adyen')->hasEnableScanner();
34
  }
35
 
36
+ public function hasAutoSubmitScanner() {
37
+ return (string) Mage::helper('adyen')->hasAutoSubmitScanner();
38
+ }
39
+
40
  }
app/code/community/Adyen/Payment/Helper/Data.php CHANGED
@@ -27,6 +27,12 @@
27
  */
28
  class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
29
 
 
 
 
 
 
 
30
  public function getCcTypes() {
31
  $_types = Mage::getConfig()->getNode('default/adyen/payment/cctypes')->asArray();
32
  uasort($_types, array('Mage_Payment_Model_Config', 'compareCcTypes'));
@@ -72,10 +78,18 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
72
  return (int) Mage::getStoreConfig('payment/adyen_pos/enable_scanner');
73
  }
74
 
 
 
 
 
75
  public function hasExpressCheckout() {
76
  return (int) Mage::getStoreConfig('payment/adyen_pos/express_checkout');
77
  }
78
 
 
 
 
 
79
  public function getOrderStatus() {
80
  return Mage::getStoreConfig('payment/adyen_abstract/order_status');
81
  }
@@ -144,4 +158,198 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
144
  return number_format($amount, $format, '', '');
145
  }
146
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
147
  }
27
  */
28
  class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
29
 
30
+ /**
31
+ * Zend_Log debug level
32
+ * @var unknown_type
33
+ */
34
+ const DEBUG_LEVEL = 7;
35
+
36
  public function getCcTypes() {
37
  $_types = Mage::getConfig()->getNode('default/adyen/payment/cctypes')->asArray();
38
  uasort($_types, array('Mage_Payment_Model_Config', 'compareCcTypes'));
78
  return (int) Mage::getStoreConfig('payment/adyen_pos/enable_scanner');
79
  }
80
 
81
+ public function hasAutoSubmitScanner() {
82
+ return (int) Mage::getStoreConfig('payment/adyen_pos/auto_submit_scanner');
83
+ }
84
+
85
  public function hasExpressCheckout() {
86
  return (int) Mage::getStoreConfig('payment/adyen_pos/express_checkout');
87
  }
88
 
89
+ public function hasCashExpressCheckout() {
90
+ return (int) Mage::getStoreConfig('payment/adyen_pos/cash_express_checkout');
91
+ }
92
+
93
  public function getOrderStatus() {
94
  return Mage::getStoreConfig('payment/adyen_abstract/order_status');
95
  }
158
  return number_format($amount, $format, '', '');
159
  }
160
 
161
+ /*
162
+ * creditcard type that is selected is different from creditcard type that we get back from the request
163
+ * this function get the magento creditcard type this is needed for getting settings like installments
164
+ */
165
+ public function getMagentoCreditCartType($ccType) {
166
+
167
+ $ccTypesMapper = array("amex" => "AE",
168
+ "visa" => "VI",
169
+ "mastercard" => "MC",
170
+ "discover" => "DI",
171
+ "diners" => "DC",
172
+ "maestro" => "SM",
173
+ "jcb" => "JCB",
174
+ // "" => "CB" cart blue is just visa
175
+ );
176
+
177
+ if(isset($ccTypesMapper[$ccType])) {
178
+ $ccType = $ccTypesMapper[$ccType];
179
+ }
180
+
181
+ return $ccType;
182
+ }
183
+
184
+ public function getRecurringCards($merchantAccount, $customerId, $recurringType) {
185
+
186
+ // create a arraylist with the cards
187
+ $recurringCards = array();
188
+
189
+ // do not show the oneclick if recurring type is empty or recurring
190
+ if($recurringType == "ONECLICK" || $recurringType == "ONECLICK,RECURRING" || $recurringType == "RECURRING")
191
+ {
192
+ // recurring type is always ONECLICK
193
+ if($recurringType == "ONECLICK,RECURRING") {
194
+ $recurringType = "ONECLICK";
195
+ }
196
+
197
+ // rest call to get listrecurring details
198
+ $request = array(
199
+ "action" => "Recurring.listRecurringDetails",
200
+ "recurringDetailsRequest.merchantAccount" => $merchantAccount,
201
+ "recurringDetailsRequest.shopperReference" => $customerId,
202
+ "recurringDetailsRequest.recurring.contract" => $recurringType, // i.e.: "ONECLICK" Or "RECURRING"
203
+ );
204
+
205
+ $ch = curl_init();
206
+
207
+ $isConfigDemoMode = $this->getConfigDataDemoMode($storeId = null);
208
+ $wsUsername = $this->getConfigDataWsUserName($storeId);
209
+ $wsPassword = $this->getConfigDataWsPassword($storeId);
210
+
211
+ if ($isConfigDemoMode)
212
+ curl_setopt($ch, CURLOPT_URL, "https://pal-test.adyen.com/pal/adapter/httppost");
213
+ else
214
+ curl_setopt($ch, CURLOPT_URL, "https://pal-live.adyen.com/pal/adapter/httppost");
215
+
216
+ curl_setopt($ch, CURLOPT_HEADER, false);
217
+ curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
218
+ curl_setopt($ch, CURLOPT_USERPWD,$wsUsername.":".$wsPassword);
219
+ curl_setopt($ch, CURLOPT_POST,count($request));
220
+ curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($request));
221
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
222
+
223
+ $result = curl_exec($ch);
224
+
225
+ if($result === false) {
226
+ Mage::log("List recurring is failing error is: " . curl_error($ch), self::DEBUG_LEVEL, 'http-request.log',true);
227
+ Mage::throwException(Mage::helper('adyen')->__('List recurring is generating the error see the log'));
228
+ } else{
229
+ /**
230
+ * The $result contains a JSON array containing
231
+ * the available payment methods for the merchant account.
232
+ */
233
+
234
+ // convert result to utf8 characters
235
+ $result = utf8_encode(urldecode($result));
236
+ // convert to array
237
+ parse_str($result,$result);
238
+
239
+ Mage::log("List recurring result is: " . curl_error($ch), self::DEBUG_LEVEL, 'http-request.log',true);
240
+
241
+ foreach($result as $key => $value) {
242
+ // strip the key
243
+ $key = str_replace("recurringDetailsResult_details_", "", $key);
244
+ $key2 = strstr($key, '_');
245
+ $keyNumber = str_replace($key2, "", $key);
246
+ $keyAttribute = substr($key2, 1);
247
+ $recurringCards[$keyNumber][$keyAttribute] = $value;
248
+ }
249
+ // unset the recurringDetailsResult because this is not a card
250
+ unset($recurringCards["recurringDetailsResult"]);
251
+
252
+ // filter out all non-creditcards
253
+ foreach($recurringCards as $key => $recurringCard) {
254
+
255
+ if(!(isset($recurringCard["recurringDetailReference"]) && isset($recurringCard["variant"]) && isset($recurringCard["card_number"])
256
+ && isset($recurringCard["card_expiryMonth"]) && isset($recurringCard["card_expiryYear"]))) {
257
+
258
+ unset($recurringCards[$key]);
259
+ }
260
+ }
261
+ }
262
+ }
263
+ return $recurringCards;
264
+ }
265
+
266
+ public function removeRecurringCart($merchantAccount, $shopperReference, $recurringDetailReference) {
267
+
268
+ // rest call to disable cart
269
+ $request = array(
270
+ "action" => "Recurring.disable",
271
+ "disableRequest.merchantAccount" => $merchantAccount,
272
+ "disableRequest.shopperReference" => $shopperReference,
273
+ "disableRequest.recurringDetailReference" => $recurringDetailReference
274
+ );
275
+
276
+ $ch = curl_init();
277
+
278
+ $isConfigDemoMode = $this->getConfigDataDemoMode();
279
+ $wsUsername = $this->getConfigDataWsUserName();
280
+ $wsPassword = $this->getConfigDataWsPassword();
281
+
282
+ if ($isConfigDemoMode)
283
+ curl_setopt($ch, CURLOPT_URL, "https://pal-test.adyen.com/pal/adapter/httppost");
284
+ else
285
+ curl_setopt($ch, CURLOPT_URL, "https://pal-live.adyen.com/pal/adapter/httppost");
286
+
287
+ curl_setopt($ch, CURLOPT_HEADER, false);
288
+ curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
289
+ curl_setopt($ch, CURLOPT_USERPWD,$wsUsername.":".$wsPassword);
290
+ curl_setopt($ch, CURLOPT_POST,count($request));
291
+ curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($request));
292
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
293
+
294
+ $result = curl_exec($ch);
295
+
296
+ if($result === false) {
297
+ Mage::log("Disable recurring contract is failing, error is: " . curl_error($ch), self::DEBUG_LEVEL, 'http-request.log',true);
298
+ Mage::throwException(Mage::helper('adyen')->__('Disable recurring contract is generating the error see the log'));
299
+ } else{
300
+
301
+ // convert result to utf8 characters
302
+ $result = utf8_encode(urldecode($result));
303
+
304
+ if($result != "disableResult.response=[detail-successfully-disabled]") {
305
+ Mage::log("Disable contract is not succeeded the response is: " . $result, self::DEBUG_LEVEL, 'http-request.log',true);
306
+ return false;
307
+ }
308
+ return true;
309
+ }
310
+ return false;
311
+ }
312
+
313
+
314
+ /**
315
+ * Used via Payment method.Notice via configuration ofcourse Y or N
316
+ * @return boolean true on demo, else false
317
+ */
318
+ public function getConfigDataDemoMode($storeId = null) {
319
+ if ($this->_getConfigData('demoMode', null, $storeId) == 'Y') {
320
+ return true;
321
+ }
322
+ return false;
323
+ }
324
+
325
+ public function getConfigDataWsUserName($storeId = null) {
326
+ if ($this->getConfigDataDemoMode($storeId)) {
327
+ return $this->_getConfigData('ws_username_test', null, $storeId);
328
+ }
329
+ return $this->_getConfigData('ws_username_live', null, $storeId);
330
+ }
331
+
332
+ public function getConfigDataWsPassword($storeId = null) {
333
+ if ($this->getConfigDataDemoMode($storeId)) {
334
+ return $this->_getConfigData('ws_password_test', null, $storeId);
335
+ }
336
+ return $this->_getConfigData('ws_password_live', null, $storeId);
337
+ }
338
+
339
+ /**
340
+ * @desc Give Default settings
341
+ * @example $this->_getConfigData('demoMode','adyen_abstract')
342
+ * @since 0.0.2
343
+ * @param string $code
344
+ */
345
+ public function _getConfigData($code, $paymentMethodCode = null, $storeId = null) {
346
+ if (null === $storeId) {
347
+ $storeId = Mage::app()->getStore()->getStoreId();
348
+ }
349
+ if (empty($paymentMethodCode)) {
350
+ return Mage::getStoreConfig("payment/adyen_abstract/$code", $storeId);
351
+ }
352
+ return Mage::getStoreConfig("payment/$paymentMethodCode/$code", $storeId);
353
+ }
354
+
355
  }
app/code/community/Adyen/Payment/Helper/Installments.php CHANGED
@@ -179,6 +179,69 @@ class Adyen_Payment_Helper_Installments
179
  return $value;
180
  }
181
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
182
  /**
183
  * Make value readable by Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
184
  *
179
  return $value;
180
  }
181
 
182
+
183
+
184
+ public function getInstallmentForCreditCardType($ccType) {
185
+
186
+ // retrieving quote
187
+ $quote = (Mage::getModel('checkout/type_onepage') !== false)? Mage::getModel('checkout/type_onepage')->getQuote(): Mage::getModel('checkout/session')->getQuote();
188
+
189
+ $currency = $quote->getQuoteCurrencyCode();
190
+
191
+ if($quote->isVirtual()) {
192
+ $address = $this->getBillingAddress();
193
+ } else {
194
+ $address = $quote->getShippingAddress();
195
+ }
196
+
197
+ // distract the already included added fee for installment you selected before
198
+ if($address->getBasePaymentInstallmentFeeAmount() > 0) {
199
+ $amount = (double) ($quote->getGrandTotal() - $address->getBasePaymentInstallmentFeeAmount());
200
+ } else {
201
+ $amount = (double) $quote->getGrandTotal();
202
+ }
203
+
204
+ // installment key where installents are saved in settings
205
+ $ccTypeInstallments = "installments_".$ccType;
206
+
207
+ // check if this type has installments configured
208
+ $all_installments = $this->getInstallments(null, $ccTypeInstallments);
209
+
210
+ if(empty($all_installments)) {
211
+ // no installments congigure fall back on default
212
+ $ccTypeInstallments = null;
213
+ } else {
214
+ $max_installments = $this->getConfigValue($currency,$amount, null, $ccTypeInstallments);
215
+ }
216
+
217
+ // Fallback to the default installments if creditcard type has no one configured
218
+ if($ccTypeInstallments == null) {
219
+ $max_installments = $this->getConfigValue($currency,$amount, null);
220
+ $all_installments = $this->getInstallments();
221
+ }
222
+
223
+ // result array here
224
+ for($i=1;$i<=$max_installments;$i++){
225
+
226
+ // check if installment has extra interest
227
+ $key = $i-1;
228
+ $installment = $all_installments[$key];
229
+ if(isset($installment[3]) && $installment[3] > 0) {
230
+ $total_amount_with_interest = $amount + ($amount * ($installment[3] / 100));
231
+ } else {
232
+ $total_amount_with_interest = $amount;
233
+ }
234
+
235
+ $partial_amount = ((double)$total_amount_with_interest)/$i;
236
+ $result[(string)$i] = $i."x ".$currency." ".number_format($partial_amount,2);
237
+ }
238
+ return $result;
239
+ }
240
+
241
+
242
+
243
+
244
+
245
  /**
246
  * Make value readable by Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
247
  *
app/code/community/Adyen/Payment/Model/Adyen/Abstract.php CHANGED
@@ -169,10 +169,17 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
169
  */
170
  protected function _processRequest(Varien_Object $payment, $amount, $request, $pspReference = null) {
171
  $this->_initOrder();
172
- $this->_initService();
173
- $merchantAccount = trim($this->_getConfigData('merchantAccount'));
174
- $recurringType = $this->_getConfigData('recurringtypes', 'adyen_abstract');
175
- $enableMoto = (int) $this->_getConfigData('enable_moto', 'adyen_cc');
 
 
 
 
 
 
 
176
  $modificationResult = Mage::getModel('adyen/adyen_data_modificationResult');
177
  $requestData = Mage::getModel('adyen/adyen_data_modificationRequest')
178
  ->create($payment, $amount, $this->_order, $merchantAccount, $pspReference);
@@ -230,71 +237,8 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
230
  $merchantAccount = trim($this->_getConfigData('merchantAccount'));
231
  $recurringType = $this->_getConfigData('recurringtypes', 'adyen_abstract');
232
 
233
-
234
- // do not show the oneclick if recurring type is empty or recurring
235
- if($recurringType == "ONECLICK" || $recurringType == "ONECLICK,RECURRING" || $recurringType == "RECURRING")
236
- {
237
- // recurring type is always ONECLICK
238
- if($recurringType == "ONECLICK,RECURRING") {
239
- $recurringType = "ONECLICK";
240
- }
241
-
242
- // rest call to get listrecurring details
243
- $request = array(
244
- "action" => "Recurring.listRecurringDetails",
245
- "recurringDetailsRequest.merchantAccount" => $merchantAccount,
246
- "recurringDetailsRequest.shopperReference" => $customerId,
247
- "recurringDetailsRequest.recurring.contract" => $recurringType, // i.e.: "ONECLICK" Or "RECURRING"
248
- );
249
-
250
- $ch = curl_init();
251
-
252
- $isConfigDemoMode = $this->getConfigDataDemoMode();
253
- $wsUsername = $this->getConfigDataWsUserName();
254
- $wsPassword = $this->getConfigDataWsPassword();
255
-
256
- if ($isConfigDemoMode)
257
- curl_setopt($ch, CURLOPT_URL, "https://pal-test.adyen.com/pal/adapter/httppost");
258
- else
259
- curl_setopt($ch, CURLOPT_URL, "https://pal-live.adyen.com/pal/adapter/httppost");
260
-
261
- curl_setopt($ch, CURLOPT_HEADER, false);
262
- curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
263
- curl_setopt($ch, CURLOPT_USERPWD,$wsUsername.":".$wsPassword);
264
- curl_setopt($ch, CURLOPT_POST,count($request));
265
- curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($request));
266
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
267
-
268
- $result = curl_exec($ch);
269
-
270
- if($result === false) {
271
- Mage::log("List recurring is failing error is: " . curl_error($ch), self::DEBUG_LEVEL, 'http-request.log',true);
272
- Mage::throwException(Mage::helper('adyen')->__('List recurring is generating the error see the log'));
273
- } else{
274
- /**
275
- * The $result contains a JSON array containing
276
- * the available payment methods for the merchant account.
277
- */
278
- parse_str($result,$result);
279
- Mage::log("List recurring result is: " . curl_error($ch), self::DEBUG_LEVEL, 'http-request.log',true);
280
-
281
- // create a arraylist with the cards
282
- $recurringCards = array();
283
-
284
- foreach($result as $key => $value) {
285
- // strip the key
286
- $key = str_replace("recurringDetailsResult_details_", "", $key);
287
- $key2 = strstr($key, '_');
288
- $keyNumber = str_replace($key2, "", $key);
289
- $keyAttribute = substr($key2, 1);
290
- $recurringCards[$keyNumber][$keyAttribute] = $value;
291
- }
292
- // unset the recurringDetailsResult because this is not a card
293
- unset($recurringCards["recurringDetailsResult"]);
294
-
295
- return $recurringCards;
296
- }
297
- }
298
  }
299
 
300
  /**
@@ -409,8 +353,8 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
409
  * @desc Get SOAP client
410
  * @return Adyen_Payment_Model_Adyen_Abstract
411
  */
412
- protected function _initService() {
413
- $accountData = $this->getAccountData();
414
  $wsdl = $accountData['url']['wsdl'];
415
  $location = $accountData['url']['location'];
416
  $login = $accountData['login'];
@@ -437,7 +381,7 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
437
  * @desc soap urls
438
  * @return string
439
  */
440
- protected function _getAdyenUrls() {
441
  $test = array(
442
  'location' => "https://pal-test.adyen.com/pal/servlet/soap/Payment",
443
  'wsdl' => Mage::getModuleDir('etc', 'Adyen_Payment') . DS . 'Payment.wsdl'
@@ -446,7 +390,7 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
446
  'location' => "https://pal-live.adyen.com/pal/servlet/soap/Payment",
447
  'wsdl' => Mage::getModuleDir('etc', 'Adyen_Payment') . DS . 'Payment.wsdl'
448
  );
449
- if ($this->getConfigDataDemoMode()) {
450
  return $test;
451
  } else {
452
  return $live;
@@ -470,10 +414,10 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
470
  /**
471
  * Adyen User Account Data
472
  */
473
- public function getAccountData() {
474
- $url = $this->_getAdyenUrls();
475
- $wsUsername = $this->getConfigDataWsUserName();
476
- $wsPassword = $this->getConfigDataWsPassword();
477
  $account = array(
478
  'url' => $url,
479
  'login' => $wsUsername,
@@ -614,38 +558,23 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
614
  * @param string $code
615
  */
616
  protected function _getConfigData($code, $paymentMethodCode = null, $storeId = null) {
617
- if (null === $storeId) {
618
- $storeId = $this->getStore();
619
- }
620
- if (empty($paymentMethodCode)) {
621
- return Mage::getStoreConfig("payment/adyen_abstract/$code", $storeId);
622
- }
623
- return Mage::getStoreConfig("payment/$paymentMethodCode/$code", $storeId);
624
  }
625
 
626
  /**
627
  * Used via Payment method.Notice via configuration ofcourse Y or N
628
  * @return boolean true on demo, else false
629
  */
630
- public function getConfigDataDemoMode() {
631
- if ($this->_getConfigData('demoMode') == 'Y') {
632
- return true;
633
- }
634
- return false;
635
  }
636
 
637
- public function getConfigDataWsUserName() {
638
- if ($this->getConfigDataDemoMode()) {
639
- return $this->_getConfigData('ws_username_test');
640
- }
641
- return $this->_getConfigData('ws_username_live');
642
  }
643
 
644
- public function getConfigDataWsPassword() {
645
- if ($this->getConfigDataDemoMode()) {
646
- return $this->_getConfigData('ws_password_test');
647
- }
648
- return $this->_getConfigData('ws_password_live');
649
  }
650
 
651
  /**
169
  */
170
  protected function _processRequest(Varien_Object $payment, $amount, $request, $pspReference = null) {
171
  $this->_initOrder();
172
+
173
+ if (Mage::app()->getStore()->isAdmin()) {
174
+ $storeId = $this->_order->getStoreId();
175
+ } else {
176
+ $storeId = null;
177
+ }
178
+
179
+ $this->_initService($storeId);
180
+ $merchantAccount = trim($this->_getConfigData('merchantAccount', 'adyen_abstract', $storeId));
181
+ $recurringType = $this->_getConfigData('recurringtypes', 'adyen_abstract', $storeId);
182
+ $enableMoto = (int) $this->_getConfigData('enable_moto', 'adyen_cc', $storeId);
183
  $modificationResult = Mage::getModel('adyen/adyen_data_modificationResult');
184
  $requestData = Mage::getModel('adyen/adyen_data_modificationRequest')
185
  ->create($payment, $amount, $this->_order, $merchantAccount, $pspReference);
237
  $merchantAccount = trim($this->_getConfigData('merchantAccount'));
238
  $recurringType = $this->_getConfigData('recurringtypes', 'adyen_abstract');
239
 
240
+ // call to helper
241
+ return Mage::helper('adyen')->getRecurringCards($merchantAccount, $customerId, $recurringType);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
242
  }
243
 
244
  /**
353
  * @desc Get SOAP client
354
  * @return Adyen_Payment_Model_Adyen_Abstract
355
  */
356
+ protected function _initService($storeId = null) {
357
+ $accountData = $this->getAccountData($storeId);
358
  $wsdl = $accountData['url']['wsdl'];
359
  $location = $accountData['url']['location'];
360
  $login = $accountData['login'];
381
  * @desc soap urls
382
  * @return string
383
  */
384
+ protected function _getAdyenUrls($storeId = null) {
385
  $test = array(
386
  'location' => "https://pal-test.adyen.com/pal/servlet/soap/Payment",
387
  'wsdl' => Mage::getModuleDir('etc', 'Adyen_Payment') . DS . 'Payment.wsdl'
390
  'location' => "https://pal-live.adyen.com/pal/servlet/soap/Payment",
391
  'wsdl' => Mage::getModuleDir('etc', 'Adyen_Payment') . DS . 'Payment.wsdl'
392
  );
393
+ if ($this->getConfigDataDemoMode($storeId)) {
394
  return $test;
395
  } else {
396
  return $live;
414
  /**
415
  * Adyen User Account Data
416
  */
417
+ public function getAccountData($storeId = null) {
418
+ $url = $this->_getAdyenUrls($storeId);
419
+ $wsUsername = $this->getConfigDataWsUserName($storeId);
420
+ $wsPassword = $this->getConfigDataWsPassword($storeId);
421
  $account = array(
422
  'url' => $url,
423
  'login' => $wsUsername,
558
  * @param string $code
559
  */
560
  protected function _getConfigData($code, $paymentMethodCode = null, $storeId = null) {
561
+ return Mage::helper('adyen')->_getConfigData($code, $paymentMethodCode, $storeId);
 
 
 
 
 
 
562
  }
563
 
564
  /**
565
  * Used via Payment method.Notice via configuration ofcourse Y or N
566
  * @return boolean true on demo, else false
567
  */
568
+ public function getConfigDataDemoMode($storeId = null) {
569
+ return Mage::helper('adyen')->getConfigDataDemoMode($storeId);
 
 
 
570
  }
571
 
572
+ public function getConfigDataWsUserName($storeId = null) {
573
+ return Mage::helper('adyen')->getConfigDataWsUserName($storeId);
 
 
 
574
  }
575
 
576
+ public function getConfigDataWsPassword($storeId) {
577
+ return Mage::helper('adyen')->getConfigDataWsPassword($storeId);
 
 
 
578
  }
579
 
580
  /**
app/code/community/Adyen/Payment/Model/Adyen/Cc.php CHANGED
@@ -49,7 +49,11 @@ class Adyen_Payment_Model_Adyen_Cc extends Adyen_Payment_Model_Adyen_Abstract {
49
  // set number of installements
50
  $info->setAdditionalInformation('number_of_installments', $data->getAdditionalData());
51
 
 
 
 
52
  if ($this->isCseEnabled()) {
 
53
  $info->setAdditionalInformation('encrypted_data', $data->getEncryptedData());
54
  }
55
  else {
@@ -73,7 +77,7 @@ class Adyen_Payment_Model_Adyen_Cc extends Adyen_Payment_Model_Adyen_Abstract {
73
 
74
  return $this;
75
  }
76
-
77
  public function getPossibleInstallments() {
78
  // retrieving quote
79
  $quote = (Mage::getModel('checkout/type_onepage') !== false)? Mage::getModel('checkout/type_onepage')->getQuote(): Mage::getModel('checkout/session')->getQuote();
@@ -81,94 +85,42 @@ class Adyen_Payment_Model_Adyen_Cc extends Adyen_Payment_Model_Adyen_Abstract {
81
  // get selected payment method for now
82
  $payment = $quote->getPayment();
83
 
84
- $result = array();
85
-
86
- if($quote->isVirtual()) {
87
- $address = $this->getBillingAddress();
88
- } else {
89
- $address = $quote->getShippingAddress();
90
- }
91
-
92
- // distract the already included added fee for installment you selected before
93
- if($address->getBasePaymentInstallmentFeeAmount() > 0) {
94
- $amount = (double) ($quote->getGrandTotal() - $address->getBasePaymentInstallmentFeeAmount());
95
- } else {
96
- $amount = (double) $quote->getGrandTotal();
97
- }
98
-
99
- $currency = $quote->getQuoteCurrencyCode();
100
-
101
- $ccTypeInstallments = null;
102
- // check if creditcard type is already selected if this is the case show installments for this card if they have one configured
103
  if($payment && !empty($payment)) {
104
  if($payment->getMethod()) {
105
  $info = $payment->getMethodInstance();
106
 
107
- $instance = $info->getInfoInstance();
108
- $ccType = $instance->getCcType();
109
-
110
- // this creditcard type is selected
111
- if($ccType != "") {
112
-
113
- // installment key where installents are saved in settings
114
- $ccTypeInstallments = "installments_".$ccType;
115
-
116
- // check if this type has installments configured
117
- $all_installments = Mage::helper('adyen/installments')->getInstallments(null, $ccTypeInstallments);
118
-
119
- if(empty($all_installments)) {
120
- // no installments congigure fall back on default
121
- $ccTypeInstallments = null;
122
- } else {
123
- $max_installments = Mage::helper('adyen/installments')->getConfigValue($currency,$amount, null, $ccTypeInstallments);
124
- }
125
- }
126
  }
127
  }
128
 
129
- // Fallback to the default installments if creditcard type has no one configured
130
- if($ccTypeInstallments == null) {
131
- $max_installments = Mage::helper('adyen/installments')->getConfigValue($currency,$amount, null);
132
- $all_installments = Mage::helper('adyen/installments')->getInstallments();
133
- }
134
-
135
- // result array here
136
- for($i=1;$i<=$max_installments;$i++){
137
-
138
- // check if installment has extra interest
139
- $key = $i-1;
140
- $installment = $all_installments[$key];
141
- if(isset($installment[3]) && $installment[3] > 0) {
142
- $total_amount_with_interest = $amount + ($amount * ($installment[3] / 100));
143
- } else {
144
- $total_amount_with_interest = $amount;
145
- }
146
-
147
- $partial_amount = ((double)$total_amount_with_interest)/$i;
148
- $result[(string)$i] = $i."x ".$currency." ".number_format($partial_amount,2);
149
- }
150
 
151
-
152
-
153
  return $result;
154
  }
155
-
156
  /**
157
  * @desc Called just after asssign data
158
  */
159
  public function prepareSave() {
160
  parent::prepareSave();
161
  }
162
-
163
  /**
164
  * @desc Helper functions to get config data
165
  */
166
  public function isCseEnabled() {
167
  return Mage::getStoreConfig("payment/adyen_cc/cse_enabled");
168
  }
 
169
  public function getCsePublicKey() {
170
  return trim(Mage::getStoreConfig("payment/adyen_cc/cse_publickey"));
171
  }
 
 
 
 
172
 
173
  /**
174
  * @desc Specific functions for 3d secure validation
49
  // set number of installements
50
  $info->setAdditionalInformation('number_of_installments', $data->getAdditionalData());
51
 
52
+ // save value remember details checkbox
53
+ $info->setAdditionalInformation('store_cc', $data->getStoreCc());
54
+
55
  if ($this->isCseEnabled()) {
56
+ $info->setCcType($data->getCcType());
57
  $info->setAdditionalInformation('encrypted_data', $data->getEncryptedData());
58
  }
59
  else {
77
 
78
  return $this;
79
  }
80
+
81
  public function getPossibleInstallments() {
82
  // retrieving quote
83
  $quote = (Mage::getModel('checkout/type_onepage') !== false)? Mage::getModel('checkout/type_onepage')->getQuote(): Mage::getModel('checkout/session')->getQuote();
85
  // get selected payment method for now
86
  $payment = $quote->getPayment();
87
 
88
+ $ccType = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  if($payment && !empty($payment)) {
90
  if($payment->getMethod()) {
91
  $info = $payment->getMethodInstance();
92
 
93
+ $instance = $info->getInfoInstance();
94
+ $ccType = $instance->getCcType();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
  }
96
  }
97
 
98
+ $result = Mage::helper('adyen/installments')->getInstallmentForCreditCardType($ccType);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
 
 
 
100
  return $result;
101
  }
102
+
103
  /**
104
  * @desc Called just after asssign data
105
  */
106
  public function prepareSave() {
107
  parent::prepareSave();
108
  }
109
+
110
  /**
111
  * @desc Helper functions to get config data
112
  */
113
  public function isCseEnabled() {
114
  return Mage::getStoreConfig("payment/adyen_cc/cse_enabled");
115
  }
116
+
117
  public function getCsePublicKey() {
118
  return trim(Mage::getStoreConfig("payment/adyen_cc/cse_publickey"));
119
  }
120
+
121
+ public function getRecurringType() {
122
+ return trim(Mage::getStoreConfig("payment/adyen_abstract/recurringtypes"));
123
+ }
124
 
125
  /**
126
  * @desc Specific functions for 3d secure validation
app/code/community/Adyen/Payment/Model/Adyen/Data/InvoiceRow.php CHANGED
@@ -40,7 +40,10 @@ class Adyen_Payment_Model_Adyen_Data_InvoiceRow extends Adyen_Payment_Model_Adye
40
  $this->currency = $currency;
41
  $this->description = $item->getName();
42
  $this->itemPrice = Mage::helper('adyen')->formatAmount($item->getPrice(), $currency);
43
- $this->itemVAT = Mage::helper('adyen')->formatAmount(($item->getTaxAmount()>0 && $item->getPriceInclTax()>0)?$item->getPriceInclTax() - $item->getPrice():$item->getTaxAmount(), $currency);
 
 
 
44
  $this->lineReference = $count;
45
  $this->numberOfItems = (int) $item->getQtyOrdered();
46
  $this->vatCategory = "None";
40
  $this->currency = $currency;
41
  $this->description = $item->getName();
42
  $this->itemPrice = Mage::helper('adyen')->formatAmount($item->getPrice(), $currency);
43
+ $this->itemVAT = ($item->getTaxAmount()>0 && $item->getPriceInclTax()>0)?
44
+ Mage::helper('adyen')->formatAmount($item->getPriceInclTax(), $currency) -
45
+ Mage::helper('adyen')->formatAmount($item->getPrice(), $currency):
46
+ Mage::helper('adyen')->formatAmount($item->getTaxAmount(), $currency);
47
  $this->lineReference = $count;
48
  $this->numberOfItems = (int) $item->getQtyOrdered();
49
  $this->vatCategory = "None";
app/code/community/Adyen/Payment/Model/Adyen/Data/ModificationRequest.php CHANGED
@@ -30,14 +30,18 @@ class Adyen_Payment_Model_Adyen_Data_ModificationRequest extends Adyen_Payment_M
30
  public $anyType2anyTypeMap;
31
  public $authorisationCode;
32
  public $merchantAccount;
 
33
  public $modificationAmount;
34
  public $originalReference;
35
 
36
  public function create(Varien_Object $payment, $amount, $order, $merchantAccount, $pspReference = null) {
37
  $currency = $order->getOrderCurrencyCode();
 
 
38
  $this->anyType2anyTypeMap = null;
39
  $this->authorisationCode = null;
40
  $this->merchantAccount = $merchantAccount;
 
41
  if($amount) {
42
  $this->modificationAmount = new Adyen_Payment_Model_Adyen_Data_Amount();
43
  $this->modificationAmount->value = Mage::helper('adyen')->formatAmount($amount, $currency);
30
  public $anyType2anyTypeMap;
31
  public $authorisationCode;
32
  public $merchantAccount;
33
+ public $merchantReference;
34
  public $modificationAmount;
35
  public $originalReference;
36
 
37
  public function create(Varien_Object $payment, $amount, $order, $merchantAccount, $pspReference = null) {
38
  $currency = $order->getOrderCurrencyCode();
39
+ $incrementId = $order->getIncrementId();
40
+
41
  $this->anyType2anyTypeMap = null;
42
  $this->authorisationCode = null;
43
  $this->merchantAccount = $merchantAccount;
44
+ $this->reference = $incrementId;
45
  if($amount) {
46
  $this->modificationAmount = new Adyen_Payment_Model_Adyen_Data_Amount();
47
  $this->modificationAmount->value = Mage::helper('adyen')->formatAmount($amount, $currency);
app/code/community/Adyen/Payment/Model/Adyen/Data/PaymentRequest.php CHANGED
@@ -34,7 +34,6 @@ class Adyen_Payment_Model_Adyen_Data_PaymentRequest extends Adyen_Payment_Model_
34
  public $card;
35
  public $dccQuote;
36
  public $deliveryAddress;
37
- public $deliveryDate;
38
  public $elv;
39
  public $fraudOffset;
40
  public $merchantAccount;
@@ -86,8 +85,17 @@ class Adyen_Payment_Model_Adyen_Data_PaymentRequest extends Adyen_Payment_Model_
86
 
87
  // add recurring type for oneclick and recurring
88
  if($recurringType) {
89
- $this->recurring = new Adyen_Payment_Model_Adyen_Data_Recurring();
90
- $this->recurring->contract = $recurringType;
 
 
 
 
 
 
 
 
 
91
  }
92
 
93
  /**
@@ -169,6 +177,7 @@ class Adyen_Payment_Model_Adyen_Data_PaymentRequest extends Adyen_Payment_Model_
169
  $this->installments = new Adyen_Payment_Model_Adyen_Data_Installments();
170
  $this->installments->value = $payment->getAdditionalInformation('number_of_installments');
171
  }
 
172
  break;
173
  case "boleto":
174
  $boleto = unserialize($payment->getPoNumber());
34
  public $card;
35
  public $dccQuote;
36
  public $deliveryAddress;
 
37
  public $elv;
38
  public $fraudOffset;
39
  public $merchantAccount;
85
 
86
  // add recurring type for oneclick and recurring
87
  if($recurringType) {
88
+
89
+ /* if user uncheck the checkbox store creditcard don't set ONECLICK in the recurring contract
90
+ * for contracttype oneclick,recurring it means it will use recurring and if contracttype is recurring this can stay on recurring
91
+ */
92
+ if($paymentMethod == "cc" && $payment->getAdditionalInformation("store_cc") == "" && $recurringType == "ONECLICK,RECURRING") {
93
+ $this->recurring = new Adyen_Payment_Model_Adyen_Data_Recurring();
94
+ $this->recurring->contract = "RECURRING";
95
+ } else if(!($paymentMethod == "cc" && $payment->getAdditionalInformation("store_cc") == "" && $recurringType != "RECURRING")) {
96
+ $this->recurring = new Adyen_Payment_Model_Adyen_Data_Recurring();
97
+ $this->recurring->contract = $recurringType;
98
+ }
99
  }
100
 
101
  /**
177
  $this->installments = new Adyen_Payment_Model_Adyen_Data_Installments();
178
  $this->installments->value = $payment->getAdditionalInformation('number_of_installments');
179
  }
180
+
181
  break;
182
  case "boleto":
183
  $boleto = unserialize($payment->getPoNumber());
app/code/community/Adyen/Payment/Model/Adyen/Hpp.php CHANGED
@@ -58,8 +58,14 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
58
  }
59
  $info = $this->getInfoInstance();
60
  $hppType = $data->getHppType();
 
 
 
 
 
 
61
  $info->setCcType($hppType)
62
- ->setPoNumber($data->getData('hpp_ideal_type')); /* @note misused field */
63
  $config = Mage::getStoreConfig("payment/adyen_hpp/disable_hpptypes");
64
  if (empty($hppType) && empty($config)) {
65
  Mage::throwException(Mage::helper('adyen')->__('Payment Method is complusory in order to process your payment'));
@@ -108,13 +114,13 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
108
  $shopperLocale = (!empty($shopperLocale)) ? $shopperLocale : Mage::app()->getLocale()->getLocaleCode();
109
  $countryCode = trim($this->_getConfigData('countryCode'));
110
  $countryCode = (!empty($countryCode)) ? $countryCode : false;
111
-
112
-
113
  // if directory lookup is enabled use the billingadress as countrycode
114
  if($countryCode == false) {
115
- if(is_object($order->getBillingAddress()) && $order->getBillingAddress()->getCountry() != "") {
116
- $countryCode = $order->getBillingAddress()->getCountry();
117
- }
118
  }
119
 
120
  $adyFields = array();
@@ -122,7 +128,7 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
122
  $deliveryDays = (!empty($deliveryDays)) ? $deliveryDays : 55;
123
  $adyFields['merchantAccount'] = $merchantAccount;
124
  $adyFields['merchantReference'] = $realOrderId;
125
- $adyFields['paymentAmount'] = $amount;
126
  $adyFields['currencyCode'] = $orderCurrencyCode;
127
  $adyFields['shipBeforeDate'] = date("Y-m-d", mktime(date("H"), date("i"), date("s"), date("m"), date("j") + $deliveryDays, date("Y")));
128
  $adyFields['skinCode'] = $skinCode;
@@ -157,51 +163,51 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
157
  //blocked methods
158
  $adyFields['blockedMethods'] = "";
159
 
160
- $openinvoiceType = $this->_getConfigData('openinvoicetypes', 'adyen_openinvoice');
161
-
162
- if($this->_code == "adyen_openinvoice" || $this->getInfoInstance()->getCcType() == "klarna" || $this->getInfoInstance()->getCcType() == "afterpay_default") {
163
- $adyFields['billingAddressType'] = "1";
164
- $adyFields['deliveryAddressType'] = "1";
165
- $adyFields['shopperType'] = "1";
166
- } else {
167
- $adyFields['billingAddressType'] = "";
168
- $adyFields['deliveryAddressType'] = "";
169
- $adyFields['shopperType'] = "";
170
- }
171
-
172
  //the data that needs to be signed is a concatenated string of the form data
173
  $sign = $adyFields['paymentAmount'] .
174
- $adyFields['currencyCode'] .
175
- $adyFields['shipBeforeDate'] .
176
- $adyFields['merchantReference'] .
177
- $adyFields['skinCode'] .
178
- $adyFields['merchantAccount'] .
179
- $adyFields['sessionValidity'] .
180
- $adyFields['shopperEmail'] .
181
- $adyFields['shopperReference'] .
182
- $adyFields['recurringContract'] .
183
- $adyFields['blockedMethods'] .
184
- $adyFields['billingAddressType'] .
185
- $adyFields['deliveryAddressType'] .
186
- $adyFields['shopperType'];
187
-
188
  //Generate HMAC encrypted merchant signature
189
  $secretWord = $this->_getSecretWord();
190
  $signMac = Zend_Crypt_Hmac::compute($secretWord, 'sha1', $sign);
191
  $adyFields['merchantSig'] = base64_encode(pack('H*', $signMac));
192
-
193
- // get extra fields
194
  $adyFields = Mage::getModel('adyen/adyen_openinvoice')->getOptionalFormFields($adyFields,$this->_order);
195
-
196
  //IDEAL
197
  if (strpos($this->getInfoInstance()->getCcType(),"ideal") !== false) {
198
  $bankData = $this->getInfoInstance()->getPoNumber();
199
- if (!empty($bankData)) {
200
  $id = explode(DS, $bankData);
201
  $adyFields['skipSelection'] = 'true';
202
  $adyFields['brandCode'] = $this->getInfoInstance()->getCcType();
203
- $adyFields['idealIssuerId'] = $id['0'];
204
- }
205
  }
206
 
207
 
@@ -253,8 +259,8 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
253
  $url = 'https://test.adyen.com/hpp/pay.shtml';
254
  } else {
255
  $url = (empty($brandCode)) ?
256
- 'https://test.adyen.com/hpp/select.shtml' :
257
- "https://test.adyen.com/hpp/details.shtml?brandCode=$brandCode";
258
  }
259
  break;
260
  default:
@@ -262,8 +268,8 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
262
  $url = 'https://live.adyen.com/hpp/pay.shtml';
263
  } else {
264
  $url = (empty($brandCode)) ?
265
- 'https://live.adyen.com/hpp/select.shtml' :
266
- "https://live.adyen.com/hpp/details.shtml?brandCode=$brandCode";
267
  }
268
  break;
269
  }
@@ -273,8 +279,8 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
273
  $bankData = $this->getInfoInstance()->getPoNumber();
274
  if ($brandCode == 'ideal' && !empty($bankData)) {
275
  $idealBankUrl = ($isConfigDemoMode == true) ?
276
- 'https://test.adyen.com/hpp/redirectIdeal.shtml' :
277
- 'https://live.adyen.com/hpp/redirectIdeal.shtml';
278
  }
279
 
280
 
@@ -282,7 +288,7 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
282
  }
283
 
284
  public function getFormName() {
285
- return "Adyen HPP";
286
  }
287
 
288
  /**
@@ -323,15 +329,15 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
323
 
324
  if(empty($countryCode)) {
325
 
326
- // check if billingcountry is filled in
327
- if(is_object(Mage::helper('checkout/cart')->getQuote()->getBillingAddress()) && Mage::helper('checkout/cart')->getQuote()->getBillingAddress()->getCountry() != "") {
328
- $countryCode = Mage::helper('checkout/cart')->getQuote()->getBillingAddress()->getCountry();
329
- } else {
330
- $countryCode = ""; // don't set countryCode so you get all the payment methods
331
- // You could do ip lookup but availability and performace is not guaranteed
332
  // $ip = $this->getClientIp();
333
  // $countryCode = file_get_contents('http://api.hostip.info/country.php?ip='.$ip);
334
- }
335
  }
336
 
337
  // check if cache setting is on
@@ -344,25 +350,26 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
344
  return unserialize($data);
345
  }
346
  }
 
347
  // directory lookup to search for available payment methods
348
  $adyFields = array(
349
- "paymentAmount" => $amount,
350
- "currencyCode" => $orderCurrencyCode,
351
- "merchantReference" => "Get Payment methods",
352
- "skinCode" => $skinCode,
353
- "merchantAccount" => $merchantAccount,
354
- "sessionValidity" => $sessionValidity,
355
- "countryCode" => $countryCode,
356
- "shopperLocale" => $countryCode,
357
- "merchantSig" => "",
358
  );
359
 
360
  $sign = $adyFields['paymentAmount'] .
361
- $adyFields['currencyCode'] .
362
- $adyFields['merchantReference'] .
363
- $adyFields['skinCode'] .
364
- $adyFields['merchantAccount'] .
365
- $adyFields['sessionValidity'];
366
 
367
  //Generate HMAC encrypted merchant signature
368
  $secretWord = $this->_getSecretWord();
@@ -378,11 +385,11 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
378
 
379
  $isConfigDemoMode = $this->getConfigDataDemoMode();
380
  if ($isConfigDemoMode)
381
- curl_setopt($ch, CURLOPT_URL, "https://test.adyen.com/hpp/directory.shtml");
382
  else
383
- curl_setopt($ch, CURLOPT_URL, "https://live.adyen.com/hpp/directory.shtml");
384
 
385
- curl_setopt($ch, CURLOPT_HEADER, false);
386
  curl_setopt($ch, CURLOPT_POST,count($adyFields));
387
  curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($adyFields));
388
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // do not print results if you do curl_exec
@@ -390,48 +397,47 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
390
  $results = curl_exec($ch);
391
 
392
  if($results === false) {
393
- echo "Error: " . curl_error($ch);
394
- Mage::log("Payment methods are not available on this merchantaccount\skin result is: " . curl_error($ch), self::DEBUG_LEVEL, 'http-request.log',true);
395
- Mage::throwException(Mage::helper('adyen')->__('Payment methods are not available on this merchantaccount\skin'));
396
  } else{
397
- /**
398
- * The $result contains a JSON array containing
399
- * the available payment methods for the merchant account.
400
- */
401
- $results_json = json_decode($results);
402
-
403
- if($results_json == null) {
404
- // no valid json so show the error
405
- echo $results;
406
- Mage::log("Payment methods are empty on this merchantaccount\skin. results_json is incorrect result is:" . $results_json, self::DEBUG_LEVEL, 'http-request.log',true);
407
- Mage::throwException(Mage::helper('adyen')->__('Payment methods are empty on this merchantaccount\skin'));
408
- }
409
-
410
- $payment_methods = $results_json->paymentMethods;
411
-
412
- $result_array = array();
413
- foreach($payment_methods as $payment_method) {
414
-
415
- // if openinvoice is activated don't show this in HPP options
416
- if(Mage::getStoreConfig("payment/adyen_openinvoice/active")) {
417
- if(Mage::getStoreConfig("payment/adyen_openinvoice/openinvoicetypes") == $payment_method->brandCode) {
418
- continue;
419
- }
420
- }
421
-
422
- $result_array[$payment_method->brandCode]['name'] = $payment_method->name;
423
-
424
- if(isset($payment_method->issuers)) {
425
- // for ideal go through the issuers
426
- if(count($payment_method->issuers) > 0)
427
- {
428
- foreach($payment_method->issuers as $issuer) {
429
- $result_array[$payment_method->brandCode]['issuers'][$issuer->issuerId] = $issuer->name;
430
- }
431
- }
432
- ksort($result_array[$payment_method->brandCode]['issuers']); // sort on key
433
- }
434
- }
435
  }
436
 
437
  // if cache is on cache this result
@@ -445,29 +451,29 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract {
445
  public function getHppOptionsDisabled() {
446
  return Mage::getStoreConfig("payment/adyen_hpp/disable_hpptypes");
447
  }
448
-
449
  // Function to get the client ip address
450
- public function getClientIp() {
451
-
452
- $ipaddress = '';
453
-
454
- if (isset($_SERVER['HTTP_CLIENT_IP']))
455
- $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
456
- else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
457
- $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
458
- else if(isset($_SERVER['HTTP_X_FORWARDED']))
459
- $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
460
- else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
461
- $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
462
- else if(isset($_SERVER['HTTP_FORWARDED']))
463
- $ipaddress = $_SERVER['HTTP_FORWARDED'];
464
- else if(isset($_SERVER['REMOTE_ADDR']))
465
- $ipaddress = $_SERVER['REMOTE_ADDR'];
466
- else
467
- $ipaddress = '';
468
-
469
- return $ipaddress;
470
- }
471
 
472
 
473
  }
58
  }
59
  $info = $this->getInfoInstance();
60
  $hppType = $data->getHppType();
61
+
62
+ // get the label name and save it so we can show it in the information tab
63
+ $hppTypeLabel = "hpp_type_label_";
64
+ $hppTypeLabelValue = $data->getData($hppTypeLabel . $hppType);
65
+ $info->setAdditionalInformation('hpp_type_label', $hppTypeLabelValue);
66
+
67
  $info->setCcType($hppType)
68
+ ->setPoNumber($data->getData('hpp_ideal_type')); /* @note misused field */
69
  $config = Mage::getStoreConfig("payment/adyen_hpp/disable_hpptypes");
70
  if (empty($hppType) && empty($config)) {
71
  Mage::throwException(Mage::helper('adyen')->__('Payment Method is complusory in order to process your payment'));
114
  $shopperLocale = (!empty($shopperLocale)) ? $shopperLocale : Mage::app()->getLocale()->getLocaleCode();
115
  $countryCode = trim($this->_getConfigData('countryCode'));
116
  $countryCode = (!empty($countryCode)) ? $countryCode : false;
117
+
118
+
119
  // if directory lookup is enabled use the billingadress as countrycode
120
  if($countryCode == false) {
121
+ if(is_object($order->getBillingAddress()) && $order->getBillingAddress()->getCountry() != "") {
122
+ $countryCode = $order->getBillingAddress()->getCountry();
123
+ }
124
  }
125
 
126
  $adyFields = array();
128
  $deliveryDays = (!empty($deliveryDays)) ? $deliveryDays : 55;
129
  $adyFields['merchantAccount'] = $merchantAccount;
130
  $adyFields['merchantReference'] = $realOrderId;
131
+ $adyFields['paymentAmount'] = (int)$amount;
132
  $adyFields['currencyCode'] = $orderCurrencyCode;
133
  $adyFields['shipBeforeDate'] = date("Y-m-d", mktime(date("H"), date("i"), date("s"), date("m"), date("j") + $deliveryDays, date("Y")));
134
  $adyFields['skinCode'] = $skinCode;
163
  //blocked methods
164
  $adyFields['blockedMethods'] = "";
165
 
166
+ $openinvoiceType = $this->_getConfigData('openinvoicetypes', 'adyen_openinvoice');
167
+
168
+ if($this->_code == "adyen_openinvoice" || $this->getInfoInstance()->getCcType() == "klarna" || $this->getInfoInstance()->getCcType() == "afterpay_default") {
169
+ $adyFields['billingAddressType'] = "1";
170
+ $adyFields['deliveryAddressType'] = "1";
171
+ $adyFields['shopperType'] = "1";
172
+ } else {
173
+ $adyFields['billingAddressType'] = "";
174
+ $adyFields['deliveryAddressType'] = "";
175
+ $adyFields['shopperType'] = "";
176
+ }
177
+
178
  //the data that needs to be signed is a concatenated string of the form data
179
  $sign = $adyFields['paymentAmount'] .
180
+ $adyFields['currencyCode'] .
181
+ $adyFields['shipBeforeDate'] .
182
+ $adyFields['merchantReference'] .
183
+ $adyFields['skinCode'] .
184
+ $adyFields['merchantAccount'] .
185
+ $adyFields['sessionValidity'] .
186
+ $adyFields['shopperEmail'] .
187
+ $adyFields['shopperReference'] .
188
+ $adyFields['recurringContract'] .
189
+ $adyFields['blockedMethods'] .
190
+ $adyFields['billingAddressType'] .
191
+ $adyFields['deliveryAddressType'] .
192
+ $adyFields['shopperType'];
193
+
194
  //Generate HMAC encrypted merchant signature
195
  $secretWord = $this->_getSecretWord();
196
  $signMac = Zend_Crypt_Hmac::compute($secretWord, 'sha1', $sign);
197
  $adyFields['merchantSig'] = base64_encode(pack('H*', $signMac));
198
+
199
+ // get extra fields
200
  $adyFields = Mage::getModel('adyen/adyen_openinvoice')->getOptionalFormFields($adyFields,$this->_order);
201
+
202
  //IDEAL
203
  if (strpos($this->getInfoInstance()->getCcType(),"ideal") !== false) {
204
  $bankData = $this->getInfoInstance()->getPoNumber();
205
+ if (!empty($bankData)) {
206
  $id = explode(DS, $bankData);
207
  $adyFields['skipSelection'] = 'true';
208
  $adyFields['brandCode'] = $this->getInfoInstance()->getCcType();
209
+ $adyFields['idealIssuerId'] = $id['0'];
210
+ }
211
  }
212
 
213
 
259
  $url = 'https://test.adyen.com/hpp/pay.shtml';
260
  } else {
261
  $url = (empty($brandCode)) ?
262
+ 'https://test.adyen.com/hpp/select.shtml' :
263
+ "https://test.adyen.com/hpp/details.shtml?brandCode=$brandCode";
264
  }
265
  break;
266
  default:
268
  $url = 'https://live.adyen.com/hpp/pay.shtml';
269
  } else {
270
  $url = (empty($brandCode)) ?
271
+ 'https://live.adyen.com/hpp/select.shtml' :
272
+ "https://live.adyen.com/hpp/details.shtml?brandCode=$brandCode";
273
  }
274
  break;
275
  }
279
  $bankData = $this->getInfoInstance()->getPoNumber();
280
  if ($brandCode == 'ideal' && !empty($bankData)) {
281
  $idealBankUrl = ($isConfigDemoMode == true) ?
282
+ 'https://test.adyen.com/hpp/redirectIdeal.shtml' :
283
+ 'https://live.adyen.com/hpp/redirectIdeal.shtml';
284
  }
285
 
286
 
288
  }
289
 
290
  public function getFormName() {
291
+ return "Adyen HPP";
292
  }
293
 
294
  /**
329
 
330
  if(empty($countryCode)) {
331
 
332
+ // check if billingcountry is filled in
333
+ if(is_object(Mage::helper('checkout/cart')->getQuote()->getBillingAddress()) && Mage::helper('checkout/cart')->getQuote()->getBillingAddress()->getCountry() != "") {
334
+ $countryCode = Mage::helper('checkout/cart')->getQuote()->getBillingAddress()->getCountry();
335
+ } else {
336
+ $countryCode = ""; // don't set countryCode so you get all the payment methods
337
+ // You could do ip lookup but availability and performace is not guaranteed
338
  // $ip = $this->getClientIp();
339
  // $countryCode = file_get_contents('http://api.hostip.info/country.php?ip='.$ip);
340
+ }
341
  }
342
 
343
  // check if cache setting is on
350
  return unserialize($data);
351
  }
352
  }
353
+
354
  // directory lookup to search for available payment methods
355
  $adyFields = array(
356
+ "paymentAmount" => (int)$amount,
357
+ "currencyCode" => $orderCurrencyCode,
358
+ "merchantReference" => "Get Payment methods",
359
+ "skinCode" => $skinCode,
360
+ "merchantAccount" => $merchantAccount,
361
+ "sessionValidity" => $sessionValidity,
362
+ "countryCode" => $countryCode,
363
+ "shopperLocale" => $countryCode,
364
+ "merchantSig" => "",
365
  );
366
 
367
  $sign = $adyFields['paymentAmount'] .
368
+ $adyFields['currencyCode'] .
369
+ $adyFields['merchantReference'] .
370
+ $adyFields['skinCode'] .
371
+ $adyFields['merchantAccount'] .
372
+ $adyFields['sessionValidity'];
373
 
374
  //Generate HMAC encrypted merchant signature
375
  $secretWord = $this->_getSecretWord();
385
 
386
  $isConfigDemoMode = $this->getConfigDataDemoMode();
387
  if ($isConfigDemoMode)
388
+ curl_setopt($ch, CURLOPT_URL, "https://test.adyen.com/hpp/directory.shtml");
389
  else
390
+ curl_setopt($ch, CURLOPT_URL, "https://live.adyen.com/hpp/directory.shtml");
391
 
392
+ curl_setopt($ch, CURLOPT_HEADER, false);
393
  curl_setopt($ch, CURLOPT_POST,count($adyFields));
394
  curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($adyFields));
395
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // do not print results if you do curl_exec
397
  $results = curl_exec($ch);
398
 
399
  if($results === false) {
400
+ echo "Error: " . curl_error($ch);
401
+ Mage::log("Payment methods are not available on this merchantaccount\skin result is: " . curl_error($ch), self::DEBUG_LEVEL, 'http-request.log',true);
402
+ Mage::throwException(Mage::helper('adyen')->__('Payment methods are not available on this merchantaccount\skin'));
403
  } else{
404
+ /**
405
+ * The $result contains a JSON array containing
406
+ * the available payment methods for the merchant account.
407
+ */
408
+ $results_json = json_decode($results);
409
+
410
+ if($results_json == null) {
411
+ // no valid json so show the error
412
+ Mage::log("Payment methods are empty on this merchantaccount\skin. results_json is incorrect result is:" . $results, self::DEBUG_LEVEL, 'http-request.log',true);
413
+ Mage::throwException(Mage::helper('adyen')->__('Payment methods are empty on this merchantaccount\skin' . $results));
414
+ }
415
+
416
+ $payment_methods = $results_json->paymentMethods;
417
+
418
+ $result_array = array();
419
+ foreach($payment_methods as $payment_method) {
420
+
421
+ // if openinvoice is activated don't show this in HPP options
422
+ if(Mage::getStoreConfig("payment/adyen_openinvoice/active")) {
423
+ if(Mage::getStoreConfig("payment/adyen_openinvoice/openinvoicetypes") == $payment_method->brandCode) {
424
+ continue;
425
+ }
426
+ }
427
+
428
+ $result_array[$payment_method->brandCode]['name'] = $payment_method->name;
429
+
430
+ if(isset($payment_method->issuers)) {
431
+ // for ideal go through the issuers
432
+ if(count($payment_method->issuers) > 0)
433
+ {
434
+ foreach($payment_method->issuers as $issuer) {
435
+ $result_array[$payment_method->brandCode]['issuers'][$issuer->issuerId] = $issuer->name;
436
+ }
437
+ }
438
+ ksort($result_array[$payment_method->brandCode]['issuers']); // sort on key
439
+ }
440
+ }
 
441
  }
442
 
443
  // if cache is on cache this result
451
  public function getHppOptionsDisabled() {
452
  return Mage::getStoreConfig("payment/adyen_hpp/disable_hpptypes");
453
  }
454
+
455
  // Function to get the client ip address
456
+ public function getClientIp() {
457
+
458
+ $ipaddress = '';
459
+
460
+ if (isset($_SERVER['HTTP_CLIENT_IP']))
461
+ $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
462
+ else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
463
+ $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
464
+ else if(isset($_SERVER['HTTP_X_FORWARDED']))
465
+ $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
466
+ else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
467
+ $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
468
+ else if(isset($_SERVER['HTTP_FORWARDED']))
469
+ $ipaddress = $_SERVER['HTTP_FORWARDED'];
470
+ else if(isset($_SERVER['REMOTE_ADDR']))
471
+ $ipaddress = $_SERVER['REMOTE_ADDR'];
472
+ else
473
+ $ipaddress = '';
474
+
475
+ return $ipaddress;
476
+ }
477
 
478
 
479
  }
app/code/community/Adyen/Payment/Model/Adyen/Oneclick.php CHANGED
@@ -60,6 +60,15 @@ class Adyen_Payment_Model_Adyen_Oneclick extends Adyen_Payment_Model_Adyen_Cc {
60
  // get the selected recurring card
61
  $recurringSelectedKey = $data->getRecurring();
62
 
 
 
 
 
 
 
 
 
 
63
  // get cvc code for this creditcard
64
  $recurringDetailReferenceKey = "recurringDetailReference_".$recurringSelectedKey;
65
  $cvcKey = "oneclick_cid_".$recurringSelectedKey;
@@ -71,29 +80,39 @@ class Adyen_Payment_Model_Adyen_Oneclick extends Adyen_Payment_Model_Adyen_Cc {
71
  // save information as additional information so you don't have to add column in table
72
  $info->setAdditionalInformation('recurring_detail_reference', $recurringDetailReference);
73
 
 
 
 
74
  if ($this->isCseEnabled()) {
 
 
 
 
75
  $info->setAdditionalInformation('encrypted_data', $data->getEncryptedDataOneclick());
76
  }
77
  else {
78
 
79
- if($data->getRecurring() != "") {
80
-
81
- // check if expiry month and year is changed
82
- $expiryMonth = $data->getData("oneclick_exp_month" . $recurringSelectedKey);
83
- $expiryYear = $data->getData("oneclick_exp_year_" . $recurringSelectedKey);
84
-
85
- // just set default data for info block only
86
- $info->setCcType($data->getData("oneclick_type_" . $recurringSelectedKey))
87
- ->setCcOwner($data->getData("oneclick_owner_" . $recurringSelectedKey))
88
- ->setCcLast4($data->getData("oneclick_last_4_" . $recurringSelectedKey))
89
- ->setCcExpMonth($data->getData("oneclick_exp_month_" . $recurringSelectedKey))
90
- ->setCcExpYear($data->getData("oneclick_exp_year_" . $recurringSelectedKey))
91
- ->setCcCid($data->getData("oneclick_cid_" . $recurringSelectedKey));
92
- }
93
  }
94
  } else {
95
  Mage::throwException(Mage::helper('adyen')->__('Payment Method is complusory in order to process your payment'));
96
  }
 
 
 
 
 
 
97
  return $this;
98
  }
99
 
60
  // get the selected recurring card
61
  $recurringSelectedKey = $data->getRecurring();
62
 
63
+
64
+ if(Mage::helper('adyen/installments')->isInstallmentsEnabled()) {
65
+ $installmentReferenceKey = "installment_".$recurringSelectedKey;
66
+ $info->setAdditionalInformation('number_of_installments', $data->getData($installmentReferenceKey));
67
+ } else {
68
+ $info->setAdditionalInformation('number_of_installments', "");
69
+
70
+ }
71
+
72
  // get cvc code for this creditcard
73
  $recurringDetailReferenceKey = "recurringDetailReference_".$recurringSelectedKey;
74
  $cvcKey = "oneclick_cid_".$recurringSelectedKey;
80
  // save information as additional information so you don't have to add column in table
81
  $info->setAdditionalInformation('recurring_detail_reference', $recurringDetailReference);
82
 
83
+ // save creditcard type
84
+
85
+
86
  if ($this->isCseEnabled()) {
87
+ $ccType = $data->getData("oneclick_type_" . $recurringSelectedKey);
88
+ $ccType = Mage::helper('adyen/data')->getMagentoCreditCartType($ccType);
89
+
90
+ $info->setCcType($ccType);
91
  $info->setAdditionalInformation('encrypted_data', $data->getEncryptedDataOneclick());
92
  }
93
  else {
94
 
95
+ // check if expiry month and year is changed
96
+ $expiryMonth = $data->getData("oneclick_exp_month" . $recurringSelectedKey);
97
+ $expiryYear = $data->getData("oneclick_exp_year_" . $recurringSelectedKey);
98
+
99
+ // just set default data for info block only
100
+ $info->setCcType($data->getData("oneclick_type_" . $recurringSelectedKey))
101
+ ->setCcOwner($data->getData("oneclick_owner_" . $recurringSelectedKey))
102
+ ->setCcLast4($data->getData("oneclick_last_4_" . $recurringSelectedKey))
103
+ ->setCcExpMonth($data->getData("oneclick_exp_month_" . $recurringSelectedKey))
104
+ ->setCcExpYear($data->getData("oneclick_exp_year_" . $recurringSelectedKey))
105
+ ->setCcCid($data->getData("oneclick_cid_" . $recurringSelectedKey));
 
 
 
106
  }
107
  } else {
108
  Mage::throwException(Mage::helper('adyen')->__('Payment Method is complusory in order to process your payment'));
109
  }
110
+
111
+ // recalculate the totals so that extra fee is defined
112
+ $quote = (Mage::getModel('checkout/type_onepage') !== false)? Mage::getModel('checkout/type_onepage')->getQuote(): Mage::getModel('checkout/session')->getQuote();
113
+ $quote->setTotalsCollectedFlag(false);
114
+ $quote->collectTotals();
115
+
116
  return $this;
117
  }
118
 
app/code/community/Adyen/Payment/Model/Adyen/Openinvoice.php CHANGED
@@ -33,6 +33,38 @@ class Adyen_Payment_Model_Adyen_Openinvoice extends Adyen_Payment_Model_Adyen_Hp
33
  protected $_infoBlockType = 'adyen/info_openinvoice';
34
  protected $_paymentMethod = 'openinvoice';
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  public function assignData($data) {
37
  if (!($data instanceof Varien_Object)) {
38
  $data = new Varien_Object($data);
@@ -256,8 +288,8 @@ class Adyen_Payment_Model_Adyen_Openinvoice extends Adyen_Payment_Model_Adyen_Hp
256
  $additional_data_sign['openinvoicedata.' . $linename . '.currencyCode'] = $currency;
257
  $additional_data_sign['openinvoicedata.' . $linename . '.description'] = $item->getName();
258
  $additional_data_sign['openinvoicedata.' . $linename . '.itemAmount'] = Mage::helper('adyen')->formatAmount($item->getPrice(), $currency);
259
- $additional_data_sign['openinvoicedata.' . $linename . '.itemVatAmount'] = Mage::helper('adyen')->formatAmount(($item->getTaxAmount()>0 && $item->getPriceInclTax()>0)?$item->getPriceInclTax() - $item->getPrice():$item->getTaxAmount(), $currency);
260
- $additional_data_sign['openinvoicedata.' . $linename . '.numberOfItems'] = (int) $item->getQtyOrdered();
261
  $additional_data_sign['openinvoicedata.' . $linename . '.vatCategory'] = "None";
262
  }
263
 
@@ -315,30 +347,17 @@ class Adyen_Payment_Model_Adyen_Openinvoice extends Adyen_Payment_Model_Adyen_Hp
315
  ksort($additional_data_sign);
316
 
317
  // signature is first alphabatical keys seperate by : and then | and then the values seperate by :
318
- $sign_additional_data_keys = "";
319
- $sign_additional_data_values = "";
320
  foreach($additional_data_sign as $key => $value) {
321
-
322
  // add to fields
323
  $adyFields[$key] = $value;
324
-
325
- // create sign
326
- $sign_additional_data_keys .= $key;
327
- $sign_additional_data_values .= $value;
328
-
329
- $keys = array_keys($additional_data_sign);
330
- if(end($keys) != $key) {
331
- $sign_additional_data_keys .= ":";
332
- $sign_additional_data_values .= ":";
333
- }
334
  }
335
-
336
- $sign_additional_data = $sign_additional_data_keys . "|" . $sign_additional_data_values;
337
-
 
338
  $signMac = Zend_Crypt_Hmac::compute($secretWord, 'sha1', $sign_additional_data);
339
  $adyFields['openinvoicedata.sig'] = base64_encode(pack('H*', $signMac));
340
-
341
-
342
  Mage::log($adyFields, self::DEBUG_LEVEL, 'http-request.log');
343
 
344
  return $adyFields;
33
  protected $_infoBlockType = 'adyen/info_openinvoice';
34
  protected $_paymentMethod = 'openinvoice';
35
 
36
+
37
+ public function isApplicableToQuote($quote, $checksBitMask)
38
+ {
39
+ // different don't show
40
+ if($this->_getConfigData('different_address_disable', 'adyen_openinvoice')) {
41
+
42
+ // get billing and shipping information
43
+ $quote = $this->getQuote();
44
+ $billing = $quote->getBillingAddress()->getData();
45
+ $shipping = $quote->getShippingAddress()->getData();
46
+
47
+ // check if the following items are different: street, city, postcode, region, countryid
48
+ if(isset($billing['street']) && isset($billing['city']) && $billing['postcode'] && isset($billing['region']) && isset($billing['country_id'])) {
49
+ $billingAddress = array($billing['street'], $billing['city'], $billing['postcode'], $billing['region'],$billing['country_id']);
50
+ } else {
51
+ $billingAddress = array();
52
+ }
53
+ if(isset($shipping['street']) && isset($shipping['city']) && $shipping['postcode'] && isset($shipping['region']) && isset($shipping['country_id'])) {
54
+ $shippingAddress = array($shipping['street'], $shipping['city'], $shipping['postcode'], $shipping['region'],$shipping['country_id']);
55
+ } else {
56
+ $shippingAddress = array();
57
+ }
58
+
59
+ // if the result are not the same don't show the payment method open invoice
60
+ $diff = array_diff($billingAddress,$shippingAddress);
61
+ if(is_array($diff) && !empty($diff)) {
62
+ return false;
63
+ }
64
+ }
65
+ return true;
66
+ }
67
+
68
  public function assignData($data) {
69
  if (!($data instanceof Varien_Object)) {
70
  $data = new Varien_Object($data);
288
  $additional_data_sign['openinvoicedata.' . $linename . '.currencyCode'] = $currency;
289
  $additional_data_sign['openinvoicedata.' . $linename . '.description'] = $item->getName();
290
  $additional_data_sign['openinvoicedata.' . $linename . '.itemAmount'] = Mage::helper('adyen')->formatAmount($item->getPrice(), $currency);
291
+ $additional_data_sign['openinvoicedata.' . $linename . '.itemVatAmount'] = ($item->getTaxAmount() > 0 && $item->getPriceInclTax() > 0) ? Mage::helper('adyen')->formatAmount($item->getPriceInclTax(), $currency) - Mage::helper('adyen')->formatAmount($item->getPrice(), $currency):Mage::helper('adyen')->formatAmount($item->getTaxAmount(), $currency);
292
+ $additional_data_sign['openinvoicedata.' . $linename . '.numberOfItems'] = (int) $item->getQtyOrdered();
293
  $additional_data_sign['openinvoicedata.' . $linename . '.vatCategory'] = "None";
294
  }
295
 
347
  ksort($additional_data_sign);
348
 
349
  // signature is first alphabatical keys seperate by : and then | and then the values seperate by :
 
 
350
  foreach($additional_data_sign as $key => $value) {
 
351
  // add to fields
352
  $adyFields[$key] = $value;
 
 
 
 
 
 
 
 
 
 
353
  }
354
+
355
+ $keys = implode(':',array_keys($additional_data_sign));
356
+ $values = implode(':',$additional_data_sign);
357
+ $sign_additional_data = trim($keys) . '|' . trim($values);
358
  $signMac = Zend_Crypt_Hmac::compute($secretWord, 'sha1', $sign_additional_data);
359
  $adyFields['openinvoicedata.sig'] = base64_encode(pack('H*', $signMac));
360
+
 
361
  Mage::log($adyFields, self::DEBUG_LEVEL, 'http-request.log');
362
 
363
  return $adyFields;
app/code/community/Adyen/Payment/Model/Event.php CHANGED
@@ -39,7 +39,7 @@ class Adyen_Payment_Model_Event extends Mage_Core_Model_Abstract {
39
  const ADYEN_EVENT_CAPTURE_FAILED = 'CAPTURE_FAILED';
40
  const ADYEN_EVENT_CANCELLATION = 'CANCELLATION';
41
  const ADYEN_EVENT_POSAPPROVED = 'POS_APPROVED';
42
- const ADYEN_EVENT_HANDLEDEXTERNALLY = 'HANDLED_EXTERNALLY';
43
 
44
  /**
45
  * Initialize resources
@@ -87,22 +87,4 @@ class Adyen_Payment_Model_Event extends Mage_Core_Model_Abstract {
87
  $originalReference = $this->getResource()->getOriginalPspReference($incrementId);
88
  return (!empty($originalReference)) ? $originalReference['psp_reference'] : false;
89
  }
90
-
91
- /**
92
- * Detect Bank Transfer
93
- * @param type $incrementId
94
- * @param type $adyenEventCode
95
- * @return boolean true if bankTrasnfer
96
- */
97
- public function isBanktransfer($incrementId, $adyenEventCode = 'PENDING') {
98
- $_incrementId = trim($incrementId);
99
- $_adyenEventCode = trim($adyenEventCode);
100
- $pendingEvent = $this->getResource()->getBanktransferEvent($_incrementId, $_adyenEventCode);
101
- if (empty($pendingEvent))
102
- return false;
103
- if (!isset($pendingEvent['payment_method']))
104
- return false;
105
- return strpos($pendingEvent['payment_method'], 'bankTransfer') !== false ? true : false;
106
- }
107
-
108
  }
39
  const ADYEN_EVENT_CAPTURE_FAILED = 'CAPTURE_FAILED';
40
  const ADYEN_EVENT_CANCELLATION = 'CANCELLATION';
41
  const ADYEN_EVENT_POSAPPROVED = 'POS_APPROVED';
42
+ const ADYEN_EVENT_HANDLED_EXTERNALLY = 'HANDLED_EXTERNALLY';
43
 
44
  /**
45
  * Initialize resources
87
  $originalReference = $this->getResource()->getOriginalPspReference($incrementId);
88
  return (!empty($originalReference)) ? $originalReference['psp_reference'] : false;
89
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  }
app/code/community/Adyen/Payment/Model/Mysql4/Adyen/Event.php CHANGED
@@ -77,23 +77,6 @@ class Adyen_Payment_Model_Mysql4_Adyen_Event extends Mage_Core_Model_Mysql4_Abst
77
  return $db->fetchOne($sql);
78
  }
79
 
80
- /**
81
- * Detect BankTransfer
82
- * @param type $incrementId
83
- * @param type $adyenEventCode
84
- * @return type
85
- */
86
- public function getBanktransferEvent($incrementId, $adyenEventCode = 'PENDING') {
87
- $db = $this->_getReadAdapter();
88
- $sql = $db->select()
89
- ->from($this->getMainTable(), array('payment_method'))
90
- ->where('increment_id = ?', $incrementId)
91
- ->where('adyen_event_result = ?',$adyenEventCode)
92
- ;
93
- $stmt = $db->query($sql);
94
- return $stmt->fetch();
95
- }
96
-
97
  public function saveData($obj) {
98
  $db = $this->_getWriteAdapter();
99
  $db->insert($this->getMainTable(), $obj->getData());
77
  return $db->fetchOne($sql);
78
  }
79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  public function saveData($obj) {
81
  $db = $this->_getWriteAdapter();
82
  $db->insert($this->getMainTable(), $obj->getData());
app/code/community/Adyen/Payment/Model/Mysql4/Adyen/Event/Collection.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Adyen_Payment_Model_Mysql4_Adyen_Event_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
4
+ {
5
+ protected function _construct()
6
+ {
7
+ $this->_init('adyen/adyen_event');
8
+ $this->setItemObjectClass('adyen/event');
9
+ }
10
+ }
app/code/community/Adyen/Payment/Model/Observer.php CHANGED
@@ -49,6 +49,16 @@ class Adyen_Payment_Model_Observer {
49
  return false;
50
  }
51
 
 
 
 
 
 
 
 
 
 
 
52
  /**
53
  * Determine if the payment method is Adyen
54
  * @param type $order
49
  return false;
50
  }
51
 
52
+ public function salesOrderPaymentCancel(Varien_Event_Observer $observer) {
53
+ // observer is payment object
54
+ $payment = $observer->getEvent()->getPayment();
55
+
56
+ $order = $payment->getOrder();
57
+ // print_r($payment);
58
+ $pspReference = Mage::getModel('adyen/event')->getOriginalPspReference($order->getIncrementId());
59
+ $payment->getMethodInstance()->SendCancelOrRefund($payment, null, $pspReference);
60
+ }
61
+
62
  /**
63
  * Determine if the payment method is Adyen
64
  * @param type $order
app/code/community/Adyen/Payment/Model/Process.php CHANGED
@@ -209,31 +209,20 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
209
  }
210
  } else {
211
 
212
- $isBankTransfer = Mage::getModel('adyen/event')
213
- ->isBanktransfer($order->getIncrementId());
214
- //attempt to hold/cancel (exceptional to BankTransfer they stay in previous status/pending)
215
-
216
- if (!$isBankTransfer) {
217
-
218
- $comment = Mage::helper('adyen')
219
- ->__('%s <br /> Result: %s <br /> paymentMethod: %s', 'Adyen App Result URL Notification:', $result, 'POS');
220
-
221
- $order->addStatusHistoryComment($comment, Mage_Sales_Model_Order::STATE_CANCELED);
222
 
223
- $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_CANCEL, true);
224
 
225
- if (!$order->canCancel()) {
226
- $this->_writeLog('order can not be canceled', $order);
227
- $order->addStatusHistoryComment($helper->__('Order can not be canceled'), Mage_Sales_Model_Order::STATE_CANCELED);
228
- $order->save();
229
 
230
- } else {
231
- $order->cancel()->save();
232
- }
 
233
 
234
  } else {
235
- $this->_addStatusHistoryComment($order, $varienObj, $order->getStatus());
236
- $status = true;
237
  }
238
  }
239
  }
@@ -245,7 +234,7 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
245
  function closeWindow() {
246
  window.open('', '_self', '');
247
  window.close();
248
- }
249
  setTimeout(closeWindow, 500);
250
  </script>
251
  </body></html>";
@@ -313,6 +302,53 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
313
  ->setOrder($order);
314
  $history->save();
315
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
316
  return $status;
317
  }
318
  }
@@ -370,6 +406,7 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
370
  $success = (trim($response->getData('success')) == "true") ? true : false;
371
  $eventData = (!empty($eventCode)) ? $eventCode : $authResult;
372
  $paymentObj = $order->getPayment();
 
373
 
374
  $paymentObj->setLastTransId($incrementId)
375
  ->setAdyenPaymentMethod($paymentMethod)
@@ -387,7 +424,9 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
387
 
388
  //only original here
389
  if ($eventCode == Adyen_Payment_Model_Event::ADYEN_EVENT_AUTHORISED
390
- || $eventCode == Adyen_Payment_Model_Event::ADYEN_EVENT_AUTHORISATION)
 
 
391
  {
392
  $paymentObj->setAdyenPspReference($pspReference);
393
  if($klarnaReservationNumber != "") {
@@ -457,8 +496,9 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
457
  // don't save the order because of interferrence with order status (set by notifications)
458
  break;
459
  case Adyen_Payment_Model_Event::ADYEN_EVENT_CANCELLED:
460
- $isBankTransfer = Mage::getModel('adyen/event')
461
- ->isBanktransfer($order->getIncrementId());
 
462
  //attempt to hold/cancel (exceptional to BankTransfer they stay in previous status/pending)
463
  if (!$isBankTransfer) {
464
  $this->_addStatusHistoryComment($order, $params);
@@ -535,10 +575,15 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
535
  $valid = $this->notificationHandler($order, $response); //hmt: added $valid
536
 
537
  if ($valid) {
 
 
 
 
538
  $eventCode = trim($response->getData('eventCode'));
539
 
540
  $success = (bool) trim($response->getData('success'));
541
  $payment_method = trim($response->getData('paymentMethod'));
 
542
  switch ($eventCode) {
543
  case Adyen_Payment_Model_Event::ADYEN_EVENT_REFUND:
544
 
@@ -549,36 +594,43 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
549
  case Adyen_Payment_Model_Event::ADYEN_EVENT_PENDING:
550
  //add comment to the order
551
  break;
552
- case Adyen_Payment_Model_Event::ADYEN_EVENT_HANDLEDEXTERNALLY:
553
  case Adyen_Payment_Model_Event::ADYEN_EVENT_AUTHORISATION:
554
- //pre-authorise if success
555
- $order->sendNewOrderEmail(); // send order email
556
-
557
- /*
558
- * For AliPay or UnionPay sometimes it first send a AUTHORISATION false notification and then
559
- * a AUTHORISATION true notification. The second time it must revert the cancelled of the first notification before we can
560
- * assign a new status
561
- */
562
- if($success == "true") {
563
- if($payment_method == "alipay" || $payment_method == "unionpay") {
564
- foreach ($order->getAllItems() as $item) {
565
- $item->setQtyCanceled(0);
566
- $item->save();
567
- }
568
- }
569
  }
570
- $this->setPrePaymentAuthorized($order, $success);
571
-
572
- $this->createInvoice($order, $response);
573
  break;
574
  case Adyen_Payment_Model_Event::ADYEN_EVENT_CAPTURE:
575
- $this->setPaymentAuthorized($order, $success, $response);
 
 
 
 
 
576
  break;
577
  case Adyen_Payment_Model_Event::ADYEN_EVENT_CAPTURE_FAILED:
578
  case Adyen_Payment_Model_Event::ADYEN_EVENT_CANCELLATION:
579
  case Adyen_Payment_Model_Event::ADYEN_EVENT_CANCELLED:
580
  $this->holdCancelOrder($order, $response);
581
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
582
  default:
583
  //@todo fix me cancel && error here
584
  $order->getPayment()->getMethodInstance()->writeLog('notification event not supported!');
@@ -587,6 +639,35 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
587
  }
588
  }
589
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
590
  /**
591
  * @since v0.1.0.5
592
  * @param type $order
@@ -678,11 +759,17 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
678
  * @notice ideal is exception here
679
  * @since 0.0.9.x
680
  */
681
- public function isAutoCapture($response) {
682
  $paymentMethod = trim($response->getData('paymentMethod'));
683
  $captureMode = trim($this->_getConfigData('capture_mode'));
684
- // payment method ideal and cash has direct capture
685
- if (strcmp($paymentMethod, 'ideal') === 0 || strcmp($paymentMethod, 'c_cash' ) === 0 ) {
 
 
 
 
 
 
686
  return true;
687
  }
688
  if (strcmp($captureMode, 'manual') === 0) {
@@ -695,6 +782,14 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
695
  return true;
696
  }
697
 
 
 
 
 
 
 
 
 
698
  /**
699
  * @desc Handle Refund here
700
  * @todo create credit memo && set order status to closed
@@ -775,7 +870,7 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
775
  }
776
 
777
  //capture mode
778
- if (!$this->isAutoCapture($response)) {
779
  $order->addStatusHistoryComment(Mage::helper('adyen')->__('Capture Mode set to Manual'));
780
  $order->sendOrderUpdateEmail($_mail);
781
  $order->save();
@@ -809,6 +904,30 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
809
  $order->save();
810
  }
811
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
812
  /**
813
  * @desc order comments or history
814
  * @param type $order
@@ -914,8 +1033,8 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
914
  case Mage_Sales_Model_Order::STATE_HOLDED:
915
  $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_HOLD, true);
916
  if (!$order->canHold()) {
917
- $this->_writeLog('order can not hold', $order);
918
- $order->addStatusHistoryComment($helper->__('Order can not Hold'), Mage_Sales_Model_Order::STATE_HOLDED);
919
  $order->save();
920
  return false;
921
  }
@@ -925,7 +1044,7 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
925
  $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_CANCEL, true);
926
  if (!$order->canCancel()) {
927
  $this->_writeLog('order can not be canceled', $order);
928
- $order->addStatusHistoryComment($helper->__('Order can not be canceled'), Mage_Sales_Model_Order::STATE_CANCELED);
929
  $order->save();
930
  return false;
931
  }
@@ -1001,4 +1120,4 @@ class Adyen_Payment_Model_Process extends Mage_Core_Model_Abstract {
1001
  return Mage::app()->getRequest();
1002
  }
1003
 
1004
- }
209
  }
210
  } else {
211
 
212
+ $comment = Mage::helper('adyen')
213
+ ->__('%s <br /> Result: %s <br /> paymentMethod: %s', 'Adyen App Result URL Notification:', $result, 'POS');
 
 
 
 
 
 
 
 
214
 
215
+ $order->addStatusHistoryComment($comment, Mage_Sales_Model_Order::STATE_CANCELED);
216
 
217
+ $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_CANCEL, true);
 
 
 
218
 
219
+ if (!$order->canCancel()) {
220
+ $this->_writeLog('order can not be canceled', $order);
221
+ $order->addStatusHistoryComment($helper->__('Order can not be canceled'), Mage_Sales_Model_Order::STATE_CANCELED);
222
+ $order->save();
223
 
224
  } else {
225
+ $order->cancel()->save();
 
226
  }
227
  }
228
  }
234
  function closeWindow() {
235
  window.open('', '_self', '');
236
  window.close();
237
+ }
238
  setTimeout(closeWindow, 500);
239
  </script>
240
  </body></html>";
302
  ->setOrder($order);
303
  $history->save();
304
 
305
+
306
+ if($this->_getConfigData('cash_drawer', 'adyen_pos')) {
307
+
308
+ $printerIp = trim($this->_getConfigData('cash_drawer_printer_ip', 'adyen_pos'));
309
+
310
+ if($printerIp != "") {
311
+
312
+ $drawCodeConfig = trim($this->_getConfigData('cash_drawer_code', 'adyen_pos'));
313
+
314
+ if($drawCodeConfig != "") {
315
+
316
+ // split comm based
317
+ $drawCodes = explode(",", $drawCodeConfig);
318
+
319
+ // open the cash drawer
320
+ try {
321
+ $esc = "\x1b";
322
+ $fp = fsockopen($printerIp, 9100);
323
+ fwrite($fp, $esc . "@");
324
+ $write = "";
325
+ $count = 0;
326
+ foreach($drawCodes as $drawCode) {
327
+ // first code 27 must be special character to let it work
328
+ if($count == 0 && $drawCode == "27") {
329
+ $write .= $esc;
330
+ } else {
331
+ $write .= chr($drawCode);
332
+ }
333
+ ++$count;
334
+ }
335
+ // example: fwrite($fp, $esc . chr(112) . chr(48) . chr(55) . chr(121));
336
+ fwrite($fp, $write);
337
+ // close connection
338
+ fclose($fp);
339
+ } catch(Exception $e) {
340
+ Mage::logException($e);
341
+ Mage::throwException($e->getMessage());
342
+ }
343
+ } else {
344
+ Mage::log("Cash drawer Code not filled in check your Adyen POS settings", Zend_Log::DEBUG, "adyen_notification.log", true);
345
+ Mage::throwException('Cash drawer Code not filled in check your Adyen POS settings');
346
+ }
347
+ } else {
348
+ Mage::log("Cash drawer Code not filled in check your Adyen POS settings", Zend_Log::DEBUG, "adyen_notification.log", true);
349
+ Mage::throwException('Cash drawer IP not filled in check your Adyen POS settings');
350
+ }
351
+ }
352
  return $status;
353
  }
354
  }
406
  $success = (trim($response->getData('success')) == "true") ? true : false;
407
  $eventData = (!empty($eventCode)) ? $eventCode : $authResult;
408
  $paymentObj = $order->getPayment();
409
+ $_paymentCode = $this->_paymentMethodCode($order);
410
 
411
  $paymentObj->setLastTransId($incrementId)
412
  ->setAdyenPaymentMethod($paymentMethod)
424
 
425
  //only original here
426
  if ($eventCode == Adyen_Payment_Model_Event::ADYEN_EVENT_AUTHORISED
427
+ || $eventCode == Adyen_Payment_Model_Event::ADYEN_EVENT_AUTHORISATION
428
+ || $eventCode == Adyen_Payment_Model_Event::ADYEN_EVENT_HANDLED_EXTERNALLY
429
+ || ($eventCode == Adyen_Payment_Model_Event::ADYEN_EVENT_CAPTURE && $_paymentCode == "adyen_pos"))
430
  {
431
  $paymentObj->setAdyenPspReference($pspReference);
432
  if($klarnaReservationNumber != "") {
496
  // don't save the order because of interferrence with order status (set by notifications)
497
  break;
498
  case Adyen_Payment_Model_Event::ADYEN_EVENT_CANCELLED:
499
+ $paymentMethod = trim($params->getData('paymentMethod'));
500
+ $isBankTransfer = $this->isBankTransfer($paymentMethod);
501
+
502
  //attempt to hold/cancel (exceptional to BankTransfer they stay in previous status/pending)
503
  if (!$isBankTransfer) {
504
  $this->_addStatusHistoryComment($order, $params);
575
  $valid = $this->notificationHandler($order, $response); //hmt: added $valid
576
 
577
  if ($valid) {
578
+ Mage::dispatchEvent('adyen_payment_process_notifications_before', array('order' => $order, 'adyen_response' => $response));
579
+ if ($response->getData('handled')) {
580
+ return;
581
+ }
582
  $eventCode = trim($response->getData('eventCode'));
583
 
584
  $success = (bool) trim($response->getData('success'));
585
  $payment_method = trim($response->getData('paymentMethod'));
586
+ $_paymentCode = $this->_paymentMethodCode($order);
587
  switch ($eventCode) {
588
  case Adyen_Payment_Model_Event::ADYEN_EVENT_REFUND:
589
 
594
  case Adyen_Payment_Model_Event::ADYEN_EVENT_PENDING:
595
  //add comment to the order
596
  break;
597
+ case Adyen_Payment_Model_Event::ADYEN_EVENT_HANDLED_EXTERNALLY:
598
  case Adyen_Payment_Model_Event::ADYEN_EVENT_AUTHORISATION:
599
+ // for POS don't do anything on the AUTHORIZATION
600
+ if($_paymentCode != "adyen_pos") {
601
+ $this->authorizePayment($order, $success, $payment_method, $response);
 
 
 
 
 
 
 
 
 
 
 
 
602
  }
 
 
 
603
  break;
604
  case Adyen_Payment_Model_Event::ADYEN_EVENT_CAPTURE:
605
+ if($_paymentCode != "adyen_pos") {
606
+ $this->setPaymentAuthorized($order, $success, $response);
607
+ } else {
608
+ // FOR POS authorize the payment on the CAPTURE notification
609
+ $this->authorizePayment($order, $success, $payment_method, $response);
610
+ }
611
  break;
612
  case Adyen_Payment_Model_Event::ADYEN_EVENT_CAPTURE_FAILED:
613
  case Adyen_Payment_Model_Event::ADYEN_EVENT_CANCELLATION:
614
  case Adyen_Payment_Model_Event::ADYEN_EVENT_CANCELLED:
615
  $this->holdCancelOrder($order, $response);
616
  break;
617
+ case Adyen_Payment_Model_Event::ADYEN_EVENT_CANCEL_OR_REFUND:
618
+
619
+ $resultModification = trim($response->getData('additionalData_modification_action'));
620
+ if(isset($resultModification) && $resultModification != "") {
621
+ if($resultModification == "cancel") {
622
+ $this->holdCancelOrder($order, $response);
623
+ } elseif($resultModification == "refund") {
624
+ $this->refundOrder($order, $response);
625
+ //refund completed
626
+ $this->setRefundAuthorized($order, $success);
627
+ }
628
+ } else {
629
+ // not sure if it cancelled or refund the order
630
+ $helper = Mage::helper('adyen');
631
+ $order->addStatusHistoryComment($helper->__('Order is cancelled or refunded'));
632
+ $order->save();
633
+ }
634
  default:
635
  //@todo fix me cancel && error here
636
  $order->getPayment()->getMethodInstance()->writeLog('notification event not supported!');
639
  }
640
  }
641
 
642
+ public function authorizePayment($order, $success, $payment_method, $response) {
643
+
644
+ //pre-authorise if success
645
+ $order->sendNewOrderEmail(); // send order email
646
+
647
+ /*
648
+ * For AliPay or UnionPay sometimes it first send a AUTHORISATION false notification and then
649
+ * a AUTHORISATION true notification. The second time it must revert the cancelled of the first notification before we can
650
+ * assign a new status
651
+ */
652
+ if($success == "true") {
653
+ if($payment_method == "alipay" || $payment_method == "unionpay") {
654
+ foreach ($order->getAllItems() as $item) {
655
+ $item->setQtyCanceled(0);
656
+ $item->save();
657
+ }
658
+ }
659
+ }
660
+ $this->setPrePaymentAuthorized($order, $success);
661
+
662
+ $this->createInvoice($order, $response);
663
+
664
+ $_paymentCode = $this->_paymentMethodCode($order);
665
+ if($payment_method == "c_cash" || ($this->_getConfigData('cash_drawer', 'adyen_pos') && $_paymentCode = "adyen_pos"))
666
+ {
667
+ $this->createShipment($order);
668
+ }
669
+ }
670
+
671
  /**
672
  * @since v0.1.0.5
673
  * @param type $order
759
  * @notice ideal is exception here
760
  * @since 0.0.9.x
761
  */
762
+ public function isAutoCapture($response, $order) {
763
  $paymentMethod = trim($response->getData('paymentMethod'));
764
  $captureMode = trim($this->_getConfigData('capture_mode'));
765
+ $sepaFlow = trim($this->_getConfigData('capture_mode', 'adyen_sepa'));
766
+ $_paymentCode = $this->_paymentMethodCode($order);
767
+
768
+ //check if it is a banktransfer. Banktransfer only a Authorize notification is send.
769
+ $isBankTransfer = $this->isBankTransfer($paymentMethod);
770
+
771
+ // payment method ideal, cash or adyen_pos has direct capture
772
+ if (strcmp($paymentMethod, 'ideal') === 0 || strcmp($paymentMethod, 'c_cash' ) === 0 || $_paymentCode == "adyen_pos" || $isBankTransfer == true || ($_paymentCode == "adyen_sepa" && $sepaFlow != "authcap")) {
773
  return true;
774
  }
775
  if (strcmp($captureMode, 'manual') === 0) {
782
  return true;
783
  }
784
 
785
+ public function isBankTransfer($paymentMethod) {
786
+ if(strlen($paymentMethod) >= 12 && substr($paymentMethod, 0, 12) == "bankTransfer") {
787
+ $isBankTransfer = true;
788
+ } else {
789
+ $isBankTransfer = false;
790
+ }
791
+ }
792
+
793
  /**
794
  * @desc Handle Refund here
795
  * @todo create credit memo && set order status to closed
870
  }
871
 
872
  //capture mode
873
+ if (!$this->isAutoCapture($response, $order)) {
874
  $order->addStatusHistoryComment(Mage::helper('adyen')->__('Capture Mode set to Manual'));
875
  $order->sendOrderUpdateEmail($_mail);
876
  $order->save();
904
  $order->save();
905
  }
906
 
907
+ public function createShipment($order) {
908
+ // create shipment for cash payment
909
+ $payment = $order->getPayment()->getMethodInstance();
910
+ if($order->canShip()) {
911
+ // $itemQty = $order->getItemsCollection()->count();
912
+
913
+ $itemQty = array();
914
+ // $shipment = Mage::getModel('sales/service_order', $order)->prepareShipment($itemQty);
915
+ $shipment = $order->prepareShipment($itemQty);
916
+ if($shipment) {
917
+ $shipment->register();
918
+ $shipment->getOrder()->setIsInProcess(true);
919
+ $comment = Mage::helper('adyen')->__('Shipment created by Adyen');
920
+ $shipment->addComment($comment);
921
+ Mage::getModel('core/resource_transaction')
922
+ ->addObject($shipment)
923
+ ->addObject($shipment->getOrder())
924
+ ->save();
925
+ }
926
+ } else {
927
+ $payment->writeLog("Order can't be shipped");
928
+ }
929
+ }
930
+
931
  /**
932
  * @desc order comments or history
933
  * @param type $order
1033
  case Mage_Sales_Model_Order::STATE_HOLDED:
1034
  $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_HOLD, true);
1035
  if (!$order->canHold()) {
1036
+ $this->_writeLog('order can not hold or is already on Hold', $order);
1037
+ $order->addStatusHistoryComment($helper->__('Order can not Hold or is already on Hold'), Mage_Sales_Model_Order::STATE_HOLDED);
1038
  $order->save();
1039
  return false;
1040
  }
1044
  $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_CANCEL, true);
1045
  if (!$order->canCancel()) {
1046
  $this->_writeLog('order can not be canceled', $order);
1047
+ $order->addStatusHistoryComment($helper->__('Order can not be canceled or is already canceled'), Mage_Sales_Model_Order::STATE_CANCELED);
1048
  $order->save();
1049
  return false;
1050
  }
1120
  return Mage::app()->getRequest();
1121
  }
1122
 
1123
+ }
app/code/community/Adyen/Payment/Model/Sales/Quote/Address/Total/PaymentInstallmentFee.php CHANGED
@@ -47,7 +47,7 @@ class Adyen_Payment_Model_Sales_Quote_Address_Total_PaymentInstallmentFee extend
47
 
48
  $paymentMethod = $quote->getPayment()->getMethod() ;
49
 
50
- if($paymentMethod == "adyen_cc") {
51
 
52
  $info = $payment->getMethodInstance();
53
 
47
 
48
  $paymentMethod = $quote->getPayment()->getMethod() ;
49
 
50
+ if($paymentMethod == "adyen_cc" || $paymentMethod == "adyen_oneclick" ) {
51
 
52
  $info = $payment->getMethodInstance();
53
 
app/code/community/Adyen/Payment/Model/Source/SepaFlow.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Adyen Payment Module
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * that is bundled with this package in the file LICENSE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/osl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magentocommerce.com so we can send you a copy immediately.
15
+ *
16
+ * @category Adyen
17
+ * @package Adyen_Payment
18
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+ /**
22
+ * @category Payment Gateway
23
+ * @package Adyen_Payment
24
+ * @author Adyen
25
+ * @property Adyen B.V
26
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
+ */
28
+ class Adyen_Payment_Model_Source_SepaFlow {
29
+
30
+ public function toOptionArray() {
31
+ return array(
32
+ array('value' => 'sales', 'label' => 'Sales'),
33
+ array('value' => 'authcap', 'label' => 'Auth/Cap'),
34
+ );
35
+ }
36
+
37
+ }
app/code/community/Adyen/Payment/controllers/CheckoutCashController.php ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Adyen Payment Module
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * that is bundled with this package in the file LICENSE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/osl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magentocommerce.com so we can send you a copy immediately.
15
+ *
16
+ * @category Adyen
17
+ * @package Adyen_Payment
18
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+ /**
22
+ * @category Payment Gateway
23
+ * @package Adyen_Payment
24
+ * @author Adyen
25
+ * @property Adyen B.V
26
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
+ */
28
+
29
+ class Adyen_Payment_CheckoutCashController extends Mage_Core_Controller_Front_Action {
30
+
31
+ public function indexAction()
32
+ {
33
+
34
+ $customer = Mage::getSingleton('customer/session');
35
+
36
+ // only proceed if customer is logged in
37
+ if($customer->isLoggedIn()) {
38
+
39
+ // get email
40
+ $params = $this->getRequest()->getParams();
41
+ $adyenPosEmail = isset($params['adyenPosEmail']) ? $params['adyenPosEmail'] : "";
42
+ $quote = (Mage::getModel('checkout/type_onepage') !== false)? Mage::getModel('checkout/type_onepage')->getQuote(): Mage::getModel('checkout/session')->getQuote();
43
+
44
+ // get customer object from session
45
+ $customerObject = Mage::getModel('customer/customer')->load($customer->getId());
46
+
47
+ // important update the shippingaddress and billingaddress this can be null sometimes.
48
+ $quote->assignCustomerWithAddressChange($customerObject);
49
+
50
+ // update email with customer Email
51
+ if($adyenPosEmail != "") {
52
+ $quote->setCustomerEmail($adyenPosEmail);
53
+ }
54
+
55
+ $shippingAddress = $quote->getShippingAddress();
56
+
57
+ $shippingAddress->setCollectShippingRates(true)->collectShippingRates()
58
+ ->setShippingMethod('freeshipping_freeshipping')
59
+ ->setPaymentMethod('adyen_pos');
60
+
61
+ $payment = $quote->getPayment();
62
+ $payment->importData(array('method' => 'adyen_hpp', 'hpp_type' => "c_cash"));
63
+
64
+ $quote->collectTotals()->save();
65
+ $session = Mage::getSingleton('checkout/session');
66
+
67
+ $service = Mage::getModel('sales/service_quote', $quote);
68
+ $service->submitAll();
69
+ $order = $service->getOrder();
70
+
71
+ $oderStatus = Mage::helper('adyen')->getOrderStatus();
72
+ $order->setStatus($oderStatus);
73
+ $order->save();
74
+
75
+ // add order information to the session
76
+ $session->setLastOrderId($order->getId())
77
+ ->setLastRealOrderId($order->getIncrementId())
78
+ ->setLastSuccessQuoteId($order->getQuoteId())
79
+ ->setLastQuoteId($order->getQuoteId());
80
+
81
+ $this->_redirect('adyen/process/redirect');
82
+ return $this;
83
+ } else {
84
+ Mage::throwException('Customer is not logged in.');
85
+ }
86
+ }
87
+ }
app/code/community/Adyen/Payment/controllers/GetInstallmentsController.php CHANGED
@@ -36,70 +36,12 @@ class Adyen_Payment_GetInstallmentsController extends Mage_Core_Controller_Front
36
  // get installments for cctype
37
  $ccType = $params['ccType'];
38
 
39
- // get installments
40
- $quote = (Mage::getModel('checkout/type_onepage') !== false)? Mage::getModel('checkout/type_onepage')->getQuote(): Mage::getModel('checkout/session')->getQuote();
41
-
42
- if($quote->isVirtual()) {
43
- $address = $this->getBillingAddress();
44
- } else {
45
- $address = $quote->getShippingAddress();
46
- }
47
-
48
- // distract the already included added fee for installment you selected before
49
- if($address->getBasePaymentInstallmentFeeAmount() > 0) {
50
- $amount = (double) ($quote->getGrandTotal() - $address->getBasePaymentInstallmentFeeAmount());
51
- } else {
52
- $amount = (double) $quote->getGrandTotal();
53
- }
54
-
55
- $currency = $quote->getQuoteCurrencyCode();
56
-
57
-
58
- // this creditcard type is selected
59
- if($ccType != "") {
60
-
61
- // installment key where installents are saved in settings
62
- $ccTypeInstallments = "installments_".$ccType;
63
-
64
- // check if this type has installments configured
65
- $all_installments = Mage::helper('adyen/installments')->getInstallments(null, $ccTypeInstallments);
66
-
67
- if(empty($all_installments)) {
68
- // no installments congigure fall back on default
69
- $ccTypeInstallments = null;
70
- } else {
71
- $max_installments = Mage::helper('adyen/installments')->getConfigValue($currency,$amount, null, $ccTypeInstallments);
72
- }
73
- }
74
-
75
- // Fallback to the default installments if creditcard type has no one configured
76
- if($ccTypeInstallments == null) {
77
- $max_installments = Mage::helper('adyen/installments')->getConfigValue($currency,$amount, null);
78
- $all_installments = Mage::helper('adyen/installments')->getInstallments();
79
- }
80
-
81
- // result array here
82
- for($i=1;$i<=$max_installments;$i++){
83
-
84
- // check if installment has extra interest
85
- $key = $i-1;
86
- $installment = $all_installments[$key];
87
- if(isset($installment[3]) && $installment[3] > 0) {
88
- $total_amount_with_interest = $amount + ($amount * ($installment[3] / 100));
89
- } else {
90
- $total_amount_with_interest = $amount;
91
- }
92
-
93
- $partial_amount = ((double)$total_amount_with_interest)/$i;
94
- $result[(string)$i] = $i."x ".$currency." ".number_format($partial_amount,2);
95
- }
96
 
97
  $jsonData = json_encode($result);
98
  $this->getResponse()->setHeader('Content-type', 'application/json');
99
  $this->getResponse()->setBody($jsonData);
100
 
101
-
102
-
103
  }
104
 
105
  }
36
  // get installments for cctype
37
  $ccType = $params['ccType'];
38
 
39
+ $result = Mage::helper('adyen/installments')->getInstallmentForCreditCardType($params['ccType']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
  $jsonData = json_encode($result);
42
  $this->getResponse()->setHeader('Content-type', 'application/json');
43
  $this->getResponse()->setBody($jsonData);
44
 
 
 
45
  }
46
 
47
  }
app/code/community/Adyen/Payment/controllers/ProcessController.php CHANGED
@@ -73,8 +73,8 @@ class Adyen_Payment_ProcessController extends Mage_Core_Controller_Front_Action
73
  public function openinvoiceAction() {
74
  $_mode = $this->_getConfigData('demoMode');
75
  $wsdl = ($_mode == 'Y') ?
76
- 'https://ca-test.adyen.com/ca/services/OpenInvoiceDetail?wsdl' :
77
- 'https://ca-live.adyen.com/ca/services/OpenInvoiceDetail?wsdl';
78
  $server = new SoapServer($wsdl);
79
  $server->setClass(self::OPENINVOICE_SOAP_SERVER);
80
  $server->addFunction(SOAP_FUNCTIONS_ALL);
@@ -108,23 +108,23 @@ class Adyen_Payment_ProcessController extends Mage_Core_Controller_Front_Action
108
 
109
  //redirect only if this order is never recorded
110
  $hasEvent = Mage::getResourceModel('adyen/adyen_event')
111
- ->getLatestStatus($session->getLastRealOrderId());
112
  if (!empty($hasEvent) || !$order->getId()) {
113
  $this->_redirect('/');
114
  return $this;
115
  }
116
-
117
  //redirect to adyen
118
  if (strcmp($order->getState(), Mage_Sales_Model_Order::STATE_PENDING_PAYMENT) === 0 ||
119
- (strcmp($order->getState(), Mage_Sales_Model_Order::STATE_NEW) === 0)) {
120
  $_status = $this->_getConfigData('order_status');
121
  // FIXME this status won't be added because order is not saved $order->save() missing
122
  $order->addStatusHistoryComment(Mage::helper('adyen')->__('Customer was redirected to Adyen.'), $_status);
123
  $this->getResponse()->setBody(
124
- $this->getLayout()
125
- ->createBlock($this->_redirectBlockType)
126
- ->setOrder($order)
127
- ->toHtml()
128
  );
129
  $session->unsQuoteId();
130
  }
@@ -138,93 +138,95 @@ class Adyen_Payment_ProcessController extends Mage_Core_Controller_Front_Action
138
  $this->cancel();
139
  }
140
  }
141
-
142
  public function validate3dAction() {
143
- try {
144
- // get current order
145
- $session = $this->_getCheckout();
146
- $order = $this->_getOrder();
147
- $session->setAdyenQuoteId($session->getQuoteId());
148
- $session->setAdyenRealOrderId($session->getLastRealOrderId());
149
- $order->loadByIncrementId($session->getLastRealOrderId());
150
- $adyenStatus = $order->getAdyenEventCode();
151
-
152
- // get payment details
153
- $payment = $order->getPayment();
154
- $paRequest = $payment->getAdditionalInformation('paRequest');
155
- $md = $payment->getAdditionalInformation('md');
156
- $issuerUrl = $payment->getAdditionalInformation('issuerUrl');
157
-
158
- $infoAvailable = $payment && !empty($paRequest) && !empty($md) && !empty($issuerUrl);
159
-
160
- // check adyen status and check if all information is available
161
- if (!empty($adyenStatus) && $adyenStatus == 'RedirectShopper' && $infoAvailable) {
162
-
163
- $request = $this->getRequest();
164
- $requestMD = $request->getPost('MD');
165
- $requestPaRes = $request->getPost('PaRes');
166
-
167
- // authorise the payment if the user is back from the external URL
168
- if ($request->isPost() && !empty($requestMD) && !empty($requestPaRes)) {
169
- if ($requestMD == $md) {
170
- $payment->setAdditionalInformation('paResponse', $requestPaRes);
171
- // send autorise3d request, catch exception in case of 'Refused'
172
- try {
173
- $result = $payment->getMethodInstance()->authorise3d($payment, $order->getGrandTotal());
174
- } catch (Exception $e) {
175
- $result = 'Refused';
176
- $order->setAdyenEventCode($result)->save();
177
- }
178
-
179
- // check if authorise3d was successful
180
- if ($result == 'Authorised') {
181
- $order->setState(Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW, true,
182
- Mage::helper('adyen')->__('3D-secure validation was successful.'))->save();
183
- $this->_redirect('checkout/onepage/success');
184
- }
185
- else {
186
- $order->addStatusHistoryComment(Mage::helper('adyen')->__('3D-secure validation was unsuccessful.'))->save();
187
- $session->addException($e, Mage::helper('adyen')->__($e->getMessage()));
188
- $this->cancel();
189
- }
190
- }
191
- else {
192
- $this->_redirect('/');
193
- return $this;
194
- }
195
-
196
- }
197
-
198
- // otherwise, redirect to the external URL
199
- else {
200
- $order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, true,
201
- Mage::helper('adyen')->__('Customer was redirected to bank for 3D-secure validation.'))->save();
202
- $this->getResponse()->setBody(
203
- $this->getLayout()->createBlock($this->_redirectBlockType)->setOrder($order)->toHtml()
204
- );
205
- }
206
-
207
- }
208
- else {
209
- $this->_redirect('/');
210
- return $this;
211
- }
212
  } catch (Exception $e) {
213
  $session->addException($e, Mage::helper('adyen')->__($e->getMessage()));
214
  $this->cancel();
215
  }
216
- }
217
 
218
  /**
219
  * Adyen returns POST variables to this action
220
  */
221
  public function successAction() {
222
  $status = $this->processResponse();
223
- $session = $this->_getCheckout();
224
- $session->unsAdyenRealOrderId();
225
- $session->setQuoteId($session->getAdyenQuoteId(true));
226
- $session->getQuote()->setIsActive(false)->save();
227
- if ($status) {
 
 
228
  $this->_redirect('checkout/onepage/success');
229
  } else {
230
  $this->cancel();
@@ -236,20 +238,24 @@ class Adyen_Payment_ProcessController extends Mage_Core_Controller_Front_Action
236
  * @since v009
237
  */
238
  public function cancel() {
239
- $cart = Mage::getSingleton('checkout/cart');
240
  $session = $this->_getCheckout();
241
  $order = Mage::getModel('sales/order');
242
  $incrementId = $session->getLastRealOrderId();
243
- $session->getQuote()->setIsActive(false)->save();
244
- $session->clear();
245
  if (empty($incrementId)) {
246
  $session->addError($this->__('Your payment failed, Please try again later'));
247
  $this->_redirect('checkout/cart');
248
  return;
249
  }
250
-
251
  $order->loadByIncrementId($incrementId);
252
-
 
 
 
 
 
253
  //handle the old order here
254
  try {
255
  $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_CANCEL, true);
@@ -257,17 +263,7 @@ class Adyen_Payment_ProcessController extends Mage_Core_Controller_Front_Action
257
  } catch (Mage_Core_Exception $e) {
258
  Mage::logException($e);
259
  }
260
- $items = $order->getItemsCollection();
261
- foreach ($items as $item) {
262
- try {
263
- $cart->addOrderItem($item);
264
- } catch (Mage_Core_Exception $e) {
265
- $session->addError($this->__($e->getMessage()));
266
- Mage::logException($e);
267
- continue;
268
- }
269
- }
270
- $cart->save();
271
  $session->addError($this->__('Your payment failed. Please try again later'));
272
  $this->_redirect('checkout/cart');
273
  }
@@ -275,72 +271,72 @@ class Adyen_Payment_ProcessController extends Mage_Core_Controller_Front_Action
275
  public function insAction() {
276
  try {
277
 
278
- $status = $this->processResponse();
279
 
280
- if($status == "401"){
281
- $this->_return401();
282
- } else {
283
- echo "[accepted]";
284
- }
285
  } catch (Exception $e) {
286
  Mage::logException($e);
287
  }
288
-
289
  exit();
290
  }
291
-
292
  public function cashAction() {
293
-
294
- $status = $this->processCashResponse();
295
-
296
- $session = $this->_getCheckout();
297
- $session->unsAdyenRealOrderId();
298
- $session->setQuoteId($session->getAdyenQuoteId(true));
299
- $session->getQuote()->setIsActive(false)->save();
300
- if ($status) {
301
- $this->_redirect('checkout/onepage/success');
302
- } else {
303
- $this->cancel();
304
- }
305
  }
306
-
307
  /* START actions for POS */
308
  public function successPosAction() {
309
-
310
- echo $this->processPosResponse();
311
- return $this;
312
  }
313
 
314
  public function getOrderStatusAction()
315
  {
316
- if($_POST['merchantReference'] != "") {
317
- // get the order
318
- $order = Mage::getModel('sales/order')->loadByIncrementId($_POST['merchantReference']);
319
- // if order is not cancelled then order is success
320
- if($order->getStatus() == Mage_Sales_Model_Order::STATE_PROCESSING || $order->getAdyenEventCode() == Adyen_Payment_Model_Event::ADYEN_EVENT_POSAPPROVED) {
321
- echo 'true';
322
- }
323
- }
324
- return;
325
  }
326
-
327
  public function cancelAction()
328
  {
329
- $this->cancel();
330
  }
331
-
332
-
333
  public function processPosResponse() {
334
- return Mage::getModel('adyen/process')->processPosResponse();
335
  }
336
  /* END actions for POS */
337
-
338
  public function processCashResponse() {
339
- return Mage::getModel('adyen/process')->processCashResponse();
340
  }
341
 
342
  protected function _return401(){
343
- header('HTTP/1.1 401 Unauthorized',true,401);
344
  }
345
 
346
  /**
@@ -351,7 +347,7 @@ class Adyen_Payment_ProcessController extends Mage_Core_Controller_Front_Action
351
  public function processResponse($soapItem = null) {
352
  return Mage::getModel('adyen/process')->processResponse($soapItem);
353
  }
354
-
355
  protected function _getCheckout() {
356
  return Mage::getSingleton('checkout/session');
357
  }
@@ -359,7 +355,7 @@ class Adyen_Payment_ProcessController extends Mage_Core_Controller_Front_Action
359
  protected function _getOrder() {
360
  return Mage::getModel('sales/order');
361
  }
362
-
363
  /**
364
  * @desc Give Default settings
365
  * @example $this->_getConfigData('demoMode','adyen_abstract')
73
  public function openinvoiceAction() {
74
  $_mode = $this->_getConfigData('demoMode');
75
  $wsdl = ($_mode == 'Y') ?
76
+ 'https://ca-test.adyen.com/ca/services/OpenInvoiceDetail?wsdl' :
77
+ 'https://ca-live.adyen.com/ca/services/OpenInvoiceDetail?wsdl';
78
  $server = new SoapServer($wsdl);
79
  $server->setClass(self::OPENINVOICE_SOAP_SERVER);
80
  $server->addFunction(SOAP_FUNCTIONS_ALL);
108
 
109
  //redirect only if this order is never recorded
110
  $hasEvent = Mage::getResourceModel('adyen/adyen_event')
111
+ ->getLatestStatus($session->getLastRealOrderId());
112
  if (!empty($hasEvent) || !$order->getId()) {
113
  $this->_redirect('/');
114
  return $this;
115
  }
116
+
117
  //redirect to adyen
118
  if (strcmp($order->getState(), Mage_Sales_Model_Order::STATE_PENDING_PAYMENT) === 0 ||
119
+ (strcmp($order->getState(), Mage_Sales_Model_Order::STATE_NEW) === 0)) {
120
  $_status = $this->_getConfigData('order_status');
121
  // FIXME this status won't be added because order is not saved $order->save() missing
122
  $order->addStatusHistoryComment(Mage::helper('adyen')->__('Customer was redirected to Adyen.'), $_status);
123
  $this->getResponse()->setBody(
124
+ $this->getLayout()
125
+ ->createBlock($this->_redirectBlockType)
126
+ ->setOrder($order)
127
+ ->toHtml()
128
  );
129
  $session->unsQuoteId();
130
  }
138
  $this->cancel();
139
  }
140
  }
141
+
142
  public function validate3dAction() {
143
+ try {
144
+ // get current order
145
+ $session = $this->_getCheckout();
146
+ $order = $this->_getOrder();
147
+ $session->setAdyenQuoteId($session->getQuoteId());
148
+ $session->setAdyenRealOrderId($session->getLastRealOrderId());
149
+ $order->loadByIncrementId($session->getLastRealOrderId());
150
+ $adyenStatus = $order->getAdyenEventCode();
151
+
152
+ // get payment details
153
+ $payment = $order->getPayment();
154
+ $paRequest = $payment->getAdditionalInformation('paRequest');
155
+ $md = $payment->getAdditionalInformation('md');
156
+ $issuerUrl = $payment->getAdditionalInformation('issuerUrl');
157
+
158
+ $infoAvailable = $payment && !empty($paRequest) && !empty($md) && !empty($issuerUrl);
159
+
160
+ // check adyen status and check if all information is available
161
+ if (!empty($adyenStatus) && $adyenStatus == 'RedirectShopper' && $infoAvailable) {
162
+
163
+ $request = $this->getRequest();
164
+ $requestMD = $request->getPost('MD');
165
+ $requestPaRes = $request->getPost('PaRes');
166
+
167
+ // authorise the payment if the user is back from the external URL
168
+ if ($request->isPost() && !empty($requestMD) && !empty($requestPaRes)) {
169
+ if ($requestMD == $md) {
170
+ $payment->setAdditionalInformation('paResponse', $requestPaRes);
171
+ // send autorise3d request, catch exception in case of 'Refused'
172
+ try {
173
+ $result = $payment->getMethodInstance()->authorise3d($payment, $order->getGrandTotal());
174
+ } catch (Exception $e) {
175
+ $result = 'Refused';
176
+ $order->setAdyenEventCode($result)->save();
177
+ }
178
+
179
+ // check if authorise3d was successful
180
+ if ($result == 'Authorised') {
181
+ $order->setState(Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW, true,
182
+ Mage::helper('adyen')->__('3D-secure validation was successful.'))->save();
183
+ $this->_redirect('checkout/onepage/success');
184
+ }
185
+ else {
186
+ $order->addStatusHistoryComment(Mage::helper('adyen')->__('3D-secure validation was unsuccessful.'))->save();
187
+ $session->addException($e, Mage::helper('adyen')->__($e->getMessage()));
188
+ $this->cancel();
189
+ }
190
+ }
191
+ else {
192
+ $this->_redirect('/');
193
+ return $this;
194
+ }
195
+
196
+ }
197
+
198
+ // otherwise, redirect to the external URL
199
+ else {
200
+ $order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, true,
201
+ Mage::helper('adyen')->__('Customer was redirected to bank for 3D-secure validation.'))->save();
202
+ $this->getResponse()->setBody(
203
+ $this->getLayout()->createBlock($this->_redirectBlockType)->setOrder($order)->toHtml()
204
+ );
205
+ }
206
+
207
+ }
208
+ else {
209
+ $this->_redirect('/');
210
+ return $this;
211
+ }
212
  } catch (Exception $e) {
213
  $session->addException($e, Mage::helper('adyen')->__($e->getMessage()));
214
  $this->cancel();
215
  }
216
+ }
217
 
218
  /**
219
  * Adyen returns POST variables to this action
220
  */
221
  public function successAction() {
222
  $status = $this->processResponse();
223
+
224
+ if ($status) {
225
+ $session = $this->_getCheckout();
226
+ $session->unsAdyenRealOrderId();
227
+ $session->setQuoteId($session->getAdyenQuoteId(true));
228
+ $session->getQuote()->setIsActive(false)->save();
229
+
230
  $this->_redirect('checkout/onepage/success');
231
  } else {
232
  $this->cancel();
238
  * @since v009
239
  */
240
  public function cancel() {
241
+
242
  $session = $this->_getCheckout();
243
  $order = Mage::getModel('sales/order');
244
  $incrementId = $session->getLastRealOrderId();
245
+
 
246
  if (empty($incrementId)) {
247
  $session->addError($this->__('Your payment failed, Please try again later'));
248
  $this->_redirect('checkout/cart');
249
  return;
250
  }
251
+
252
  $order->loadByIncrementId($incrementId);
253
+
254
+ // reactivate the quote again
255
+ $quoteId = $order->getQuoteId();
256
+ $cart = Mage::getModel('sales/quote')->load($quoteId);
257
+ $cart->setIsActive(true)->save();
258
+
259
  //handle the old order here
260
  try {
261
  $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_CANCEL, true);
263
  } catch (Mage_Core_Exception $e) {
264
  Mage::logException($e);
265
  }
266
+
 
 
 
 
 
 
 
 
 
 
267
  $session->addError($this->__('Your payment failed. Please try again later'));
268
  $this->_redirect('checkout/cart');
269
  }
271
  public function insAction() {
272
  try {
273
 
274
+ $status = $this->processResponse();
275
 
276
+ if($status == "401"){
277
+ $this->_return401();
278
+ } else {
279
+ echo "[accepted]";
280
+ }
281
  } catch (Exception $e) {
282
  Mage::logException($e);
283
  }
284
+
285
  exit();
286
  }
287
+
288
  public function cashAction() {
289
+
290
+ $status = $this->processCashResponse();
291
+
292
+ $session = $this->_getCheckout();
293
+ $session->unsAdyenRealOrderId();
294
+ $session->setQuoteId($session->getAdyenQuoteId(true));
295
+ $session->getQuote()->setIsActive(false)->save();
296
+ if ($status) {
297
+ $this->_redirect('checkout/onepage/success');
298
+ } else {
299
+ $this->cancel();
300
+ }
301
  }
302
+
303
  /* START actions for POS */
304
  public function successPosAction() {
305
+
306
+ echo $this->processPosResponse();
307
+ return $this;
308
  }
309
 
310
  public function getOrderStatusAction()
311
  {
312
+ if($_POST['merchantReference'] != "") {
313
+ // get the order
314
+ $order = Mage::getModel('sales/order')->loadByIncrementId($_POST['merchantReference']);
315
+ // if order is not cancelled then order is success
316
+ if($order->getStatus() == Mage_Sales_Model_Order::STATE_PROCESSING || $order->getAdyenEventCode() == Adyen_Payment_Model_Event::ADYEN_EVENT_POSAPPROVED) {
317
+ echo 'true';
318
+ }
319
+ }
320
+ return;
321
  }
322
+
323
  public function cancelAction()
324
  {
325
+ $this->cancel();
326
  }
327
+
328
+
329
  public function processPosResponse() {
330
+ return Mage::getModel('adyen/process')->processPosResponse();
331
  }
332
  /* END actions for POS */
333
+
334
  public function processCashResponse() {
335
+ return Mage::getModel('adyen/process')->processCashResponse();
336
  }
337
 
338
  protected function _return401(){
339
+ header('HTTP/1.1 401 Unauthorized',true,401);
340
  }
341
 
342
  /**
347
  public function processResponse($soapItem = null) {
348
  return Mage::getModel('adyen/process')->processResponse($soapItem);
349
  }
350
+
351
  protected function _getCheckout() {
352
  return Mage::getSingleton('checkout/session');
353
  }
355
  protected function _getOrder() {
356
  return Mage::getModel('sales/order');
357
  }
358
+
359
  /**
360
  * @desc Give Default settings
361
  * @example $this->_getConfigData('demoMode','adyen_abstract')
app/code/community/Adyen/Payment/controllers/SavedCardController.php ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Adyen_Payment_SavedCardController extends Mage_Core_Controller_Front_Action
4
+ {
5
+
6
+ /**
7
+ *
8
+ * @var Mage_Customer_Model_Session
9
+ */
10
+ protected $_session = null;
11
+
12
+ /**
13
+ * Make sure customer is logged in and put it into registry
14
+ */
15
+ public function preDispatch()
16
+ {
17
+ parent::preDispatch();
18
+ if (!$this->getRequest()->isDispatched()) {
19
+ return;
20
+ }
21
+ $this->_session = Mage::getSingleton('customer/session');
22
+ if (!$this->_session->authenticate($this)) {
23
+ $this->setFlag('', 'no-dispatch', true);
24
+ }
25
+ Mage::register('current_customer', $this->_session->getCustomer());
26
+ }
27
+
28
+ /**
29
+ * Profiles listing
30
+ */
31
+ public function indexAction()
32
+ {
33
+ // check if there is a submit on card delete
34
+ if ($this->getRequest()->isPost()) {
35
+ $recurringDetailReference = $this->getRequest()->getParam('recurringDetailReference');
36
+ if($recurringDetailReference != "") {
37
+ $storeId = Mage::app()->getStore()->getStoreId();
38
+ $merchantAccount = Mage::getStoreConfig("payment/adyen_abstract/merchantAccount", $storeId);
39
+ $customer = Mage::registry('current_customer');
40
+ $shopperReference = $customer->getId();
41
+ // do api call to delete this card
42
+ $success = Mage::helper('adyen')->removeRecurringCart($merchantAccount, $shopperReference, $recurringDetailReference);
43
+
44
+ // show result message
45
+ if($success) {
46
+ $this->_getSession()->addSuccess(Mage::helper('adyen')->__('The card has been deleted.'));
47
+ } else {
48
+ $this->_getSession()->addError(Mage::helper('adyen')->__('The card has not been deleted, please contact us.'));
49
+ }
50
+ }
51
+ }
52
+
53
+ $this->_title($this->__('Saved Cards'));
54
+ $this->loadLayout();
55
+ $this->_initLayoutMessages('customer/session');
56
+ $block = $this->getLayout()->getBlock('adyen.savedCards');
57
+ if ($block) {
58
+ $block->setRefererUrl($this->_getRefererUrl());
59
+ }
60
+ $this->renderLayout();
61
+ }
62
+
63
+ /**
64
+ * Retrieve customer session object
65
+ *
66
+ * @return Mage_Customer_Model_Session
67
+ */
68
+ protected function _getSession()
69
+ {
70
+ return Mage::getSingleton('customer/session');
71
+ }
72
+
73
+
74
+ }
app/code/community/Adyen/Payment/etc/Payment.wsdl CHANGED
@@ -16,6 +16,7 @@
16
  <xsd:element minOccurs="0" name="dateOfBirth" nillable="true" type="xsd:dateTime"/>
17
  <xsd:element minOccurs="0" name="dccQuote" nillable="true" type="tns:ForexQuote"/>
18
  <xsd:element minOccurs="0" name="deliveryAddress" nillable="true" type="ns1:Address"/>
 
19
  <xsd:element minOccurs="0" name="deviceFingerprint" nillable="true" type="xsd:string"/>
20
  <xsd:element minOccurs="0" name="elv" nillable="true" type="tns:ELV"/>
21
  <xsd:element minOccurs="0" name="fraudOffset" nillable="true" type="xsd:int"/>
@@ -265,6 +266,7 @@
265
  <xsd:element minOccurs="0" name="dateOfBirth" nillable="true" type="xsd:dateTime"/>
266
  <xsd:element minOccurs="0" name="dccQuote" nillable="true" type="tns:ForexQuote"/>
267
  <xsd:element minOccurs="0" name="deliveryAddress" nillable="true" type="ns1:Address"/>
 
268
  <xsd:element minOccurs="0" name="deviceFingerprint" nillable="true" type="xsd:string"/>
269
  <xsd:element minOccurs="0" name="elv" nillable="true" type="tns:ELV"/>
270
  <xsd:element minOccurs="0" name="fraudOffset" nillable="true" type="xsd:int"/>
@@ -299,6 +301,7 @@
299
  <xsd:element minOccurs="0" name="dateOfBirth" nillable="true" type="xsd:dateTime"/>
300
  <xsd:element minOccurs="0" name="dccQuote" nillable="true" type="tns:ForexQuote"/>
301
  <xsd:element minOccurs="0" name="deliveryAddress" nillable="true" type="ns1:Address"/>
 
302
  <xsd:element minOccurs="0" name="deviceFingerprint" nillable="true" type="xsd:string"/>
303
  <xsd:element minOccurs="0" name="fraudOffset" nillable="true" type="xsd:int"/>
304
  <xsd:element minOccurs="0" name="installments" nillable="true" type="ns1:Installments"/>
16
  <xsd:element minOccurs="0" name="dateOfBirth" nillable="true" type="xsd:dateTime"/>
17
  <xsd:element minOccurs="0" name="dccQuote" nillable="true" type="tns:ForexQuote"/>
18
  <xsd:element minOccurs="0" name="deliveryAddress" nillable="true" type="ns1:Address"/>
19
+ <xsd:element minOccurs="0" name="deliveryDate" nillable="true" type="xsd:dateTime" />
20
  <xsd:element minOccurs="0" name="deviceFingerprint" nillable="true" type="xsd:string"/>
21
  <xsd:element minOccurs="0" name="elv" nillable="true" type="tns:ELV"/>
22
  <xsd:element minOccurs="0" name="fraudOffset" nillable="true" type="xsd:int"/>
266
  <xsd:element minOccurs="0" name="dateOfBirth" nillable="true" type="xsd:dateTime"/>
267
  <xsd:element minOccurs="0" name="dccQuote" nillable="true" type="tns:ForexQuote"/>
268
  <xsd:element minOccurs="0" name="deliveryAddress" nillable="true" type="ns1:Address"/>
269
+ <xsd:element minOccurs="0" name="deliveryDate" nillable="true" type="xsd:dateTime" />
270
  <xsd:element minOccurs="0" name="deviceFingerprint" nillable="true" type="xsd:string"/>
271
  <xsd:element minOccurs="0" name="elv" nillable="true" type="tns:ELV"/>
272
  <xsd:element minOccurs="0" name="fraudOffset" nillable="true" type="xsd:int"/>
301
  <xsd:element minOccurs="0" name="dateOfBirth" nillable="true" type="xsd:dateTime"/>
302
  <xsd:element minOccurs="0" name="dccQuote" nillable="true" type="tns:ForexQuote"/>
303
  <xsd:element minOccurs="0" name="deliveryAddress" nillable="true" type="ns1:Address"/>
304
+ <xsd:element minOccurs="0" name="deliveryDate" nillable="true" type="xsd:dateTime" />
305
  <xsd:element minOccurs="0" name="deviceFingerprint" nillable="true" type="xsd:string"/>
306
  <xsd:element minOccurs="0" name="fraudOffset" nillable="true" type="xsd:int"/>
307
  <xsd:element minOccurs="0" name="installments" nillable="true" type="ns1:Installments"/>
app/code/community/Adyen/Payment/etc/config.xml CHANGED
@@ -29,7 +29,7 @@
29
  <config>
30
  <modules>
31
  <Adyen_Payment>
32
- <version>2.1.0</version>
33
  </Adyen_Payment>
34
  </modules>
35
  <global>
@@ -212,6 +212,14 @@
212
  </adyen_manual_online_capture>
213
  </observers>
214
  </sales_order_invoice_pay>
 
 
 
 
 
 
 
 
215
  </events>
216
  </adminhtml>
217
  <default>
@@ -261,7 +269,13 @@
261
  <title>Adyen POS</title>
262
  <recurringtypes>ONECLICK</recurringtypes>
263
  <enable_scanner>0</enable_scanner>
 
264
  <express_checkout>0</express_checkout>
 
 
 
 
 
265
  <allowspecific>0</allowspecific>
266
  <sort_order>80</sort_order>
267
  </adyen_pos>
@@ -274,6 +288,7 @@
274
  <openinvoicetypes>openinvoice</openinvoicetypes>
275
  <gender_show>0</gender_show>
276
  <dob_show>0</dob_show>
 
277
  <sort_order>40</sort_order>
278
  </adyen_openinvoice>
279
  <adyen_cc translate="title" module="adyen">
@@ -327,6 +342,7 @@
327
  <title>Adyen SEPA</title>
328
  <sort_order>60</sort_order>
329
  <validate_iban>0</validate_iban>
 
330
  </adyen_sepa>
331
  </payment>
332
  <adyen>
@@ -362,18 +378,18 @@
362
  <order>40</order>
363
  <is_cvv_required>1</is_cvv_required>
364
  </DC>
365
- <MO>
366
- <code>MO</code>
367
  <name>Maestro</name>
368
  <order>60</order>
369
  <is_cvv_required>0</is_cvv_required>
370
- </MO>
371
- <JC>
372
- <code>JC</code>
373
  <name>JCB</name>
374
  <order>70</order>
375
  <is_cvv_required>0</is_cvv_required>
376
- </JC>
377
  <CB>
378
  <code>CB</code>
379
  <name>CarteBleue</name>
29
  <config>
30
  <modules>
31
  <Adyen_Payment>
32
+ <version>2.1.1</version>
33
  </Adyen_Payment>
34
  </modules>
35
  <global>
212
  </adyen_manual_online_capture>
213
  </observers>
214
  </sales_order_invoice_pay>
215
+ <sales_order_payment_cancel>
216
+ <observers>
217
+ <adyen_payment>
218
+ <class>adyen/observer</class>
219
+ <method>salesOrderPaymentCancel</method>
220
+ </adyen_payment>
221
+ </observers>
222
+ </sales_order_payment_cancel>
223
  </events>
224
  </adminhtml>
225
  <default>
269
  <title>Adyen POS</title>
270
  <recurringtypes>ONECLICK</recurringtypes>
271
  <enable_scanner>0</enable_scanner>
272
+ <submit_scanner>0</submit_scanner>
273
  <express_checkout>0</express_checkout>
274
+ <create_shipment>0</create_shipment>
275
+ <cash_express_checkout>0</cash_express_checkout>
276
+ <cash_drawer>0</cash_drawer>
277
+ <cash_drawer_printer_ip></cash_drawer_printer_ip>
278
+ <cash_drawer_code>27,112,48,55,121</cash_drawer_code>
279
  <allowspecific>0</allowspecific>
280
  <sort_order>80</sort_order>
281
  </adyen_pos>
288
  <openinvoicetypes>openinvoice</openinvoicetypes>
289
  <gender_show>0</gender_show>
290
  <dob_show>0</dob_show>
291
+ <different_address_disable>0</different_address_disable>
292
  <sort_order>40</sort_order>
293
  </adyen_openinvoice>
294
  <adyen_cc translate="title" module="adyen">
342
  <title>Adyen SEPA</title>
343
  <sort_order>60</sort_order>
344
  <validate_iban>0</validate_iban>
345
+ <flow>sales</flow>
346
  </adyen_sepa>
347
  </payment>
348
  <adyen>
378
  <order>40</order>
379
  <is_cvv_required>1</is_cvv_required>
380
  </DC>
381
+ <SM>
382
+ <code>SM</code>
383
  <name>Maestro</name>
384
  <order>60</order>
385
  <is_cvv_required>0</is_cvv_required>
386
+ </SM>
387
+ <JCB>
388
+ <code>JCB</code>
389
  <name>JCB</name>
390
  <order>70</order>
391
  <is_cvv_required>0</is_cvv_required>
392
+ </JCB>
393
  <CB>
394
  <code>CB</code>
395
  <name>CarteBleue</name>
app/code/community/Adyen/Payment/etc/system.xml CHANGED
@@ -45,14 +45,14 @@
45
  </p>]]></comment>
46
  <fields>
47
  <version translate="label">
48
-             <label>Extension version</label>
49
-                     <frontend_type>label</frontend_type>
50
-                     <frontend_model>Adyen_Payment_Block_Adminhtml_Version</frontend_model>
51
-                     <sort_order>0</sort_order>
52
-                     <show_in_default>1</show_in_default>
53
-                     <show_in_website>1</show_in_website>
54
-                     <show_in_store>1</show_in_store>
55
-         </version>
56
  <merchantAccount translate="label">
57
  <label>Merchant Account</label>
58
  <comment>You can find this in the Adyen backoffice.</comment>
@@ -308,6 +308,7 @@
308
  </payment_routines>
309
  <delivery_days translate="label">
310
  <label>Days for Delivery</label>
 
311
  <comment>How many days to be added to the current date for delivery. ONLY numbers allowed.</comment>
312
  <frontend_type>text</frontend_type>
313
  <sort_order>70</sort_order>
@@ -421,20 +422,84 @@
421
  <show_in_website>1</show_in_website>
422
  <show_in_store>1</show_in_store>
423
  </enable_scanner>
 
 
 
 
 
 
 
 
 
 
 
424
  <express_checkout>
425
  <label>Express checkout</label>
426
- <comment>This will show a checkout buttton on the shopping cart to directly do a POS payment without going to the checkout steps. You must be loged into your account</comment>
427
  <frontend_type>select</frontend_type>
428
  <source_model>adminhtml/system_config_source_yesno</source_model>
429
- <sort_order>36</sort_order>
430
  <show_in_default>1</show_in_default>
431
  <show_in_website>1</show_in_website>
432
  <show_in_store>1</show_in_store>
433
  </express_checkout>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
434
  <allowspecific translate="label">
435
  <label>Payment to applicable countries</label>
436
  <frontend_type>allowspecific</frontend_type>
437
- <sort_order>40</sort_order>
438
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
439
  <show_in_default>1</show_in_default>
440
  <show_in_website>1</show_in_website>
@@ -513,10 +578,20 @@
513
  <show_in_website>1</show_in_website>
514
  <show_in_store>1</show_in_store>
515
  </dob_show>
 
 
 
 
 
 
 
 
 
 
516
  <fee translate="label">
517
  <label>Fee</label>
518
  <frontend_type>text</frontend_type>
519
- <sort_order>37</sort_order>
520
  <show_in_default>1</show_in_default>
521
  <show_in_website>1</show_in_website>
522
  <show_in_store>1</show_in_store>
@@ -946,6 +1021,16 @@
946
  <show_in_website>1</show_in_website>
947
  <show_in_store>1</show_in_store>
948
  </validate_iban>
 
 
 
 
 
 
 
 
 
 
949
  <allowspecific translate="label">
950
  <label>Payment to applicable countries</label>
951
  <frontend_type>allowspecific</frontend_type>
45
  </p>]]></comment>
46
  <fields>
47
  <version translate="label">
48
+             <label>Extension version</label>
49
+                     <frontend_type>label</frontend_type>
50
+                     <frontend_model>Adyen_Payment_Block_Adminhtml_Version</frontend_model>
51
+                     <sort_order>0</sort_order>
52
+                     <show_in_default>1</show_in_default>
53
+                     <show_in_website>1</show_in_website>
54
+                     <show_in_store>1</show_in_store>
55
+         </version>
56
  <merchantAccount translate="label">
57
  <label>Merchant Account</label>
58
  <comment>You can find this in the Adyen backoffice.</comment>
308
  </payment_routines>
309
  <delivery_days translate="label">
310
  <label>Days for Delivery</label>
311
+ <validate>validate-digits</validate>
312
  <comment>How many days to be added to the current date for delivery. ONLY numbers allowed.</comment>
313
  <frontend_type>text</frontend_type>
314
  <sort_order>70</sort_order>
422
  <show_in_website>1</show_in_website>
423
  <show_in_store>1</show_in_store>
424
  </enable_scanner>
425
+ <auto_submit_scanner>
426
+ <label>Auto submit scanner</label>
427
+ <comment>If you have a scanner that puss a enter command after scanning turn this setting on.</comment>
428
+ <frontend_type>select</frontend_type>
429
+ <source_model>adminhtml/system_config_source_yesno</source_model>
430
+ <sort_order>36</sort_order>
431
+ <show_in_default>1</show_in_default>
432
+ <show_in_website>1</show_in_website>
433
+ <show_in_store>1</show_in_store>
434
+ <depends><enable_scanner>1</enable_scanner></depends>
435
+ </auto_submit_scanner>
436
  <express_checkout>
437
  <label>Express checkout</label>
438
+ <comment>This will show a checkout buttton on the shopping cart to directly do a POS payment without going to the checkout steps. You must be logged into your magento account on the front-end to see the button</comment>
439
  <frontend_type>select</frontend_type>
440
  <source_model>adminhtml/system_config_source_yesno</source_model>
441
+ <sort_order>37</sort_order>
442
  <show_in_default>1</show_in_default>
443
  <show_in_website>1</show_in_website>
444
  <show_in_store>1</show_in_store>
445
  </express_checkout>
446
+ <create_shipment>
447
+ <label>Create Shipment</label>
448
+ <comment>If you enable this there will be automatically be created a shipment if the invoice is created</comment>
449
+ <frontend_type>select</frontend_type>
450
+ <source_model>adminhtml/system_config_source_yesno</source_model>
451
+ <sort_order>38</sort_order>
452
+ <show_in_default>1</show_in_default>
453
+ <show_in_website>1</show_in_website>
454
+ <show_in_store>1</show_in_store>
455
+ </create_shipment>
456
+ <cash_express_checkout>
457
+ <label>Cash Express checkout</label>
458
+ <comment>This will show a checkout buttton on the shopping cart to directly do a Cash payment without going to the checkout steps. Make sure that you have Cash enabled on your skin and HPP payment method is enabled and correctly configured. You must be logged into your magento account on the front-end to see the button</comment>
459
+ <frontend_type>select</frontend_type>
460
+ <source_model>adminhtml/system_config_source_yesno</source_model>
461
+ <sort_order>39</sort_order>
462
+ <show_in_default>1</show_in_default>
463
+ <show_in_website>1</show_in_website>
464
+ <show_in_store>1</show_in_store>
465
+ </cash_express_checkout>
466
+ <cash_drawer>
467
+ <label>Open Cash Drawer</label>
468
+ <comment>Open the Cash drawer if you connect this to your printer</comment>
469
+ <frontend_type>select</frontend_type>
470
+ <source_model>adminhtml/system_config_source_yesno</source_model>
471
+ <sort_order>40</sort_order>
472
+ <show_in_default>1</show_in_default>
473
+ <show_in_website>1</show_in_website>
474
+ <show_in_store>1</show_in_store>
475
+ <depends><cash_express_checkout>1</cash_express_checkout></depends>
476
+ </cash_drawer>
477
+ <cash_drawer_printer_ip>
478
+ <label>IP address printer</label>
479
+ <comment>Enter here the IP address of the printer where the cash drawer is connected to</comment>
480
+ <frontend_type>text</frontend_type>
481
+ <source_model>adminhtml/system_config_source_yesno</source_model>
482
+ <sort_order>41</sort_order>
483
+ <show_in_default>1</show_in_default>
484
+ <show_in_website>1</show_in_website>
485
+ <show_in_store>1</show_in_store>
486
+ <depends><cash_drawer>1</cash_drawer></depends>
487
+ </cash_drawer_printer_ip>
488
+ <cash_drawer_code>
489
+ <label>Cash Drawer Code</label>
490
+ <comment><![CDATA[Add your cash drawer code for example: 27,112,48,55,121 <a href="http://keyhut.com/popopen.htm" target="_blank">see overview codes here</a> ]]></comment>
491
+ <frontend_type>text</frontend_type>
492
+ <source_model>adminhtml/system_config_source_yesno</source_model>
493
+ <sort_order>42</sort_order>
494
+ <show_in_default>1</show_in_default>
495
+ <show_in_website>1</show_in_website>
496
+ <show_in_store>1</show_in_store>
497
+ <depends><cash_drawer>1</cash_drawer></depends>
498
+ </cash_drawer_code>
499
  <allowspecific translate="label">
500
  <label>Payment to applicable countries</label>
501
  <frontend_type>allowspecific</frontend_type>
502
+ <sort_order>49</sort_order>
503
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
504
  <show_in_default>1</show_in_default>
505
  <show_in_website>1</show_in_website>
578
  <show_in_website>1</show_in_website>
579
  <show_in_store>1</show_in_store>
580
  </dob_show>
581
+ <different_address_disable>
582
+ <label>Disable on Different Address</label>
583
+ <comment>If the delivery address and billing address in the checkout is not the same disable this payment method because Klarna will most likely reject it</comment>
584
+ <frontend_type>select</frontend_type>
585
+ <source_model>adminhtml/system_config_source_yesno</source_model>
586
+ <sort_order>37</sort_order>
587
+ <show_in_default>1</show_in_default>
588
+ <show_in_website>1</show_in_website>
589
+ <show_in_store>1</show_in_store>
590
+ </different_address_disable>
591
  <fee translate="label">
592
  <label>Fee</label>
593
  <frontend_type>text</frontend_type>
594
+ <sort_order>38</sort_order>
595
  <show_in_default>1</show_in_default>
596
  <show_in_website>1</show_in_website>
597
  <show_in_store>1</show_in_store>
1021
  <show_in_website>1</show_in_website>
1022
  <show_in_store>1</show_in_store>
1023
  </validate_iban>
1024
+ <flow>
1025
+ <label>Flow</label>
1026
+ <frontend_type>select</frontend_type>
1027
+ <source_model>adyen/source_SepaFlow</source_model>
1028
+ <sort_order>30</sort_order>
1029
+ <comment>If you are not sure just use the default => Sales</comment>
1030
+ <show_in_default>1</show_in_default>
1031
+ <show_in_website>1</show_in_website>
1032
+ <show_in_store>1</show_in_store>
1033
+ </flow>
1034
  <allowspecific translate="label">
1035
  <label>Payment to applicable countries</label>
1036
  <frontend_type>allowspecific</frontend_type>
app/design/adminhtml/default/default/template/adyen/.DS_Store ADDED
Binary file
app/design/adminhtml/default/default/template/adyen/info/cc.phtml CHANGED
@@ -25,17 +25,19 @@
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
  ?>
28
- <?php
29
  $ownerInformation = $this->getInfo()->getCcOwner();
30
  $cseEnabled = empty($ownerInformation);
31
  echo $this->htmlEscape($this->getMethod()->getTitle());
32
  echo ($cseEnabled ? " (with Client-Side Encryption)" : "");
33
  ?><br/>
34
  <?php if ($_info = $this->getInfo()): ?>
35
- <?php if ($_info->getAdyenPspReference() == ''): ?>
36
- <?php echo Mage::helper('adyen')->__('Payment has not been processed yet.') ?> <br/>
37
  <?php else :?>
38
- <?php if($this->getMethod()->getConfigDataDemoMode()): ?>
 
 
39
  <?php echo Mage::helper('adyen')->__('Adyen PSP Reference: <a href="https://ca-test.adyen.com/ca/ca/payments/searchPayments.shtml?query=%s&skipList=firstResult" target="__blank">%s</a>', $this->htmlEscape($_info->getAdyenPspReference()), $this->htmlEscape($_info->getAdyenPspReference())) ?> <br/>
40
  <?php else : ?>
41
  <?php echo Mage::helper('adyen')->__('Adyen PSP Reference: <a href="https://ca-live.adyen.com/ca/ca/payments/searchPayments.shtml?query=%s&skipList=firstResult" target="__blank">%s</a>', $this->htmlEscape($_info->getAdyenPspReference()), $this->htmlEscape($_info->getAdyenPspReference())) ?> <br/>
@@ -51,10 +53,13 @@ echo ($cseEnabled ? " (with Client-Side Encryption)" : "");
51
  <?php echo Mage::helper('adyen')->__('Credit Card Number: xxxx-%s', $this->htmlEscape($this->getInfo()->getCcLast4())) ?><br/>
52
  <?php echo Mage::helper('adyen')->__('Expiration Date: %s/%s', $this->htmlEscape($this->getCcExpMonth()), $this->htmlEscape($this->getInfo()->getCcExpYear())) ?><br/>
53
  <?php else : ?>
54
- <?php echo Mage::helper('adyen')->__('Credit Card Type: %s', $this->htmlEscape($this->getCcTypeName())) ?><br/>
55
- <?php echo Mage::helper('adyen')->__('Credit Card Number: xxxx-%s', $this->htmlEscape($this->getInfo()->getCcLast4())) ?><br/>
 
 
 
 
56
  <?php endif;?>
57
-
58
  <?php if($this->htmlEscape($this->getInfo()->getAdyenAvsResult()) != ""): ?>
59
  <?php echo Mage::helper('adyen')->__('Avs result: %s', $this->htmlEscape($this->getInfo()->getAdyenAvsResult())) ?><br/>
60
  <?php endif; ?>
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
  ?>
28
+ <?php
29
  $ownerInformation = $this->getInfo()->getCcOwner();
30
  $cseEnabled = empty($ownerInformation);
31
  echo $this->htmlEscape($this->getMethod()->getTitle());
32
  echo ($cseEnabled ? " (with Client-Side Encryption)" : "");
33
  ?><br/>
34
  <?php if ($_info = $this->getInfo()): ?>
35
+ <?php if ($_info->getAdyenPspReference() == ''): ?>
36
+ <?php echo Mage::helper('adyen')->__('Payment has not been processed yet.') ?> <br/>
37
  <?php else :?>
38
+ <?php
39
+ $storeId = $this->getMethod()->getInfoInstance()->getOrder()->getStoreId();
40
+ if($this->getMethod()->getConfigDataDemoMode($storeId)): ?>
41
  <?php echo Mage::helper('adyen')->__('Adyen PSP Reference: <a href="https://ca-test.adyen.com/ca/ca/payments/searchPayments.shtml?query=%s&skipList=firstResult" target="__blank">%s</a>', $this->htmlEscape($_info->getAdyenPspReference()), $this->htmlEscape($_info->getAdyenPspReference())) ?> <br/>
42
  <?php else : ?>
43
  <?php echo Mage::helper('adyen')->__('Adyen PSP Reference: <a href="https://ca-live.adyen.com/ca/ca/payments/searchPayments.shtml?query=%s&skipList=firstResult" target="__blank">%s</a>', $this->htmlEscape($_info->getAdyenPspReference()), $this->htmlEscape($_info->getAdyenPspReference())) ?> <br/>
53
  <?php echo Mage::helper('adyen')->__('Credit Card Number: xxxx-%s', $this->htmlEscape($this->getInfo()->getCcLast4())) ?><br/>
54
  <?php echo Mage::helper('adyen')->__('Expiration Date: %s/%s', $this->htmlEscape($this->getCcExpMonth()), $this->htmlEscape($this->getInfo()->getCcExpYear())) ?><br/>
55
  <?php else : ?>
56
+ <?php if($this->getCcTypeName() != ""):?>
57
+ <?php echo Mage::helper('adyen')->__('Credit Card Type: %s', $this->htmlEscape($this->getCcTypeName())) ?><br/>
58
+ <?php endif; ?>
59
+ <?php if($this->getInfo()->getCcLast4() != ""):?>
60
+ <?php echo Mage::helper('adyen')->__('Credit Card Number: xxxx-%s', $this->htmlEscape($this->getInfo()->getCcLast4())) ?><br/>
61
+ <?php endif;?>
62
  <?php endif;?>
 
63
  <?php if($this->htmlEscape($this->getInfo()->getAdyenAvsResult()) != ""): ?>
64
  <?php echo Mage::helper('adyen')->__('Avs result: %s', $this->htmlEscape($this->getInfo()->getAdyenAvsResult())) ?><br/>
65
  <?php endif; ?>
app/design/adminhtml/default/default/template/adyen/info/hpp.phtml CHANGED
@@ -36,7 +36,7 @@
36
  <?php echo Mage::helper('adyen')->__('Adyen PSP Reference: <a href="https://ca-live.adyen.com/ca/ca/payments/searchPayments.shtml?query=%s&skipList=firstResult" target="__blank">%s</a>', $this->htmlEscape($_info->getAdyenPspReference()), $this->htmlEscape($_info->getAdyenPspReference())) ?> <br/>
37
  <?php endif; ?>
38
  <?php endif;?>
39
- <?php $paymentMethod = $_info->getAdyenPaymentMethod() ?>
40
  <?php if (!empty($paymentMethod)): ?>
41
  <?php echo $this->__('Payment Method: %s', $this->htmlEscape($paymentMethod)) ?><br/>
42
  <?php endif; ?>
36
  <?php echo Mage::helper('adyen')->__('Adyen PSP Reference: <a href="https://ca-live.adyen.com/ca/ca/payments/searchPayments.shtml?query=%s&skipList=firstResult" target="__blank">%s</a>', $this->htmlEscape($_info->getAdyenPspReference()), $this->htmlEscape($_info->getAdyenPspReference())) ?> <br/>
37
  <?php endif; ?>
38
  <?php endif;?>
39
+ <?php $paymentMethod = $_info->getCcType() ?>
40
  <?php if (!empty($paymentMethod)): ?>
41
  <?php echo $this->__('Payment Method: %s', $this->htmlEscape($paymentMethod)) ?><br/>
42
  <?php endif; ?>
app/design/adminhtml/default/default/template/adyen/order/view/history.phtml DELETED
@@ -1,80 +0,0 @@
1
- <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Academic Free License (AFL 3.0)
8
- * that is bundled with this package in the file LICENSE_AFL.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/afl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category design
22
- * @package default_default
23
- * @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
24
- * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
- */
26
- ?>
27
- <div id="order_history_block">
28
- <?php if ($this->canAddComment()):?>
29
- <div id="history_form" class="order-history-form">
30
- <div><?php echo Mage::helper('sales')->__('Add Order Comments') ?></div>
31
- <span class="field-row">
32
- <label class="normal" for="history_status"><?php echo Mage::helper('sales')->__('Status') ?></label><br/>
33
- <select name="history[status]" class="select" id="history_status">
34
- <?php foreach ($this->getStatuses() as $_code=>$_label): ?>
35
- <option value="<?php echo $_code ?>"<?php if($_code==$this->getOrder()->getStatus()): ?> selected="selected"<?php endif; ?>><?php echo $_label ?></option>
36
- <?php endforeach; ?>
37
- </select>
38
- </span>
39
- <span class="field-row">
40
- <label class="normal" for="history_comment"><?php echo Mage::helper('sales')->__('Comment') ?></label>
41
- <textarea name="history[comment]" rows="3" cols="5" style="height:6em; width:99%;" id="history_comment"></textarea>
42
- </span>
43
- <div class="f-left">
44
- <?php if ($this->canSendCommentEmail()): ?>
45
- <input name="history[is_customer_notified]" type="checkbox" id="history_notify" value="1" /><label class="normal" for="history_notify"> <?php echo Mage::helper('sales')->__('Notify Customer by Email') ?></label><br />
46
- <?php endif; ?>
47
- <input name="history[is_visible_on_front]" type="checkbox" id="history_visible" value="1" /><label class="normal" for="history_visible"> <?php echo Mage::helper('sales')->__('Visible on Frontend') ?></label>
48
- </div>
49
- <div class="f-right">
50
- <?php echo $this->getChildHtml('submit_button') ?>
51
- </div>
52
- <div class="clear"></div>
53
- </div>
54
- <div class="divider"></div>
55
- <?php endif;?>
56
- <ul class="note-list">
57
- <?php foreach ($this->getOrder()->getStatusHistoryCollection(true) as $_item): ?>
58
- <li>
59
- <strong><?php echo $this->helper('core')->formatDate($_item->getCreatedAtDate(), 'medium') ?></strong>
60
- <?php echo $this->helper('core')->formatTime($_item->getCreatedAtDate(), 'medium') ?><span class="separator">|</span><strong><?php echo $_item->getStatusLabel() ?></strong><br/><small><?php echo $this->helper('sales')->__('Customer') ?>
61
- <strong class="subdue">
62
- <?php if ($this->isCustomerNotificationNotApplicable($_item)): ?>
63
- <?php echo $this->helper('sales')->__('Notification Not Applicable') ?>
64
- <?php elseif ($_item->getIsCustomerNotified()): ?>
65
- <?php echo $this->helper('sales')->__('Notified') ?>
66
- <img src="<?php echo $this->getSkinUrl('images/ico_success.gif') ?>" width="16" height="16" alt="" />
67
- <?php else: ?>
68
- <?php echo $this->helper('sales')->__('Not Notified') ?>
69
- <?php endif; ?>
70
- </strong></small>
71
- <?php if ($_item->getComment()): ?>
72
- <br/><?php echo $_item->getComment()) ?>
73
- <?php endif; ?>
74
- </li>
75
- <?php endforeach; ?>
76
- </ul>
77
- <script type="text/javascript">
78
- if($('order_status'))$('order_status').update('<?php echo $this->getOrder()->getStatusLabel() ?>');
79
- </script>
80
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/adminhtml/default/default/template/adyen/pdf.tar.bz2 DELETED
Binary file
app/design/frontend/base/default/layout/adyen.xml CHANGED
@@ -28,6 +28,25 @@
28
  -->
29
  <layout version="0.1.0">
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  <adyen_updatecart_index>
32
  <update handle="checkout_cart_index" />
33
  </adyen_updatecart_index>
@@ -45,9 +64,25 @@
45
  <reference name="head">
46
  <action method="addJs"><script>adyen/payment/elv.js</script></action>
47
  <action method="addCss"><stylesheet>css/adyenstyle.css</stylesheet></action>
 
 
 
 
 
 
 
 
 
 
48
  </reference>
49
  </checkout_onepage_index>
50
 
 
 
 
 
 
 
51
  <onestepcheckout_index_index>
52
  <reference name="head">
53
  <action method="addJs"><script>adyen/payment/elv.js</script></action>
@@ -71,4 +106,6 @@
71
  <block type="adyen/checkout_success" name="adyen.checkout.success" template="adyen/checkout/success.phtml"/>
72
  </reference>
73
  </checkout_multishipping_success>
 
 
74
  </layout>
28
  -->
29
  <layout version="0.1.0">
30
 
31
+ <customer_account>
32
+ <reference name="customer_account_navigation" >
33
+ <action method="addLink" translate="label"><name>saved_cards</name><path>adyen/savedCard/</path><label>My saved cards</label></action>
34
+ </reference>
35
+ </customer_account>
36
+
37
+ <adyen_savedcard_index>
38
+ <update handle="customer_account"/>
39
+ <reference name="head">
40
+ <action method="addCss"><stylesheet>css/adyenstyle.css</stylesheet></action>
41
+ </reference>
42
+ <reference name="root">
43
+ <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
44
+ </reference>
45
+ <reference name="my.account.wrapper">
46
+ <block type="adyen/savedCards" name="adyen.savedCards" template="adyen/savedCards.phtml"/>
47
+ </reference>
48
+ </adyen_savedcard_index>
49
+
50
  <adyen_updatecart_index>
51
  <update handle="checkout_cart_index" />
52
  </adyen_updatecart_index>
64
  <reference name="head">
65
  <action method="addJs"><script>adyen/payment/elv.js</script></action>
66
  <action method="addCss"><stylesheet>css/adyenstyle.css</stylesheet></action>
67
+ <block type="core/text" name="newmodule.diners.validation">
68
+ <action method="setText">
69
+ <text>
70
+ <![CDATA[<script type="text/javascript">
71
+ Validation.creditCartTypes.set('DC', [new RegExp('^3(?:0[0-5]|[68][0-9])[0-9]{11}$'), new RegExp('^[0-9]{3}$'), true]);
72
+ Validation.creditCartTypes.set('CB', [new RegExp('^4[0-9]{12}([0-9]{3})?$'), new RegExp('^[0-9]{3}$'), true]);
73
+ </script>]]>
74
+ </text>
75
+ </action>
76
+ </block>
77
  </reference>
78
  </checkout_onepage_index>
79
 
80
+ <checkout_onepage_paymentmethod>
81
+ <reference name="root">
82
+ <action method="setTemplate"><template>adyen/checkout/onepage/payment/methods.phtml</template></action>
83
+ </reference>
84
+ </checkout_onepage_paymentmethod>
85
+
86
  <onestepcheckout_index_index>
87
  <reference name="head">
88
  <action method="addJs"><script>adyen/payment/elv.js</script></action>
106
  <block type="adyen/checkout_success" name="adyen.checkout.success" template="adyen/checkout/success.phtml"/>
107
  </reference>
108
  </checkout_multishipping_success>
109
+
110
+
111
  </layout>
app/design/frontend/{rwd/adyen/template → base/default/template/adyen}/checkout/onepage/payment/methods.phtml RENAMED
@@ -106,6 +106,20 @@ $oneMethod = count($methods) <= 1;
106
  e.setStyle({display:'none'});
107
  }
108
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  }
110
  }
111
  payment.switchMethod(method);
106
  e.setStyle({display:'none'});
107
  }
108
  );
109
+
110
+ // hide update link
111
+ $$('.update-expiration-date').each(
112
+ function (e) {
113
+ e.setStyle({display:'none'});
114
+ }
115
+ );
116
+
117
+ // don't show installment field
118
+ $$('.adyen-oneclick-installments').each(
119
+ function (e) {
120
+ e.setStyle({display:'none'});
121
+ }
122
+ );
123
  }
124
  }
125
  payment.switchMethod(method);
app/design/frontend/base/default/template/adyen/form/cc.phtml CHANGED
@@ -36,7 +36,7 @@
36
  <li>
37
  <label for="<?php echo $_code ?>_cc_type" class="required"><em>*</em><?php echo $this->__('Credit Card Type') ?></label>
38
  <div class="input-box">
39
- <select id="<?php echo $_code ?>_cc_type" <?php echo (!$this->isCseEnabled() ? "name=\"payment[cc_type]\"" : ""); ?> title="<?php echo $this->__('Credit Card Type') ?>" class="required-entry">
40
  <option value=""><?php echo $this->__('--Please Select--') ?></option>
41
  <?php $_ccType = $this->getInfoData('cc_type') ?>
42
  <?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
@@ -98,48 +98,61 @@
98
  </div>
99
  </li>
100
  <?php endif;?>
 
 
 
 
 
 
 
 
 
 
 
101
  </ul>
102
 
103
- <script type="text/javascript">
 
104
 
105
- var ChangeCCType= function(event) {
106
 
107
- // clear the select box
108
- document.getElementById('<?php echo $_code ?>_installments').options.length = 0;
109
 
110
- // get the installments for this cardtype
111
- var ccType = $('<?php echo $_code?>_cc_type').value;
112
 
113
- var url = '<?php echo $this->getUrl('adyen/GetInstallments'); ?>';
114
 
115
- new Ajax.Request(url, {
116
- parameters: {ccType: ccType, isAjax: 1, method: 'POST'},
117
- onSuccess: function(transport) {
118
 
119
- if(transport.status == 200) {
120
 
121
- var response = transport.responseText.evalJSON();
122
 
123
- for (var key in response) {
124
 
125
- // change the installments
126
- var opt = document.createElement('option');
127
- opt.text = response[key]
128
- opt.value = key;
129
- $('<?php echo $_code ?>_installments').options.add(opt);
130
 
 
131
  }
 
 
 
132
  }
133
- },
134
- onFailure: function(){
135
- alert('<?php echo $this->jsQuoteEscape($this->__('Server Error. Please try again.')) ?>');
136
- }
137
- });
138
- }
139
- // event on change Credit Card Type
140
- Event.observe($('<?php echo $_code?>_cc_type'), 'change', ChangeCCType);
141
 
142
- </script>
 
143
 
144
  <?php if ($this->isCseEnabled()): ?>
145
  <input type="hidden" id="<?php echo $_code ?>_encrypted_form_expiry_generationtime" value="<?php echo date("c"); ?>" data-encrypted-name="generationtime" />
36
  <li>
37
  <label for="<?php echo $_code ?>_cc_type" class="required"><em>*</em><?php echo $this->__('Credit Card Type') ?></label>
38
  <div class="input-box">
39
+ <select id="<?php echo $_code ?>_cc_type" <?php echo "name=\"payment[cc_type]\""; ?> title="<?php echo $this->__('Credit Card Type') ?>" class="required-entry">
40
  <option value=""><?php echo $this->__('--Please Select--') ?></option>
41
  <?php $_ccType = $this->getInfoData('cc_type') ?>
42
  <?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
98
  </div>
99
  </li>
100
  <?php endif;?>
101
+
102
+ <?php if($this->getRecurringType() == "ONECLICK" || $this->getRecurringType() == "ONECLICK,RECURRING"): ?>
103
+ <li>
104
+ <div class="input-box">
105
+ <div class="v-fix">
106
+ <input type="checkbox" name="payment[store_cc]" id="<?php echo $_code ?>_store_cc" value="1" checked />
107
+ <label for="<?php echo $_code ?>_store_cc" class="required"><em>*</em><?php echo $this->__('Remember these details') ?></label>
108
+ </div>
109
+ </div>
110
+ </li>
111
+ <?php endif; ?>
112
  </ul>
113
 
114
+ <?php if($this->hasInstallments()): ?>
115
+ <script type="text/javascript">
116
 
117
+ var ChangeCCType= function(event) {
118
 
119
+ // clear the select box
120
+ document.getElementById('<?php echo $_code ?>_installments').options.length = 0;
121
 
122
+ // get the installments for this cardtype
123
+ var ccType = $('<?php echo $_code?>_cc_type').value;
124
 
125
+ var url = '<?php echo $this->getUrl('adyen/GetInstallments', array('_secure'=>true)); ?>';
126
 
127
+ new Ajax.Request(url, {
128
+ parameters: {ccType: ccType, isAjax: 1, method: 'POST'},
129
+ onSuccess: function(transport) {
130
 
131
+ if(transport.status == 200) {
132
 
133
+ var response = transport.responseText.evalJSON();
134
 
135
+ for (var key in response) {
136
 
137
+ // change the installments
138
+ var opt = document.createElement('option');
139
+ opt.text = response[key]
140
+ opt.value = key;
141
+ $('<?php echo $_code ?>_installments').options.add(opt);
142
 
143
+ }
144
  }
145
+ },
146
+ onFailure: function(){
147
+ alert('<?php echo $this->jsQuoteEscape($this->__('Server Error. Please try again.')) ?>');
148
  }
149
+ });
150
+ }
151
+ // event on change Credit Card Type
152
+ Event.observe($('<?php echo $_code?>_cc_type'), 'change', ChangeCCType);
 
 
 
 
153
 
154
+ </script>
155
+ <?php endif; ?>
156
 
157
  <?php if ($this->isCseEnabled()): ?>
158
  <input type="hidden" id="<?php echo $_code ?>_encrypted_form_expiry_generationtime" value="<?php echo date("c"); ?>" data-encrypted-name="generationtime" />
app/design/frontend/base/default/template/adyen/form/hpp.phtml CHANGED
@@ -52,6 +52,7 @@
52
  <tr>
53
  <td width="20px">
54
  <input type="radio" id="hpp_type_<?php echo $_typeCode ?>" name="payment[hpp_type]" value="<?php echo $_typeCode ?>"/>
 
55
  </td>
56
  <?php if (file_exists($filename)): ?>
57
  <td width="80px"><img src="<?php echo $this->getSkinUrl('images'.DS.'adyen'.DS."$_typeCode.png") ?>" alt="<?php echo $_typeName ?>" /></td>
@@ -111,6 +112,20 @@
111
  }
112
  );
113
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  }
115
 
116
  var method = $('hpp_type_<?php echo $_typeCode?>');
52
  <tr>
53
  <td width="20px">
54
  <input type="radio" id="hpp_type_<?php echo $_typeCode ?>" name="payment[hpp_type]" value="<?php echo $_typeCode ?>"/>
55
+ <input type="hidden" name="payment[hpp_type_label_<?php echo $_typeCode ?>]" value="<?php echo $_typeName; ?>" />
56
  </td>
57
  <?php if (file_exists($filename)): ?>
58
  <td width="80px"><img src="<?php echo $this->getSkinUrl('images'.DS.'adyen'.DS."$_typeCode.png") ?>" alt="<?php echo $_typeName ?>" /></td>
112
  }
113
  );
114
 
115
+ // hide update link
116
+ $$('.update-expiration-date').each(
117
+ function (e) {
118
+ e.setStyle({display:'none'});
119
+ }
120
+ );
121
+
122
+ // hide installment box
123
+ $$('.adyen-oneclick-installments').each(
124
+ function (e) {
125
+ e.setStyle({display:'none'});
126
+ }
127
+ );
128
+
129
  }
130
 
131
  var method = $('hpp_type_<?php echo $_typeCode?>');
app/design/frontend/base/default/template/adyen/form/oneclick.phtml CHANGED
@@ -105,6 +105,22 @@
105
 
106
  <div class="creditcard-holder-name"><?php echo $value["card_holderName"]; ?></div>
107
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  <div style="clear:both;"></div>
109
  </div>
110
  <?php ++$count; ?>
@@ -163,11 +179,15 @@
163
 
164
  // hide all the open blocks
165
  hideCvcBlocks();
 
166
 
167
  // open the selected block
168
  var key = this.value;
169
  var id = "cvc_block_" + key;
170
 
 
 
 
171
  // hide changeble card and show static expiration date
172
  hideChangableCardExpiry()
173
 
@@ -201,6 +221,9 @@
201
 
202
  // show the cvc input field
203
  $(id).show();
 
 
 
204
  });
205
 
206
  // remove all cvc data-encrypted-name attributes
@@ -245,6 +268,15 @@
245
  );
246
  }
247
 
 
 
 
 
 
 
 
 
 
248
  function hideChangableCardExpiry() {
249
  $$('.changable-card-expiry').each(
250
  function (e) {
105
 
106
  <div class="creditcard-holder-name"><?php echo $value["card_holderName"]; ?></div>
107
 
108
+
109
+ <?php if($this->hasInstallments()): ?>
110
+ <div id="adyen_oneclick_installment_<?php echo $key;?>" class="adyen-oneclick-installments" style="display:none;">
111
+ <label for="<?php echo $_code ?>_installment_<?php echo $key; ?>" class="required"><em>*</em><?php echo $this->__('Installments') ?></label>
112
+ <div class="input-box">
113
+ <div class="v-fix">
114
+ <select id="<?php echo $_code ?>_installment_<?php echo $key; ?>" name="payment[installment_<?php echo $key; ?>]" class="adyen-installment number required-entry">
115
+ <?php foreach ($this->getInstallmentForCreditCardType($_bankFile) as $k=>$v): ?>
116
+ <option value="<?php echo $k?$k:'' ?>"><?php echo $v ?></option>
117
+ <?php endforeach ?>
118
+ </select>
119
+ </div>
120
+ </div>
121
+ </div>
122
+ <?php endif;?>
123
+
124
  <div style="clear:both;"></div>
125
  </div>
126
  <?php ++$count; ?>
179
 
180
  // hide all the open blocks
181
  hideCvcBlocks();
182
+ hideInstallmentBlocks();
183
 
184
  // open the selected block
185
  var key = this.value;
186
  var id = "cvc_block_" + key;
187
 
188
+ // open the installment block
189
+ var installmentId = "adyen_oneclick_installment_" + key;
190
+
191
  // hide changeble card and show static expiration date
192
  hideChangableCardExpiry()
193
 
221
 
222
  // show the cvc input field
223
  $(id).show();
224
+
225
+ // show recurring selectbox
226
+ $(installmentId).show();
227
  });
228
 
229
  // remove all cvc data-encrypted-name attributes
268
  );
269
  }
270
 
271
+ // hide all the installment block
272
+ function hideInstallmentBlocks() {
273
+ $$('.adyen-oneclick-installments').each(
274
+ function (e) {
275
+ e.setStyle({display:'none'});
276
+ }
277
+ );
278
+ }
279
+
280
  function hideChangableCardExpiry() {
281
  $$('.changable-card-expiry').each(
282
  function (e) {
app/design/frontend/base/default/template/adyen/info/hpp.phtml CHANGED
@@ -25,11 +25,15 @@
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
  ?>
 
 
28
  <?php echo $this->htmlEscape($this->getMethod()->getTitle()) ?><br/>
 
 
29
  <?php if ($_info = $this->getInfo()): ?>
30
  <?php $paymentMethod = $_info->getCcType() ?>
31
  <?php if (!empty($paymentMethod)): ?>
32
- <?php echo $this->__('Payment Method: %s', $this->htmlEscape($paymentMethod)) ?><br/>
33
  <?php endif; ?>
34
  <?php if (strpos($paymentMethod, "ideal") !== false): ?>
35
  <?php $bankData = $_info->getPoNumber(); ?>
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
  ?>
28
+ <?php $disabled = $this->getMethod()->getHppOptionsDisabled();?>
29
+ <?php if($disabled): ?>
30
  <?php echo $this->htmlEscape($this->getMethod()->getTitle()) ?><br/>
31
+ <?php endif; ?>
32
+
33
  <?php if ($_info = $this->getInfo()): ?>
34
  <?php $paymentMethod = $_info->getCcType() ?>
35
  <?php if (!empty($paymentMethod)): ?>
36
+ <?php echo $this->__('Payment Method: %s', $this->htmlEscape($_info->getAdditionalInformation('hpp_type_label'))) ?><br/>
37
  <?php endif; ?>
38
  <?php if (strpos($paymentMethod, "ideal") !== false): ?>
39
  <?php $bankData = $_info->getPoNumber(); ?>
app/design/frontend/base/default/template/adyen/posExpressCheckout.phtml CHANGED
@@ -1,14 +1,27 @@
1
 
2
- <?php if($this->hasExpressCheckout()): ?>
3
 
4
- <form action="<?php echo $this->getUrl("adyen/checkoutPos"); ?>" method="post">
5
- <input style="width:250px;" type="text" class="input-text" name="adyenPosEmail" id="adyenPosEmail" value="" size="60" placeholder="Email" autocapitalize="off"/>
 
6
 
7
- <button id="StartScan" style="" type="submit" title="Start Auto Scanning" class="button btn-proceed-checkout btn-checkout">
8
- <span><span>Checkout with POS</span></span>
9
- </button>
 
 
 
 
 
 
 
 
 
 
 
 
 
10
 
11
- </form>
12
  <div>-OR-</div>
13
 
14
  <?php endif; ?>
1
 
2
+ <?php if($this->hasExpressCheckout() || $this->hasCashExpressCheckout() ): ?>
3
 
4
+ <div id="adyen-checkout-wrapper">
5
+ <form action="<?php echo $this->getUrl("adyen/checkoutPos", array('_secure'=>true)); ?>" method="post">
6
+ <input style="width:250px;" type="text" class="input-text" name="adyenPosEmail" id="adyenPosEmail" value="" size="60" placeholder="Email" autocapitalize="off"/>
7
 
8
+ <?php if($this->hasExpressCheckout()): ?>
9
+ <button id="CheckoutWithPos" style="" type="submit" title="Checkout with POS" class="button btn-proceed-checkout btn-checkout adyen-checkout-button">
10
+ <span><span>Checkout with POS</span></span>
11
+ </button>
12
+ <?php endif; ?>
13
+
14
+ </form>
15
+
16
+ <form action="<?php echo $this->getUrl("adyen/checkoutCash", array('_secure'=>true)); ?>" method="post">
17
+ <?php if($this->hasCashExpressCheckout()): ?>
18
+ <button id="CheckoutWithCash" style="" type="submit" title="Checkout with Cash" class="button btn-proceed-checkout btn-checkout adyen-checkout-button">
19
+ <span><span>Checkout with Cash</span></span>
20
+ </button>
21
+ <?php endif; ?>
22
+ </form>
23
+ </div>
24
 
 
25
  <div>-OR-</div>
26
 
27
  <?php endif; ?>
app/design/frontend/base/default/template/adyen/savedCards.phtml ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <?php /* @var $this Adyen_Payment_Block_SavedCards */ ?>
3
+ <div class="page-title">
4
+ <h1><?php echo $this->__('My Saved cards') ?></h1>
5
+ </div>
6
+
7
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
8
+
9
+ <div class="saved-cards">
10
+
11
+ <div id="oneclick-cse" class="">
12
+
13
+ <?php $_listRecurringDetails = $this->getlistRecurringDetails(); ?>
14
+
15
+ <?php if(!empty($_listRecurringDetails)): ?>
16
+
17
+ <ul id="oneclick_payment_form" class="recurring-creditcards">
18
+ <?php
19
+ $count = 0;
20
+ foreach($_listRecurringDetails as $key => $value):?>
21
+ <li>
22
+
23
+ <form method="post" action="<?php echo $this->getUrl("adyen/savedCard/", array('_secure'=>true)); ?>">
24
+
25
+ <input type="hidden" name="recurringDetailReference" value="<?php echo $value["recurringDetailReference"] ?>" />
26
+
27
+
28
+ <div class="creditcard-block">
29
+ <?php
30
+ $_bankFile = $value["variant"];
31
+ $_filename = Mage::getBaseDir().DS.'skin'.DS.'frontend'.DS.'base'.DS.'default'.DS.'images'.DS.'adyen'.DS. $_bankFile ."_small.png";
32
+
33
+ ?>
34
+ <?php if (file_exists($_filename)){ ?>
35
+ <img src="<?php echo $this->getSkinUrl('images'.DS.'adyen'.DS. $_bankFile . "_small.png") ?>" alt="<?php echo $_bankFile ?>" label="<?php echo $_bankFile ?>" />
36
+ <?php } ?>
37
+
38
+
39
+ <div class="columns three a">
40
+ <label><?php echo $this->__('Credit Card Number') ?></label>
41
+ <span>****</span> <?php echo $value["card_number"]; ?>
42
+ </div>
43
+
44
+ <div class="columns three b">
45
+ <label><?php echo $this->__('Expiration Date') ?><a href="#" id="update-expiration-date-<?php echo $key; ?>" class="update-expiration-date" style="display:none;"><?php echo $this->__('(update)') ?></a></label>
46
+
47
+ <div id="static-card-expiry-<?php echo $key; ?>" class="static-card-expiry">
48
+ <?php echo $value["card_expiryMonth"] . " /" . $value["card_expiryYear"]; ?>
49
+ </div>
50
+
51
+ </div>
52
+
53
+ <div style="clear:both;"></div>
54
+
55
+ <div class="creditcard-holder-name"><?php echo $value["card_holderName"]; ?></div>
56
+
57
+ <button type="submit" title="Add to Cart" class="button btn-cart btn-delete"><span><span><?php echo $this->__('Remove Card');?></span></span></button>
58
+
59
+ <div style="clear:both;"></div>
60
+ </div>
61
+ </form>
62
+ <?php ++$count; ?>
63
+ </li>
64
+ <?php endforeach; ?>
65
+ </ul>
66
+ <?php else: ?>
67
+ <p><?php echo $this->__('There are no saved cards for this account.');?></p>
68
+ <?php endif; ?>
69
+
70
+
71
+
72
+ </div>
73
+
74
+ <div class="buttons-set">
75
+ <p class="back-link"><a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>"><small>&laquo; </small><?php echo $this->__('Back') ?></a></p>
76
+ </div>
77
+ </div>
app/design/frontend/base/default/template/adyen/scanProduct.phtml CHANGED
@@ -1,17 +1,23 @@
1
 
2
  <?php if($this->hasEnableScanner()): ?>
3
  <div id="adyenCustomScanWrapper">
4
- <form id="addToCartBarCode" method='post' action="<?php echo $this->getUrl("adyen/updateCart/index"); ?>">
5
 
6
  <h3>Barcode scanner</h3>
7
 
8
  <div id="scan">
9
- <input type="text" class="input-text" name="code" id="inpscan" value="" size="60" placeholder="Scan barcode with scanner" autofocus/>
10
  </div>
11
 
 
 
 
 
 
 
12
  <div id="customscan" style="display:none;">
13
  <input type="text" class="input-text" name="customcode" id="inpcustomscan" value="" size="60" placeholder="Fil in custom barcode">
14
- <button id="SubmitCustomScan" type="button" title="Submit" class="button btn-proceed-checkout btn-checkout">
15
  <span><span>Add</span></span>
16
  </button>
17
  </div>
@@ -43,7 +49,9 @@
43
 
44
  $('inpscan').observe('focus', function(e){
45
  $('StartScan').hide();
46
- intervalId = setInterval('scan()', 250);
 
 
47
  });
48
 
49
  $('inpscan').observe('blur', function(e){
@@ -82,6 +90,14 @@
82
  e.preventDefault();
83
  });
84
 
 
 
 
 
 
 
 
 
85
 
86
 
87
  // check if scan is done with scanning
1
 
2
  <?php if($this->hasEnableScanner()): ?>
3
  <div id="adyenCustomScanWrapper">
4
+ <form id="addToCartBarCode" method='post' action="<?php echo $this->getUrl("adyen/updateCart/index", array('_secure'=>true)); ?>">
5
 
6
  <h3>Barcode scanner</h3>
7
 
8
  <div id="scan">
9
+ <input type="text" class="input-text" name="code" id="inpscan" value="" size="60" placeholder="Scan barcode with scanner" autocomplete="off" autofocus/>
10
  </div>
11
 
12
+ <?php if($this->hasAutoSubmitScanner()): ?>
13
+ <button style="visibility: hidden;" id="SubmitScan" type="submit" title="Submit" class="button btn-proceed-checkout btn-checkout">
14
+ </button>
15
+ <?php endif; ?>
16
+
17
+
18
  <div id="customscan" style="display:none;">
19
  <input type="text" class="input-text" name="customcode" id="inpcustomscan" value="" size="60" placeholder="Fil in custom barcode">
20
+ <button id="SubmitCustomScan" type="submit" title="Submit" class="button btn-proceed-checkout btn-checkout">
21
  <span><span>Add</span></span>
22
  </button>
23
  </div>
49
 
50
  $('inpscan').observe('focus', function(e){
51
  $('StartScan').hide();
52
+ <?php if(!$this->hasAutoSubmitScanner()): ?>
53
+ intervalId = setInterval('scan()', 250);
54
+ <?php endif; ?>
55
  });
56
 
57
  $('inpscan').observe('blur', function(e){
90
  e.preventDefault();
91
  });
92
 
93
+ $('SubmitScan').observe('click', function(e){
94
+ var value = $('inpscan').value;;
95
+ ajaxCall(value);
96
+ $('inpscan').value = "";
97
+ $('inpscan').focus();
98
+ e.preventDefault();
99
+ });
100
+
101
 
102
 
103
  // check if scan is done with scanning
app/design/frontend/default/adyen/template/checkout/onepage/payment/methods.phtml DELETED
@@ -1,149 +0,0 @@
1
- <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Academic Free License (AFL 3.0)
8
- * that is bundled with this package in the file LICENSE_AFL.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/afl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category design
22
- * @package base_default
23
- * @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
24
- * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
- */
26
- ?>
27
- <?php
28
- /**
29
- * One page checkout payment methods
30
- *
31
- * @var $this Mage_Checkout_Block_Onepage_Payment_Methods
32
- */
33
- ?>
34
-
35
- <?php
36
- $methods = $this->getMethods();
37
- $oneMethod = count($methods) <= 1;
38
- ?>
39
- <?php if (empty($methods)): ?>
40
- <dt>
41
- <?php echo $this->__('No Payment Methods') ?>
42
- </dt>
43
- <?php else:
44
- foreach ($methods as $_method):
45
- $_code = $_method->getCode();
46
-
47
- $_style = "";
48
- if($_code == "adyen_hpp") {
49
-
50
- // get method and check if config payment/adyen_hpp/disable_hpptypes is set
51
- $disabled = $_method->getHppOptionsDisabled();
52
- if(!$disabled) {
53
- $_style = ($_code == "adyen_hpp" && !$oneMethod) ? "display:none" : "";
54
- }
55
- } else if ($_code == "adyen_oneclick" && !$oneMethod) {
56
- $_style = "display:none";
57
- }
58
-
59
- ?>
60
- <dt style="<?php echo $_style; ?>">
61
- <?php if(!$oneMethod): ?>
62
- <input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" title="<?php echo $this->escapeHtml($_method->getTitle()) ?>" <?php if($this->getSelectedMethodCode()==$_code): ?> checked="checked"<?php endif; ?> class="radio" />
63
- <?php else: ?>
64
- <span class="no-display"><input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" class="radio" /></span>
65
- <?php $oneMethod = $_code; ?>
66
- <?php endif; ?>
67
-
68
- <?php if(($_code == "adyen_hpp" && $disabled) || ($_code != "adyen_hpp")): ?>
69
- <label for="p_method_<?php echo $_code ?>"><?php echo $this->escapeHtml($this->getMethodTitle($_method)) ?> <?php echo $this->getMethodLabelAfterHtml($_method) ?></label>
70
- <?php endif; ?>
71
- </dt>
72
-
73
- <?php if ($html = $this->getPaymentMethodFormHtml($_method)): ?>
74
- <dd>
75
- <?php echo $html; ?>
76
- </dd>
77
- <?php endif; ?>
78
- <script type="text/javascript">
79
- //<![CDATA[
80
-
81
- var SwitchMethod= function() {
82
- var method = $('p_method_<?php echo $_code?>').value;
83
-
84
- if(method != "adyen_hpp") {
85
- // check if hpp is enabled if so clear the selected option because you select different payment method
86
- if($('hpp_payment_form_adyen_hpp'))
87
- {
88
- var form = $('hpp_payment_form_adyen_hpp');
89
- var elements = form.getElementsByTagName('input');
90
- for (var i=0; i<elements.length; i++) elements[i].checked = false;
91
- }
92
- }
93
-
94
- // check if adyen_oneclick is enabled
95
- if(method != "adyen_oneclick") {
96
- if($('oneclick_payment_form_adyen_oneclick'))
97
- {
98
- // if so clear the selected option because you select different payment method
99
- var form = $('oneclick_payment_form_adyen_oneclick');
100
- var elements = form.getElementsByTagName('input');
101
- for (var i=0; i<elements.length; i++) elements[i].checked = false;
102
-
103
- // don't show the cvc field
104
- $$('.cvc_block').each(
105
- function (e) {
106
- e.setStyle({display:'none'});
107
- }
108
- );
109
- }
110
- }
111
- payment.switchMethod(method);
112
- };
113
- Event.observe($('p_method_<?php echo $_code ?>'), 'change', SwitchMethod);
114
-
115
- //]]>
116
- </script>
117
- <?php endforeach;
118
- endif;
119
- ?>
120
- <?php echo $this->getChildChildHtml('additional'); ?>
121
- <script type="text/javascript">
122
- //<![CDATA[
123
- <?php echo $this->getChildChildHtml('scripts'); ?>
124
- payment.init();
125
- <?php if (is_string($oneMethod)): ?>
126
- payment.switchMethod('<?php echo $oneMethod ?>');
127
- <?php endif; ?>
128
-
129
- // always enable the hpp payment options if this payment method is on
130
- if($('hpp_payment_form_adyen_hpp'))
131
- {
132
- var form = $('hpp_payment_form_adyen_hpp');
133
- var elements = form.getElementsByTagName('input');
134
- for (var i=0; i<elements.length; i++) elements[i].disabled = false;
135
- }
136
-
137
- // always enable the oneclick payments options if this payment method is on
138
- if($('oneclick_payment_form_adyen_oneclick'))
139
- {
140
- var form = $('oneclick_payment_form_adyen_oneclick');
141
- var elements = form.getElementsByTagName('input');
142
- for (var i=0; i<elements.length; i++) elements[i].disabled = false;
143
-
144
- // always enable the selectboxes for the oneclick creditcards
145
- var elements = form.getElementsByTagName('select');
146
- for (var i=0; i<elements.length; i++) elements[i].disabled = false;
147
- }
148
- //]]>
149
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/enterprise/adyen/template/checkout/onepage/payment/methods.phtml DELETED
@@ -1,139 +0,0 @@
1
- <?php
2
- /**
3
- * Magento Enterprise Edition
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Magento Enterprise Edition License
8
- * that is bundled with this package in the file LICENSE_EE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://www.magentocommerce.com/license/enterprise-edition
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category design
22
- * @package base_default
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
- * @license http://www.magentocommerce.com/license/enterprise-edition
25
- */
26
- ?>
27
- <?php
28
- /**
29
- * One page checkout payment methods
30
- *
31
- * @see Mage_Checkout_Block_Onepage_Payment_Methods
32
- */
33
- $methods = $this->getMethods();
34
- $oneMethod = count($methods) <= 1;
35
- ?>
36
- <dl class="sp-methods" id="checkout-payment-method-load">
37
- <?php foreach ($methods as $_method):
38
- $_code = $_method->getCode();
39
-
40
- $_style = "";
41
- if($_code == "adyen_hpp") {
42
-
43
- // get method and check if config payment/adyen_hpp/disable_hpptypes is set
44
- $disabled = $_method->getHppOptionsDisabled();
45
- if(!$disabled) {
46
- $_style = ($_code == "adyen_hpp" && !$oneMethod) ? "display:none" : "";
47
- }
48
- } else if ($_code == "adyen_oneclick" && !$oneMethod) {
49
- $_style = "display:none";
50
- }
51
- ?>
52
- <dt style="<?php echo $_style; ?>">
53
- <?php if( sizeof($this->getMethods()) > 1 ): ?>
54
- <input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" title="<?php echo $this->htmlEscape($_method->getTitle()) ?>" onclick="payment.switchMethod('<?php echo $_code ?>')"<?php if($this->getSelectedMethodCode()==$_code): ?> checked="checked"<?php endif; ?> class="radio" />
55
- <?php else: ?>
56
- <span class="no-display"><input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" class="radio" /></span>
57
- <?php endif; ?>
58
-
59
- <?php if(($_code == "adyen_hpp" && $disabled) || ($_code != "adyen_hpp")): ?>
60
- <label for="p_method_<?php echo $_code ?>"><?php echo $this->getMethodTitle($_method) ?> <?php echo $this->getMethodLabelAfterHtml($_method) ?></label>
61
- <?php endif; ?>
62
-
63
- </dt>
64
- <?php if ($html = $this->getPaymentMethodFormHtml($_method)): ?>
65
- <dd>
66
- <?php echo $html; ?>
67
- </dd>
68
- <?php endif; ?>
69
- <script type="text/javascript">
70
- //<![CDATA[
71
-
72
- var SwitchMethod= function() {
73
- var method = $('p_method_<?php echo $_code?>').value;
74
-
75
- if(method != "adyen_hpp") {
76
- // check if hpp is enabled if so clear the selected option because you select different payment method
77
- if($('hpp_payment_form_adyen_hpp'))
78
- {
79
- var form = $('hpp_payment_form_adyen_hpp');
80
- var elements = form.getElementsByTagName('input');
81
- for (var i=0; i<elements.length; i++) elements[i].checked = false;
82
- }
83
- }
84
-
85
- // check if adyen_oneclick is enabled
86
- if(method != "adyen_oneclick") {
87
- if($('oneclick_payment_form_adyen_oneclick'))
88
- {
89
- // if so clear the selected option because you select different payment method
90
- var form = $('oneclick_payment_form_adyen_oneclick');
91
- var elements = form.getElementsByTagName('input');
92
- for (var i=0; i<elements.length; i++) elements[i].checked = false;
93
-
94
- // don't show the cvc field
95
- $$('.cvc_block').each(
96
- function (e) {
97
- e.setStyle({display:'none'});
98
- }
99
- );
100
- }
101
- }
102
- payment.switchMethod(method);
103
- };
104
- Event.observe($('p_method_<?php echo $_code ?>'), 'change', SwitchMethod);
105
-
106
- //]]>
107
- </script>
108
- <?php endforeach; ?>
109
- </dl>
110
- <?php echo $this->getChildChildHtml('additional'); ?>
111
- <script type="text/javascript">
112
- //<![CDATA[
113
- <?php echo $this->getChildChildHtml('scripts'); ?>
114
- payment.init();
115
- <?php if (is_string($oneMethod)): ?>
116
- payment.switchMethod('<?php echo $oneMethod ?>');
117
- <?php endif; ?>
118
-
119
- // always enable the hpp payment options if this payment method is on
120
- if($('hpp_payment_form_adyen_hpp'))
121
- {
122
- var form = $('hpp_payment_form_adyen_hpp');
123
- var elements = form.getElementsByTagName('input');
124
- for (var i=0; i<elements.length; i++) elements[i].disabled = false;
125
- }
126
-
127
- // always enable the oneclick payments options if this payment method is on
128
- if($('oneclick_payment_form_adyen_oneclick'))
129
- {
130
- var form = $('oneclick_payment_form_adyen_oneclick');
131
- var elements = form.getElementsByTagName('input');
132
- for (var i=0; i<elements.length; i++) elements[i].disabled = false;
133
-
134
- // always enable the selectboxes for the oneclick creditcards
135
- var elements = form.getElementsByTagName('select');
136
- for (var i=0; i<elements.length; i++) elements[i].disabled = false;
137
- }
138
- //]]>
139
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
package.xml CHANGED
@@ -1,42 +1,47 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Adyen_Payment</name>
4
- <version>2.1.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/OSL-3.0">Open Software License (OSL-3.0)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Magento Plugin for Payment service provider Adyen</summary>
10
- <description>Magento Plugin for Payment Service Provider Adyen. The integration guide for this Plugin is available on the Adyen Support website: support.adyen.com, type in 'Magento'&#xD;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  &#xD;
12
- support@adyen.com</description>
13
- <notes>Features &amp; Fixes&#xD;
14
- * Show OneClick payments in Magento checkout&#xD;
15
- * New API payment method SEPA&#xD;
16
- * Add discount for the payment method open invoice (karna/Afterpay)&#xD;
17
- * Optimized UI in the payment step (for the default OnePage checkout and the OneStepCheckout module)&#xD;
18
- * Build in scan functionality for using Magento as cash register solution&#xD;
19
- * express checkout button for payments through the Adyen Shuttle&#xD;
20
- * Creditcard installments can now be setup foreach creditcard type&#xD;
21
- * Installment rate (in %) is now added to the installment setup&#xD;
22
- * For Klarna it is now possible to show date of birth and gender only when you select payment method open invoice&#xD;
23
- * Multicurrency problem with Api Payments solved&#xD;
24
- * Show reservationNumber for Klarna and AfterPay in the payment information of the order&#xD;
25
- * Directory lookup call to retrieve the payment methods shown in the payment step can now be cached for better performance&#xD;
26
- * Payment methods can now be sorted in the front-end&#xD;
27
- * Boleto firstname and lastname automatically filled in based on billing information&#xD;
28
- * For Boleto payments the paid amount is now shown in the payment information of the order detail page&#xD;
29
- * Possible to select different status for Boleto if the payment is overpaid or underpaid&#xD;
30
- * Full refund will send in Cancel\Refund request to Adyen if payment is not yet captured the order will be cancelled&#xD;
31
- * For payment method Klarna and after pay the fields are disabled on the Adyen HPP&#xD;
32
- * Payment methods in the checkout give back the language specific payment method text&#xD;
33
- * Add after pay logo in magento checkout&#xD;
34
- * Plugin version number and links for setting up now visible in the Adyen General settings sections&#xD;
35
  </notes>
36
  <authors><author><name>Adyen</name><user>adyen</user><email>magento@adyen.com</email></author></authors>
37
- <date>2014-09-24</date>
38
- <time>06:51:05</time>
39
- <contents><target name="magecommunity"><dir name="Adyen"><dir name="Payment"><dir name="Block"><dir name="Adminhtml"><dir name="Form"><dir name="Field"><file name="Installments.php" hash="e73b36349ac2ac5f9687cd5ce5958e53"/></dir></dir><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><file name="Totals.php" hash="1460f2048e15c0d08405c00e68653a47"/></dir><dir name="Filter"><file name="Adyen.php" hash="e928bb38a944adc399d6a43321084667"/></dir><dir name="Invoice"><file name="Totals.php" hash="40f4258c2e79e25bd38abb8ed7a0a778"/></dir><dir name="Renderer"><file name="Adyen.php" hash="44bc7f403e35ce4711101f8b93192190"/></dir><file name="Totals.php" hash="3d6dfca8bcd137c85828a4d9a39507c5"/></dir></dir><file name="Version.php" hash="9e527d0424b878cba5160462c69c1cba"/></dir><dir name="Checkout"><file name="Success.php" hash="8edb224af51fb76d111807168268f67c"/></dir><file name="Failure.php" hash="ead96fee55fba2cbb5044f09566e85e4"/><dir name="Form"><file name="Boleto.php" hash="a787217b71dfeab643073cfed4ec20a9"/><file name="Cc.php" hash="9e9f2b2fb861e39133635ce7adc40bb1"/><file name="Elv.php" hash="c3de45c9161b1564209b79a80140fec3"/><file name="Hpp.php" hash="afe655b84cfbdddde988725c4cee2740"/><file name="Oneclick.php" hash="ee048e190bf8c0723cba4fce18ca2b5f"/><file name="Openinvoice.php" hash="03f441912f177fb5af9f9aaef27e92d5"/><file name="Pos.php" hash="7a93f39cd4c30d5be1b56218a4e04a7f"/><file name="Sepa.php" hash="91b145e97db61846febaae1c5ac0b9d6"/></dir><file name="Form.php" hash="77d0589a32cb816dcdc6df16c98f2cd6"/><dir name="Info"><file name="Boleto.php" hash="720913657cb3aad5706aaff9e73ff65c"/><file name="Cc.php" hash="fda6af2c2c9a6988095b5f4eee3b6711"/><file name="Elv.php" hash="d35cfabffa923a7c0345a1dacde38a52"/><file name="Hpp.php" hash="bce3945267dac13f4fd9c9fd1400d11c"/><file name="Oneclick.php" hash="b0fb295f9a0572f92f0a1dc7108b9e8a"/><file name="Openinvoice.php" hash="1e99e4ab3ef75a9fa27626bd946b0407"/><file name="Pos.php" hash="8a6be4f35d43dc7791b9741cfb05b8a5"/><file name="Sepa.php" hash="9b1b5acbeb78dc774a6c13ff8db1bcb1"/></dir><file name="PosExpressCheckout.php" hash="52ead923b25324e31507c173caf95045"/><file name="Redirect.php" hash="065d1f3ba3ee85ac1826cc87df64bbb1"/><dir name="Sales"><dir name="Order"><file name="Totals.php" hash="1110ea3b2faedc600767aac41a9c634b"/></dir></dir><file name="ScanProduct.php" hash="541b0d9473ef2256dafe31a47bf0ac88"/></dir><dir name="Helper"><file name="Data.php" hash="de6afc16fd7b3c05c7a8fbc2be0b2dd1"/><file name="Installments.php" hash="6e37f0cbc7acb860fec12ca68d734a2b"/></dir><dir name="Model"><dir name="Adyen"><file name="Abstract.php" hash="9bda31a6e44bc86a53d43ae44d13bf0d"/><file name="Boleto.php" hash="e92f38062af2dcc766161ce2e92d9fac"/><file name="Cc.php" hash="044558f75f84bcdd34ae682aee80ec19"/><dir name="Data"><file name="Abstract.php" hash="cdda2d90654bff01f372a817d6e94e1a"/><file name="AdditionalData.php" hash="e4d038a60ac548e0938f75a0452d5717"/><file name="AdditionalDataKVPair.php" hash="cc2e0ba6733ef5139f44ba7c9af303dc"/><file name="Amount.php" hash="73540706cac2c2eef0252615d6200511"/><file name="BankAccount.php" hash="89124b1a311269d878e88acd56391afc"/><file name="BrowserInfo.php" hash="bd1cca3cc27aea7fad85661c7132e2cd"/><file name="Card.php" hash="ea384e9c2032ba7ad5925edfb434625f"/><file name="Classmap.php" hash="38ab9bfbfb1585852380c0551a35b9ec"/><file name="Elv.php" hash="6608688d03b047387a2b28be10c47b87"/><file name="IdealPaymentRequest.php" hash="4c3e7b5e1d98765524d022e8950c0ce6"/><file name="Installments.php" hash="ab285677d94614d631b927b427268eff"/><file name="InvoiceLine.php" hash="2013af2bbae2b07df4db34b4d8565796"/><file name="InvoiceRow.php" hash="6c6e4bfe2c2ec51d14ac99d747879bec"/><file name="ModificationRequest.php" hash="0cfe14752a16a579c3a29a6d4e66ba6e"/><file name="ModificationResult.php" hash="eec37eba3849baa4ad52b194e31ac362"/><file name="NotificationClassmap.php" hash="31166e4ef9ea728c107f5ee501d67fc5"/><file name="NotificationRequest.php" hash="4647bfc558308e8f7795ae97fbf2c066"/><file name="NotificationRequestItem.php" hash="ef0794de69076f4accc5035b3f659808"/><file name="OpenInvoiceDetailResult.php" hash="68391a7b4b2a460967ec0018a2300396"/><file name="PaymentRequest.php" hash="c302d22b311a4d8c9fec6b46d683b52d"/><file name="PaymentRequest3d.php" hash="505731df1bb63d6426a11e5d3036552f"/><file name="Recurring.php" hash="ae069455222f0315c2eaee6cdf84f461"/><file name="RecurringRequest.php" hash="aed77050f296df4f48c88038ef3ac547"/><dir name="Server"><file name="Notification.php" hash="51ed88aa2c2035e4cb7b4e992e7c8e4a"/><file name="Openinvoice.php" hash="d94166e3c8337e213061655ab7e48e68"/></dir><file name="ShopperName.php" hash="91bfea9ade01d29fa9053de87ce01560"/></dir><file name="Debug.php" hash="8044ccae24d83db38d9430cf125ada83"/><file name="Dummy.php" hash="a72ccc6e8c5268cf6786db289de4e3d9"/><file name="Elv.php" hash="f3e6067e8bb235d037c7cd78aaa703b6"/><file name="Hpp.php" hash="d5217d5df4a5c49ba4b4105fc7b8e29c"/><file name="Ideal.php" hash="8359f4eb5c28363680c08ecbc88a28a5"/><file name="Oneclick.php" hash="7196d95d7f71fc33be4df29b1ad7596e"/><file name="Openinvoice.php" hash="61d7122f706c318883c3e78ff07ce3f2"/><file name="Pos.php" hash="1769416ab285000a3fcd169466ff257d"/><file name="Sepa.php" hash="81aef386a6fa7e868cc9f22c7db008ff"/><file name="Shared.php" hash="7f3fe961a7107b6fb5625a9efe7854fd"/><file name=".DS_Store" hash="d179556f904a5601ccd01a54743c155f"/></dir><file name="Authenticate.php" hash="9de42d073756d2f1dfaa09a3af83cea9"/><file name="Event.php" hash="73452fac034ce72918bd5560a06ca347"/><dir name="Mysql4"><dir name="Adyen"><dir name="Debug"><file name="Collection.php" hash="dee84aa1c2b370a72d79031a09b9bba4"/></dir><file name="Debug.php" hash="123808b460f70ad416ed9bb92e6a1d60"/><file name="Event.php" hash="affce8ec81a3471647cc6e0612eb0568"/></dir><file name="Order.php" hash="05c5ce3b68f877b23d1396d13db18517"/><file name="Setup.php" hash="45997ed47c197cb302d6fbb684489201"/></dir><file name="Observer.php" hash="8a18198083aaecb636a3f2a0a989f18c"/><file name="Process.php" hash="1155b418cc2b4ecc4e9b874b1f40f62d"/><dir name="Sales"><dir name="Quote"><dir name="Address"><dir name="Total"><file name="PaymentFee.php" hash="f14a964cb2cba6b7f6fcf6162b8a91fd"/><file name="PaymentInstallmentFee.php" hash="5cb9a44b7f1006e8e471d1dbc7b8ba08"/></dir></dir></dir></dir><dir name="Source"><file name="BoletoType.php" hash="1a31476c4ebfdb6b16a1dd3a26015fb1"/><file name="CancelModes.php" hash="b18c30b103cdce97af41e63ef0a25a92"/><file name="CaptureModes.php" hash="d2d138f0a59e1e448531f1fd8f908439"/><file name="CcType.php" hash="97d4e2549bec42b8282636f1e98e853a"/><file name="DemoModes.php" hash="0ce4142166b9f7dc96ee8e1e3bd03286"/><file name="OpeninvoiceType.php" hash="c39389388338dfe0b85b10a1e9b828cb"/><file name="PaymentAction.php" hash="23224178cf58e55c308234036f629bf7"/><file name="PaymentRoutines.php" hash="7aa5525e67554ad35226cf1aaa802c49"/><file name="RecurringType.php" hash="2a3c60c4546d9c02c842a9ea0a5ade26"/><dir name="Status"><file name="Refund.php" hash="bb700fa537f3a7c27c43691846777ef4"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Installments.php" hash="6c3b60719edb83eaaad1515514dab620"/></dir></dir></dir><dir name="Total"><dir name="PaymentFee"><file name="Creditmemo.php" hash="738f7b84586d51cd875011d6b31dfd3e"/><file name="Invoice.php" hash="8aa607b99f709a5eee9b76675e2d5ada"/></dir><dir name="PaymentInstallmentFee"><file name="Creditmemo.php" hash="b40551c179c19ccea7be11a5edf6be4c"/><file name="Invoice.php" hash="5f4563813511aff2eafb98cf4943d817"/></dir></dir><file name=".DS_Store" hash="286b9ee8ade7883fb60d91c7d0c64900"/></dir><dir name="controllers"><file name="CheckoutPosController.php" hash="c7efe60bb75c06fb279fc051597a37b8"/><file name="GetInstallmentsController.php" hash="175bdd2692050f0118bcb90d354b60f1"/><file name="ProcessController.php" hash="f13bf04ac2e5ddb6ede00eeced522860"/><file name="UpdateCartController.php" hash="c7280eb6b5b5f87e2dd9f06cc4370e97"/></dir><dir name="docs"><dir name="httpauthentication"><file name="cgihtaccess.patch" hash="b1ca6c18002d1c22f53c8dd55aee1845"/><file name="howto" hash="31677f6b34fca607f8751c9eb5bdcac2"/></dir><file name="readme" hash="aae2884b18ed35ab74c7e73f4baec6e3"/><file name="test-cards" hash="d7a4a41bc2bb17f74dcbcfbc41156675"/><dir name="translation"><file name="Adyen_Payment.csv" hash="0094e6a70aca120e94cc395f139f1687"/><file name="Mage_Checkout.csv" hash="7d3bcce1ce01d189d113d02b949b73ca"/><file name="howto" hash="00a8a321b06b7235c6e6ca39cfcef80f"/></dir><file name=".DS_Store" hash="cbdf8e79d5e282650b9b7136c3b9ad33"/></dir><dir name="etc"><file name="Notification.wsdl" hash="cbba67067d372790e91225b4049c7e0d"/><file name="Payment.wsdl" hash="a4bcff4f854a5efda30b7678eee2040f"/><file name="config.xml" hash="04c91aeb65ce9b4a70711bf137fec297"/><file name="system.xml" hash="5027279dc270cbf022c85ea74a89f3c8"/></dir><dir name="sql"><dir name="adyen_setup"><file name="mysql4-install-0.0.1.php" hash="3c304ff04d461bc0bfa6205c03dceea0"/><file name="mysql4-upgrade-0.0.1-0.0.2.php" hash="3d687c555ed52be5eeb4eaba126abb2b"/><file name="mysql4-upgrade-0.0.7-0.0.8.php" hash="27b202258c2bd16ee64902df7985862e"/><file name="mysql4-upgrade-0.0.8-0.0.9.php" hash="85d3de753b99b541a4547c39b7713905"/><file name="mysql4-upgrade-0.1.0.3-0.1.0.4.php" hash="8b43e357cf7a365b1e099b130db51b20"/><file name="mysql4-upgrade-0.1.0.8-0.1.0.9.php" hash="0ba22acbe3f48fc1ae1e76212a11dc2a"/><file name="mysql4-upgrade-0.1.0.9-0.1.0.10.php" hash="2b029ba94cea8dd9b6d82a0de265234f"/><file name="mysql4-upgrade-1.0.0.3-1.0.0.7.php" hash="c087b4bbc48cf47e954b6cfbd1f2c5bb"/><file name="mysql4-upgrade-2.0.3-2.1.0.php" hash="09d7c123a6270e4ee029f187d92c1c31"/></dir></dir><file name=".DS_Store" hash="327f3b98fa44a731152378b2757ed144"/></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="adyen.xml" hash="a963acf4938f60fde0672bb6177399f1"/></dir><dir name="template"><dir name="adyen"><dir name="form"><file name="boleto.phtml" hash="83c7bc35d037f426aa75c0719e8adb86"/><file name="cc.phtml" hash="054ab1e3fa2b3901973a76e4f7547c10"/><file name="elv.phtml" hash="4d370d2d737f0a42ebcb33e7151ecee6"/><file name="hpp.phtml" hash="dcb1987da78dc78d45437de3bc0a10f9"/><file name="openinvoice.phtml" hash="33127af4713430e153cccbe8684fab13"/><file name="pos.phtml" hash="c07c11d348fced7d889ded4fc77e3363"/><file name="sepa.phtml" hash="aad80786900ccbe1b211ddbc0c00febd"/></dir><dir name="info"><file name="boleto.phtml" hash="d7fbc6f480f75d07a52a79ea7cf8457a"/><file name="cc.phtml" hash="be7d0e812e4c8eed5de08f2c37cf3875"/><file name="elv.phtml" hash="7a6b627e0c6acd04497d52f5047e930a"/><file name="hpp.phtml" hash="c6cccc2520a32a42f509b2ca9bf5a4c1"/><file name="openinvoice.phtml" hash="46550d1d3dbe0a92c89dd6272f5d9104"/><file name="pos.phtml" hash="a5b175023f0670409122876074d6f050"/><file name="sepa.phtml" hash="49f960b088e563135860774517fbcdfe"/></dir><dir name="order"><dir name="view"><file name="history.phtml" hash="9a6d80c534d935c63eb900d7d892e9ff"/></dir></dir><dir name="pdf"><file name="boleto.phtml" hash="50853749a944124f076d129fd5e6cfa9"/><file name="cc.phtml" hash="50853749a944124f076d129fd5e6cfa9"/><file name="elv.phtml" hash="50853749a944124f076d129fd5e6cfa9"/><file name="hpp.phtml" hash="4cdb4f7c88b6556fc847c21d5d4b7ffb"/><file name="openinvoice.phtml" hash="742b87babbb612032d68a8e79d31e89c"/><file name="pos.phtml" hash="a3dc27a6607b4978c93b21d945661e5c"/></dir><file name="pdf.tar.bz2" hash="d4b4edd908e7784efc8ac45fe1ce73cb"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="adyen"><file name="blank.phtml" hash="03d788d9ec2aa70de7eb66015b2c4da1"/><dir name="checkout"><file name="success.phtml" hash="56c5bdd54f9cbed22be7afe0deedead4"/></dir><dir name="form"><file name="boleto.phtml" hash="21b6c7d06dfef2bb9f8de8205bc2c6a9"/><file name="cc.phtml" hash="e504c4b3b0f78ece12d20b3631264a45"/><file name="elv.phtml" hash="789610e3d1f8973f6aecb4ef119a59c9"/><file name="hpp.phtml" hash="8d2c341ec0970e9bc81e481d437826cc"/><file name="oneclick.phtml" hash="08c71d3c3bf62fa736ac3dbf65d1c907"/><file name="openinvoice.phtml" hash="4dbda9d80bd82328ec8b33c775f44599"/><file name="pos.phtml" hash="674097ccf62f13c969d39c2f6a6824b8"/><file name="sepa.phtml" hash="a536c0245cc8a5e0762a5e9fb567d325"/></dir><dir name="info"><file name="boleto.phtml" hash="c526f9c4badab3afaa771872bb4687f1"/><file name="cc.phtml" hash="cda685b7c94fc401158bf5901e66c8b6"/><file name="elv.phtml" hash="8b850e97ea84e1de5ead4ec487c4356f"/><file name="hpp.phtml" hash="4d91b5d0729eafc220268d204b514cae"/><file name="openinvoice.phtml" hash="2bcd711e1255923d53f353819e19529e"/><file name="pos.phtml" hash="9b917920aa1cc77c9e8c3a26943b1335"/><file name="sepa.phtml" hash="c886a3d9923c3ade6ca5056f18c1b856"/></dir><file name="posExpressCheckout.phtml" hash="0db835c5f5998f660d03ce4ba88bdb05"/><file name="scanProduct.phtml" hash="792b3dbc6f10b4b9f8aff824d09f4f7a"/></dir></dir><dir name="layout"><file name="adyen.xml" hash="09dd483ce555ef83bd87d86b8f8f3165"/></dir></dir></dir><dir name="default"><dir name="adyen"><dir name="template"><dir name="checkout"><dir name="onepage"><dir name="payment"><file name="methods.phtml" hash="bda669695d2150eaccdcaeeb6b419949"/></dir></dir></dir><dir name="onestepcheckout"><file name="checkout.phtml" hash="520e231832277d5d09bb3be8134c56f8"/><file name="payment_method.phtml" hash="f2852a921420340ef82a5d2f4f799fee"/></dir></dir></dir></dir><dir name="rwd"><dir name="adyen"><dir name="template"><dir name="checkout"><dir name="onepage"><dir name="payment"><file name="methods.phtml" hash="bda669695d2150eaccdcaeeb6b419949"/></dir></dir></dir><dir name="onestepcheckout"><file name="checkout.phtml" hash="c315e54e6ba093bcc737df1bb1f8f0b9"/><file name="payment_method.phtml" hash="f2852a921420340ef82a5d2f4f799fee"/></dir></dir></dir></dir><dir name="enterprise"><dir name="adyen"><dir name="template"><dir name="checkout"><dir name="onepage"><dir name="payment"><file name="methods.phtml" hash="413a7bc55d51d278e743a33f35df8f88"/></dir></dir></dir><dir name="onestepcheckout"><file name="checkout.phtml" hash="c315e54e6ba093bcc737df1bb1f8f0b9"/><file name="payment_method.phtml" hash="f2852a921420340ef82a5d2f4f799fee"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Adyen_Payment.xml" hash="e4d297a9b401c4548acb47aea1ae41d9"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="images"><dir name="adyen"><file name="ABNAMRO.png" hash="a621e7f4cf1c3340ac5147fef5544bfe"/><file name="ABNAMRO.xcf" hash="eac24c953dcf05d40ce928ccab2af90f"/><file name="ASNBANK.png" hash="13034bc0836590cfb0ec7b6c3076e435"/><file name="FORTIS.png" hash="3b68fa26a90f8cd44e2f8dfcb5f72fe8"/><file name="FRIESLANDBANK.png" hash="c1388a9b8a170260b0b72da9b2cd2dbf"/><file name="ING.png" hash="b08f829cf67322875ca12d5fc36ac191"/><file name="KNAB.png" hash="4df678f84bdf11db9b75d1e539a0367c"/><file name="POSTBANK.png" hash="ea0ffd9d3e9717fe0bdc160d8cd92482"/><file name="RABOBANK.png" hash="f09418ebbd0d6daf21786d5bde93e856"/><file name="REGIOBANK.png" hash="0c3a984ce817e4d3ec98549be7704712"/><file name="SNSBANK.png" hash="75f988e3ab935d6d509a86f82422f474"/><file name="SNSREGIOBANK.png" hash="34a70ac0e1e0a8cfb56c77a5b1da3c80"/><file name="TESTISSUER.png" hash="0110aadd0f619b39f357b98b63e3ff69"/><file name="TESTISSUER10.png" hash="b2462fe98e69d211e92771ae75f48552"/><file name="TESTISSUER2.png" hash="471cc38e61077fdaba8fd868fea22dfe"/><file name="TESTISSUER3.png" hash="4ca46be0b7607dc95caccb5ec974e0a8"/><file name="TESTISSUER4.png" hash="6e31a3d3e73390432a84e394a1937c5d"/><file name="TESTISSUER5.png" hash="78b758fef66f220e79b1b9ecda8851d2"/><file name="TESTISSUER6.png" hash="4aefac8baaa06592c8a80f085c0ade08"/><file name="TESTISSUER7.png" hash="0474b1a3264ef45068013747a27158d2"/><file name="TESTISSUER8.png" hash="5e655c4af04b417acecac6fd66623662"/><file name="TESTISSUER9.png" hash="6e378c3b7c75febd0be361ec39c55e45"/><file name="TESTISSUERCANCELLED.png" hash="c794eeb78ef618c3e9dcd8b444b7b23f"/><file name="TESTISSUERPENDING.png" hash="04ee87a5c35a491e624719a3c885d492"/><file name="TESTISSUERREFUSED.png" hash="2f7e2bad6857f39f32afd09eb846e55a"/><file name="TRIODOSBANK.png" hash="922b1fcd51306e0d0da6b15ebe640d8c"/><file name="VANLANSCHOTBANKIERS.png" hash="0a5d713a5c73c54e90507743456c5657"/><file name="achcolombia.png" hash="1f1339c682440cfd7584f9ba00f59722"/><file name="achcolombia_small.png" hash="d6b2899a0039de82788c831b00dd1533"/><file name="achcolombia_small_grey.png" hash="bcae575368bdcdb582423e28ac7a56e9"/><file name="achcolombia_tiny.png" hash="a287c57b8bcc821371758da895db6437"/><file name="advance_payment.png" hash="5aba603621b4b21cc05b7eae1f7455da"/><file name="adyen_logo_large.png" hash="70726ef290d0eee3ed163eb751091813"/><file name="afterpay_default.png" hash="a62e3982d50612522be071d4e86eaa6a"/><file name="alipay.png" hash="e3773ada96577e575c9e1300a89a5875"/><file name="alipay_small.png" hash="f9848d15fc7ee22b6687ccdbe7f36a16"/><file name="alipay_small_grey.png" hash="e5ffe7ff272ce2814b7808fd047a9c6b"/><file name="alipay_tiny.png" hash="1a7867dd958ddcdd90ad2400e5be23de"/><file name="amex.png" hash="8e3b962f9ef18e08cf16b77934607d28"/><file name="amex_small.png" hash="6ce7c9a2b330c9c46f0213c40db55683"/><file name="amex_small_grey.png" hash="0f6aabd8dfcbf48dbb555b9191d7795e"/><file name="amex_tiny.png" hash="b7016f4efb163c985d6f1d99a8433d2a"/><file name="asiapay.png" hash="44626dc317e547fb40010498c1096407"/><file name="asiapay_small.png" hash="cca4d86b5abc510f20ca9563d7215c3d"/><file name="asiapay_small_grey.png" hash="00e20b2b2eb0d2ad51c15d8ccc558dc5"/><file name="asiapay_tiny.png" hash="ba0d613d94a64918c0338504fed20ee7"/><file name="autopay.png" hash="4251763c71239e7b1b421e4bc7f5b70a"/><file name="autopay_small.png" hash="ca6941b80b6157bae2411b5620149d2d"/><file name="autopay_small_grey.png" hash="f69d143b4f1fc16a9138ccfacec808a4"/><file name="autopay_tiny.png" hash="4c0c91402daafc63bdb5979dbbd963db"/><file name="babygiftcard.png" hash="91bcbb6604b26565b89898c9a8e1e117"/><file name="babygiftcard_small.png" hash="2558bbdd4d9528b37ba93a8c4af536a4"/><file name="babygiftcard_tiny.png" hash="393a192fab9874e3b167c3bc5d568db7"/><file name="baloto.png" hash="1c172c628f79837c83196b243c636ff5"/><file name="baloto_small.png" hash="c66db84ac7fed6f81010e8058fa39a74"/><file name="baloto_small_grey.png" hash="bdc5eac76e02a658b348a0722fca9ba9"/><file name="baloto_tiny.png" hash="5e10ee14c8a44c3b4c28571664fa045f"/><file name="bancnet.png" hash="a2b687ef27244e448b85635cc1d3ec60"/><file name="bancnet_small.png" hash="4473bc16badc29200ffd09021778b1e3"/><file name="bancnet_small_grey.png" hash="6b108ea906b6d6a5ad51e4de6db732eb"/><file name="bancnet_tiny.png" hash="0ac28b35fd4e09954debcd2eb42e89ce"/><file name="bank24.png" hash="9a921572d6bae73604e1122ec3e5bf7e"/><file name="bankTransfer_AE.png" hash="a6f29729723fa65c732ffc9267b3f8be"/><file name="bankTransfer_AE_small.png" hash="a3322805ab1c40c4e6237943185284ab"/><file name="bankTransfer_AE_tiny.png" hash="dfcf50c97c3b832fd3c17efb2864335c"/><file name="bankTransfer_AT.png" hash="7fa4204d1426a64a4cd26af06af44d41"/><file name="bankTransfer_AT_small.png" hash="31037dcf034d1e9d28254d1962b2ca16"/><file name="bankTransfer_AT_tiny.png" hash="4ee9964118e05d2a81335f3033ec5bf1"/><file name="bankTransfer_AU.png" hash="05716c67579fcf3574037ce69c9e4229"/><file name="bankTransfer_AU_small.png" hash="acd23b8e3ccf3c9d28960fde63c22e85"/><file name="bankTransfer_AU_tiny.png" hash="4a3ee62afdac23a00a0675c763e93470"/><file name="bankTransfer_BE.png" hash="5547426f07e0562ba9b605f1f04a9ad7"/><file name="bankTransfer_BE_small.png" hash="007dbd9f27115b601eb94db09a10b8f3"/><file name="bankTransfer_BE_tiny.png" hash="cf0285a691339efad52d82d40c7aa9f1"/><file name="bankTransfer_BG.png" hash="be209415f5bec0a45bd2bd9cd3c41d0a"/><file name="bankTransfer_BG_small.png" hash="6249144aa579c494988b5bbecb22eb69"/><file name="bankTransfer_BG_tiny.png" hash="7c11956844dbf7cc76db038b32fc7ab1"/><file name="bankTransfer_CH.png" hash="9b20d62386085ac2c9da1227abec5d58"/><file name="bankTransfer_CH_small.png" hash="2887bcf97901ed7ed6bc4fb5d8a00876"/><file name="bankTransfer_CH_tiny.png" hash="c0218d075bbb503689f40007a331ba85"/><file name="bankTransfer_CZ.png" hash="78f7aac275e10af77b3bbab28ba1aa23"/><file name="bankTransfer_CZ_small.png" hash="7bf17799b64aa618945981eb7fa00cce"/><file name="bankTransfer_CZ_tiny.png" hash="7f2a7e2fde701bff21fa388776e73632"/><file name="bankTransfer_DE.png" hash="989d5e1cc2547504b0fbc7aa88e08713"/><file name="bankTransfer_DE_small.png" hash="fb50048c4acfdebf85c4c8f90d8b08d9"/><file name="bankTransfer_DE_small.xcf" hash="cfbc9a47bc116e97a121771c0aa6fe83"/><file name="bankTransfer_DE_tiny.png" hash="d4d68f1068df68f61cb828005c9c0ac9"/><file name="bankTransfer_DK.png" hash="a2e9a409144a8ef18747faafa2937609"/><file name="bankTransfer_DK_small.png" hash="71e75c357b475fe236b633ac8a2a76cd"/><file name="bankTransfer_DK_tiny.png" hash="0103bbe5b8a803aad990bd4ad53c88c0"/><file name="bankTransfer_EE.png" hash="9caa3e1ac3558e9ec372c45df045bae6"/><file name="bankTransfer_EE_small.png" hash="91ffe550444bac13ac29ac1696ffdfac"/><file name="bankTransfer_EE_tiny.png" hash="59ea293d7ba58cd6dd9a9a2b43088093"/><file name="bankTransfer_ES.png" hash="7d0051c7ee32eddca94b89368bb5afbe"/><file name="bankTransfer_ES_small.png" hash="2dc1519510ef7bea726e0bca70859c06"/><file name="bankTransfer_ES_tiny.png" hash="a2338a0d60b2585ac34269daf794d189"/><file name="bankTransfer_FI.png" hash="ffbe8dfa936a4628e3c029bd957f367d"/><file name="bankTransfer_FI_small.png" hash="1db5d45d947502483a2e8c40aab3734d"/><file name="bankTransfer_FI_tiny.png" hash="b9f26cef0fc7f051b6d79ada14c902ba"/><file name="bankTransfer_FR.png" hash="572f77cf0f22103300682c5f89e9d9e9"/><file name="bankTransfer_FR_small.png" hash="58a268c927e4d19858ed3241ceac05f8"/><file name="bankTransfer_FR_tiny.png" hash="dee4c0c47d94fb0e2ab032264c4d1543"/><file name="bankTransfer_GB.png" hash="5a7eee2f31bec7bf422425f31aea2d5a"/><file name="bankTransfer_GB_small.png" hash="17d3c0ca20cee2250e3b6d0f5f080ba9"/><file name="bankTransfer_GB_tiny.png" hash="24d7d3ce5dc62ef776f3f36f24ff78b1"/><file name="bankTransfer_GI.png" hash="e9035b335bd8dc809c7e4afc7d775cc0"/><file name="bankTransfer_GI_small.png" hash="e51bd2f8333a8d8b2163c777c5b12b48"/><file name="bankTransfer_GI_tiny.png" hash="d158401d4dd73a057adac68f3f23ad89"/><file name="bankTransfer_GR.png" hash="aefe60c85d74d77d1c1327538617f297"/><file name="bankTransfer_GR_small.png" hash="b9a0a5d6ec52c80d72d8e8cf903f37f3"/><file name="bankTransfer_GR_tiny.png" hash="1dc0912afd646785eade5d8785baa12c"/><file name="bankTransfer_IBAN.png" hash="f636fcae0c128e08baaef26dacaa078d"/><file name="bankTransfer_IBAN_small.png" hash="ffc0073f2fe405de05206cdfc1565daa"/><file name="bankTransfer_IBAN_tiny.png" hash="4a4f64cb62ca9cfec99d117d0169bb83"/><file name="bankTransfer_IE.png" hash="eb6efba5502d54571022feaef9a9ded3"/><file name="bankTransfer_IE_small.png" hash="d9359e8a2bf8c04d4d43acdcc8b30a5e"/><file name="bankTransfer_IE_tiny.png" hash="b3a0f75656b535960c362baaabc45ce3"/><file name="bankTransfer_IT.png" hash="cd56062b943e4ec6716bc72ebe4b62a9"/><file name="bankTransfer_IT_small.png" hash="29ac58a26ae12dc26dd2d501262ed361"/><file name="bankTransfer_IT_tiny.png" hash="c45892a3e2ae81bb9b4508d79164e556"/><file name="bankTransfer_JP.png" hash="20023e2e93afc881740ea74e89251d86"/><file name="bankTransfer_LU.png" hash="b3dbdeea3429de5280c3a6d911930e9a"/><file name="bankTransfer_LU_small.png" hash="ebb919c647653075be4d9bfaeec8c00c"/><file name="bankTransfer_LU_tiny.png" hash="ec058289aef35f481077c56cdf758032"/><file name="bankTransfer_MT.png" hash="8955bc706cf66307ba69e58d8006af2d"/><file name="bankTransfer_MT_small.png" hash="13ce68bbda83c39b8719d356705da6d2"/><file name="bankTransfer_MT_tiny.png" hash="b05aa11e844f09fa797a3540534e5155"/><file name="bankTransfer_NL.png" hash="ccffd7131f791f7eb44e21b42fd66cc4"/><file name="bankTransfer_NL_small.png" hash="90f18f3784ec4c4733891aafd2e83958"/><file name="bankTransfer_NL_small.xcf" hash="ac17edd9804089820e9d73c76441abfc"/><file name="bankTransfer_NL_tiny.png" hash="61e9d461381aa1fb7e9dbcc8012686e0"/><file name="bankTransfer_NO.png" hash="ffcb1204470ff94a7cf2025e000e4978"/><file name="bankTransfer_NO_small.png" hash="daab5aceaf8e4dd59dfcf29fa69cdc24"/><file name="bankTransfer_NO_tiny.png" hash="3fbbf9e381d8d0d9ada61a54778655cb"/><file name="bankTransfer_PL.png" hash="cd25fefef6bce86a97ab7242138360e2"/><file name="bankTransfer_PL_small.png" hash="880b17d7d090c7bd21965e9b78894851"/><file name="bankTransfer_PL_tiny.png" hash="9579393e3dbb3c2aeb7ebf35e54ef4e7"/><file name="bankTransfer_PT.png" hash="c3c652523d77b5d085da97111c96ef9e"/><file name="bankTransfer_PT_small.png" hash="9d3a979ef52298bcc1545b131bd4a3db"/><file name="bankTransfer_PT_tiny.png" hash="cf2be093140773d75d8993fab7aa347c"/><file name="bankTransfer_SE.png" hash="e5608461fa8bdbac771449f30cde91ec"/><file name="bankTransfer_SE_small.png" hash="0f57f6092f8bef25c9973a140a2d85ad"/><file name="bankTransfer_SE_tiny.png" hash="79f3a00608bf18d686d89562af80a72f"/><file name="bankTransfer_SK.png" hash="2390a923affb1640b1b8bb801ce04705"/><file name="bankTransfer_SK_small.png" hash="50adde906c3a965992bbfb04554a5371"/><file name="bankTransfer_SK_tiny.png" hash="d4866f13969214fd774ea1c427a048e6"/><file name="bankTransfer_US.png" hash="9013561099b618aa954f5a3e1352a6ce"/><file name="bankTransfer_US_small.png" hash="191e204c1216a199229da9d75ed1a2a5"/><file name="bankTransfer_US_tiny.png" hash="9d9e942b93d13a18e38aac0ee932fe15"/><file name="bank_ru.png" hash="2390a923affb1640b1b8bb801ce04705"/><file name="bank_ru_small.png" hash="01c263789dd7e38ac4078f55161ec19b"/><file name="bank_ru_tiny.png" hash="d4866f13969214fd774ea1c427a048e6"/><file name="barras.png" hash="389f5242e23cc5b386392d5d21459f21"/><file name="barras_small.png" hash="9e657657b963a1434e88d4289acf9448"/><file name="barras_small_grey.png" hash="d14dbd53e9a52706bf736525a90d8f63"/><file name="barras_tiny.png" hash="e46d37c7e69ef3722876a0205431f1c8"/><file name="bcmc.png" hash="28dca1b34022f2c653c13556c452fce3"/><file name="bcmc_small.png" hash="49698208e5b73f80773260c3fdb3e5a3"/><file name="bcmc_small_grey.png" hash="5069f14bff23c074af6fe2092a2e482a"/><file name="bcmc_tiny.png" hash="3b4221516dc0d1ace3432a473903991e"/><file name="beelinesms.png" hash="a559096cb240aaf7696be7563498b18b"/><file name="bijcard.png" hash="c93da8e22fac6869d729e961df24b593"/><file name="bijcard_small.png" hash="f188b92b77af1613a91c00450d3eb168"/><file name="bijcard_small_grey.png" hash="08eb4420ac9f7a7f691d688e9550f651"/><file name="bijcard_tiny.png" hash="b88eeed8f7318514f849e3ed3a9a2ce8"/><file name="bill99.png" hash="461213bcf10fb394ef524d3a0ad92ee0"/><file name="bill99_small.png" hash="d6e30f7d3da5ce34af3aa7e2353b4809"/><file name="bill99_small_grey.png" hash="a66c49f3556fa99301f4288341eaa014"/><file name="bill99_tiny.png" hash="d10dbbf6512e15252ad6d1337670a7fd"/><file name="boleto.png" hash="3968115c3576a14f7cdc8ebd98c8092e"/><file name="boletobancario_hsbc.png" hash="3968115c3576a14f7cdc8ebd98c8092e"/><file name="boletobancario_itau.png" hash="3968115c3576a14f7cdc8ebd98c8092e"/><file name="boletobancario_santander.png" hash="3968115c3576a14f7cdc8ebd98c8092e"/><file name="bradesco.png" hash="d5ae6f8cb39883cce8c97c0d11257a4c"/><file name="c_cash.png" hash="1b9d5b0c9ece2eaff0be71b4082e0655"/><file name="c_factuur.png" hash="cd46b7d11c9dd79b1cc9c073c0696aff"/><file name="c_factuur_small.png" hash="63d4c6fd1e5b214d018f3e00ca687cd5"/><file name="c_factuur_tiny.png" hash="153791c1eb5bae6095e1210787ffe4fa"/><file name="c_invoice.png" hash="cd46b7d11c9dd79b1cc9c073c0696aff"/><file name="c_invoice_small.png" hash="63d4c6fd1e5b214d018f3e00ca687cd5"/><file name="c_invoice_tiny.png" hash="153791c1eb5bae6095e1210787ffe4fa"/><file name="c_oprekening.png" hash="cd46b7d11c9dd79b1cc9c073c0696aff"/><file name="c_oprekening_small.png" hash="63d4c6fd1e5b214d018f3e00ca687cd5"/><file name="c_oprekening_tiny.png" hash="153791c1eb5bae6095e1210787ffe4fa"/><file name="c_paypal.png" hash="fe5fd0065e4a84e967095f082b329d7f"/><file name="c_paypal_small.png" hash="294698dab8f5aa31f2ad62702bd9d379"/><file name="c_rembours.png" hash="fb2da23375ce5ba67380dc0fb60e7669"/><file name="c_rembours_small.png" hash="0d0f244c1820921db3a6635552cf8129"/><file name="c_rembours_tiny.png" hash="c15d78de45389d475f2786fed3e81c4b"/><file name="card.png" hash="adfe3d9fe45c3f94b9edca852e2cb38c"/><file name="cashticket.png" hash="0dba12beffb7c5ebf47ae1e5701426f3"/><file name="cashticket_small.png" hash="ade5518971a871dd48b0628af6f6cf89"/><file name="cashticket_small_grey.png" hash="348c3721fbedfb2a7121f57db435f43e"/><file name="cashticket_tiny.png" hash="95248971eb69c150748b9acf27f68fb5"/><file name="cashticket_tiny2.png" hash="16ab15f5263fe81ab5233d02ce2cd715"/><file name="cashu.png" hash="1b6d79438ad686cdff44866a66445dca"/><file name="ccavenue.png" hash="aee563b4c9c77d8a881db1e79ad8758d"/><file name="ccavenue_small.png" hash="ffa7390808c679e8d6c580fcf14054fb"/><file name="ccavenue_small_grey.png" hash="9a6c58e88230fb6a167e597752a533ab"/><file name="ccavenue_tiny.png" hash="994d56725d095d107fb33c6f3abf7653"/><file name="cellpaypoint.png" hash="c676483390c0c7e932a320b6326593da"/><file name="cellpaypoint_small.png" hash="f720447e73325b922568a00d0effe75c"/><file name="cellpaypoint_small_grey.png" hash="c6deea99f2099ade43b2b75dcb62f273"/><file name="cellpaypoint_tiny.png" hash="5c00501360e94b3020ff54bccbc2e531"/><file name="ciberpay.png" hash="625d300997f331918e912dc266e1a3a4"/><file name="contact_ru.png" hash="5f70b79ee4232a81a9f7eb0224b0ba3c"/><file name="creditcards.png" hash="cd1a83b970a38307c2899f9949495a00"/><file name="dineromail.png" hash="9058ea237d278d5fd238c2d180807c57"/><file name="dineromail_ar_amex.gif" hash="4a94da8ec02c565e8cfcb66fbfffe362"/><file name="dineromail_ar_argencard.gif" hash="422ea3362cc44616f72a887f5cba66c6"/><file name="dineromail_ar_banktransfer.gif" hash="758e12e370a5b213996ea1f39259721a"/><file name="dineromail_ar_bapropago.gif" hash="df51325a4fae890a5a6673f92bb64f5d"/><file name="dineromail_ar_cabal.gif" hash="98f6cc5d54df43b4c4a17d9fc2dfb9bd"/><file name="dineromail_ar_cobroexpress.gif" hash="910960360ea1cd632a69ab500cd627ee"/><file name="dineromail_ar_dm.gif" hash="b458246e266ecb059865ab17b7673882"/><file name="dineromail_ar_italcred.gif" hash="aa4376df77748d39c670001794e7991f"/><file name="dineromail_ar_master.gif" hash="126cdc5db597363e5934cf19205f8f45"/><file name="dineromail_ar_pagofacil.gif" hash="2c85235d6dff444b1b914488d035eb7b"/><file name="dineromail_ar_rapipago.gif" hash="c745eb4d456f03c6643f40e77f9ad6ac"/><file name="dineromail_ar_tshopping.gif" hash="552daaa4621397aaed5cea3ad5fc89ec"/><file name="dineromail_ar_visa.gif" hash="61c86fd2afade160736b1c318a8280a6"/><file name="dineromail_ar_visa_hipotecario.gif" hash="bbdb3933302107611678bd7a87779a6c"/><file name="dineromail_br_amex.gif" hash="4a94da8ec02c565e8cfcb66fbfffe362"/><file name="dineromail_br_aura.gif" hash="b4a8dea00ceebb3d1d64660a997ac22d"/><file name="dineromail_br_bbancario.gif" hash="d9adffbdf626846cfe11b874c5bc0715"/><file name="dineromail_br_diners.gif" hash="b4f437b40f747842cb32becf8af28eb4"/><file name="dineromail_br_dm.gif" hash="65fa3eb604d2d5cd64b76ea0419788a6"/><file name="dineromail_br_hipercard.gif" hash="329dd978884c554fc8c0a37bd6c1ded9"/><file name="dineromail_br_master.gif" hash="126cdc5db597363e5934cf19205f8f45"/><file name="dineromail_br_oipaggo.gif" hash="9cad6e46ea39ec1d6af77ce9322835c1"/><file name="dineromail_br_visa.gif" hash="61c86fd2afade160736b1c318a8280a6"/><file name="dineromail_cl_amex.gif" hash="d4942bf6dab3c072e701e709adaecf78"/><file name="dineromail_cl_diners.gif" hash="9f5bccfc0ab73993405821859dab56b0"/><file name="dineromail_cl_dm.gif" hash="0b886856a701eff48c710a4812f999d0"/><file name="dineromail_cl_magna.gif" hash="bbbbed0d123e619dbf9ffc3308cb4f6e"/><file name="dineromail_cl_master.gif" hash="38b5c034caa6249caf49256f7df4894c"/><file name="dineromail_cl_presto.gif" hash="fa18e40e599f4216d0efea05d9329b5b"/><file name="dineromail_cl_ripley.gif" hash="8a0fe5295feeb9959f2dedf17b304215"/><file name="dineromail_cl_servipag.gif" hash="51cc675b605ce7dd88016743fc324e09"/><file name="dineromail_cl_visa.gif" hash="87fa159904723d830b30d9a0f2f2ff00"/><file name="dineromail_mx_7eleven.gif" hash="7595248bd6c735fc9cd28a0afe9e035c"/><file name="dineromail_mx_amex.gif" hash="4a94da8ec02c565e8cfcb66fbfffe362"/><file name="dineromail_mx_bancomer_tc.gif" hash="b2854f409126920b1c9cf8ed3792a349"/><file name="dineromail_mx_dm.gif" hash="9eede7e49ebcb145494952f6edb749b2"/><file name="dineromail_mx_hsbc_tb.gif" hash="1fb60730a0dfe9d0a0ebef45af1d8fdd"/><file name="dineromail_mx_ixe_tc.gif" hash="6e19e5be52b5bfce749f16b26e933c2e"/><file name="dineromail_mx_otherbank_tc.gif" hash="df05af375e248dcc04324aa92b6163b0"/><file name="dineromail_mx_oxxo.gif" hash="ee69da5b06d9c52ef76dd1a20bab5ebb"/><file name="dineromail_mx_santander_tc.gif" hash="5bb0f9600b1b8ad67d0a418c2412a506"/><file name="dineromail_mx_scotiabank_tc.gif" hash="dbe7bdd2d9327086cae42ee6a842d00c"/><file name="dineromail_small.png" hash="356e06d5a2fd5f98f3da4dfc192e389c"/><file name="dineromail_tiny.png" hash="98f6b908f7025a8babaffafcc1336428"/><file name="diners.png" hash="6310bb53fe7921cf016309d6a75b8c22"/><file name="diners_small.png" hash="ecf5d635a74460ca9575bb7d6d8550dd"/><file name="diners_small_grey.png" hash="77ff46143b8a4aab54eb35c345806a83"/><file name="diners_tiny.png" hash="881b5998d35cc373d294ca21689015d5"/><file name="directEbanking.png" hash="6d7ce2ff213c33743d80ab83fb24e8de"/><file name="directEbanking_axa.png" hash="3d90797ef39a0db23dd6373bdfef9ee8"/><file name="directEbanking_cbc.png" hash="f23617618a9e2ce7863a931947b49adb"/><file name="directEbanking_de.png" hash="9fa16b098e744e94553952c5a28c7dd2"/><file name="directEbanking_de_grey.png" hash="109b1237e5d69d7ae82dc9a64d6ab4fd"/><file name="directEbanking_de_small.png" hash="5f65ee79ae22c4ba52e6a8485cf155cd"/><file name="directEbanking_de_tiny.png" hash="15983a607b8151f0be3b5ecfb067ea7a"/><file name="directEbanking_dexia.png" hash="37ebcc9a12bc9c88d540f78adf9bd679"/><file name="directEbanking_fintro.png" hash="389b1a7b14e5466b7b0dd4721aee0433"/><file name="directEbanking_fortis.png" hash="511cc06fefa644cc7575a0efb227bd64"/><file name="directEbanking_grey.png" hash="109b1237e5d69d7ae82dc9a64d6ab4fd"/><file name="directEbanking_ing.png" hash="ac4f224d0fe9aee23d143acc5198dd72"/><file name="directEbanking_kbc.png" hash="eae3c85e332e4289841bd27a46031db3"/><file name="directEbanking_small.png" hash="db84d47793f8e375d48dc8b17f8a0ddf"/><file name="directEbanking_small_grey.png" hash="7f4fbbcfe647cf8d280238754061d042"/><file name="directEbanking_tiny.png" hash="7d804d09c7df931eb9cafc2d3a4984b1"/><file name="directdebit_BR_bancodobrasil.png" hash="784271e1bf909c95e79ff7de4d92ed5b"/><file name="directdebit_BR_bradesco.png" hash="d5ae6f8cb39883cce8c97c0d11257a4c"/><file name="directdebit_BR_caixa.png" hash="a0d69bc8a40bf120fc2138a694c31186"/><file name="directdebit_BR_hsbc.png" hash="4943f73d211b8111fd81ca8d4e06160d"/><file name="directdebit_BR_itau.png" hash="b24ed466c1d694dca7dc26ee42dbf330"/><file name="directdebit_BR_santander.png" hash="bd73ea7f9f46b0ed583e764f01e9a8d0"/><file name="directdebit_NL.png" hash="cf1246761401ad866b72d7b520506b22"/><file name="directdebit_NL_small.png" hash="2e6a7444f509232818458312f28f8c50"/><file name="directdebit_NL_tiny.png" hash="99ea09a985cf0221ce87d3696211704e"/><file name="discover.png" hash="491378a0e2ae6223ab41fc925b67575d"/><file name="discover_small.png" hash="8573aebe4938afb288749badb22aa091"/><file name="discover_small_grey.png" hash="e60b18fcd2f0509c02a08fa0bf7024b2"/><file name="discover_tiny.png" hash="78a2cb6ccedb121d3138b280e1778f84"/><file name="dotpay.png" hash="a09962a7357374482444accf6b066037"/><file name="dotpay_inteligo.png" hash="25492f3d9eaabae7aa1441fdf24947b3"/><file name="dotpay_moje.png" hash="1c948c8e2db27f09e44e4c6f3591e39c"/><file name="dotpay_mtransfer.png" hash="e9ef4a420639f227e650c9e456235059"/><file name="dotpay_multitransfer.png" hash="b604e3e946b41437bc485b0a95a76b2a"/><file name="dotpay_nordea.png" hash="cfda5216a9ae9b829e5121bbfaaf887b"/><file name="dotpay_potzta.png" hash="88670102fd0e7f532357d06ec66a8ec6"/><file name="dotpay_przelewz.png" hash="06cbe8767f3b1810e2a72b19a1bcc9c7"/><file name="dotpay_przelewz24.png" hash="64143c67feac20a193fd459ba0a6e8b4"/><file name="dotpay_small.png" hash="aabbcc9e2471e044c38ab63d8aa6d48f"/><file name="dotpay_tiny.png" hash="5c746221e7ec781c18bb4d7e6f0a66a0"/><file name="dotpay_zabka.png" hash="a6edae22b53cdd3b997f8c9b50840b2c"/><file name="ebanking_FI.png" hash="7d717c71a9174624d8e30a314c4f091e"/><file name="ebanking_FI_aktia.gif" hash="092c03a2319bd7c5d8fc9dc98516be46"/><file name="ebanking_FI_alandsbanken.png" hash="d64698c6c6dc9b6c8e1d2179dfb61d8d"/><file name="ebanking_FI_handelsbanken.png" hash="06f99903ea285bc5cf392ea6c642a267"/><file name="ebanking_FI_nordea.png" hash="c68ecd7c03b5d6a0819110c56df501e8"/><file name="ebanking_FI_osuuspankki.png" hash="cf9f495363970b9da3dbbaffe1031225"/><file name="ebanking_FI_sampo.png" hash="e5b4bd2ac745258b22ab832be253654a"/><file name="ebanking_FI_small.png" hash="57635f01d33e65d40af90d3ab4088ad7"/><file name="ebanking_FI_spankki.png" hash="e88599e1318b54be1990363607819811"/><file name="ebanking_FI_tapiola.png" hash="27ad56685d2e0e641a8d3e95942630ef"/><file name="ebanking_FI_tiny.png" hash="b0e3de2e531c362daaac6063c7a59d9e"/><file name="ebetalning.png" hash="0bc7c8cc01264df81ad06b0b75ce7c0a"/><file name="ebucks.png" hash="33d683c3a6f4f61df3c36e09d867936e"/><file name="ebucks_small.png" hash="c2afb7964e668ba7ba0416682fdd831b"/><file name="ebucks_small_tiny.png" hash="dd79fc153f0a7fcc79e628383e76ee26"/><file name="ebucks_tiny.png" hash="6085ef04ad96289d6a98e429c6d061ba"/><file name="elba.png" hash="8d2bfd3e8c0953b5d1ba80e201d25069"/><file name="elecsnet.png" hash="4a27849dfd5a8bc6771a962aff3908f4"/><file name="elv.png" hash="8e47d6ce919e1be80328665798d387ec"/><file name="elv_small.png" hash="a565fd570c28204b7ed0e92ebf667012"/><file name="elv_tiny.png" hash="3c9d929660d6279f255c7be9bf02ee8f"/><file name="empty.png" hash="65d7e6c42582ea986cb66ad78768b2ae"/><file name="enets.png" hash="5eae578677220e7085374936ffc2ec6a"/><file name="entertainmentcard.png" hash="df44b82c45f98790ea0e8866ecb5fee7"/><file name="entertainmentcard_small.png" hash="0466be6962e63c80c766ca4b092cded6"/><file name="entertainmentcard_small_grey.png" hash="32b0a15b2467decf84db199cd6db3bcf"/><file name="entertainmentcard_tiny.png" hash="2a7610575298bf7029bbbfad2bb86596"/><file name="forwardmobile.png" hash="023348014c3838963e48bdc8b397c387"/><file name="frame.png" hash="5e2226d7539f5d95dabe5988f4446282"/><file name="gallgall.png" hash="2e6b9f6aafaebe09112e089c05aa64ea"/><file name="gallgall_small.png" hash="24fabea2d5af04bedf9dd69e2368b943"/><file name="gallgall_small_tiny.png" hash="671cb1ce378d811cddaf77af7545d365"/><file name="gallgall_tiny.png" hash="769bf04c15a3b81f06940c237c3b3706"/><file name="giropay.png" hash="469cb654fe84b923b86b06723455ef9d"/><file name="giropay_small.png" hash="444f3a6307bb83a1d20d19e1cb8237f9"/><file name="giropay_small_grey.png" hash="565dd52d036a87d5c515c8bec4cef4f3"/><file name="giropay_tiny.png" hash="3a677e8d71ce59332e012db5bc343106"/><file name="globegcash.png" hash="580003d47ef03a6d1c7203bfc250b6d3"/><file name="globegcash_small.png" hash="cd18f17b46acb7ca15370b000f9bfa95"/><file name="globegcash_small_grey.png" hash="36e88a7a7170eb0c5ca7d3a8f2b08f13"/><file name="globegcash_tiny.png" hash="006794f78d9a43a56543a6e6b5a7ebd8"/><file name="hansabank.png" hash="b4dad91137678e09a650e1c6693e98d3"/><file name="hdfc.png" hash="b6e57b76ee8920607a2a0a809ee40d48"/><file name="hdfc_small.png" hash="1b9e555bfab7c0f11631dfecacffa637"/><file name="hdfc_small_grey.png" hash="cadac6a01cdab50cff177a1c0feb6156"/><file name="hdfc_tiny.png" hash="584260909cebec2286b6d1cd9489c7d4"/><file name="hppPos.png" hash="4780e785c785e93aed6ad13df323d6ef"/><file name="hyvesafrekenen.png" hash="5c8068c5b31a55f043cee6dff3246bb7"/><file name="hyvesafrekenen_small.png" hash="5a4c5747c030ac74cea799032ada3b26"/><file name="hyvesafrekenen_tiny.png" hash="2215dc356edeb426da65f43536960afe"/><file name="ideal.png" hash="6a851bfc5bac2835fd31c18c1224e8c9"/><file name="ideal_small.png" hash="8b115bda559a24a3564e02f7a90caae9"/><file name="ideal_tiny.png" hash="140c2e52427e074f95627a44db1f9f88"/><file name="interac.png" hash="c63021e21273e83423d8af2b4c7c1728"/><file name="interac_small.png" hash="0c74bd42750252eda57b054651afca18"/><file name="interac_tiny.png" hash="1a42ba184555605ab8e2ea1a4956f21a"/><file name="ipay88.png" hash="116aa967091843ee6e8e911ff4c34b22"/><file name="ipay88_small.png" hash="1dfb38797a43657d72b0701c446a841e"/><file name="ipay88_small_grey.png" hash="418f051bc03571334cec46e122fa698f"/><file name="ipay88_tiny.png" hash="0009e8c253c57564c3688010c5192ad4"/><file name="ivr.png" hash="0ebef34ac806802b0d29c1d74f84fdbf"/><file name="ivrLandline.png" hash="0ebef34ac806802b0d29c1d74f84fdbf"/><file name="ivrLandline_small.png" hash="155f9a61db970885782db7cbe997dab4"/><file name="ivrLandline_tiny.png" hash="ecf7994d1e627023dbd47615a8ebb848"/><file name="ivrMobile.png" hash="6a16e39d5deffb8fa3234108ca97b7de"/><file name="ivrMobile_small.png" hash="a9756b756b3ea56dea07a16edcdf39a9"/><file name="ivrMobile_tiny.png" hash="8c35341f8a8f6ca16b752ff7e1bb51bf"/><file name="ivr_small.png" hash="155f9a61db970885782db7cbe997dab4"/><file name="ivr_tiny.png" hash="ecf7994d1e627023dbd47615a8ebb848"/><file name="jcb.png" hash="68303da687ac6e8615196a66f40bb6fb"/><file name="jcb_small.png" hash="f469481ddecb206cfc74478c6b58266e"/><file name="jcb_small_grey.png" hash="ddb4587396f2e7c7ad83d2aa6561cf7a"/><file name="jcb_tiny.png" hash="5d89108481655ee9dc2dbf6476bbcc14"/><file name="kadowereld.png" hash="c2eea3806e2f55ffa2f7eb3154450be5"/><file name="kadowereld_small.png" hash="203f4584e34c3f059025f3d4329b4898"/><file name="kadowereld_small_grey.png" hash="3afa5e33cd29e5c3ce1723ea10607463"/><file name="kadowereld_tiny.png" hash="b2ca2f7f504670555d332f4c5e8d3074"/><file name="klarna.png" hash="51bc6b70472fe29b728192222b88c709"/><file name="klarna_small.png" hash="57a98dc539dd5c329aac8540a3204d1e"/><file name="klarna_tiny.png" hash="fe0295e2cba0b79136e86180d7db5963"/><file name="laser.png" hash="c64699ddd372b4a48e72b8066fd2aa78"/><file name="laser_small.png" hash="abda432193ffcd5388037fa34b9e0737"/><file name="laser_small_grey.png" hash="ef7193af17ae93fa9bb5215a0ec73195"/><file name="laser_tiny.png" hash="2f87b8e37582541355e9b77008cf3853"/><file name="maestro.png" hash="e91fa85475ae74b16b92b7ac05e562c2"/><file name="maestro_small.png" hash="7814fbfff53e57643137fd68889ec807"/><file name="maestro_small_grey.png" hash="31ab5c8168e8a5b075fe1136b221d453"/><file name="maestro_tiny.png" hash="87ff6ebe1ef2e4cbae340881169065c4"/><file name="maestrouk.png" hash="cf0fcc0e1f41ad2301d5814e4a9c88c4"/><file name="maestrouk_small.png" hash="7814fbfff53e57643137fd68889ec807"/><file name="maestrouk_small_grey.png" hash="31ab5c8168e8a5b075fe1136b221d453"/><file name="maestrouk_tiny.png" hash="87ff6ebe1ef2e4cbae340881169065c4"/><file name="mc.png" hash="0d108b48ed7f8e1f0020da611e223800"/><file name="mc_small.png" hash="51ca51c64a8f0277961effeb0a0dedbb"/><file name="mc_small_grey.png" hash="0762490e5dc86277d0e411468b01a269"/><file name="mc_tiny.png" hash="814af4ec011f2f33edb7d38763dea2ea"/><file name="mercadopago.png" hash="e8cdc9cab0494fbaec13ffa7a008f0d6"/><file name="mimoney.png" hash="0f6d07a6156c6dc931636c8c618384ac"/><file name="mimoney_small.png" hash="4a8b0586fd04690de902120a463ca5b2"/><file name="mimoney_small_grey.png" hash="c85a2d63e583a8fd231713d30d484ecb"/><file name="mimoney_tiny.png" hash="0c562f6e53a95ebe2ff12747f9271a56"/><file name="moneta.png" hash="c208f24cbe664e0c9df753d1dd6b8d43"/><file name="moneybookers.png" hash="7bfc54c2a787b53f699f124d7449a169"/><file name="moneybookers_small.png" hash="1290894e479fafda67291355ea65defe"/><file name="moneybookers_tiny.png" hash="4ed8a8052e9b394e174889de6d621604"/><file name="moneymail.png" hash="73d044eac9d9f1679a653dd2e62935f3"/><file name="moneymoney.png" hash="7204b9579b665085d00b1ea2184b678f"/><file name="multibanco.png" hash="178a9292a9743e3b8904f105e7d6715b"/><file name="nedbank.png" hash="a8a2dc3af1e76262b75270a24a041331"/><file name="nedbank_small.png" hash="d386a8672bd21e53580ae32ae529ca3a"/><file name="nedbank_small_grey.png" hash="7085229e1217e47b07663764f8bb1e6e"/><file name="nedbank_tiny.png" hash="af3694515dd8b68ca71324ca20089c58"/><file name="onebip.png" hash="ca289a3c9fd8d72bce90165db98a88b9"/><file name="online_RU.png" hash="afcc9ad6292e2e21feff4af23e2fa46e"/><file name="online_RU_small.png" hash="712fa0be37857b024e3118d96da61bab"/><file name="online_RU_tiny.png" hash="0e3ac8d1ca10dff95657aa9b9ebdc13b"/><file name="online_transfer_de.png" hash="43324fb914cdbf8eff66f3668a353f1e"/><file name="openinvoice.png" hash="cd46b7d11c9dd79b1cc9c073c0696aff"/><file name="openinvoice.xcf" hash="d5f41ec9c48415f65a519c33999a1229"/><file name="openinvoice_small.png" hash="63d4c6fd1e5b214d018f3e00ca687cd5"/><file name="openinvoice_tiny.png" hash="153791c1eb5bae6095e1210787ffe4fa"/><file name="pagosonline.png" hash="04a1d0c0bb46ed7f931b3d4e248f8c0a"/><file name="pagosonline_small.png" hash="9768e52502eb299716268a212a044812"/><file name="pagosonline_small_grey.png" hash="e9f7365e885652200fdb08201e1b13cf"/><file name="pagosonline_tiny.png" hash="70d51512b8bf5215f5865b21a3ca7731"/><file name="paypal.png" hash="02362803ca1d3ab9c9e8dc3176100d66"/><file name="paypal_small.png" hash="294698dab8f5aa31f2ad62702bd9d379"/><file name="paypal_tiny.png" hash="709c47f06297455d8d55d6937245e016"/><file name="paysafecard.png" hash="20861199bb6e8781c0b10e995f1490de"/><file name="paysafecard_small.png" hash="e7452ca00265fdc91dd28a2b326355d3"/><file name="paysafecard_small_grey.png" hash="06377beb14a2666f153b273e89053419"/><file name="paysafecard_tiny.png" hash="92b3df13741ef6f71d2c12206ab3f412"/><file name="payu.png" hash="bc671fff056fd108fe24ba52053111b0"/><file name="payu_small.png" hash="ca3eb82cb24dd1f1bfc34436287dc9d0"/><file name="payu_small_grey.png" hash="6097711eeb2ea309d407c03a467e1653"/><file name="payu_tiny.png" hash="2b89f57174338ba3d3192eb8519ece3f"/><file name="plastix.png" hash="82d3202239d01c6bf49d8dc2399900e2"/><file name="plastix_small.png" hash="447240736bdba2d15a34986395c3fb1f"/><file name="plastix_small_grey.png" hash="7e039f412a96a0e884f86598ebfccfb1"/><file name="plastix_tiny.png" hash="aaff5ff8c33af35fe4ae64e627c0964c"/><file name="platezhru.png" hash="2f36e088146ab75470c7a55177db8c07"/><file name="platika.png" hash="03e93ab41b0d330706e2c4f85cae966a"/><file name="postoffice_ru.png" hash="8ade3cd1711071ab73248d4ba62eae64"/><file name="pps.png" hash="29f4efc8d08cfd5ba90920b1fcef6bde"/><file name="pps_small.png" hash="7bf1fa7c4adcd8dfc2b2f56eb172fcaa"/><file name="pps_small_grey.png" hash="08d6188b7f5c13ec9c5f3488b4cbf19e"/><file name="pps_tiny.png" hash="4ed68db4ca98ac69f0557319a8284c8d"/><file name="pse.png" hash="6af65a4a18af66d103473fece5536e1c"/><file name="pse_small.png" hash="1f6695131dca61647b07f7180e695c46"/><file name="pse_small_grey.png" hash="7adf2fdfc48d8b078f7c0aeaa4f50e1c"/><file name="pse_tiny.png" hash="128b2749a126cfade0300f27c6919308"/><file name="qiwi.png" hash="b5e092af3394bc333fe83d073e8a6dfd"/><file name="qiwiwallet.png" hash="623b4c7fec53864fdee6d567da5f61cc"/><file name="refresh.png" hash="69ddc65b628d15a4375e66792c07484f"/><file name="safetypay.png" hash="af4e58d22f816f148faae179d0867b3f"/><file name="safetypay_small.png" hash="26749f1a95011897c8aaf568425df3dc"/><file name="safetypay_small_grey.png" hash="e5f3e5287e3fee2d77c065063b43e17d"/><file name="safetypay_tiny.png" hash="f3700f2d3cda7834cd178ac0f70d6352"/><file name="sendEmail.png" hash="cdddfa5e77d565a0ed23b6c26e0dee09"/><file name="sendEmail_small.png" hash="b5d63cc1613f08a08194442647ee451d"/><file name="sepadirectdebit.png" hash="e565455436d808fa07499131296490de"/><file name="sms.png" hash="7c6c0fddee039be4d879808b374f06f5"/><file name="sms_small.png" hash="fd1d52278d2446c7fe1c34d4fc70d556"/><file name="sms_tiny.png" hash="ed22de378fdbc717f987f8d4199e0452"/><file name="solo.png" hash="13f13c36cff7835d4a46df140fe432a3"/><file name="solo_small.png" hash="96de4f5f750a415fef573ce28092bf68"/><file name="solo_small_grey.png" hash="75c9b0b2daae0d6d80a5f5ff4f14e8d6"/><file name="solo_tiny.png" hash="3e2d7a21d19b12ed84aabdb26304fae6"/><file name="switch.png" hash="8cf19bb8c744a3f852511e781c176c07"/><file name="template.xcf" hash="e5035cd9e4e96859e50c1a9773098e89"/><file name="tenpay.png" hash="ddd0b5b8e3ff63cf1bfc555fbede0242"/><file name="tenpay_small.png" hash="2aa6c5919108eec42ed5c47ad4155a8f"/><file name="tenpay_small_grey.png" hash="6a21283b21295eefb4db553f877ea4c1"/><file name="tenpay_tiny.png" hash="736275eeec39e56c3c1d29fcb9d8ebb7"/><file name="terminal_RU.png" hash="711ab27d1cbbf6771e0ee133f75c7c46"/><file name="terminal_RU_small.png" hash="9bafe5dd035f73757f553250382764c6"/><file name="terminal_RU_tiny.png" hash="1b4dce2e901d90185933420cd80648cb"/><file name="tnt_rembours.png" hash="a8abb6f51d7893da39fcc2477d7bd2bb"/><file name="tnt_rembours_small.png" hash="72ee2b0ae6742cd325bda44a14093f4c"/><file name="trustly.png" hash="2a82872cc0ada644b0442e05423a2db8"/><file name="trustpay.png" hash="88a3680bf1007661ab4fc63106aa1ff4"/><file name="uhisbank.png" hash="8c0967455a15aefe3cdfb47240a18850"/><file name="ukash.png" hash="b95eb9f2658923c38a6252f5ff9ca9c7"/><file name="ukash_small.png" hash="2210a65cd1fb85bc883d112b12c79e6e"/><file name="ukash_small_grey.png" hash="65e6cc21082ebd3c93e96bbf96499df4"/><file name="ukash_tiny.png" hash="543ab39e6dcbc094188b4f473ac4b998"/><file name="unionpay.png" hash="068dee300e2c12e58e9a47d3556e977c"/><file name="unionpay_small.png" hash="55a00c9d7bbcbe1c448b449974d85af1"/><file name="unionpay_small_grey.png" hash="5c69e46ee4663f2d0e47c7f503bbd1e4"/><file name="unionpay_tiny.png" hash="45d3b4e758237412b524a5c52418da67"/><file name="unknown.png" hash="b2d137147db4d6eb7dacb5414a4f7a30"/><file name="unknown_small.png" hash="a5234e9eb2e4485acb19b196876d762b"/><file name="vias.png" hash="aca848fa54b173225fe17637699d87c4"/><file name="vias_small.png" hash="37bee85c36b52a07a4529735a194a41e"/><file name="vias_small_grey.png" hash="4da77d558ae9488ee2a85191e9db8748"/><file name="vias_tiny.png" hash="1a45f0a2696b5539195c2fcb69be49b6"/><file name="visa-electron.png" hash="308132b89febd4979bac61594919057f"/><file name="visa-electron_small.png" hash="5ab129027f4f4acbc7a9aa2b5d0e84d3"/><file name="visa-electron_small_grey.png" hash="712b876d4f060613f54f2ec04516e512"/><file name="visa.png" hash="30f9fde31aa41197e71ccd9a63a1fe75"/><file name="visa_fr.png" hash="abd117879295333ac54497e15f81ea18"/><file name="visa_fr_small.png" hash="837db98a87141717dcd1b90bcb5ff5b1"/><file name="visa_fr_small_grey.png" hash="e8cef14608278ab71ef2ffd58e65dc9e"/><file name="visa_small.png" hash="cdab39efaf22fcd2ab88f3dc42c32de1"/><file name="visa_small_grey.png" hash="9411565a7e81c5c3cc484863dc53031a"/><file name="visa_tiny.png" hash="e374bec64dcc345848b43f0a8a3490c2"/><file name="wallet_RU.png" hash="29213300b3cf644c64d915418f259d87"/><file name="wallet_RU_small.png" hash="3308a16ce0f5b474af32505f587079b5"/><file name="wallet_RU_tiny.png" hash="c46cdb588d7a9a21a909e5af842414b5"/><file name="wallie.png" hash="fc97552b8249c3e96aa6f3cf8e3577bd"/><file name="wallie_small.png" hash="c0b60fe348b16e157eb0c64043f410c2"/><file name="wallie_tiny.png" hash="df61209a0e0517bbb3d65119d5ebfcbd"/><file name="webmoney.png" hash="3cca800e0962e0078b64361de11b935f"/><file name="webshopgiftcard.png" hash="09990fe325b20c2fcdaaa855457d5348"/><file name="wiwallet.png" hash="5db11152a23a72b2f4676841261c5db0"/><file name="wiwallet_small.png" hash="a4c5567f59ca4575a316e1bf3eb066c1"/><file name="wiwallet_small_grey.png" hash="b75b2af0b5c6129e8c1d7bc9087222b4"/><file name="wiwallet_tiny.png" hash="8b53e98458e15bc19b242d05ad678f2d"/><file name="yandexmoney.png" hash="e6a38c66b08ba78a68096f8ff1b2a41d"/><file name="yourgift.png" hash="87bd1ef190d75ec64fb66b77aaeb7b8c"/><file name="yourgift_small.png" hash="17300795f7fd31d5cb730685c2eb0098"/><file name="yourgift_small_grey.png" hash="69b235ccb6b7ef0dfb3a2645be60dbc6"/><file name="yourgift_tiny.png" hash="a3bc0b90775458ff9ef8499f7a5437ca"/></dir></dir><dir name="css"><file name="adyenstyle.css" hash="c4f2cb9f27c1b6282d133245499f9128"/></dir></dir></dir><dir name="default"><dir name="adyen"><dir><dir name="onestepcheckout"><dir name="js"><file name="onestepcheckout.js" hash="a3f69ca218c08e6de153aac7120dc3c7"/></dir></dir></dir></dir></dir><dir name="rwd"><dir name="adyen"><dir><dir name="onestepcheckout"><dir name="js"><file name="onestepcheckout.js" hash="a3f69ca218c08e6de153aac7120dc3c7"/></dir></dir></dir></dir></dir><dir name="enterprise"><dir name="adyen"><dir><dir name="onestepcheckout"><dir name="js"><file name="onestepcheckout.js" hash="a3f69ca218c08e6de153aac7120dc3c7"/></dir></dir></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="adyen"><dir name="payment"><file name="adyen.encrypt.js" hash="6e6d006f2ac96f33a4531d3115f2d852"/><file name="elv.js" hash="db612a634c95727ec9db82c50e9aec8e"/></dir></dir></dir></target></contents>
40
  <compatible/>
41
  <dependencies><required><php><min>5.3.3</min><max>6.0.0</max></php></required></dependencies>
42
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Adyen_Payment</name>
4
+ <version>2.1.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/OSL-3.0">Open Software License (OSL-3.0)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Magento Plugin for Payment service provider Adyen</summary>
10
+ <description>Magento Plugin for Payment Service Provider Adyen. The plugin supports the Magento Community and Enterprise edition. Inhouse support on magento@adyen.com as well available through GitHub on https://github.com/adyenpayments/magento</description>
11
+ <notes>Features:&#xD;
12
+ * Make installments possible for the OneClick Payments&#xD;
13
+ * Added cash express checkout button on the shopping card for easy pay with cash&#xD;
14
+ * Added possibility to open cash drawer after cash payment&#xD;
15
+ * Cancel the order in Adyen as well when order is cancelled in Magento&#xD;
16
+ * Automatically create shipment for cash payment and added setting to do this for POS payments as well&#xD;
17
+ * Added checkbox for shoppers in CreditCard payments to not save their creditcard data for OneClick payments&#xD;
18
+ * Added Setting to disable payment method openinvoice(Klarna/AfterPay) when billing and delivery addresses differ&#xD;
19
+ * Show the payment method in Payment Information block of the order&#xD;
20
+ * After canceling payment on Adyen HPP reactivate current quote instead of creating a new quote&#xD;
21
+ * Added client side validation on "delivery_days" on the settings page in Magento&#xD;
22
+ * HPP Payment method show correct label in payment information panel in the Magento checkout page &#xD;
23
+ * POS now acts on CAPTURE notification instead of AUTHORIZATION&#xD;
24
+ * CANCEL_OR_REFUND improvements for POS&#xD;
25
+ * Improved support for Scanners that press enter after scanning barcode&#xD;
26
+ * OneStepCheckout improvments&#xD;
27
  &#xD;
28
+ Bugs:&#xD;
29
+ * Fixed that OneClick will not breaks when creditcard name has special characters&#xD;
30
+ * Fixed that the extra fee totals in the order confirmation email is not visible when the amount is zero.&#xD;
31
+ * Fixed Directory Lookup for amounts under the one euro and improved error messages when payment methods cannot be shown because of incorrect settings&#xD;
32
+ * Fixed that PaymentMethod is shown if you print the invoice&#xD;
33
+ * Fixed incorrect rounding in tax for OpenInvoice payment method&#xD;
34
+ * Fixed that GetInstallments call is not executed when installments are disabled&#xD;
35
+ * Fixed Client side validation for JCB, Maestro and CarteBlue&#xD;
36
+ * Fixed that in the backend the configuration are loaded from the store view where the order has been made instead of the default settings&#xD;
37
+ * Fixed that BankTransfer and SEPA are always auto captured because you can&#x2019;t capture the payment method&#xD;
38
+ * Fixed that DeliveryDate For Boleto is now correctly send to Adyen platform&#xD;
39
+ * Fixed that Ajax calls now support the HTTPS protocol&#xD;
 
 
 
 
 
 
 
 
 
 
 
40
  </notes>
41
  <authors><author><name>Adyen</name><user>adyen</user><email>magento@adyen.com</email></author></authors>
42
+ <date>2014-10-28</date>
43
+ <time>13:44:36</time>
44
+ <contents><target name="magecommunity"><dir name="Adyen"><dir name="Payment"><dir name="Block"><dir name="Adminhtml"><dir name="Form"><dir name="Field"><file name="Installments.php" hash="e73b36349ac2ac5f9687cd5ce5958e53"/></dir></dir><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><file name="Totals.php" hash="1460f2048e15c0d08405c00e68653a47"/></dir><dir name="Filter"><file name="Adyen.php" hash="e928bb38a944adc399d6a43321084667"/></dir><dir name="Invoice"><file name="Totals.php" hash="40f4258c2e79e25bd38abb8ed7a0a778"/></dir><dir name="Renderer"><file name="Adyen.php" hash="44bc7f403e35ce4711101f8b93192190"/></dir><file name="Totals.php" hash="3d6dfca8bcd137c85828a4d9a39507c5"/></dir></dir><file name="Version.php" hash="9e527d0424b878cba5160462c69c1cba"/></dir><dir name="Checkout"><file name="Success.php" hash="8edb224af51fb76d111807168268f67c"/></dir><file name="Failure.php" hash="ead96fee55fba2cbb5044f09566e85e4"/><dir name="Form"><file name="Boleto.php" hash="a787217b71dfeab643073cfed4ec20a9"/><file name="Cc.php" hash="51ccb4688de33d2d2ab680c3805a49e3"/><file name="Elv.php" hash="c3de45c9161b1564209b79a80140fec3"/><file name="Hpp.php" hash="afe655b84cfbdddde988725c4cee2740"/><file name="Oneclick.php" hash="f1d4c1bba402e2da141373209693b927"/><file name="Openinvoice.php" hash="03f441912f177fb5af9f9aaef27e92d5"/><file name="Pos.php" hash="7a93f39cd4c30d5be1b56218a4e04a7f"/><file name="Sepa.php" hash="91b145e97db61846febaae1c5ac0b9d6"/></dir><file name="Form.php" hash="77d0589a32cb816dcdc6df16c98f2cd6"/><dir name="Info"><file name="Boleto.php" hash="6068acbb3d3dec90a797390871150956"/><file name="Cc.php" hash="9861c34ed4eee0d0b22d66c9b9a0b9ad"/><file name="Elv.php" hash="09a10412250e2bed303a189cfb216254"/><file name="Hpp.php" hash="bce3945267dac13f4fd9c9fd1400d11c"/><file name="Oneclick.php" hash="b0fb295f9a0572f92f0a1dc7108b9e8a"/><file name="Openinvoice.php" hash="1e99e4ab3ef75a9fa27626bd946b0407"/><file name="Pos.php" hash="8a6be4f35d43dc7791b9741cfb05b8a5"/><file name="Sepa.php" hash="2f6fbcfeb770a208abc9c8dd4cd1a613"/></dir><file name="PosExpressCheckout.php" hash="7ba0d55c5db72b602555ae3c45da4d13"/><file name="Redirect.php" hash="1b889330908cc61aaf9ba4731c05d84c"/><dir name="Sales"><dir name="Order"><file name="Totals.php" hash="a39a86ab4e7f49a91c0d3ef37a37d45a"/></dir></dir><file name="SavedCards.php" hash="3fe47b88678d0c30aa3fc6b2b9592eae"/><file name="ScanProduct.php" hash="31c08b14b9e17a8f065b7d553470d518"/></dir><dir name="Helper"><file name="Data.php" hash="667547930c09310cd6eae4ba8bedce49"/><file name="Installments.php" hash="dfa5b59503843388869fb5e05a3429e8"/></dir><dir name="Model"><dir name="Adyen"><file name="Abstract.php" hash="0d8c81f4c2d16ad8b15d61dd55b92c95"/><file name="Boleto.php" hash="e92f38062af2dcc766161ce2e92d9fac"/><file name="Cc.php" hash="f534ec37e51137dc625234e507cf29bd"/><dir name="Data"><file name="Abstract.php" hash="cdda2d90654bff01f372a817d6e94e1a"/><file name="AdditionalData.php" hash="e4d038a60ac548e0938f75a0452d5717"/><file name="AdditionalDataKVPair.php" hash="cc2e0ba6733ef5139f44ba7c9af303dc"/><file name="Amount.php" hash="73540706cac2c2eef0252615d6200511"/><file name="BankAccount.php" hash="89124b1a311269d878e88acd56391afc"/><file name="BrowserInfo.php" hash="bd1cca3cc27aea7fad85661c7132e2cd"/><file name="Card.php" hash="ea384e9c2032ba7ad5925edfb434625f"/><file name="Classmap.php" hash="38ab9bfbfb1585852380c0551a35b9ec"/><file name="Elv.php" hash="6608688d03b047387a2b28be10c47b87"/><file name="IdealPaymentRequest.php" hash="4c3e7b5e1d98765524d022e8950c0ce6"/><file name="Installments.php" hash="ab285677d94614d631b927b427268eff"/><file name="InvoiceLine.php" hash="2013af2bbae2b07df4db34b4d8565796"/><file name="InvoiceRow.php" hash="caa2f530ea8a2100fee55f9d16fa8235"/><file name="ModificationRequest.php" hash="35877a23e1159cae3b9a1b4687e1a663"/><file name="ModificationResult.php" hash="eec37eba3849baa4ad52b194e31ac362"/><file name="NotificationClassmap.php" hash="31166e4ef9ea728c107f5ee501d67fc5"/><file name="NotificationRequest.php" hash="4647bfc558308e8f7795ae97fbf2c066"/><file name="NotificationRequestItem.php" hash="ef0794de69076f4accc5035b3f659808"/><file name="OpenInvoiceDetailResult.php" hash="68391a7b4b2a460967ec0018a2300396"/><file name="PaymentRequest.php" hash="175ded3287bfec672c0d815078c2a744"/><file name="PaymentRequest3d.php" hash="505731df1bb63d6426a11e5d3036552f"/><file name="Recurring.php" hash="ae069455222f0315c2eaee6cdf84f461"/><file name="RecurringRequest.php" hash="aed77050f296df4f48c88038ef3ac547"/><dir name="Server"><file name="Notification.php" hash="51ed88aa2c2035e4cb7b4e992e7c8e4a"/><file name="Openinvoice.php" hash="d94166e3c8337e213061655ab7e48e68"/></dir><file name="ShopperName.php" hash="91bfea9ade01d29fa9053de87ce01560"/></dir><file name="Debug.php" hash="8044ccae24d83db38d9430cf125ada83"/><file name="Dummy.php" hash="a72ccc6e8c5268cf6786db289de4e3d9"/><file name="Elv.php" hash="f3e6067e8bb235d037c7cd78aaa703b6"/><file name="Hpp.php" hash="381fb948b18cea9910093a455bf28815"/><file name="Ideal.php" hash="8359f4eb5c28363680c08ecbc88a28a5"/><file name="Oneclick.php" hash="fd17671dd0d6fdd849da02013f33b3ac"/><file name="Openinvoice.php" hash="0306be4843a9c4f372ccc954d41900dd"/><file name="Pos.php" hash="1769416ab285000a3fcd169466ff257d"/><file name="Sepa.php" hash="81aef386a6fa7e868cc9f22c7db008ff"/><file name="Shared.php" hash="7f3fe961a7107b6fb5625a9efe7854fd"/><file name=".DS_Store" hash="d179556f904a5601ccd01a54743c155f"/></dir><file name="Authenticate.php" hash="9de42d073756d2f1dfaa09a3af83cea9"/><file name="Event.php" hash="584b4cfc2a80d275c6c8592bf02c9b48"/><dir name="Mysql4"><dir name="Adyen"><dir name="Debug"><file name="Collection.php" hash="dee84aa1c2b370a72d79031a09b9bba4"/></dir><file name="Debug.php" hash="123808b460f70ad416ed9bb92e6a1d60"/><dir name="Event"><file name="Collection.php" hash="42557a95b574a2cbebaf9915a182c554"/></dir><file name="Event.php" hash="ea832389ca8f4fbb116155b9ef7889f1"/></dir><file name="Order.php" hash="05c5ce3b68f877b23d1396d13db18517"/><file name="Setup.php" hash="45997ed47c197cb302d6fbb684489201"/></dir><file name="Observer.php" hash="e7ac9e06f582e7c150b13dec41c99c31"/><file name="Process.php" hash="1beded3781535d0c86ed923f5fe11794"/><dir name="Sales"><dir name="Quote"><dir name="Address"><dir name="Total"><file name="PaymentFee.php" hash="f14a964cb2cba6b7f6fcf6162b8a91fd"/><file name="PaymentInstallmentFee.php" hash="1e794cd1cbfebd097ff43faf624138ce"/></dir></dir></dir></dir><dir name="Source"><file name="BoletoType.php" hash="1a31476c4ebfdb6b16a1dd3a26015fb1"/><file name="CancelModes.php" hash="b18c30b103cdce97af41e63ef0a25a92"/><file name="CaptureModes.php" hash="d2d138f0a59e1e448531f1fd8f908439"/><file name="CcType.php" hash="97d4e2549bec42b8282636f1e98e853a"/><file name="DemoModes.php" hash="0ce4142166b9f7dc96ee8e1e3bd03286"/><file name="OpeninvoiceType.php" hash="c39389388338dfe0b85b10a1e9b828cb"/><file name="PaymentAction.php" hash="23224178cf58e55c308234036f629bf7"/><file name="PaymentRoutines.php" hash="7aa5525e67554ad35226cf1aaa802c49"/><file name="RecurringType.php" hash="2a3c60c4546d9c02c842a9ea0a5ade26"/><file name="SepaFlow.php" hash="64e6fd9181772db70e3dfc012c117a46"/><dir name="Status"><file name="Refund.php" hash="bb700fa537f3a7c27c43691846777ef4"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Installments.php" hash="6c3b60719edb83eaaad1515514dab620"/></dir></dir></dir><dir name="Total"><dir name="PaymentFee"><file name="Creditmemo.php" hash="738f7b84586d51cd875011d6b31dfd3e"/><file name="Invoice.php" hash="8aa607b99f709a5eee9b76675e2d5ada"/></dir><dir name="PaymentInstallmentFee"><file name="Creditmemo.php" hash="b40551c179c19ccea7be11a5edf6be4c"/><file name="Invoice.php" hash="5f4563813511aff2eafb98cf4943d817"/></dir></dir><file name=".DS_Store" hash="286b9ee8ade7883fb60d91c7d0c64900"/></dir><dir name="controllers"><file name="CheckoutCashController.php" hash="6ff54e58a6797d6e87c733e466f777f7"/><file name="CheckoutPosController.php" hash="c7efe60bb75c06fb279fc051597a37b8"/><file name="GetInstallmentsController.php" hash="e46511c8759a6cd064d90f79af5f97c3"/><file name="ProcessController.php" hash="bedf96280c94d0f747fc7ff4f8efe193"/><file name="SavedCardController.php" hash="1f96ef803a29c754159e440c2a8e701d"/><file name="UpdateCartController.php" hash="c7280eb6b5b5f87e2dd9f06cc4370e97"/></dir><dir name="docs"><dir name="httpauthentication"><file name="cgihtaccess.patch" hash="b1ca6c18002d1c22f53c8dd55aee1845"/><file name="howto" hash="31677f6b34fca607f8751c9eb5bdcac2"/></dir><file name="readme" hash="aae2884b18ed35ab74c7e73f4baec6e3"/><file name="test-cards" hash="d7a4a41bc2bb17f74dcbcfbc41156675"/><dir name="translation"><file name="Adyen_Payment.csv" hash="0094e6a70aca120e94cc395f139f1687"/><file name="Mage_Checkout.csv" hash="7d3bcce1ce01d189d113d02b949b73ca"/><file name="howto" hash="00a8a321b06b7235c6e6ca39cfcef80f"/></dir><file name=".DS_Store" hash="cbdf8e79d5e282650b9b7136c3b9ad33"/></dir><dir name="etc"><file name="Notification.wsdl" hash="cbba67067d372790e91225b4049c7e0d"/><file name="Payment.wsdl" hash="4190412f599a3eac827d7ed0931754da"/><file name="config.xml" hash="e9619d6adddbae175cd98787d29da0de"/><file name="system.xml" hash="be5ace7957e71d74e3f4917d657618a8"/></dir><dir name="sql"><dir name="adyen_setup"><file name="mysql4-install-0.0.1.php" hash="3c304ff04d461bc0bfa6205c03dceea0"/><file name="mysql4-upgrade-0.0.1-0.0.2.php" hash="3d687c555ed52be5eeb4eaba126abb2b"/><file name="mysql4-upgrade-0.0.7-0.0.8.php" hash="27b202258c2bd16ee64902df7985862e"/><file name="mysql4-upgrade-0.0.8-0.0.9.php" hash="85d3de753b99b541a4547c39b7713905"/><file name="mysql4-upgrade-0.1.0.3-0.1.0.4.php" hash="8b43e357cf7a365b1e099b130db51b20"/><file name="mysql4-upgrade-0.1.0.8-0.1.0.9.php" hash="0ba22acbe3f48fc1ae1e76212a11dc2a"/><file name="mysql4-upgrade-0.1.0.9-0.1.0.10.php" hash="2b029ba94cea8dd9b6d82a0de265234f"/><file name="mysql4-upgrade-1.0.0.3-1.0.0.7.php" hash="c087b4bbc48cf47e954b6cfbd1f2c5bb"/><file name="mysql4-upgrade-2.0.3-2.1.0.php" hash="09d7c123a6270e4ee029f187d92c1c31"/></dir></dir><file name=".DS_Store" hash="8a387d0ed76f7cabfbc3331dd1caead3"/></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="adyen.xml" hash="a963acf4938f60fde0672bb6177399f1"/></dir><dir name="template"><dir name="adyen"><dir name="form"><file name="boleto.phtml" hash="83c7bc35d037f426aa75c0719e8adb86"/><file name="cc.phtml" hash="054ab1e3fa2b3901973a76e4f7547c10"/><file name="elv.phtml" hash="4d370d2d737f0a42ebcb33e7151ecee6"/><file name="hpp.phtml" hash="dcb1987da78dc78d45437de3bc0a10f9"/><file name="openinvoice.phtml" hash="33127af4713430e153cccbe8684fab13"/><file name="pos.phtml" hash="c07c11d348fced7d889ded4fc77e3363"/><file name="sepa.phtml" hash="aad80786900ccbe1b211ddbc0c00febd"/></dir><dir name="info"><file name="boleto.phtml" hash="d7fbc6f480f75d07a52a79ea7cf8457a"/><file name="cc.phtml" hash="7f2e27f6067aed385d5b07abbe7988ce"/><file name="elv.phtml" hash="7a6b627e0c6acd04497d52f5047e930a"/><file name="hpp.phtml" hash="6f216fcc9e05b8f8c7176f4f0f86578f"/><file name="openinvoice.phtml" hash="46550d1d3dbe0a92c89dd6272f5d9104"/><file name="pos.phtml" hash="a5b175023f0670409122876074d6f050"/><file name="sepa.phtml" hash="49f960b088e563135860774517fbcdfe"/></dir><dir name="pdf"><file name="boleto.phtml" hash="50853749a944124f076d129fd5e6cfa9"/><file name="cc.phtml" hash="50853749a944124f076d129fd5e6cfa9"/><file name="elv.phtml" hash="50853749a944124f076d129fd5e6cfa9"/><file name="hpp.phtml" hash="4cdb4f7c88b6556fc847c21d5d4b7ffb"/><file name="openinvoice.phtml" hash="742b87babbb612032d68a8e79d31e89c"/><file name="pos.phtml" hash="a3dc27a6607b4978c93b21d945661e5c"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="adyen"><file name="blank.phtml" hash="03d788d9ec2aa70de7eb66015b2c4da1"/><dir name="checkout"><dir name="onepage"><dir name="payment"><file name="methods.phtml" hash="fc92a82fe2faffa7657683212e517542"/></dir></dir><file name="success.phtml" hash="56c5bdd54f9cbed22be7afe0deedead4"/></dir><dir name="form"><file name="boleto.phtml" hash="21b6c7d06dfef2bb9f8de8205bc2c6a9"/><file name="cc.phtml" hash="864d9bac115acb5e43883a0fd5810587"/><file name="elv.phtml" hash="789610e3d1f8973f6aecb4ef119a59c9"/><file name="hpp.phtml" hash="c091a1049c8d13d75cbc58100cf16e43"/><file name="oneclick.phtml" hash="ae32df3c77c06142536c70a4a181a729"/><file name="openinvoice.phtml" hash="4dbda9d80bd82328ec8b33c775f44599"/><file name="pos.phtml" hash="674097ccf62f13c969d39c2f6a6824b8"/><file name="sepa.phtml" hash="a536c0245cc8a5e0762a5e9fb567d325"/></dir><dir name="info"><file name="boleto.phtml" hash="c526f9c4badab3afaa771872bb4687f1"/><file name="cc.phtml" hash="cda685b7c94fc401158bf5901e66c8b6"/><file name="elv.phtml" hash="8b850e97ea84e1de5ead4ec487c4356f"/><file name="hpp.phtml" hash="8999dfee0c638f44b5010779b8bbf711"/><file name="openinvoice.phtml" hash="2bcd711e1255923d53f353819e19529e"/><file name="pos.phtml" hash="9b917920aa1cc77c9e8c3a26943b1335"/><file name="sepa.phtml" hash="c886a3d9923c3ade6ca5056f18c1b856"/></dir><file name="posExpressCheckout.phtml" hash="46c4450207f7f587ca84d2d23b9521f8"/><file name="savedCards.phtml" hash="b0777660cdd38c3a6c5ec7b5d24acd92"/><file name="scanProduct.phtml" hash="3af73cb40cbbc1d74b208e4b2ce04d97"/></dir></dir><dir name="layout"><file name="adyen.xml" hash="b198d1da091204731b946b139834120a"/></dir></dir></dir><dir name="default"><dir name="adyen"><dir name="template"><dir name="onestepcheckout"><file name="checkout.phtml" hash="520e231832277d5d09bb3be8134c56f8"/><file name="payment_method.phtml" hash="f2852a921420340ef82a5d2f4f799fee"/></dir></dir></dir></dir><dir name="rwd"><dir name="adyen"><dir name="template"><dir name="onestepcheckout"><file name="checkout.phtml" hash="c315e54e6ba093bcc737df1bb1f8f0b9"/><file name="payment_method.phtml" hash="f2852a921420340ef82a5d2f4f799fee"/></dir></dir></dir></dir><dir name="enterprise"><dir name="adyen"><dir name="template"><dir name="onestepcheckout"><file name="checkout.phtml" hash="c315e54e6ba093bcc737df1bb1f8f0b9"/><file name="payment_method.phtml" hash="f2852a921420340ef82a5d2f4f799fee"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Adyen_Payment.xml" hash="e4d297a9b401c4548acb47aea1ae41d9"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="images"><dir name="adyen"><file name="ABNAMRO.png" hash="a621e7f4cf1c3340ac5147fef5544bfe"/><file name="ABNAMRO.xcf" hash="eac24c953dcf05d40ce928ccab2af90f"/><file name="ASNBANK.png" hash="13034bc0836590cfb0ec7b6c3076e435"/><file name="FORTIS.png" hash="3b68fa26a90f8cd44e2f8dfcb5f72fe8"/><file name="FRIESLANDBANK.png" hash="c1388a9b8a170260b0b72da9b2cd2dbf"/><file name="ING.png" hash="b08f829cf67322875ca12d5fc36ac191"/><file name="KNAB.png" hash="4df678f84bdf11db9b75d1e539a0367c"/><file name="POSTBANK.png" hash="ea0ffd9d3e9717fe0bdc160d8cd92482"/><file name="RABOBANK.png" hash="f09418ebbd0d6daf21786d5bde93e856"/><file name="REGIOBANK.png" hash="0c3a984ce817e4d3ec98549be7704712"/><file name="SNSBANK.png" hash="75f988e3ab935d6d509a86f82422f474"/><file name="SNSREGIOBANK.png" hash="34a70ac0e1e0a8cfb56c77a5b1da3c80"/><file name="TESTISSUER.png" hash="0110aadd0f619b39f357b98b63e3ff69"/><file name="TESTISSUER10.png" hash="b2462fe98e69d211e92771ae75f48552"/><file name="TESTISSUER2.png" hash="471cc38e61077fdaba8fd868fea22dfe"/><file name="TESTISSUER3.png" hash="4ca46be0b7607dc95caccb5ec974e0a8"/><file name="TESTISSUER4.png" hash="6e31a3d3e73390432a84e394a1937c5d"/><file name="TESTISSUER5.png" hash="78b758fef66f220e79b1b9ecda8851d2"/><file name="TESTISSUER6.png" hash="4aefac8baaa06592c8a80f085c0ade08"/><file name="TESTISSUER7.png" hash="0474b1a3264ef45068013747a27158d2"/><file name="TESTISSUER8.png" hash="5e655c4af04b417acecac6fd66623662"/><file name="TESTISSUER9.png" hash="6e378c3b7c75febd0be361ec39c55e45"/><file name="TESTISSUERCANCELLED.png" hash="c794eeb78ef618c3e9dcd8b444b7b23f"/><file name="TESTISSUERPENDING.png" hash="04ee87a5c35a491e624719a3c885d492"/><file name="TESTISSUERREFUSED.png" hash="2f7e2bad6857f39f32afd09eb846e55a"/><file name="TRIODOSBANK.png" hash="922b1fcd51306e0d0da6b15ebe640d8c"/><file name="VANLANSCHOTBANKIERS.png" hash="0a5d713a5c73c54e90507743456c5657"/><file name="achcolombia.png" hash="1f1339c682440cfd7584f9ba00f59722"/><file name="achcolombia_small.png" hash="d6b2899a0039de82788c831b00dd1533"/><file name="achcolombia_small_grey.png" hash="bcae575368bdcdb582423e28ac7a56e9"/><file name="achcolombia_tiny.png" hash="a287c57b8bcc821371758da895db6437"/><file name="advance_payment.png" hash="5aba603621b4b21cc05b7eae1f7455da"/><file name="adyen_logo_large.png" hash="70726ef290d0eee3ed163eb751091813"/><file name="afterpay_default.png" hash="a62e3982d50612522be071d4e86eaa6a"/><file name="alipay.png" hash="e3773ada96577e575c9e1300a89a5875"/><file name="alipay_small.png" hash="f9848d15fc7ee22b6687ccdbe7f36a16"/><file name="alipay_small_grey.png" hash="e5ffe7ff272ce2814b7808fd047a9c6b"/><file name="alipay_tiny.png" hash="1a7867dd958ddcdd90ad2400e5be23de"/><file name="amex.png" hash="8e3b962f9ef18e08cf16b77934607d28"/><file name="amex_small.png" hash="6ce7c9a2b330c9c46f0213c40db55683"/><file name="amex_small_grey.png" hash="0f6aabd8dfcbf48dbb555b9191d7795e"/><file name="amex_tiny.png" hash="b7016f4efb163c985d6f1d99a8433d2a"/><file name="asiapay.png" hash="44626dc317e547fb40010498c1096407"/><file name="asiapay_small.png" hash="cca4d86b5abc510f20ca9563d7215c3d"/><file name="asiapay_small_grey.png" hash="00e20b2b2eb0d2ad51c15d8ccc558dc5"/><file name="asiapay_tiny.png" hash="ba0d613d94a64918c0338504fed20ee7"/><file name="autopay.png" hash="4251763c71239e7b1b421e4bc7f5b70a"/><file name="autopay_small.png" hash="ca6941b80b6157bae2411b5620149d2d"/><file name="autopay_small_grey.png" hash="f69d143b4f1fc16a9138ccfacec808a4"/><file name="autopay_tiny.png" hash="4c0c91402daafc63bdb5979dbbd963db"/><file name="babygiftcard.png" hash="91bcbb6604b26565b89898c9a8e1e117"/><file name="babygiftcard_small.png" hash="2558bbdd4d9528b37ba93a8c4af536a4"/><file name="babygiftcard_tiny.png" hash="393a192fab9874e3b167c3bc5d568db7"/><file name="baloto.png" hash="1c172c628f79837c83196b243c636ff5"/><file name="baloto_small.png" hash="c66db84ac7fed6f81010e8058fa39a74"/><file name="baloto_small_grey.png" hash="bdc5eac76e02a658b348a0722fca9ba9"/><file name="baloto_tiny.png" hash="5e10ee14c8a44c3b4c28571664fa045f"/><file name="bancnet.png" hash="a2b687ef27244e448b85635cc1d3ec60"/><file name="bancnet_small.png" hash="4473bc16badc29200ffd09021778b1e3"/><file name="bancnet_small_grey.png" hash="6b108ea906b6d6a5ad51e4de6db732eb"/><file name="bancnet_tiny.png" hash="0ac28b35fd4e09954debcd2eb42e89ce"/><file name="bank24.png" hash="9a921572d6bae73604e1122ec3e5bf7e"/><file name="bankTransfer_AE.png" hash="a6f29729723fa65c732ffc9267b3f8be"/><file name="bankTransfer_AE_small.png" hash="a3322805ab1c40c4e6237943185284ab"/><file name="bankTransfer_AE_tiny.png" hash="dfcf50c97c3b832fd3c17efb2864335c"/><file name="bankTransfer_AT.png" hash="7fa4204d1426a64a4cd26af06af44d41"/><file name="bankTransfer_AT_small.png" hash="31037dcf034d1e9d28254d1962b2ca16"/><file name="bankTransfer_AT_tiny.png" hash="4ee9964118e05d2a81335f3033ec5bf1"/><file name="bankTransfer_AU.png" hash="05716c67579fcf3574037ce69c9e4229"/><file name="bankTransfer_AU_small.png" hash="acd23b8e3ccf3c9d28960fde63c22e85"/><file name="bankTransfer_AU_tiny.png" hash="4a3ee62afdac23a00a0675c763e93470"/><file name="bankTransfer_BE.png" hash="5547426f07e0562ba9b605f1f04a9ad7"/><file name="bankTransfer_BE_small.png" hash="007dbd9f27115b601eb94db09a10b8f3"/><file name="bankTransfer_BE_tiny.png" hash="cf0285a691339efad52d82d40c7aa9f1"/><file name="bankTransfer_BG.png" hash="be209415f5bec0a45bd2bd9cd3c41d0a"/><file name="bankTransfer_BG_small.png" hash="6249144aa579c494988b5bbecb22eb69"/><file name="bankTransfer_BG_tiny.png" hash="7c11956844dbf7cc76db038b32fc7ab1"/><file name="bankTransfer_CH.png" hash="9b20d62386085ac2c9da1227abec5d58"/><file name="bankTransfer_CH_small.png" hash="2887bcf97901ed7ed6bc4fb5d8a00876"/><file name="bankTransfer_CH_tiny.png" hash="c0218d075bbb503689f40007a331ba85"/><file name="bankTransfer_CZ.png" hash="78f7aac275e10af77b3bbab28ba1aa23"/><file name="bankTransfer_CZ_small.png" hash="7bf17799b64aa618945981eb7fa00cce"/><file name="bankTransfer_CZ_tiny.png" hash="7f2a7e2fde701bff21fa388776e73632"/><file name="bankTransfer_DE.png" hash="989d5e1cc2547504b0fbc7aa88e08713"/><file name="bankTransfer_DE_small.png" hash="fb50048c4acfdebf85c4c8f90d8b08d9"/><file name="bankTransfer_DE_small.xcf" hash="cfbc9a47bc116e97a121771c0aa6fe83"/><file name="bankTransfer_DE_tiny.png" hash="d4d68f1068df68f61cb828005c9c0ac9"/><file name="bankTransfer_DK.png" hash="a2e9a409144a8ef18747faafa2937609"/><file name="bankTransfer_DK_small.png" hash="71e75c357b475fe236b633ac8a2a76cd"/><file name="bankTransfer_DK_tiny.png" hash="0103bbe5b8a803aad990bd4ad53c88c0"/><file name="bankTransfer_EE.png" hash="9caa3e1ac3558e9ec372c45df045bae6"/><file name="bankTransfer_EE_small.png" hash="91ffe550444bac13ac29ac1696ffdfac"/><file name="bankTransfer_EE_tiny.png" hash="59ea293d7ba58cd6dd9a9a2b43088093"/><file name="bankTransfer_ES.png" hash="7d0051c7ee32eddca94b89368bb5afbe"/><file name="bankTransfer_ES_small.png" hash="2dc1519510ef7bea726e0bca70859c06"/><file name="bankTransfer_ES_tiny.png" hash="a2338a0d60b2585ac34269daf794d189"/><file name="bankTransfer_FI.png" hash="ffbe8dfa936a4628e3c029bd957f367d"/><file name="bankTransfer_FI_small.png" hash="1db5d45d947502483a2e8c40aab3734d"/><file name="bankTransfer_FI_tiny.png" hash="b9f26cef0fc7f051b6d79ada14c902ba"/><file name="bankTransfer_FR.png" hash="572f77cf0f22103300682c5f89e9d9e9"/><file name="bankTransfer_FR_small.png" hash="58a268c927e4d19858ed3241ceac05f8"/><file name="bankTransfer_FR_tiny.png" hash="dee4c0c47d94fb0e2ab032264c4d1543"/><file name="bankTransfer_GB.png" hash="5a7eee2f31bec7bf422425f31aea2d5a"/><file name="bankTransfer_GB_small.png" hash="17d3c0ca20cee2250e3b6d0f5f080ba9"/><file name="bankTransfer_GB_tiny.png" hash="24d7d3ce5dc62ef776f3f36f24ff78b1"/><file name="bankTransfer_GI.png" hash="e9035b335bd8dc809c7e4afc7d775cc0"/><file name="bankTransfer_GI_small.png" hash="e51bd2f8333a8d8b2163c777c5b12b48"/><file name="bankTransfer_GI_tiny.png" hash="d158401d4dd73a057adac68f3f23ad89"/><file name="bankTransfer_GR.png" hash="aefe60c85d74d77d1c1327538617f297"/><file name="bankTransfer_GR_small.png" hash="b9a0a5d6ec52c80d72d8e8cf903f37f3"/><file name="bankTransfer_GR_tiny.png" hash="1dc0912afd646785eade5d8785baa12c"/><file name="bankTransfer_IBAN.png" hash="f636fcae0c128e08baaef26dacaa078d"/><file name="bankTransfer_IBAN_small.png" hash="ffc0073f2fe405de05206cdfc1565daa"/><file name="bankTransfer_IBAN_tiny.png" hash="4a4f64cb62ca9cfec99d117d0169bb83"/><file name="bankTransfer_IE.png" hash="eb6efba5502d54571022feaef9a9ded3"/><file name="bankTransfer_IE_small.png" hash="d9359e8a2bf8c04d4d43acdcc8b30a5e"/><file name="bankTransfer_IE_tiny.png" hash="b3a0f75656b535960c362baaabc45ce3"/><file name="bankTransfer_IT.png" hash="cd56062b943e4ec6716bc72ebe4b62a9"/><file name="bankTransfer_IT_small.png" hash="29ac58a26ae12dc26dd2d501262ed361"/><file name="bankTransfer_IT_tiny.png" hash="c45892a3e2ae81bb9b4508d79164e556"/><file name="bankTransfer_JP.png" hash="20023e2e93afc881740ea74e89251d86"/><file name="bankTransfer_LU.png" hash="b3dbdeea3429de5280c3a6d911930e9a"/><file name="bankTransfer_LU_small.png" hash="ebb919c647653075be4d9bfaeec8c00c"/><file name="bankTransfer_LU_tiny.png" hash="ec058289aef35f481077c56cdf758032"/><file name="bankTransfer_MT.png" hash="8955bc706cf66307ba69e58d8006af2d"/><file name="bankTransfer_MT_small.png" hash="13ce68bbda83c39b8719d356705da6d2"/><file name="bankTransfer_MT_tiny.png" hash="b05aa11e844f09fa797a3540534e5155"/><file name="bankTransfer_NL.png" hash="ccffd7131f791f7eb44e21b42fd66cc4"/><file name="bankTransfer_NL_small.png" hash="90f18f3784ec4c4733891aafd2e83958"/><file name="bankTransfer_NL_small.xcf" hash="ac17edd9804089820e9d73c76441abfc"/><file name="bankTransfer_NL_tiny.png" hash="61e9d461381aa1fb7e9dbcc8012686e0"/><file name="bankTransfer_NO.png" hash="ffcb1204470ff94a7cf2025e000e4978"/><file name="bankTransfer_NO_small.png" hash="daab5aceaf8e4dd59dfcf29fa69cdc24"/><file name="bankTransfer_NO_tiny.png" hash="3fbbf9e381d8d0d9ada61a54778655cb"/><file name="bankTransfer_PL.png" hash="cd25fefef6bce86a97ab7242138360e2"/><file name="bankTransfer_PL_small.png" hash="880b17d7d090c7bd21965e9b78894851"/><file name="bankTransfer_PL_tiny.png" hash="9579393e3dbb3c2aeb7ebf35e54ef4e7"/><file name="bankTransfer_PT.png" hash="c3c652523d77b5d085da97111c96ef9e"/><file name="bankTransfer_PT_small.png" hash="9d3a979ef52298bcc1545b131bd4a3db"/><file name="bankTransfer_PT_tiny.png" hash="cf2be093140773d75d8993fab7aa347c"/><file name="bankTransfer_SE.png" hash="e5608461fa8bdbac771449f30cde91ec"/><file name="bankTransfer_SE_small.png" hash="0f57f6092f8bef25c9973a140a2d85ad"/><file name="bankTransfer_SE_tiny.png" hash="79f3a00608bf18d686d89562af80a72f"/><file name="bankTransfer_SK.png" hash="2390a923affb1640b1b8bb801ce04705"/><file name="bankTransfer_SK_small.png" hash="50adde906c3a965992bbfb04554a5371"/><file name="bankTransfer_SK_tiny.png" hash="d4866f13969214fd774ea1c427a048e6"/><file name="bankTransfer_US.png" hash="9013561099b618aa954f5a3e1352a6ce"/><file name="bankTransfer_US_small.png" hash="191e204c1216a199229da9d75ed1a2a5"/><file name="bankTransfer_US_tiny.png" hash="9d9e942b93d13a18e38aac0ee932fe15"/><file name="bank_ru.png" hash="2390a923affb1640b1b8bb801ce04705"/><file name="bank_ru_small.png" hash="01c263789dd7e38ac4078f55161ec19b"/><file name="bank_ru_tiny.png" hash="d4866f13969214fd774ea1c427a048e6"/><file name="barras.png" hash="389f5242e23cc5b386392d5d21459f21"/><file name="barras_small.png" hash="9e657657b963a1434e88d4289acf9448"/><file name="barras_small_grey.png" hash="d14dbd53e9a52706bf736525a90d8f63"/><file name="barras_tiny.png" hash="e46d37c7e69ef3722876a0205431f1c8"/><file name="bcmc.png" hash="28dca1b34022f2c653c13556c452fce3"/><file name="bcmc_small.png" hash="49698208e5b73f80773260c3fdb3e5a3"/><file name="bcmc_small_grey.png" hash="5069f14bff23c074af6fe2092a2e482a"/><file name="bcmc_tiny.png" hash="3b4221516dc0d1ace3432a473903991e"/><file name="beelinesms.png" hash="a559096cb240aaf7696be7563498b18b"/><file name="bijcard.png" hash="c93da8e22fac6869d729e961df24b593"/><file name="bijcard_small.png" hash="f188b92b77af1613a91c00450d3eb168"/><file name="bijcard_small_grey.png" hash="08eb4420ac9f7a7f691d688e9550f651"/><file name="bijcard_tiny.png" hash="b88eeed8f7318514f849e3ed3a9a2ce8"/><file name="bill99.png" hash="461213bcf10fb394ef524d3a0ad92ee0"/><file name="bill99_small.png" hash="d6e30f7d3da5ce34af3aa7e2353b4809"/><file name="bill99_small_grey.png" hash="a66c49f3556fa99301f4288341eaa014"/><file name="bill99_tiny.png" hash="d10dbbf6512e15252ad6d1337670a7fd"/><file name="boleto.png" hash="3968115c3576a14f7cdc8ebd98c8092e"/><file name="boletobancario_hsbc.png" hash="3968115c3576a14f7cdc8ebd98c8092e"/><file name="boletobancario_itau.png" hash="3968115c3576a14f7cdc8ebd98c8092e"/><file name="boletobancario_santander.png" hash="3968115c3576a14f7cdc8ebd98c8092e"/><file name="bradesco.png" hash="d5ae6f8cb39883cce8c97c0d11257a4c"/><file name="c_cash.png" hash="1b9d5b0c9ece2eaff0be71b4082e0655"/><file name="c_factuur.png" hash="cd46b7d11c9dd79b1cc9c073c0696aff"/><file name="c_factuur_small.png" hash="63d4c6fd1e5b214d018f3e00ca687cd5"/><file name="c_factuur_tiny.png" hash="153791c1eb5bae6095e1210787ffe4fa"/><file name="c_invoice.png" hash="cd46b7d11c9dd79b1cc9c073c0696aff"/><file name="c_invoice_small.png" hash="63d4c6fd1e5b214d018f3e00ca687cd5"/><file name="c_invoice_tiny.png" hash="153791c1eb5bae6095e1210787ffe4fa"/><file name="c_oprekening.png" hash="cd46b7d11c9dd79b1cc9c073c0696aff"/><file name="c_oprekening_small.png" hash="63d4c6fd1e5b214d018f3e00ca687cd5"/><file name="c_oprekening_tiny.png" hash="153791c1eb5bae6095e1210787ffe4fa"/><file name="c_paypal.png" hash="fe5fd0065e4a84e967095f082b329d7f"/><file name="c_paypal_small.png" hash="294698dab8f5aa31f2ad62702bd9d379"/><file name="c_rembours.png" hash="fb2da23375ce5ba67380dc0fb60e7669"/><file name="c_rembours_small.png" hash="0d0f244c1820921db3a6635552cf8129"/><file name="c_rembours_tiny.png" hash="c15d78de45389d475f2786fed3e81c4b"/><file name="card.png" hash="adfe3d9fe45c3f94b9edca852e2cb38c"/><file name="cashticket.png" hash="0dba12beffb7c5ebf47ae1e5701426f3"/><file name="cashticket_small.png" hash="ade5518971a871dd48b0628af6f6cf89"/><file name="cashticket_small_grey.png" hash="348c3721fbedfb2a7121f57db435f43e"/><file name="cashticket_tiny.png" hash="95248971eb69c150748b9acf27f68fb5"/><file name="cashticket_tiny2.png" hash="16ab15f5263fe81ab5233d02ce2cd715"/><file name="cashu.png" hash="1b6d79438ad686cdff44866a66445dca"/><file name="ccavenue.png" hash="aee563b4c9c77d8a881db1e79ad8758d"/><file name="ccavenue_small.png" hash="ffa7390808c679e8d6c580fcf14054fb"/><file name="ccavenue_small_grey.png" hash="9a6c58e88230fb6a167e597752a533ab"/><file name="ccavenue_tiny.png" hash="994d56725d095d107fb33c6f3abf7653"/><file name="cellpaypoint.png" hash="c676483390c0c7e932a320b6326593da"/><file name="cellpaypoint_small.png" hash="f720447e73325b922568a00d0effe75c"/><file name="cellpaypoint_small_grey.png" hash="c6deea99f2099ade43b2b75dcb62f273"/><file name="cellpaypoint_tiny.png" hash="5c00501360e94b3020ff54bccbc2e531"/><file name="ciberpay.png" hash="625d300997f331918e912dc266e1a3a4"/><file name="contact_ru.png" hash="5f70b79ee4232a81a9f7eb0224b0ba3c"/><file name="creditcards.png" hash="cd1a83b970a38307c2899f9949495a00"/><file name="dineromail.png" hash="9058ea237d278d5fd238c2d180807c57"/><file name="dineromail_ar_amex.gif" hash="4a94da8ec02c565e8cfcb66fbfffe362"/><file name="dineromail_ar_argencard.gif" hash="422ea3362cc44616f72a887f5cba66c6"/><file name="dineromail_ar_banktransfer.gif" hash="758e12e370a5b213996ea1f39259721a"/><file name="dineromail_ar_bapropago.gif" hash="df51325a4fae890a5a6673f92bb64f5d"/><file name="dineromail_ar_cabal.gif" hash="98f6cc5d54df43b4c4a17d9fc2dfb9bd"/><file name="dineromail_ar_cobroexpress.gif" hash="910960360ea1cd632a69ab500cd627ee"/><file name="dineromail_ar_dm.gif" hash="b458246e266ecb059865ab17b7673882"/><file name="dineromail_ar_italcred.gif" hash="aa4376df77748d39c670001794e7991f"/><file name="dineromail_ar_master.gif" hash="126cdc5db597363e5934cf19205f8f45"/><file name="dineromail_ar_pagofacil.gif" hash="2c85235d6dff444b1b914488d035eb7b"/><file name="dineromail_ar_rapipago.gif" hash="c745eb4d456f03c6643f40e77f9ad6ac"/><file name="dineromail_ar_tshopping.gif" hash="552daaa4621397aaed5cea3ad5fc89ec"/><file name="dineromail_ar_visa.gif" hash="61c86fd2afade160736b1c318a8280a6"/><file name="dineromail_ar_visa_hipotecario.gif" hash="bbdb3933302107611678bd7a87779a6c"/><file name="dineromail_br_amex.gif" hash="4a94da8ec02c565e8cfcb66fbfffe362"/><file name="dineromail_br_aura.gif" hash="b4a8dea00ceebb3d1d64660a997ac22d"/><file name="dineromail_br_bbancario.gif" hash="d9adffbdf626846cfe11b874c5bc0715"/><file name="dineromail_br_diners.gif" hash="b4f437b40f747842cb32becf8af28eb4"/><file name="dineromail_br_dm.gif" hash="65fa3eb604d2d5cd64b76ea0419788a6"/><file name="dineromail_br_hipercard.gif" hash="329dd978884c554fc8c0a37bd6c1ded9"/><file name="dineromail_br_master.gif" hash="126cdc5db597363e5934cf19205f8f45"/><file name="dineromail_br_oipaggo.gif" hash="9cad6e46ea39ec1d6af77ce9322835c1"/><file name="dineromail_br_visa.gif" hash="61c86fd2afade160736b1c318a8280a6"/><file name="dineromail_cl_amex.gif" hash="d4942bf6dab3c072e701e709adaecf78"/><file name="dineromail_cl_diners.gif" hash="9f5bccfc0ab73993405821859dab56b0"/><file name="dineromail_cl_dm.gif" hash="0b886856a701eff48c710a4812f999d0"/><file name="dineromail_cl_magna.gif" hash="bbbbed0d123e619dbf9ffc3308cb4f6e"/><file name="dineromail_cl_master.gif" hash="38b5c034caa6249caf49256f7df4894c"/><file name="dineromail_cl_presto.gif" hash="fa18e40e599f4216d0efea05d9329b5b"/><file name="dineromail_cl_ripley.gif" hash="8a0fe5295feeb9959f2dedf17b304215"/><file name="dineromail_cl_servipag.gif" hash="51cc675b605ce7dd88016743fc324e09"/><file name="dineromail_cl_visa.gif" hash="87fa159904723d830b30d9a0f2f2ff00"/><file name="dineromail_mx_7eleven.gif" hash="7595248bd6c735fc9cd28a0afe9e035c"/><file name="dineromail_mx_amex.gif" hash="4a94da8ec02c565e8cfcb66fbfffe362"/><file name="dineromail_mx_bancomer_tc.gif" hash="b2854f409126920b1c9cf8ed3792a349"/><file name="dineromail_mx_dm.gif" hash="9eede7e49ebcb145494952f6edb749b2"/><file name="dineromail_mx_hsbc_tb.gif" hash="1fb60730a0dfe9d0a0ebef45af1d8fdd"/><file name="dineromail_mx_ixe_tc.gif" hash="6e19e5be52b5bfce749f16b26e933c2e"/><file name="dineromail_mx_otherbank_tc.gif" hash="df05af375e248dcc04324aa92b6163b0"/><file name="dineromail_mx_oxxo.gif" hash="ee69da5b06d9c52ef76dd1a20bab5ebb"/><file name="dineromail_mx_santander_tc.gif" hash="5bb0f9600b1b8ad67d0a418c2412a506"/><file name="dineromail_mx_scotiabank_tc.gif" hash="dbe7bdd2d9327086cae42ee6a842d00c"/><file name="dineromail_small.png" hash="356e06d5a2fd5f98f3da4dfc192e389c"/><file name="dineromail_tiny.png" hash="98f6b908f7025a8babaffafcc1336428"/><file name="diners.png" hash="6310bb53fe7921cf016309d6a75b8c22"/><file name="diners_small.png" hash="ecf5d635a74460ca9575bb7d6d8550dd"/><file name="diners_small_grey.png" hash="77ff46143b8a4aab54eb35c345806a83"/><file name="diners_tiny.png" hash="881b5998d35cc373d294ca21689015d5"/><file name="directEbanking.png" hash="6d7ce2ff213c33743d80ab83fb24e8de"/><file name="directEbanking_axa.png" hash="3d90797ef39a0db23dd6373bdfef9ee8"/><file name="directEbanking_cbc.png" hash="f23617618a9e2ce7863a931947b49adb"/><file name="directEbanking_de.png" hash="9fa16b098e744e94553952c5a28c7dd2"/><file name="directEbanking_de_grey.png" hash="109b1237e5d69d7ae82dc9a64d6ab4fd"/><file name="directEbanking_de_small.png" hash="5f65ee79ae22c4ba52e6a8485cf155cd"/><file name="directEbanking_de_tiny.png" hash="15983a607b8151f0be3b5ecfb067ea7a"/><file name="directEbanking_dexia.png" hash="37ebcc9a12bc9c88d540f78adf9bd679"/><file name="directEbanking_fintro.png" hash="389b1a7b14e5466b7b0dd4721aee0433"/><file name="directEbanking_fortis.png" hash="511cc06fefa644cc7575a0efb227bd64"/><file name="directEbanking_grey.png" hash="109b1237e5d69d7ae82dc9a64d6ab4fd"/><file name="directEbanking_ing.png" hash="ac4f224d0fe9aee23d143acc5198dd72"/><file name="directEbanking_kbc.png" hash="eae3c85e332e4289841bd27a46031db3"/><file name="directEbanking_small.png" hash="db84d47793f8e375d48dc8b17f8a0ddf"/><file name="directEbanking_small_grey.png" hash="7f4fbbcfe647cf8d280238754061d042"/><file name="directEbanking_tiny.png" hash="7d804d09c7df931eb9cafc2d3a4984b1"/><file name="directdebit_BR_bancodobrasil.png" hash="784271e1bf909c95e79ff7de4d92ed5b"/><file name="directdebit_BR_bradesco.png" hash="d5ae6f8cb39883cce8c97c0d11257a4c"/><file name="directdebit_BR_caixa.png" hash="a0d69bc8a40bf120fc2138a694c31186"/><file name="directdebit_BR_hsbc.png" hash="4943f73d211b8111fd81ca8d4e06160d"/><file name="directdebit_BR_itau.png" hash="b24ed466c1d694dca7dc26ee42dbf330"/><file name="directdebit_BR_santander.png" hash="bd73ea7f9f46b0ed583e764f01e9a8d0"/><file name="directdebit_NL.png" hash="cf1246761401ad866b72d7b520506b22"/><file name="directdebit_NL_small.png" hash="2e6a7444f509232818458312f28f8c50"/><file name="directdebit_NL_tiny.png" hash="99ea09a985cf0221ce87d3696211704e"/><file name="discover.png" hash="491378a0e2ae6223ab41fc925b67575d"/><file name="discover_small.png" hash="8573aebe4938afb288749badb22aa091"/><file name="discover_small_grey.png" hash="e60b18fcd2f0509c02a08fa0bf7024b2"/><file name="discover_tiny.png" hash="78a2cb6ccedb121d3138b280e1778f84"/><file name="dotpay.png" hash="a09962a7357374482444accf6b066037"/><file name="dotpay_inteligo.png" hash="25492f3d9eaabae7aa1441fdf24947b3"/><file name="dotpay_moje.png" hash="1c948c8e2db27f09e44e4c6f3591e39c"/><file name="dotpay_mtransfer.png" hash="e9ef4a420639f227e650c9e456235059"/><file name="dotpay_multitransfer.png" hash="b604e3e946b41437bc485b0a95a76b2a"/><file name="dotpay_nordea.png" hash="cfda5216a9ae9b829e5121bbfaaf887b"/><file name="dotpay_potzta.png" hash="88670102fd0e7f532357d06ec66a8ec6"/><file name="dotpay_przelewz.png" hash="06cbe8767f3b1810e2a72b19a1bcc9c7"/><file name="dotpay_przelewz24.png" hash="64143c67feac20a193fd459ba0a6e8b4"/><file name="dotpay_small.png" hash="aabbcc9e2471e044c38ab63d8aa6d48f"/><file name="dotpay_tiny.png" hash="5c746221e7ec781c18bb4d7e6f0a66a0"/><file name="dotpay_zabka.png" hash="a6edae22b53cdd3b997f8c9b50840b2c"/><file name="ebanking_FI.png" hash="7d717c71a9174624d8e30a314c4f091e"/><file name="ebanking_FI_aktia.gif" hash="092c03a2319bd7c5d8fc9dc98516be46"/><file name="ebanking_FI_alandsbanken.png" hash="d64698c6c6dc9b6c8e1d2179dfb61d8d"/><file name="ebanking_FI_handelsbanken.png" hash="06f99903ea285bc5cf392ea6c642a267"/><file name="ebanking_FI_nordea.png" hash="c68ecd7c03b5d6a0819110c56df501e8"/><file name="ebanking_FI_osuuspankki.png" hash="cf9f495363970b9da3dbbaffe1031225"/><file name="ebanking_FI_sampo.png" hash="e5b4bd2ac745258b22ab832be253654a"/><file name="ebanking_FI_small.png" hash="57635f01d33e65d40af90d3ab4088ad7"/><file name="ebanking_FI_spankki.png" hash="e88599e1318b54be1990363607819811"/><file name="ebanking_FI_tapiola.png" hash="27ad56685d2e0e641a8d3e95942630ef"/><file name="ebanking_FI_tiny.png" hash="b0e3de2e531c362daaac6063c7a59d9e"/><file name="ebetalning.png" hash="0bc7c8cc01264df81ad06b0b75ce7c0a"/><file name="ebucks.png" hash="33d683c3a6f4f61df3c36e09d867936e"/><file name="ebucks_small.png" hash="c2afb7964e668ba7ba0416682fdd831b"/><file name="ebucks_small_tiny.png" hash="dd79fc153f0a7fcc79e628383e76ee26"/><file name="ebucks_tiny.png" hash="6085ef04ad96289d6a98e429c6d061ba"/><file name="elba.png" hash="8d2bfd3e8c0953b5d1ba80e201d25069"/><file name="elecsnet.png" hash="4a27849dfd5a8bc6771a962aff3908f4"/><file name="elv.png" hash="8e47d6ce919e1be80328665798d387ec"/><file name="elv_small.png" hash="a565fd570c28204b7ed0e92ebf667012"/><file name="elv_tiny.png" hash="3c9d929660d6279f255c7be9bf02ee8f"/><file name="empty.png" hash="65d7e6c42582ea986cb66ad78768b2ae"/><file name="enets.png" hash="5eae578677220e7085374936ffc2ec6a"/><file name="entertainmentcard.png" hash="df44b82c45f98790ea0e8866ecb5fee7"/><file name="entertainmentcard_small.png" hash="0466be6962e63c80c766ca4b092cded6"/><file name="entertainmentcard_small_grey.png" hash="32b0a15b2467decf84db199cd6db3bcf"/><file name="entertainmentcard_tiny.png" hash="2a7610575298bf7029bbbfad2bb86596"/><file name="forwardmobile.png" hash="023348014c3838963e48bdc8b397c387"/><file name="frame.png" hash="5e2226d7539f5d95dabe5988f4446282"/><file name="gallgall.png" hash="2e6b9f6aafaebe09112e089c05aa64ea"/><file name="gallgall_small.png" hash="24fabea2d5af04bedf9dd69e2368b943"/><file name="gallgall_small_tiny.png" hash="671cb1ce378d811cddaf77af7545d365"/><file name="gallgall_tiny.png" hash="769bf04c15a3b81f06940c237c3b3706"/><file name="giropay.png" hash="469cb654fe84b923b86b06723455ef9d"/><file name="giropay_small.png" hash="444f3a6307bb83a1d20d19e1cb8237f9"/><file name="giropay_small_grey.png" hash="565dd52d036a87d5c515c8bec4cef4f3"/><file name="giropay_tiny.png" hash="3a677e8d71ce59332e012db5bc343106"/><file name="globegcash.png" hash="580003d47ef03a6d1c7203bfc250b6d3"/><file name="globegcash_small.png" hash="cd18f17b46acb7ca15370b000f9bfa95"/><file name="globegcash_small_grey.png" hash="36e88a7a7170eb0c5ca7d3a8f2b08f13"/><file name="globegcash_tiny.png" hash="006794f78d9a43a56543a6e6b5a7ebd8"/><file name="hansabank.png" hash="b4dad91137678e09a650e1c6693e98d3"/><file name="hdfc.png" hash="b6e57b76ee8920607a2a0a809ee40d48"/><file name="hdfc_small.png" hash="1b9e555bfab7c0f11631dfecacffa637"/><file name="hdfc_small_grey.png" hash="cadac6a01cdab50cff177a1c0feb6156"/><file name="hdfc_tiny.png" hash="584260909cebec2286b6d1cd9489c7d4"/><file name="hppPos.png" hash="4780e785c785e93aed6ad13df323d6ef"/><file name="hyvesafrekenen.png" hash="5c8068c5b31a55f043cee6dff3246bb7"/><file name="hyvesafrekenen_small.png" hash="5a4c5747c030ac74cea799032ada3b26"/><file name="hyvesafrekenen_tiny.png" hash="2215dc356edeb426da65f43536960afe"/><file name="ideal.png" hash="6a851bfc5bac2835fd31c18c1224e8c9"/><file name="ideal_small.png" hash="8b115bda559a24a3564e02f7a90caae9"/><file name="ideal_tiny.png" hash="140c2e52427e074f95627a44db1f9f88"/><file name="interac.png" hash="c63021e21273e83423d8af2b4c7c1728"/><file name="interac_small.png" hash="0c74bd42750252eda57b054651afca18"/><file name="interac_tiny.png" hash="1a42ba184555605ab8e2ea1a4956f21a"/><file name="ipay88.png" hash="116aa967091843ee6e8e911ff4c34b22"/><file name="ipay88_small.png" hash="1dfb38797a43657d72b0701c446a841e"/><file name="ipay88_small_grey.png" hash="418f051bc03571334cec46e122fa698f"/><file name="ipay88_tiny.png" hash="0009e8c253c57564c3688010c5192ad4"/><file name="ivr.png" hash="0ebef34ac806802b0d29c1d74f84fdbf"/><file name="ivrLandline.png" hash="0ebef34ac806802b0d29c1d74f84fdbf"/><file name="ivrLandline_small.png" hash="155f9a61db970885782db7cbe997dab4"/><file name="ivrLandline_tiny.png" hash="ecf7994d1e627023dbd47615a8ebb848"/><file name="ivrMobile.png" hash="6a16e39d5deffb8fa3234108ca97b7de"/><file name="ivrMobile_small.png" hash="a9756b756b3ea56dea07a16edcdf39a9"/><file name="ivrMobile_tiny.png" hash="8c35341f8a8f6ca16b752ff7e1bb51bf"/><file name="ivr_small.png" hash="155f9a61db970885782db7cbe997dab4"/><file name="ivr_tiny.png" hash="ecf7994d1e627023dbd47615a8ebb848"/><file name="jcb.png" hash="68303da687ac6e8615196a66f40bb6fb"/><file name="jcb_small.png" hash="f469481ddecb206cfc74478c6b58266e"/><file name="jcb_small_grey.png" hash="ddb4587396f2e7c7ad83d2aa6561cf7a"/><file name="jcb_tiny.png" hash="5d89108481655ee9dc2dbf6476bbcc14"/><file name="kadowereld.png" hash="c2eea3806e2f55ffa2f7eb3154450be5"/><file name="kadowereld_small.png" hash="203f4584e34c3f059025f3d4329b4898"/><file name="kadowereld_small_grey.png" hash="3afa5e33cd29e5c3ce1723ea10607463"/><file name="kadowereld_tiny.png" hash="b2ca2f7f504670555d332f4c5e8d3074"/><file name="klarna.png" hash="51bc6b70472fe29b728192222b88c709"/><file name="klarna_small.png" hash="57a98dc539dd5c329aac8540a3204d1e"/><file name="klarna_tiny.png" hash="fe0295e2cba0b79136e86180d7db5963"/><file name="laser.png" hash="c64699ddd372b4a48e72b8066fd2aa78"/><file name="laser_small.png" hash="abda432193ffcd5388037fa34b9e0737"/><file name="laser_small_grey.png" hash="ef7193af17ae93fa9bb5215a0ec73195"/><file name="laser_tiny.png" hash="2f87b8e37582541355e9b77008cf3853"/><file name="maestro.png" hash="e91fa85475ae74b16b92b7ac05e562c2"/><file name="maestro_small.png" hash="7814fbfff53e57643137fd68889ec807"/><file name="maestro_small_grey.png" hash="31ab5c8168e8a5b075fe1136b221d453"/><file name="maestro_tiny.png" hash="87ff6ebe1ef2e4cbae340881169065c4"/><file name="maestrouk.png" hash="cf0fcc0e1f41ad2301d5814e4a9c88c4"/><file name="maestrouk_small.png" hash="7814fbfff53e57643137fd68889ec807"/><file name="maestrouk_small_grey.png" hash="31ab5c8168e8a5b075fe1136b221d453"/><file name="maestrouk_tiny.png" hash="87ff6ebe1ef2e4cbae340881169065c4"/><file name="mc.png" hash="0d108b48ed7f8e1f0020da611e223800"/><file name="mc_small.png" hash="51ca51c64a8f0277961effeb0a0dedbb"/><file name="mc_small_grey.png" hash="0762490e5dc86277d0e411468b01a269"/><file name="mc_tiny.png" hash="814af4ec011f2f33edb7d38763dea2ea"/><file name="mercadopago.png" hash="e8cdc9cab0494fbaec13ffa7a008f0d6"/><file name="mimoney.png" hash="0f6d07a6156c6dc931636c8c618384ac"/><file name="mimoney_small.png" hash="4a8b0586fd04690de902120a463ca5b2"/><file name="mimoney_small_grey.png" hash="c85a2d63e583a8fd231713d30d484ecb"/><file name="mimoney_tiny.png" hash="0c562f6e53a95ebe2ff12747f9271a56"/><file name="moneta.png" hash="c208f24cbe664e0c9df753d1dd6b8d43"/><file name="moneybookers.png" hash="7bfc54c2a787b53f699f124d7449a169"/><file name="moneybookers_small.png" hash="1290894e479fafda67291355ea65defe"/><file name="moneybookers_tiny.png" hash="4ed8a8052e9b394e174889de6d621604"/><file name="moneymail.png" hash="73d044eac9d9f1679a653dd2e62935f3"/><file name="moneymoney.png" hash="7204b9579b665085d00b1ea2184b678f"/><file name="multibanco.png" hash="178a9292a9743e3b8904f105e7d6715b"/><file name="nedbank.png" hash="a8a2dc3af1e76262b75270a24a041331"/><file name="nedbank_small.png" hash="d386a8672bd21e53580ae32ae529ca3a"/><file name="nedbank_small_grey.png" hash="7085229e1217e47b07663764f8bb1e6e"/><file name="nedbank_tiny.png" hash="af3694515dd8b68ca71324ca20089c58"/><file name="onebip.png" hash="ca289a3c9fd8d72bce90165db98a88b9"/><file name="online_RU.png" hash="afcc9ad6292e2e21feff4af23e2fa46e"/><file name="online_RU_small.png" hash="712fa0be37857b024e3118d96da61bab"/><file name="online_RU_tiny.png" hash="0e3ac8d1ca10dff95657aa9b9ebdc13b"/><file name="online_transfer_de.png" hash="43324fb914cdbf8eff66f3668a353f1e"/><file name="openinvoice.png" hash="cd46b7d11c9dd79b1cc9c073c0696aff"/><file name="openinvoice.xcf" hash="d5f41ec9c48415f65a519c33999a1229"/><file name="openinvoice_small.png" hash="63d4c6fd1e5b214d018f3e00ca687cd5"/><file name="openinvoice_tiny.png" hash="153791c1eb5bae6095e1210787ffe4fa"/><file name="pagosonline.png" hash="04a1d0c0bb46ed7f931b3d4e248f8c0a"/><file name="pagosonline_small.png" hash="9768e52502eb299716268a212a044812"/><file name="pagosonline_small_grey.png" hash="e9f7365e885652200fdb08201e1b13cf"/><file name="pagosonline_tiny.png" hash="70d51512b8bf5215f5865b21a3ca7731"/><file name="paypal.png" hash="02362803ca1d3ab9c9e8dc3176100d66"/><file name="paypal_small.png" hash="294698dab8f5aa31f2ad62702bd9d379"/><file name="paypal_tiny.png" hash="709c47f06297455d8d55d6937245e016"/><file name="paysafecard.png" hash="20861199bb6e8781c0b10e995f1490de"/><file name="paysafecard_small.png" hash="e7452ca00265fdc91dd28a2b326355d3"/><file name="paysafecard_small_grey.png" hash="06377beb14a2666f153b273e89053419"/><file name="paysafecard_tiny.png" hash="92b3df13741ef6f71d2c12206ab3f412"/><file name="payu.png" hash="bc671fff056fd108fe24ba52053111b0"/><file name="payu_small.png" hash="ca3eb82cb24dd1f1bfc34436287dc9d0"/><file name="payu_small_grey.png" hash="6097711eeb2ea309d407c03a467e1653"/><file name="payu_tiny.png" hash="2b89f57174338ba3d3192eb8519ece3f"/><file name="plastix.png" hash="82d3202239d01c6bf49d8dc2399900e2"/><file name="plastix_small.png" hash="447240736bdba2d15a34986395c3fb1f"/><file name="plastix_small_grey.png" hash="7e039f412a96a0e884f86598ebfccfb1"/><file name="plastix_tiny.png" hash="aaff5ff8c33af35fe4ae64e627c0964c"/><file name="platezhru.png" hash="2f36e088146ab75470c7a55177db8c07"/><file name="platika.png" hash="03e93ab41b0d330706e2c4f85cae966a"/><file name="postoffice_ru.png" hash="8ade3cd1711071ab73248d4ba62eae64"/><file name="pps.png" hash="29f4efc8d08cfd5ba90920b1fcef6bde"/><file name="pps_small.png" hash="7bf1fa7c4adcd8dfc2b2f56eb172fcaa"/><file name="pps_small_grey.png" hash="08d6188b7f5c13ec9c5f3488b4cbf19e"/><file name="pps_tiny.png" hash="4ed68db4ca98ac69f0557319a8284c8d"/><file name="pse.png" hash="6af65a4a18af66d103473fece5536e1c"/><file name="pse_small.png" hash="1f6695131dca61647b07f7180e695c46"/><file name="pse_small_grey.png" hash="7adf2fdfc48d8b078f7c0aeaa4f50e1c"/><file name="pse_tiny.png" hash="128b2749a126cfade0300f27c6919308"/><file name="qiwi.png" hash="b5e092af3394bc333fe83d073e8a6dfd"/><file name="qiwiwallet.png" hash="623b4c7fec53864fdee6d567da5f61cc"/><file name="refresh.png" hash="69ddc65b628d15a4375e66792c07484f"/><file name="safetypay.png" hash="af4e58d22f816f148faae179d0867b3f"/><file name="safetypay_small.png" hash="26749f1a95011897c8aaf568425df3dc"/><file name="safetypay_small_grey.png" hash="e5f3e5287e3fee2d77c065063b43e17d"/><file name="safetypay_tiny.png" hash="f3700f2d3cda7834cd178ac0f70d6352"/><file name="sendEmail.png" hash="cdddfa5e77d565a0ed23b6c26e0dee09"/><file name="sendEmail_small.png" hash="b5d63cc1613f08a08194442647ee451d"/><file name="sepadirectdebit.png" hash="e565455436d808fa07499131296490de"/><file name="sms.png" hash="7c6c0fddee039be4d879808b374f06f5"/><file name="sms_small.png" hash="fd1d52278d2446c7fe1c34d4fc70d556"/><file name="sms_tiny.png" hash="ed22de378fdbc717f987f8d4199e0452"/><file name="solo.png" hash="13f13c36cff7835d4a46df140fe432a3"/><file name="solo_small.png" hash="96de4f5f750a415fef573ce28092bf68"/><file name="solo_small_grey.png" hash="75c9b0b2daae0d6d80a5f5ff4f14e8d6"/><file name="solo_tiny.png" hash="3e2d7a21d19b12ed84aabdb26304fae6"/><file name="switch.png" hash="8cf19bb8c744a3f852511e781c176c07"/><file name="template.xcf" hash="e5035cd9e4e96859e50c1a9773098e89"/><file name="tenpay.png" hash="ddd0b5b8e3ff63cf1bfc555fbede0242"/><file name="tenpay_small.png" hash="2aa6c5919108eec42ed5c47ad4155a8f"/><file name="tenpay_small_grey.png" hash="6a21283b21295eefb4db553f877ea4c1"/><file name="tenpay_tiny.png" hash="736275eeec39e56c3c1d29fcb9d8ebb7"/><file name="terminal_RU.png" hash="711ab27d1cbbf6771e0ee133f75c7c46"/><file name="terminal_RU_small.png" hash="9bafe5dd035f73757f553250382764c6"/><file name="terminal_RU_tiny.png" hash="1b4dce2e901d90185933420cd80648cb"/><file name="tnt_rembours.png" hash="a8abb6f51d7893da39fcc2477d7bd2bb"/><file name="tnt_rembours_small.png" hash="72ee2b0ae6742cd325bda44a14093f4c"/><file name="trustly.png" hash="2a82872cc0ada644b0442e05423a2db8"/><file name="trustpay.png" hash="88a3680bf1007661ab4fc63106aa1ff4"/><file name="uhisbank.png" hash="8c0967455a15aefe3cdfb47240a18850"/><file name="ukash.png" hash="b95eb9f2658923c38a6252f5ff9ca9c7"/><file name="ukash_small.png" hash="2210a65cd1fb85bc883d112b12c79e6e"/><file name="ukash_small_grey.png" hash="65e6cc21082ebd3c93e96bbf96499df4"/><file name="ukash_tiny.png" hash="543ab39e6dcbc094188b4f473ac4b998"/><file name="unionpay.png" hash="068dee300e2c12e58e9a47d3556e977c"/><file name="unionpay_small.png" hash="55a00c9d7bbcbe1c448b449974d85af1"/><file name="unionpay_small_grey.png" hash="5c69e46ee4663f2d0e47c7f503bbd1e4"/><file name="unionpay_tiny.png" hash="45d3b4e758237412b524a5c52418da67"/><file name="unknown.png" hash="b2d137147db4d6eb7dacb5414a4f7a30"/><file name="unknown_small.png" hash="a5234e9eb2e4485acb19b196876d762b"/><file name="vias.png" hash="aca848fa54b173225fe17637699d87c4"/><file name="vias_small.png" hash="37bee85c36b52a07a4529735a194a41e"/><file name="vias_small_grey.png" hash="4da77d558ae9488ee2a85191e9db8748"/><file name="vias_tiny.png" hash="1a45f0a2696b5539195c2fcb69be49b6"/><file name="visa-electron.png" hash="308132b89febd4979bac61594919057f"/><file name="visa-electron_small.png" hash="5ab129027f4f4acbc7a9aa2b5d0e84d3"/><file name="visa-electron_small_grey.png" hash="712b876d4f060613f54f2ec04516e512"/><file name="visa.png" hash="30f9fde31aa41197e71ccd9a63a1fe75"/><file name="visa_fr.png" hash="abd117879295333ac54497e15f81ea18"/><file name="visa_fr_small.png" hash="837db98a87141717dcd1b90bcb5ff5b1"/><file name="visa_fr_small_grey.png" hash="e8cef14608278ab71ef2ffd58e65dc9e"/><file name="visa_small.png" hash="cdab39efaf22fcd2ab88f3dc42c32de1"/><file name="visa_small_grey.png" hash="9411565a7e81c5c3cc484863dc53031a"/><file name="visa_tiny.png" hash="e374bec64dcc345848b43f0a8a3490c2"/><file name="wallet_RU.png" hash="29213300b3cf644c64d915418f259d87"/><file name="wallet_RU_small.png" hash="3308a16ce0f5b474af32505f587079b5"/><file name="wallet_RU_tiny.png" hash="c46cdb588d7a9a21a909e5af842414b5"/><file name="wallie.png" hash="fc97552b8249c3e96aa6f3cf8e3577bd"/><file name="wallie_small.png" hash="c0b60fe348b16e157eb0c64043f410c2"/><file name="wallie_tiny.png" hash="df61209a0e0517bbb3d65119d5ebfcbd"/><file name="webmoney.png" hash="3cca800e0962e0078b64361de11b935f"/><file name="webshopgiftcard.png" hash="09990fe325b20c2fcdaaa855457d5348"/><file name="wiwallet.png" hash="5db11152a23a72b2f4676841261c5db0"/><file name="wiwallet_small.png" hash="a4c5567f59ca4575a316e1bf3eb066c1"/><file name="wiwallet_small_grey.png" hash="b75b2af0b5c6129e8c1d7bc9087222b4"/><file name="wiwallet_tiny.png" hash="8b53e98458e15bc19b242d05ad678f2d"/><file name="yandexmoney.png" hash="e6a38c66b08ba78a68096f8ff1b2a41d"/><file name="yourgift.png" hash="87bd1ef190d75ec64fb66b77aaeb7b8c"/><file name="yourgift_small.png" hash="17300795f7fd31d5cb730685c2eb0098"/><file name="yourgift_small_grey.png" hash="69b235ccb6b7ef0dfb3a2645be60dbc6"/><file name="yourgift_tiny.png" hash="a3bc0b90775458ff9ef8499f7a5437ca"/></dir></dir><dir name="css"><file name="adyenstyle.css" hash="096fc2858874e260da465bc62f2bdd14"/></dir></dir></dir><dir name="default"><dir name="adyen"><dir><dir name="onestepcheckout"><dir name="js"><file name="onestepcheckout.js" hash="fd2e1fa2222de70b7eb47429a581ad6c"/></dir></dir></dir></dir></dir><dir name="rwd"><dir name="adyen"><dir><dir name="onestepcheckout"><dir name="js"><file name="onestepcheckout.js" hash="fd2e1fa2222de70b7eb47429a581ad6c"/></dir></dir></dir></dir></dir><dir name="enterprise"><dir name="adyen"><dir><dir name="onestepcheckout"><dir name="js"><file name="onestepcheckout.js" hash="fd2e1fa2222de70b7eb47429a581ad6c"/></dir></dir></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="adyen"><dir name="payment"><file name="adyen.encrypt.js" hash="6e6d006f2ac96f33a4531d3115f2d852"/><file name="elv.js" hash="db612a634c95727ec9db82c50e9aec8e"/></dir></dir></dir></target></contents>
45
  <compatible/>
46
  <dependencies><required><php><min>5.3.3</min><max>6.0.0</max></php></required></dependencies>
47
  </package>
skin/frontend/base/default/css/adyenstyle.css CHANGED
@@ -47,15 +47,59 @@
47
  .sp-methods h3.other-payment { margin-top:15px; }
48
  .sp-methods #oneclick_payment_form_adyen_oneclick { padding-top:10px; }
49
  .sp-methods #oneclick_payment_form_adyen_oneclick .recurring-creditcards .recurring_type { float:left; vertical-align: middle; height:120px;}
50
- .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block { display:inline-block; border: 1px solid #999; padding:10px; margin-left:10px; min-width: 568px; }
51
- .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block img { margin-bottom:10px;}
52
- .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block .columns { float:left; margin-right:10px; height:30px;}
53
- .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block .columns .update-expiration-date { display:inline; float:none; }
54
- .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block label { display:block; }
55
- .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block .columns.three.b label { width:175px;}
56
- .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block .creditcard-holder-name { margin-top:20px;}
57
 
58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
 
60
  /* pos redirect page */
61
  .redirect-body-adyen { margin:0; padding:0;}
@@ -64,3 +108,4 @@
64
  #pos-redirect-page .grey-header h1 { padding: 16px 10px; font-family: 'Open Sans', sans-serif; font-size:24px;color:white; }
65
  #pos-redirect-page .amount-box { width:300px; height:150px; padding-top:75px; margin:50px auto; border:1px solid #797c83; color:#797c83; text-align:center; font-weight:bold; font-size:34px; background-color: #f5f5f5; box-shadow: 0 0 2px 2px #888;}
66
  #pos-redirect-page #launchlink { margin-top:10px; clear:both; display:block; color:#797C83; text-decoration:none; }
 
47
  .sp-methods h3.other-payment { margin-top:15px; }
48
  .sp-methods #oneclick_payment_form_adyen_oneclick { padding-top:10px; }
49
  .sp-methods #oneclick_payment_form_adyen_oneclick .recurring-creditcards .recurring_type { float:left; vertical-align: middle; height:120px;}
 
 
 
 
 
 
 
50
 
51
 
52
+ .saved-cards ul li { margin-bottom:10px; }
53
+ .saved-cards .btn-delete {margin-top:10px;}
54
+
55
+ .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block,
56
+ .saved-cards .creditcard-block {
57
+ display:inline-block;
58
+ border: 1px solid #999;
59
+ padding:10px;
60
+ margin-left:10px;
61
+ min-width: 568px;
62
+ }
63
+
64
+ .saved-cards .creditcard-block { min-width:350px;}
65
+
66
+ .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block img,
67
+ .saved-cards .creditcard-block img {
68
+ margin-bottom:10px;
69
+ }
70
+
71
+
72
+ .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block .columns,
73
+ .saved-cards .creditcard-block .columns {
74
+ float:left;
75
+ margin-right:10px;
76
+ height:30px;
77
+ }
78
+
79
+ .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block .columns .update-expiration-date,
80
+ .saved-cards .creditcard-block .creditcard-block .columns .update-expiration-date {
81
+ display:inline; float:none;
82
+ }
83
+
84
+ .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block label,
85
+ .saved-cards .creditcard-block label {
86
+ display:block;
87
+ }
88
+
89
+ .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block .columns.three.b label,
90
+ .creditcard-holder-name, .saved-cards .creditcard-block .columns.three.b label {
91
+ width:175px;
92
+ }
93
+
94
+ .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block .creditcard-holder-name,
95
+ .saved-cards .creditcard-block .creditcard-holder-name {
96
+ margin-top:20px;
97
+ }
98
+
99
+ .sp-methods #oneclick_payment_form_adyen_oneclick .creditcard-block .adyen-oneclick-installments,
100
+ .saved-cards .creditcard-block .adyen-oneclick-installments {
101
+ margin-top:10px;
102
+ }
103
 
104
  /* pos redirect page */
105
  .redirect-body-adyen { margin:0; padding:0;}
108
  #pos-redirect-page .grey-header h1 { padding: 16px 10px; font-family: 'Open Sans', sans-serif; font-size:24px;color:white; }
109
  #pos-redirect-page .amount-box { width:300px; height:150px; padding-top:75px; margin:50px auto; border:1px solid #797c83; color:#797c83; text-align:center; font-weight:bold; font-size:34px; background-color: #f5f5f5; box-shadow: 0 0 2px 2px #888;}
110
  #pos-redirect-page #launchlink { margin-top:10px; clear:both; display:block; color:#797C83; text-decoration:none; }
111
+
skin/frontend/default/adyen/onestepcheckout/js/onestepcheckout.js CHANGED
@@ -450,9 +450,23 @@ function get_save_billing_function(url, set_methods_url, update_payments, trigge
450
 
451
  var payment_hpp_ideal_type = $RF(form, 'payment[hpp_ideal_type]');
452
  var payment_hpp_type = $RF(form, 'payment[hpp_type]');
453
- var payment_recurring_type = $RF(form, 'payment[recurring]');
454
  var payment_recurring_type_cvc = $('adyen_oneclick_oneclick_cid_'+payment_recurring_type);
455
  var payment_method = $RF(form, 'payment[method]');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
456
  parameters['payment_method'] = payment_method;
457
  parameters['payment[method]'] = payment_method;
458
 
@@ -509,6 +523,20 @@ function get_save_billing_function(url, set_methods_url, update_payments, trigge
509
  });
510
 
511
  if($RF(form, 'payment[method]') != null) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
512
  try {
513
  var payment_method = $RF(form, 'payment[method]');
514
  $('container_payment_method_' + payment_method).show();
@@ -573,6 +601,19 @@ function get_separate_save_methods_function(url, update_payments)
573
  var payment_recurring_type = $RF(form, 'payment[recurring]');
574
  var payment_recurring_type_cvc = $('adyen_oneclick_oneclick_cid_'+payment_recurring_type);
575
 
 
 
 
 
 
 
 
 
 
 
 
 
 
576
  var totals = get_totals_element();
577
 
578
  var freeMethod = $('p_method_free');
@@ -627,6 +668,21 @@ function get_separate_save_methods_function(url, update_payments)
627
  });
628
 
629
  if($RF($('onestepcheckout-form'), 'payment[method]') != null) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
630
  try {
631
  var payment_method = $RF(form, 'payment[method]');
632
  $('container_payment_method_' + payment_method).show();
@@ -1048,4 +1104,4 @@ Payment.prototype = {
1048
  (init.value)();
1049
  });
1050
  }
1051
- };
450
 
451
  var payment_hpp_ideal_type = $RF(form, 'payment[hpp_ideal_type]');
452
  var payment_hpp_type = $RF(form, 'payment[hpp_type]');
453
+ var payment_recurring_type = $RF(form, 'payment[method]');
454
  var payment_recurring_type_cvc = $('adyen_oneclick_oneclick_cid_'+payment_recurring_type);
455
  var payment_method = $RF(form, 'payment[method]');
456
+
457
+ // save all input and select fields in array so after ajax call you can reset the values
458
+ var paymentInputFields = {};
459
+ var inputs = form.querySelectorAll("input,select");
460
+ for (x = 0 ; x < inputs.length ; x++){
461
+ inputname = inputs[x].getAttribute("name");
462
+ if(inputname != null) {
463
+ if(inputname.startsWith("payment") && inputs[x].type != "hidden") {
464
+ var inputname = inputname.replace('payment[','').replace(']','');
465
+ paymentInputFields[inputname] = inputs[x].value;
466
+ }
467
+ }
468
+ }
469
+
470
  parameters['payment_method'] = payment_method;
471
  parameters['payment[method]'] = payment_method;
472
 
523
  });
524
 
525
  if($RF(form, 'payment[method]') != null) {
526
+
527
+ // loop through input fields and reset the values
528
+ for (var name in paymentInputFields) {
529
+
530
+ var inputname = "payment[" + name + "]";
531
+ var inputElements = document.getElementsByName(inputname);
532
+ var inputElement = inputElements[0];
533
+
534
+ if($(inputElement).type && $(inputElement).type.toLowerCase() != 'radio') {
535
+ // element is unique so get first and only item
536
+ inputElements[0].value = paymentInputFields[name];
537
+ }
538
+ }
539
+
540
  try {
541
  var payment_method = $RF(form, 'payment[method]');
542
  $('container_payment_method_' + payment_method).show();
601
  var payment_recurring_type = $RF(form, 'payment[recurring]');
602
  var payment_recurring_type_cvc = $('adyen_oneclick_oneclick_cid_'+payment_recurring_type);
603
 
604
+ // save all input and select fields in array so after ajax call you can reset the values
605
+ var paymentInputFields = {};
606
+ var inputs = form.querySelectorAll("input,select");
607
+ for (x = 0 ; x < inputs.length ; x++){
608
+ inputname = inputs[x].getAttribute("name");
609
+ if(inputname != null) {
610
+ if(inputname.startsWith("payment") && inputs[x].type != "hidden") {
611
+ var inputname = inputname.replace('payment[','').replace(']','');
612
+ paymentInputFields[inputname] = inputs[x].value;
613
+ }
614
+ }
615
+ }
616
+
617
  var totals = get_totals_element();
618
 
619
  var freeMethod = $('p_method_free');
668
  });
669
 
670
  if($RF($('onestepcheckout-form'), 'payment[method]') != null) {
671
+
672
+
673
+ // loop through input fields and reset the values
674
+ for (var name in paymentInputFields) {
675
+
676
+ var inputname = "payment[" + name + "]";
677
+ var inputElements = document.getElementsByName(inputname);
678
+ var inputElement = inputElements[0];
679
+
680
+ if($(inputElement).type && $(inputElement).type.toLowerCase() != 'radio') {
681
+ // element is unique so get first and only item
682
+ inputElements[0].value = paymentInputFields[name];
683
+ }
684
+ }
685
+
686
  try {
687
  var payment_method = $RF(form, 'payment[method]');
688
  $('container_payment_method_' + payment_method).show();
1104
  (init.value)();
1105
  });
1106
  }
1107
+ };
skin/frontend/enterprise/adyen/onestepcheckout/js/onestepcheckout.js CHANGED
@@ -450,9 +450,23 @@ function get_save_billing_function(url, set_methods_url, update_payments, trigge
450
 
451
  var payment_hpp_ideal_type = $RF(form, 'payment[hpp_ideal_type]');
452
  var payment_hpp_type = $RF(form, 'payment[hpp_type]');
453
- var payment_recurring_type = $RF(form, 'payment[recurring]');
454
  var payment_recurring_type_cvc = $('adyen_oneclick_oneclick_cid_'+payment_recurring_type);
455
  var payment_method = $RF(form, 'payment[method]');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
456
  parameters['payment_method'] = payment_method;
457
  parameters['payment[method]'] = payment_method;
458
 
@@ -509,6 +523,20 @@ function get_save_billing_function(url, set_methods_url, update_payments, trigge
509
  });
510
 
511
  if($RF(form, 'payment[method]') != null) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
512
  try {
513
  var payment_method = $RF(form, 'payment[method]');
514
  $('container_payment_method_' + payment_method).show();
@@ -573,6 +601,19 @@ function get_separate_save_methods_function(url, update_payments)
573
  var payment_recurring_type = $RF(form, 'payment[recurring]');
574
  var payment_recurring_type_cvc = $('adyen_oneclick_oneclick_cid_'+payment_recurring_type);
575
 
 
 
 
 
 
 
 
 
 
 
 
 
 
576
  var totals = get_totals_element();
577
 
578
  var freeMethod = $('p_method_free');
@@ -627,6 +668,21 @@ function get_separate_save_methods_function(url, update_payments)
627
  });
628
 
629
  if($RF($('onestepcheckout-form'), 'payment[method]') != null) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
630
  try {
631
  var payment_method = $RF(form, 'payment[method]');
632
  $('container_payment_method_' + payment_method).show();
@@ -1048,4 +1104,4 @@ Payment.prototype = {
1048
  (init.value)();
1049
  });
1050
  }
1051
- };
450
 
451
  var payment_hpp_ideal_type = $RF(form, 'payment[hpp_ideal_type]');
452
  var payment_hpp_type = $RF(form, 'payment[hpp_type]');
453
+ var payment_recurring_type = $RF(form, 'payment[method]');
454
  var payment_recurring_type_cvc = $('adyen_oneclick_oneclick_cid_'+payment_recurring_type);
455
  var payment_method = $RF(form, 'payment[method]');
456
+
457
+ // save all input and select fields in array so after ajax call you can reset the values
458
+ var paymentInputFields = {};
459
+ var inputs = form.querySelectorAll("input,select");
460
+ for (x = 0 ; x < inputs.length ; x++){
461
+ inputname = inputs[x].getAttribute("name");
462
+ if(inputname != null) {
463
+ if(inputname.startsWith("payment") && inputs[x].type != "hidden") {
464
+ var inputname = inputname.replace('payment[','').replace(']','');
465
+ paymentInputFields[inputname] = inputs[x].value;
466
+ }
467
+ }
468
+ }
469
+
470
  parameters['payment_method'] = payment_method;
471
  parameters['payment[method]'] = payment_method;
472
 
523
  });
524
 
525
  if($RF(form, 'payment[method]') != null) {
526
+
527
+ // loop through input fields and reset the values
528
+ for (var name in paymentInputFields) {
529
+
530
+ var inputname = "payment[" + name + "]";
531
+ var inputElements = document.getElementsByName(inputname);
532
+ var inputElement = inputElements[0];
533
+
534
+ if($(inputElement).type && $(inputElement).type.toLowerCase() != 'radio') {
535
+ // element is unique so get first and only item
536
+ inputElements[0].value = paymentInputFields[name];
537
+ }
538
+ }
539
+
540
  try {
541
  var payment_method = $RF(form, 'payment[method]');
542
  $('container_payment_method_' + payment_method).show();
601
  var payment_recurring_type = $RF(form, 'payment[recurring]');
602
  var payment_recurring_type_cvc = $('adyen_oneclick_oneclick_cid_'+payment_recurring_type);
603
 
604
+ // save all input and select fields in array so after ajax call you can reset the values
605
+ var paymentInputFields = {};
606
+ var inputs = form.querySelectorAll("input,select");
607
+ for (x = 0 ; x < inputs.length ; x++){
608
+ inputname = inputs[x].getAttribute("name");
609
+ if(inputname != null) {
610
+ if(inputname.startsWith("payment") && inputs[x].type != "hidden") {
611
+ var inputname = inputname.replace('payment[','').replace(']','');
612
+ paymentInputFields[inputname] = inputs[x].value;
613
+ }
614
+ }
615
+ }
616
+
617
  var totals = get_totals_element();
618
 
619
  var freeMethod = $('p_method_free');
668
  });
669
 
670
  if($RF($('onestepcheckout-form'), 'payment[method]') != null) {
671
+
672
+
673
+ // loop through input fields and reset the values
674
+ for (var name in paymentInputFields) {
675
+
676
+ var inputname = "payment[" + name + "]";
677
+ var inputElements = document.getElementsByName(inputname);
678
+ var inputElement = inputElements[0];
679
+
680
+ if($(inputElement).type && $(inputElement).type.toLowerCase() != 'radio') {
681
+ // element is unique so get first and only item
682
+ inputElements[0].value = paymentInputFields[name];
683
+ }
684
+ }
685
+
686
  try {
687
  var payment_method = $RF(form, 'payment[method]');
688
  $('container_payment_method_' + payment_method).show();
1104
  (init.value)();
1105
  });
1106
  }
1107
+ };
skin/frontend/rwd/adyen/onestepcheckout/js/onestepcheckout.js CHANGED
@@ -450,9 +450,23 @@ function get_save_billing_function(url, set_methods_url, update_payments, trigge
450
 
451
  var payment_hpp_ideal_type = $RF(form, 'payment[hpp_ideal_type]');
452
  var payment_hpp_type = $RF(form, 'payment[hpp_type]');
453
- var payment_recurring_type = $RF(form, 'payment[recurring]');
454
  var payment_recurring_type_cvc = $('adyen_oneclick_oneclick_cid_'+payment_recurring_type);
455
  var payment_method = $RF(form, 'payment[method]');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
456
  parameters['payment_method'] = payment_method;
457
  parameters['payment[method]'] = payment_method;
458
 
@@ -509,6 +523,20 @@ function get_save_billing_function(url, set_methods_url, update_payments, trigge
509
  });
510
 
511
  if($RF(form, 'payment[method]') != null) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
512
  try {
513
  var payment_method = $RF(form, 'payment[method]');
514
  $('container_payment_method_' + payment_method).show();
@@ -573,6 +601,19 @@ function get_separate_save_methods_function(url, update_payments)
573
  var payment_recurring_type = $RF(form, 'payment[recurring]');
574
  var payment_recurring_type_cvc = $('adyen_oneclick_oneclick_cid_'+payment_recurring_type);
575
 
 
 
 
 
 
 
 
 
 
 
 
 
 
576
  var totals = get_totals_element();
577
 
578
  var freeMethod = $('p_method_free');
@@ -627,6 +668,21 @@ function get_separate_save_methods_function(url, update_payments)
627
  });
628
 
629
  if($RF($('onestepcheckout-form'), 'payment[method]') != null) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
630
  try {
631
  var payment_method = $RF(form, 'payment[method]');
632
  $('container_payment_method_' + payment_method).show();
@@ -1048,4 +1104,4 @@ Payment.prototype = {
1048
  (init.value)();
1049
  });
1050
  }
1051
- };
450
 
451
  var payment_hpp_ideal_type = $RF(form, 'payment[hpp_ideal_type]');
452
  var payment_hpp_type = $RF(form, 'payment[hpp_type]');
453
+ var payment_recurring_type = $RF(form, 'payment[method]');
454
  var payment_recurring_type_cvc = $('adyen_oneclick_oneclick_cid_'+payment_recurring_type);
455
  var payment_method = $RF(form, 'payment[method]');
456
+
457
+ // save all input and select fields in array so after ajax call you can reset the values
458
+ var paymentInputFields = {};
459
+ var inputs = form.querySelectorAll("input,select");
460
+ for (x = 0 ; x < inputs.length ; x++){
461
+ inputname = inputs[x].getAttribute("name");
462
+ if(inputname != null) {
463
+ if(inputname.startsWith("payment") && inputs[x].type != "hidden") {
464
+ var inputname = inputname.replace('payment[','').replace(']','');
465
+ paymentInputFields[inputname] = inputs[x].value;
466
+ }
467
+ }
468
+ }
469
+
470
  parameters['payment_method'] = payment_method;
471
  parameters['payment[method]'] = payment_method;
472
 
523
  });
524
 
525
  if($RF(form, 'payment[method]') != null) {
526
+
527
+ // loop through input fields and reset the values
528
+ for (var name in paymentInputFields) {
529
+
530
+ var inputname = "payment[" + name + "]";
531
+ var inputElements = document.getElementsByName(inputname);
532
+ var inputElement = inputElements[0];
533
+
534
+ if($(inputElement).type && $(inputElement).type.toLowerCase() != 'radio') {
535
+ // element is unique so get first and only item
536
+ inputElements[0].value = paymentInputFields[name];
537
+ }
538
+ }
539
+
540
  try {
541
  var payment_method = $RF(form, 'payment[method]');
542
  $('container_payment_method_' + payment_method).show();
601
  var payment_recurring_type = $RF(form, 'payment[recurring]');
602
  var payment_recurring_type_cvc = $('adyen_oneclick_oneclick_cid_'+payment_recurring_type);
603
 
604
+ // save all input and select fields in array so after ajax call you can reset the values
605
+ var paymentInputFields = {};
606
+ var inputs = form.querySelectorAll("input,select");
607
+ for (x = 0 ; x < inputs.length ; x++){
608
+ inputname = inputs[x].getAttribute("name");
609
+ if(inputname != null) {
610
+ if(inputname.startsWith("payment") && inputs[x].type != "hidden") {
611
+ var inputname = inputname.replace('payment[','').replace(']','');
612
+ paymentInputFields[inputname] = inputs[x].value;
613
+ }
614
+ }
615
+ }
616
+
617
  var totals = get_totals_element();
618
 
619
  var freeMethod = $('p_method_free');
668
  });
669
 
670
  if($RF($('onestepcheckout-form'), 'payment[method]') != null) {
671
+
672
+
673
+ // loop through input fields and reset the values
674
+ for (var name in paymentInputFields) {
675
+
676
+ var inputname = "payment[" + name + "]";
677
+ var inputElements = document.getElementsByName(inputname);
678
+ var inputElement = inputElements[0];
679
+
680
+ if($(inputElement).type && $(inputElement).type.toLowerCase() != 'radio') {
681
+ // element is unique so get first and only item
682
+ inputElements[0].value = paymentInputFields[name];
683
+ }
684
+ }
685
+
686
  try {
687
  var payment_method = $RF(form, 'payment[method]');
688
  $('container_payment_method_' + payment_method).show();
1104
  (init.value)();
1105
  });
1106
  }
1107
+ };