Adyen_Payment - Version 2.4.0

Version Notes

Adyen Payment 2.4.0

See release note:
https://github.com/Adyen/magento/releases/tag/2.4.0

Download this release

Release Info

Developer Adyen
Extension Adyen_Payment
Version 2.4.0
Comparing to
See all releases


Code changes from version 2.3.1 to 2.4.0

Files changed (92) hide show
  1. app/code/community/Adyen/Payment/Block/Adminhtml/Adyen/Event/Queue/Grid.php +18 -0
  2. app/code/community/Adyen/Payment/Block/Adminhtml/Sales/Billing/Agreement/Grid.php +109 -0
  3. app/code/community/Adyen/Payment/Block/{SavedCards.php → Adminhtml/System/Config/Fieldset/Expanded.php} +19 -25
  4. app/code/community/Adyen/Payment/Block/Adminhtml/System/Config/Fieldset/{Payment.php → Fieldset.php} +26 -17
  5. app/code/community/Adyen/Payment/Block/Adminhtml/System/Config/Fieldset/Gettingstarted.php +56 -0
  6. app/code/community/Adyen/Payment/Block/Adminhtml/System/Config/Fieldset/Method.php +77 -0
  7. app/code/community/Adyen/Payment/Block/Adminhtml/System/Config/HppPaymentMethodFee.php +38 -0
  8. app/code/community/Adyen/Payment/Block/Form/Abstract.php +102 -0
  9. app/code/community/Adyen/Payment/Block/Form/Boleto.php +1 -0
  10. app/code/community/Adyen/Payment/Block/Form/Cc.php +3 -2
  11. app/code/community/Adyen/Payment/Block/Form/Elv.php +1 -0
  12. app/code/community/Adyen/Payment/Block/Form/Hpp.php +1 -0
  13. app/code/community/Adyen/Payment/Block/Form/Ideal.php +1 -1
  14. app/code/community/Adyen/Payment/Block/Form/Oneclick.php +31 -19
  15. app/code/community/Adyen/Payment/Block/Form/Openinvoice.php +1 -0
  16. app/code/community/Adyen/Payment/Block/Form/Pos.php +1 -0
  17. app/code/community/Adyen/Payment/Block/Form/Sepa.php +36 -42
  18. app/code/community/Adyen/Payment/Block/Info/Sepa.php +0 -5
  19. app/code/community/Adyen/Payment/Exception.php +57 -0
  20. app/code/community/Adyen/Payment/Helper/Billing/Agreement.php +83 -0
  21. app/code/community/Adyen/Payment/Helper/Data.php +204 -205
  22. app/code/community/Adyen/Payment/Helper/Payment/Data.php +13 -7
  23. app/code/community/Adyen/Payment/Helper/Pci.php +1 -1
  24. app/code/community/Adyen/Payment/Model/Adyen/Abstract.php +179 -46
  25. app/code/community/Adyen/Payment/Model/Adyen/Boleto.php +0 -16
  26. app/code/community/Adyen/Payment/Model/Adyen/Cc.php +42 -32
  27. app/code/community/Adyen/Payment/Model/Adyen/Data/PaymentRequest.php +47 -21
  28. app/code/community/Adyen/Payment/Model/Adyen/Elv.php +0 -16
  29. app/code/community/Adyen/Payment/Model/Adyen/Hpp.php +10 -0
  30. app/code/community/Adyen/Payment/Model/Adyen/Ideal.php +16 -10
  31. app/code/community/Adyen/Payment/Model/Adyen/Oneclick.php +168 -10
  32. app/code/community/Adyen/Payment/Model/Adyen/Sepa.php +21 -111
  33. app/code/community/Adyen/Payment/Model/Api.php +275 -0
  34. app/code/community/Adyen/Payment/Model/Authenticate.php +4 -2
  35. app/code/community/Adyen/Payment/Model/Billing/Agreement.php +132 -0
  36. app/code/community/Adyen/Payment/Model/Billing/Agreement/Observer.php +134 -0
  37. app/code/community/Adyen/Payment/Model/Observer.php +91 -103
  38. app/code/community/Adyen/Payment/Model/ProcessNotification.php +156 -61
  39. app/code/community/Adyen/Payment/Model/Resource/Billing/Agreement.php +48 -0
  40. app/code/community/Adyen/Payment/Model/Resource/Billing/Agreement/Collection.php +156 -0
  41. app/code/community/Adyen/Payment/Model/Sales/Quote/Address/Total/PaymentFee.php +3 -6
  42. app/code/community/Adyen/Payment/Model/Source/CaptureModes.php +2 -2
  43. app/code/community/Adyen/Payment/Model/Source/DemoModes.php +12 -3
  44. app/code/community/Adyen/Payment/Model/Source/PayPalCaptureModes.php +2 -3
  45. app/code/community/Adyen/Payment/Model/Source/RecurringPaymentType.php +44 -0
  46. app/code/community/Adyen/Payment/Model/Source/Rendermode.php +1 -1
  47. app/code/community/Adyen/Payment/Model/Source/SepaFlow.php +1 -1
  48. app/code/community/Adyen/Payment/Model/Source/Status/Refund.php +3 -1
  49. app/code/community/Adyen/Payment/controllers/Adminhtml/Adyen/Event/QueueController.php +68 -4
  50. app/code/community/Adyen/Payment/controllers/Adminhtml/ExportAdyenSettingsController.php +8 -0
  51. app/code/community/Adyen/Payment/controllers/Adminhtml/ValidateWebserverSettingsController.php +8 -0
  52. app/code/community/Adyen/Payment/controllers/ProcessController.php +10 -7
  53. app/code/community/Adyen/Payment/controllers/SavedCardController.php +0 -117
  54. app/code/community/Adyen/Payment/controllers/UpdateCartController.php +1 -1
  55. app/code/community/Adyen/Payment/etc/config.xml +53 -7
  56. app/code/community/Adyen/Payment/etc/system.xml +1238 -946
  57. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-install-0.0.1.php +2 -1
  58. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-0.0.1-0.0.2.php +2 -1
  59. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-0.0.7-0.0.8.php +2 -1
  60. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-0.0.8-0.0.9.php +6 -9
  61. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-0.1.0.3-0.1.0.4.php +1 -1
  62. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-0.1.0.8-0.1.0.9.php +1 -1
  63. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-0.1.0.9-0.1.0.10.php +3 -2
  64. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-1.0.0.3-1.0.0.7.php +3 -7
  65. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-2.0.3-2.1.0.php +1 -1
  66. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-2.1.1-2.1.2.1.php +1 -1
  67. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-2.1.2.1-2.1.2.2.php +1 -1
  68. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-2.1.2.2-2.1.2.3.php +1 -1
  69. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-2.2.0-2.2.0.1.php +1 -1
  70. app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-2.3.1.1-2.3.1.2.php +70 -0
  71. app/design/adminhtml/default/default/layout/adyen.xml +8 -1
  72. app/design/adminhtml/default/default/template/adyen/form/cc.phtml +26 -0
  73. app/design/adminhtml/default/default/template/adyen/form/hpp.phtml +2 -2
  74. app/design/adminhtml/default/default/template/adyen/form/oneclick.phtml +2 -1
  75. app/design/adminhtml/default/default/template/adyen/form/sepa.phtml +12 -5
  76. app/design/adminhtml/default/default/template/adyen/system/config/test_webserver_configuration.phtml +4 -4
  77. app/design/frontend/base/default/layout/adyen.xml +3 -20
  78. app/design/frontend/base/default/template/adyen/form/cc.phtml +179 -173
  79. app/design/frontend/base/default/template/adyen/form/oneclick.phtml +26 -27
  80. app/design/frontend/base/default/template/adyen/form/sepa.phtml +13 -5
  81. app/design/frontend/base/default/template/adyen/saved_cards.phtml +0 -157
  82. app/design/frontend/base/default/template/adyen/scan_product.phtml +9 -7
  83. app/locale/de_DE/Adyen_Payment.csv +1 -1
  84. app/locale/es_ES/Adyen_Payment.csv +1 -1
  85. app/locale/fr_FR/Adyen_Payment.csv +1 -1
  86. app/locale/nl_NL/Adyen_Payment.csv +4 -1
  87. js/adyen/payment/iban.js +28 -0
  88. package.xml +7 -12
  89. shell/adyen.php +179 -0
  90. skin/frontend/base/default/css/adyenstyle.css +5 -0
  91. skin/frontend/base/default/images/adyen/alipay_wap.png +0 -0
  92. skin/frontend/base/default/images/adyen/alipay_wap_small.png +0 -0
app/code/community/Adyen/Payment/Block/Adminhtml/Adyen/Event/Queue/Grid.php CHANGED
@@ -124,8 +124,26 @@ class Adyen_Payment_Block_Adminhtml_Adyen_Event_Queue_Grid extends Mage_Adminhtm
124
 
125
 
126
  return parent::_prepareColumns();
 
 
 
 
 
 
127
 
 
 
 
 
 
 
 
 
 
 
 
128
 
 
129
  }
130
 
131
  public function getGridUrl()
124
 
125
 
126
  return parent::_prepareColumns();
127
+ }
128
+
129
+ protected function _prepareMassaction()
130
+ {
131
+ $this->setMassactionIdField('event_queue_id');
132
+ $this->getMassactionBlock()->setFormFieldName('queue_id');
133
 
134
+ $this->getMassactionBlock()->addItem('delete', array(
135
+ 'label'=> Mage::helper('adyen')->__('Delete'),
136
+ 'url' => $this->getUrl('*/*/massDelete', array('' => '')), // public function massDeleteAction() in Adyen_Payment_Adminhtml_Adyen_Event_QueueController
137
+ 'confirm' => Mage::helper('adyen')->__('Are you sure?')
138
+ ));
139
+
140
+ $this->getMassactionBlock()->addItem('excecute', array(
141
+ 'label'=> Mage::helper('adyen')->__('Excecute'),
142
+ 'url' => $this->getUrl('*/*/massExecute', array('' => '')), // public function massDeleteAction() in Adyen_Payment_Adminhtml_Adyen_Event_QueueController
143
+ 'confirm' => Mage::helper('adyen')->__('Are you sure?')
144
+ ));
145
 
146
+ return $this;
147
  }
148
 
149
  public function getGridUrl()
app/code/community/Adyen/Payment/Block/Adminhtml/Sales/Billing/Agreement/Grid.php ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adyen Payment Module
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
+ */
27
+
28
+ class Adyen_Payment_Block_Adminhtml_Sales_Billing_Agreement_Grid
29
+ extends Mage_Sales_Block_Adminhtml_Billing_Agreement_Grid {
30
+
31
+ /**
32
+ * Prepare collection for grid
33
+ *
34
+ * @return Mage_Adminhtml_Block_Widget_Grid
35
+ */
36
+ protected function _prepareCollection()
37
+ {
38
+
39
+ /** @var Adyen_Payment_Model_Resource_Billing_Agreement_Collection $collection */
40
+ $collection = Mage::getResourceModel('adyen/billing_agreement_collection')
41
+ ->addCustomerDetails();
42
+ $collection->addNameToSelect();
43
+ $this->setCollection($collection);
44
+
45
+ call_user_func(array(get_parent_class(get_parent_class($this)), __FUNCTION__));
46
+ return $this;
47
+ }
48
+ /**
49
+ * Add columns to grid
50
+ *
51
+ * @return Mage_Adminhtml_Block_Widget_Grid
52
+ */
53
+ protected function _prepareColumns()
54
+ {
55
+ parent::_prepareColumns();
56
+
57
+ $this->removeColumn('customer_firstname');
58
+ $this->removeColumn('customer_lastname');
59
+ $this->addColumnAfter('agreement_label', array(
60
+ 'header' => Mage::helper('sales')->__('Agreement Label'),
61
+ 'index' => 'agreement_label',
62
+ 'type' => 'text',
63
+ ), 'status');
64
+
65
+ $this->addColumnAfter('name', array(
66
+ 'header' => Mage::helper('customer')->__('Name'),
67
+ 'index' => 'name',
68
+ 'type' => 'text',
69
+ ), 'customer_email');
70
+
71
+ // $status = $this->getColumn('status');
72
+ // $status->setData('frame_callback', [$this, 'decorateStatus']);
73
+
74
+ $createdAt = $this->getColumn('created_at');
75
+ $createdAt->setData('index', 'created_at');
76
+
77
+ $createdAt = $this->getColumn('updated_at');
78
+ $createdAt->setData('index', 'updated_at');
79
+
80
+ $this->sortColumnsByOrder();
81
+
82
+
83
+ return $this;
84
+ }
85
+
86
+ // /**
87
+ // * Decorate status column values
88
+ // *
89
+ // * @param string $value
90
+ // * @param Mage_Index_Model_Process $row
91
+ // * @param Mage_Adminhtml_Block_Widget_Grid_Column $column
92
+ // * @param bool $isExport
93
+ // *
94
+ // * @return string
95
+ // */
96
+ // public function decorateStatus($value, $row, $column, $isExport)
97
+ // {
98
+ // $class = '';
99
+ // switch ($row->getStatus()) {
100
+ // case Adyen_Payment_Model_Billing_Agreement::STATUS_CANCELED :
101
+ // $class = 'grid-severity-notice';
102
+ // break;
103
+ // case Adyen_Payment_Model_Billing_Agreement::STATUS_ACTIVE :
104
+ // $class = 'grid-severity-notice';
105
+ // break;
106
+ // }
107
+ // return '<span class="'.$class.'"><span>'.$value.'</span></span>';
108
+ // }
109
+ }
app/code/community/Adyen/Payment/Block/{SavedCards.php → Adminhtml/System/Config/Fieldset/Expanded.php} RENAMED
@@ -1,5 +1,4 @@
1
  <?php
2
-
3
  /**
4
  * Adyen Payment Module
5
  *
@@ -26,30 +25,25 @@
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
- }
1
  <?php
 
2
  /**
3
  * Adyen Payment Module
4
  *
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
 
28
+ /**
29
+ * Fielset renderer which expanded by default
30
+ */
31
+ class Adyen_Payment_Block_Adminhtml_System_Config_Fieldset_Expanded
32
+ extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
33
+ {
34
+ /**
35
+ * Return collapse state
36
+ *
37
+ * @param Varien_Data_Form_Element_Abstract $element
38
+ * @return bool
39
+ */
40
+ protected function _getCollapseState($element)
 
 
 
 
41
  {
42
+ $extra = Mage::getSingleton('admin/session')->getUser()->getExtra();
43
+ if (isset($extra['configState'][$element->getId()])) {
44
+ return $extra['configState'][$element->getId()];
45
  }
 
 
46
 
47
+ return true;
48
+ }
49
+ }
app/code/community/Adyen/Payment/Block/Adminhtml/System/Config/Fieldset/{Payment.php → Fieldset.php} RENAMED
@@ -26,29 +26,38 @@
26
  */
27
  /**
28
  * Fieldset renderer for Adyen export settings button
29
- *
30
- * @category Mage
31
- * @package Mage_Paypal
32
- * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Adyen_Payment_Block_Adminhtml_System_Config_Fieldset_Payment
35
  extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
36
  {
37
 
38
- protected function _getHeaderHtml($element) {
39
- $header = parent::_getHeaderHtml($element);
40
-
 
 
 
 
 
 
 
41
 
42
- $url = Mage::helper('adminhtml')->getUrl('adminhtml/ExportAdyenSettings');
43
-
44
- $header .= '<div class="button-container"><button type="button"'
45
- . ' class="button'
46
- . '" id="' . $element->getHtmlId()
47
- . '-head" onclick="location.href = \''.$url.'\' "'
48
- . $this->getUrl('*/*/state') . '\'); return false;"><span class="state-closed">'
49
- . $this->__('Export Settings') . '</span><span class="state-opened">';
50
 
 
 
 
 
 
 
 
 
 
 
 
 
51
 
52
- return $header;
53
  }
54
  }
26
  */
27
  /**
28
  * Fieldset renderer for Adyen export settings button
 
 
 
 
29
  */
30
+ class Adyen_Payment_Block_Adminhtml_System_Config_Fieldset_Fieldset
31
  extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
32
  {
33
 
34
+ /**
35
+ * Get config data model
36
+ *
37
+ * @return Mage_Adminhtml_Model_Config_Data
38
+ */
39
+ protected function _getConfigDataModel()
40
+ {
41
+ if (!$this->hasConfigDataModel()) {
42
+ $this->setConfigDataModel(Mage::getSingleton('adminhtml/config_data'));
43
+ }
44
 
45
+ return $this->getConfigDataModel();
46
+ }
 
 
 
 
 
 
47
 
48
+ /**
49
+ * Return collapse state
50
+ *
51
+ * @param Varien_Data_Form_Element_Abstract $element
52
+ * @return bool
53
+ */
54
+ protected function _getCollapseState($element)
55
+ {
56
+ $extra = Mage::getSingleton('admin/session')->getUser()->getExtra();
57
+ if (isset($extra['configState'][$element->getId()])) {
58
+ return $extra['configState'][$element->getId()];
59
+ }
60
 
61
+ return false;
62
  }
63
  }
app/code/community/Adyen/Payment/Block/Adminhtml/System/Config/Fieldset/Gettingstarted.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adyen Payment Module
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
+ */
27
+
28
+ class Adyen_Payment_Block_Adminhtml_System_Config_Fieldset_Gettingstarted
29
+ extends Adyen_Payment_Block_Adminhtml_System_Config_Fieldset_Fieldset
30
+ {
31
+
32
+ /**
33
+ * Return header comment part of html for fieldset
34
+ * Add the Export Settings button
35
+ *
36
+ * @param Varien_Data_Form_Element_Abstract $element
37
+ * @return string
38
+ */
39
+ protected function _getHeaderCommentHtml($element)
40
+ {
41
+ $html = $element->getComment()
42
+ ? '<div class="comment">' . $element->getComment() . '</div>'
43
+ : '';
44
+ $url = Mage::helper('adminhtml')->getUrl('adminhtml/ExportAdyenSettings');
45
+ $html .= <<<HTML
46
+ <div class="button-container">
47
+ <button type="button" class="button" id="{$element->getHtmlId()}-export" onclick="location.href='{$url}'">
48
+ {$this->__('Export Settings')}
49
+ </button>
50
+ </div>
51
+ HTML;
52
+
53
+ return $html;
54
+ }
55
+
56
+ }
app/code/community/Adyen/Payment/Block/Adminhtml/System/Config/Fieldset/Method.php ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adyen Payment Module
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
+ */
27
+
28
+ class Adyen_Payment_Block_Adminhtml_System_Config_Fieldset_Method
29
+ extends Adyen_Payment_Block_Adminhtml_System_Config_Fieldset_Fieldset
30
+ {
31
+ /**
32
+ * Check whether current payment method is enabled
33
+ *
34
+ * @param Varien_Data_Form_Element_Abstract $element
35
+ * @param callback|null $configCallback
36
+ * @return bool
37
+ */
38
+ protected function _isPaymentEnabled($element, $configCallback = null)
39
+ {
40
+ $groupConfig = $this->getGroup($element)->asArray();
41
+ $activityPath = isset($groupConfig['activity_path']) ? $groupConfig['activity_path'] : '';
42
+
43
+ if (empty($activityPath)) {
44
+ return false;
45
+ }
46
+
47
+ if ($configCallback && is_callable($configCallback)) {
48
+ $isPaymentEnabled = call_user_func($configCallback, $activityPath);
49
+ } else {
50
+ $isPaymentEnabled = (bool)(string)$this->_getConfigDataModel()->getConfigDataValue($activityPath);
51
+ }
52
+
53
+ return (bool)$isPaymentEnabled;
54
+ }
55
+
56
+ /**
57
+ * Return header title part of html for payment solution
58
+ *
59
+ * @param Varien_Data_Form_Element_Abstract $element
60
+ * @return string
61
+ */
62
+ protected function _getHeaderTitleHtml($element)
63
+ {
64
+ $html = '<div class="entry-edit-head collapseable" ><a id="' . $element->getHtmlId()
65
+ . '-head" href="#" onclick="Fieldset.toggleCollapse(\'' . $element->getHtmlId() . '\', \''
66
+ . $this->getUrl('*/*/state') . '\'); return false;">';
67
+
68
+ $html .= ' <img src="'.$this->getSkinUrl('images/adyen/logo.png').'" height="20" style="vertical-align: text-bottom; margin-right: 5px;"/> ';
69
+ $html .= $element->getLegend();
70
+ if ($this->_isPaymentEnabled($element)) {
71
+ $html .= ' <img src="'.$this->getSkinUrl('images/icon-enabled.png').'" style="vertical-align: middle"/> ';
72
+ }
73
+
74
+ $html .= '</a></div>';
75
+ return $html;
76
+ }
77
+ }
app/code/community/Adyen/Payment/Block/Adminhtml/System/Config/HppPaymentMethodFee.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * _
4
+ * | |
5
+ * __ _ _ | | _ _ ___ _ __
6
+ * / _` | / || || || | / _ \| ' \
7
+ * | (_| || || || || || __/| || |
8
+ * \__,_| \__,_|\__, | \___||_||_|
9
+ * |___/
10
+ *
11
+ * Adyen Subscription module (https://www.adyen.com/)
12
+ *
13
+ * Copyright (c) 2015 H&O (http://www.h-o.nl/)
14
+ * See LICENSE.txt for license details.
15
+ *
16
+ * Author: Adyen <magento@adyen.com>, H&O <info@h-o.nl>
17
+ */
18
+
19
+ class Adyen_Payment_Block_Adminhtml_System_Config_HppPaymentMethodFee
20
+ extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
21
+ {
22
+ public function __construct()
23
+ {
24
+ $this->addColumn('code', array(
25
+ 'label' => Mage::helper('adyen')->__('Payment Method Code'),
26
+ 'style' => 'width:250px',
27
+ ));
28
+ $this->addColumn('amount', array(
29
+ 'label' => Mage::helper('core')->__('Fee amount'),
30
+ 'style' => 'width:100px',
31
+ ));
32
+
33
+ $this->_addAfter = false;
34
+ $this->_addButtonLabel = Mage::helper('core')->__('Add Fee');
35
+
36
+ parent::__construct();
37
+ }
38
+ }
app/code/community/Adyen/Payment/Block/Form/Abstract.php ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+
23
+
24
+ /**
25
+ * @category Payment Gateway
26
+ * @package Adyen_Payment
27
+ * @author Adyen
28
+ * @property Adyen B.V
29
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
30
+ */
31
+ abstract class Adyen_Payment_Block_Form_Abstract extends Mage_Payment_Block_Form
32
+ {
33
+
34
+ protected $_paymentData;
35
+
36
+ protected function _construct()
37
+ {
38
+ parent::_construct();
39
+
40
+ if (Mage::getStoreConfig('payment/adyen_abstract/title_renderer')
41
+ == Adyen_Payment_Model_Source_Rendermode::MODE_TITLE_IMAGE) {
42
+ $this->setMethodTitle('');
43
+ }
44
+ }
45
+
46
+ public function getMethodLabelAfterHtml()
47
+ {
48
+ if (Mage::getStoreConfig('payment/adyen_abstract/title_renderer')
49
+ == Adyen_Payment_Model_Source_Rendermode::MODE_TITLE) {
50
+ return '';
51
+ }
52
+
53
+ if (! $this->hasData('_method_label_html')) {
54
+ $labelBlock = Mage::app()->getLayout()->createBlock('core/template', null, array(
55
+ 'template' => 'adyen/payment/payment_method_label.phtml',
56
+ 'payment_method_icon' => $this->getSkinUrl('images/adyen/img_trans.gif'),
57
+ 'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
58
+ 'payment_method_class' => $this->getMethod()->getCode()
59
+ ));
60
+ $labelBlock->setParentBlock($this);
61
+
62
+ $this->setData('_method_label_html', $labelBlock->toHtml());
63
+ }
64
+
65
+ return $this->getData('_method_label_html');
66
+ }
67
+
68
+
69
+
70
+ protected function _getPaymentData($key = null)
71
+ {
72
+ if (is_null($this->_paymentData)) {
73
+ $payment = $this->_getQuote()->getPayment();
74
+ try {
75
+ $this->_paymentData = unserialize($payment->getPoNumber());
76
+ } catch (Exception $e) {
77
+ $this->_paymentData = array();
78
+ }
79
+ }
80
+
81
+ if (is_null($key)) {
82
+ return $this->_paymentData;
83
+ }
84
+
85
+ if (isset($this->_paymentData[$key])) {
86
+ return $this->_paymentData[$key];
87
+ }
88
+
89
+ return null;
90
+ }
91
+ /**
92
+ * @return Mage_Sales_Model_Quote|null
93
+ */
94
+ protected function _getQuote()
95
+ {
96
+ if (Mage::app()->getStore()->isAdmin()) {
97
+ return Mage::getSingleton('adminhtml/session_quote')->getQuote();
98
+ }
99
+
100
+ return Mage::helper('checkout/cart')->getQuote();
101
+ }
102
+ }
app/code/community/Adyen/Payment/Block/Form/Boleto.php CHANGED
@@ -52,6 +52,7 @@ class Adyen_Payment_Block_Form_Boleto extends Mage_Payment_Block_Form {
52
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
53
  'payment_method_class' => $this->getMethod()->getCode()
54
  ));
 
55
 
56
  $this->setData('_method_label_html', $labelBlock->toHtml());
57
  }
52
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
53
  'payment_method_class' => $this->getMethod()->getCode()
54
  ));
55
+ $labelBlock->setParentBlock($this);
56
 
57
  $this->setData('_method_label_html', $labelBlock->toHtml());
58
  }
app/code/community/Adyen/Payment/Block/Form/Cc.php CHANGED
@@ -60,6 +60,7 @@ class Adyen_Payment_Block_Form_Cc extends Mage_Payment_Block_Form_Cc
60
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
61
  'payment_method_class' => $this->getMethod()->getCode()
62
  ));
 
63
 
64
  $this->setData('_method_label_html', $labelBlock->toHtml());
65
  }
@@ -91,8 +92,8 @@ class Adyen_Payment_Block_Form_Cc extends Mage_Payment_Block_Form_Cc
91
  return Mage::helper('adyen/installments')->isInstallmentsEnabled();
92
  }
93
 
94
- public function showRememberThisCheckoutbox() {
95
- return $this->getMethod()->showRememberThisCheckoutbox();
96
  }
97
 
98
  /**
60
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
61
  'payment_method_class' => $this->getMethod()->getCode()
62
  ));
63
+ $labelBlock->setParentBlock($this);
64
 
65
  $this->setData('_method_label_html', $labelBlock->toHtml());
66
  }
92
  return Mage::helper('adyen/installments')->isInstallmentsEnabled();
93
  }
94
 
95
+ public function canCreateBillingAgreement() {
96
+ return $this->getMethod()->canCreateBillingAgreement();
97
  }
98
 
99
  /**
app/code/community/Adyen/Payment/Block/Form/Elv.php CHANGED
@@ -52,6 +52,7 @@ class Adyen_Payment_Block_Form_Elv extends Mage_Payment_Block_Form {
52
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
53
  'payment_method_class' => $this->getMethod()->getCode()
54
  ));
 
55
 
56
  $this->setData('_method_label_html', $labelBlock->toHtml());
57
  }
52
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
53
  'payment_method_class' => $this->getMethod()->getCode()
54
  ));
55
+ $labelBlock->setParentBlock($this);
56
 
57
  $this->setData('_method_label_html', $labelBlock->toHtml());
58
  }
app/code/community/Adyen/Payment/Block/Form/Hpp.php CHANGED
@@ -58,6 +58,7 @@ class Adyen_Payment_Block_Form_Hpp extends Mage_Payment_Block_Form {
58
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
59
  'payment_method_class' => $this->getMethod()->getCode()
60
  ));
 
61
 
62
  $this->setData('_method_label_html', $labelBlock->toHtml());
63
  }
58
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
59
  'payment_method_class' => $this->getMethod()->getCode()
60
  ));
61
+ $labelBlock->setParentBlock($this);
62
 
63
  $this->setData('_method_label_html', $labelBlock->toHtml());
64
  }
app/code/community/Adyen/Payment/Block/Form/Ideal.php CHANGED
@@ -52,6 +52,6 @@ class Adyen_Payment_Block_Form_Ideal extends Adyen_Payment_Block_Form_Hpp {
52
 
53
  public function getIssuerImageUrl($issuer) {
54
  $_bankFile = strtoupper(str_replace(" ", '', $issuer['label']));
55
- return $this->getSkinUrl('images'.DS.'adyen'.DS. $_bankFile . ".png");
56
  }
57
  }
52
 
53
  public function getIssuerImageUrl($issuer) {
54
  $_bankFile = strtoupper(str_replace(" ", '', $issuer['label']));
55
+ return $this->getSkinUrl("images/adyen/$_bankFile.png");
56
  }
57
  }
app/code/community/Adyen/Payment/Block/Form/Oneclick.php CHANGED
@@ -25,6 +25,10 @@
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
 
 
 
 
28
  class Adyen_Payment_Block_Form_Oneclick extends Adyen_Payment_Block_Form_Cc {
29
 
30
  protected function _construct() {
@@ -32,6 +36,10 @@ class Adyen_Payment_Block_Form_Oneclick extends Adyen_Payment_Block_Form_Cc {
32
  $this->setTemplate('adyen/form/oneclick.phtml');
33
  }
34
 
 
 
 
 
35
  public function getMethodLabelAfterHtml()
36
  {
37
  $adyenHelper = Mage::helper('adyen');
@@ -42,18 +50,16 @@ class Adyen_Payment_Block_Form_Oneclick extends Adyen_Payment_Block_Form_Cc {
42
  }
43
 
44
  if (! $this->hasData('_method_label_html')) {
45
- $imgFileName = substr($this->getMethod()->getCode(), 10);
46
 
47
  // get configuration of this specific payment method
48
  $methodCode = $this->getMethodCode();
49
 
50
- $varient = $adyenHelper->_getConfigData('variant', $methodCode);
51
- $last4digits = $adyenHelper->_getConfigData('card_number', $methodCode);
52
 
53
- $result = Mage::getDesign()->getFilename("images/adyen/{$varient}.png", array('_type' => 'skin'));
54
 
55
  $imageUrl = file_exists($result)
56
- ? $this->getSkinUrl("images/adyen/{$varient}.png")
57
  : $this->getSkinUrl("images/adyen/img_trans.gif");
58
 
59
 
@@ -63,6 +69,7 @@ class Adyen_Payment_Block_Form_Oneclick extends Adyen_Payment_Block_Form_Cc {
63
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
64
  'payment_method_class' => $this->getMethod()->getCode()
65
  ));
 
66
 
67
  $this->setData('_method_label_html', $labelBlock->toHtml());
68
  }
@@ -70,15 +77,21 @@ class Adyen_Payment_Block_Form_Oneclick extends Adyen_Payment_Block_Form_Cc {
70
  return $this->getData('_method_label_html');
71
  }
72
 
73
- public function getlistRecurringDetails() {
74
- return $this->getMethod()->getlistRecurringDetails();
75
- }
76
 
77
- public function isNotRecurring() {
78
- return $this->getMethod()->isNotRecurring();
 
 
 
 
79
  }
80
 
81
- public function getInstallments() {
 
 
 
 
 
82
  $adyenHelper = Mage::helper('adyen');
83
  $methodCode = $this->getMethodCode();
84
  $ccType = $adyenHelper->_getConfigData('variant', $methodCode);
@@ -87,13 +100,12 @@ class Adyen_Payment_Block_Form_Oneclick extends Adyen_Payment_Block_Form_Cc {
87
  return $result;
88
  }
89
 
90
- public function getRecurringDetails() {
91
- if(Mage::app()->getStore()->isAdmin()) {
92
- $storeId = Mage::getSingleton('adminhtml/session_quote')->getStoreId();
93
- } else {
94
- $storeId = Mage::app()->getStore()->getStoreId();
95
- }
96
- $recurringDetails = Mage::getStoreConfig("payment/".$this->getMethodCode(), $storeId);
97
- return $recurringDetails;
98
  }
99
  }
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
+
29
+ /**
30
+ * @method Adyen_Payment_Model_Adyen_Oneclick getMethod()
31
+ */
32
  class Adyen_Payment_Block_Form_Oneclick extends Adyen_Payment_Block_Form_Cc {
33
 
34
  protected function _construct() {
36
  $this->setTemplate('adyen/form/oneclick.phtml');
37
  }
38
 
39
+
40
+ /**
41
+ * @return mixed|string
42
+ */
43
  public function getMethodLabelAfterHtml()
44
  {
45
  $adyenHelper = Mage::helper('adyen');
50
  }
51
 
52
  if (! $this->hasData('_method_label_html')) {
 
53
 
54
  // get configuration of this specific payment method
55
  $methodCode = $this->getMethodCode();
56
 
57
+ $variant = $adyenHelper->_getConfigData('variant', $methodCode);
 
58
 
59
+ $result = Mage::getDesign()->getFilename("images/adyen/{$variant}.png", array('_type' => 'skin'));
60
 
61
  $imageUrl = file_exists($result)
62
+ ? $this->getSkinUrl("images/adyen/{$variant}.png")
63
  : $this->getSkinUrl("images/adyen/img_trans.gif");
64
 
65
 
69
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
70
  'payment_method_class' => $this->getMethod()->getCode()
71
  ));
72
+ $labelBlock->setParentBlock($this);
73
 
74
  $this->setData('_method_label_html', $labelBlock->toHtml());
75
  }
77
  return $this->getData('_method_label_html');
78
  }
79
 
 
 
 
80
 
81
+ /**
82
+ * @return mixed
83
+ */
84
+ public function showCvc()
85
+ {
86
+ return $this->getMethod()->hasCustomerInteraction();
87
  }
88
 
89
+
90
+ /**
91
+ * @return mixed
92
+ */
93
+ public function getInstallments()
94
+ {
95
  $adyenHelper = Mage::helper('adyen');
96
  $methodCode = $this->getMethodCode();
97
  $ccType = $adyenHelper->_getConfigData('variant', $methodCode);
100
  return $result;
101
  }
102
 
103
+
104
+ /**
105
+ * @return mixed
106
+ */
107
+ public function getRecurringDetails()
108
+ {
109
+ return $this->getMethod()->getRecurringDetails();
 
110
  }
111
  }
app/code/community/Adyen/Payment/Block/Form/Openinvoice.php CHANGED
@@ -74,6 +74,7 @@ class Adyen_Payment_Block_Form_Openinvoice extends Mage_Payment_Block_Form {
74
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
75
  'payment_method_class' => 'adyen_openinvoice_' . $openinvoiceType
76
  ));
 
77
 
78
  $this->setData('_method_label_html', $labelBlock->toHtml());
79
  }
74
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
75
  'payment_method_class' => 'adyen_openinvoice_' . $openinvoiceType
76
  ));
77
+ $labelBlock->setParentBlock($this);
78
 
79
  $this->setData('_method_label_html', $labelBlock->toHtml());
80
  }
app/code/community/Adyen/Payment/Block/Form/Pos.php CHANGED
@@ -52,6 +52,7 @@ class Adyen_Payment_Block_Form_Pos extends Mage_Payment_Block_Form {
52
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
53
  'payment_method_class' => $this->getMethod()->getCode()
54
  ));
 
55
 
56
  $this->setData('_method_label_html', $labelBlock->toHtml());
57
  }
52
  'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
53
  'payment_method_class' => $this->getMethod()->getCode()
54
  ));
55
+ $labelBlock->setParentBlock($this);
56
 
57
  $this->setData('_method_label_html', $labelBlock->toHtml());
58
  }
app/code/community/Adyen/Payment/Block/Form/Sepa.php CHANGED
@@ -28,39 +28,12 @@
28
  * @property Adyen B.V
29
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
30
  */
31
- class Adyen_Payment_Block_Form_Sepa extends Mage_Payment_Block_Form
32
  {
33
-
34
  protected function _construct()
35
  {
36
  parent::_construct();
37
  $this->setTemplate('adyen/form/sepa.phtml');
38
-
39
- if (Mage::getStoreConfig('payment/adyen_abstract/title_renderer')
40
- == Adyen_Payment_Model_Source_Rendermode::MODE_TITLE_IMAGE) {
41
- $this->setMethodTitle('');
42
- }
43
- }
44
-
45
- public function getMethodLabelAfterHtml()
46
- {
47
- if (Mage::getStoreConfig('payment/adyen_abstract/title_renderer')
48
- == Adyen_Payment_Model_Source_Rendermode::MODE_TITLE) {
49
- return '';
50
- }
51
-
52
- if (! $this->hasData('_method_label_html')) {
53
- $labelBlock = Mage::app()->getLayout()->createBlock('core/template', null, array(
54
- 'template' => 'adyen/payment/payment_method_label.phtml',
55
- 'payment_method_icon' => $this->getSkinUrl('images/adyen/img_trans.gif'),
56
- 'payment_method_label' => Mage::helper('adyen')->getConfigData('title', $this->getMethod()->getCode()),
57
- 'payment_method_class' => $this->getMethod()->getCode()
58
- ));
59
-
60
- $this->setData('_method_label_html', $labelBlock->toHtml());
61
- }
62
-
63
- return $this->getData('_method_label_html');
64
  }
65
 
66
 
@@ -120,26 +93,47 @@ class Adyen_Payment_Block_Form_Sepa extends Mage_Payment_Block_Form
120
  }
121
 
122
 
123
- public function getShopperCountryId()
 
 
 
124
  {
125
- $country = "";
126
- if (Mage::app()->getStore()->isAdmin()) {
127
- $quote = Mage::getSingleton('adminhtml/session_quote')->getQuote();
128
- } else {
129
- $quote = Mage::helper('checkout/cart')->getQuote();
130
  }
131
- if ($quote) {
132
- $billingAddress = $quote->getBillingAddress();
133
- if ($billingAddress) {
134
- $country = $billingAddress->getCountryId();
135
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  }
137
- return $country;
 
138
  }
139
 
140
 
141
- public function getBillingAgreements()
 
 
 
142
  {
143
- return $this->getMethod()->getBillingAgreementCollection();
144
  }
145
  }
28
  * @property Adyen B.V
29
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
30
  */
31
+ class Adyen_Payment_Block_Form_Sepa extends Adyen_Payment_Block_Form_Abstract
32
  {
 
33
  protected function _construct()
34
  {
35
  parent::_construct();
36
  $this->setTemplate('adyen/form/sepa.phtml');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  }
38
 
39
 
93
  }
94
 
95
 
96
+ /**
97
+ * @return string
98
+ */
99
+ public function getCountryValue()
100
  {
101
+ if ($country = $this->_getPaymentData('country')) {
102
+ return $country;
 
 
 
103
  }
104
+
105
+ $quote = $this->_getQuote();
106
+ if (! $quote || ! $quote->getBillingAddress()) {
107
+ return '';
108
+ }
109
+
110
+ return $quote->getBillingAddress()->getCountryId();
111
+ }
112
+
113
+
114
+ /**
115
+ * @return string
116
+ */
117
+ public function getBankHolderValue()
118
+ {
119
+ if ($accountName = $this->_getPaymentData('account_name')) {
120
+ return $accountName;
121
+ }
122
+
123
+ $quote = $this->_getQuote();
124
+ if (! $quote || ! $quote->getBillingAddress()) {
125
+ return '';
126
  }
127
+
128
+ return $quote->getBillingAddress()->getName();
129
  }
130
 
131
 
132
+ /**
133
+ * @return string
134
+ */
135
+ public function getIbanValue()
136
  {
137
+ return $this->_getPaymentData('iban');
138
  }
139
  }
app/code/community/Adyen/Payment/Block/Info/Sepa.php CHANGED
@@ -35,9 +35,4 @@ class Adyen_Payment_Block_Info_Sepa extends Mage_Payment_Block_Info {
35
  $this->setTemplate('adyen/info/sepa.phtml');
36
  }
37
 
38
- public function toPdf() {
39
- $this->setTemplate('adyen/pdf/sepa.phtml');
40
- return $this->toHtml();
41
- }
42
-
43
  }
35
  $this->setTemplate('adyen/info/sepa.phtml');
36
  }
37
 
 
 
 
 
 
38
  }
app/code/community/Adyen/Payment/Exception.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adyen Payment Module
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
+ */
27
+
28
+ class Adyen_Payment_Exception extends Mage_Payment_Exception
29
+ {
30
+ /**
31
+ * Throw an Adyen_Payment_Exception and log it.
32
+ * @param $message
33
+ * @param null $messageStorage
34
+ *
35
+ * @throws Adyen_Payment_Exception
36
+ */
37
+ public static function throwException($message, $messageStorage = null)
38
+ {
39
+ if ($messageStorage && ($storage = Mage::getSingleton($messageStorage))) {
40
+ $storage->addError($message);
41
+ }
42
+ $exception = new Adyen_Payment_Exception($message);
43
+ self::logException($exception);
44
+
45
+ throw $exception;
46
+ }
47
+
48
+
49
+ /**
50
+ * Log an Adyen_Payment_Exception
51
+ * @param Exception $e
52
+ */
53
+ public static function logException(Exception $e)
54
+ {
55
+ Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'adyen_exception.log');
56
+ }
57
+ }
app/code/community/Adyen/Payment/Helper/Billing/Agreement.php ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adyen Payment Module
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
+ */
27
+
28
+ class Adyen_Payment_Helper_Billing_Agreement extends Mage_Core_Helper_Abstract
29
+ {
30
+
31
+ public function getCustomerReference(Mage_Customer_Model_Customer $customer)
32
+ {
33
+ var_dump($customer);exit;
34
+ }
35
+
36
+ /**
37
+ * @return Mage_Customer_Model_Customer|null
38
+ */
39
+ public function getCurrentCustomer()
40
+ {
41
+ if (Mage::app()->getStore()->isAdmin()) {
42
+ return Mage::getSingleton('adminhtml/session_quote')->getCustomer();
43
+ }
44
+
45
+ if($customer = Mage::getSingleton('customer/session')->isLoggedIn()) {
46
+ return Mage::getSingleton('customer/session')->getCustomer();
47
+ }
48
+
49
+ if ($this->_isPersistent()) {
50
+ return $this->_getPersistentHelper()->getCustomer();
51
+ }
52
+
53
+ return null;
54
+ }
55
+
56
+ /**
57
+ * Retrieve persistent helper
58
+ *
59
+ * @return Mage_Persistent_Helper_Session
60
+ */
61
+ protected function _getPersistentHelper()
62
+ {
63
+ return Mage::helper('persistent/session');
64
+ }
65
+
66
+
67
+ /**
68
+ * @return bool
69
+ */
70
+ protected function _isPersistent()
71
+ {
72
+ if(! Mage::helper('core')->isModuleEnabled('Mage_Persistent')
73
+ || Mage::getSingleton('customer/session')->isLoggedIn()) {
74
+ return false;
75
+ }
76
+
77
+ if ($this->_getPersistentHelper()->isPersistent()) {
78
+ return true;
79
+ }
80
+
81
+ return false;
82
+ }
83
+ }
app/code/community/Adyen/Payment/Helper/Data.php CHANGED
@@ -25,25 +25,47 @@
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
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'));
39
  $types = array();
40
  foreach ($_types as $data) {
 
 
 
41
  $types[$data['code']] = $data['name'];
42
  }
43
  return $types;
44
  }
45
 
46
- public function getBoletoTypes() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  $_types = Mage::getConfig()->getNode('default/adyen/payment/boletotypes')->asArray();
48
  $types = array();
49
  foreach ($_types as $data) {
@@ -52,7 +74,12 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
52
  return $types;
53
  }
54
 
55
- public function getOpenInvoiceTypes() {
 
 
 
 
 
56
  $_types = Mage::getConfig()->getNode('default/adyen/payment/openinvoicetypes')->asArray();
57
  $types = array();
58
  foreach ($_types as $data) {
@@ -61,7 +88,12 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
61
  return $types;
62
  }
63
 
64
- public function getRecurringTypes() {
 
 
 
 
 
65
  $_types = Mage::getConfig()->getNode('default/adyen/payment/recurringtypes')->asArray();
66
  $types = array();
67
  foreach ($_types as $data) {
@@ -70,22 +102,42 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
70
  return $types;
71
  }
72
 
73
- public function getExtensionVersion() {
74
- return (string) Mage::getConfig()->getNode()->modules->Adyen_Payment->version;
 
 
 
 
 
75
  }
76
 
77
- public function hasEnableScanner() {
 
 
 
 
 
78
  if(Mage::getStoreConfig('payment/adyen_pos/active')) {
79
  return (int) Mage::getStoreConfig('payment/adyen_pos/enable_scanner');
80
  }
81
  return false;
82
  }
83
 
84
- public function hasAutoSubmitScanner() {
 
 
 
 
 
85
  return (int) Mage::getStoreConfig('payment/adyen_pos/auto_submit_scanner');
86
  }
87
 
88
- public function hasExpressCheckout() {
 
 
 
 
 
89
  if(Mage::getStoreConfig('payment/adyen_pos/active')) {
90
  // check if metmethod is available
91
  $methodModel = Mage::getModel('adyen/adyen_pos');
@@ -98,9 +150,13 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
98
  return false;
99
  }
100
 
101
- public function hasCashExpressCheckout() {
102
- if(Mage::getStoreConfig('payment/adyen_cash/active')) {
103
-
 
 
 
 
104
  // check if metmethod is available
105
  $methodModel = Mage::getModel('adyen/adyen_cash');
106
  if ($methodModel) {
@@ -112,36 +168,103 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
112
  return false;
113
  }
114
 
115
- public function getOrderStatus() {
 
 
 
 
116
  return Mage::getStoreConfig('payment/adyen_abstract/order_status');
117
  }
118
 
 
119
  /**
120
  * @param Mage_Sales_Model_Quote | Mage_Sales_Model_Order $object
 
121
  */
122
  public function isPaymentFeeEnabled($object)
123
  {
124
- $fee = Mage::getStoreConfig('payment/adyen_openinvoice/fee');
125
- $paymentMethod = $object->getPayment()->getMethod() ;
126
- if ($paymentMethod == 'adyen_openinvoice' && $fee > 0) {
127
- return true;
128
- }
129
- else {
130
- return false;
 
 
 
 
 
 
 
 
 
 
 
 
131
  }
 
 
132
  }
133
 
 
134
  /**
135
  * @param Mage_Sales_Model_Quote | Mage_Sales_Model_Order $object
 
136
  */
137
  public function getPaymentFeeAmount($object)
138
  {
139
- return Mage::getStoreConfig('payment/adyen_openinvoice/fee');
 
 
 
 
 
 
 
 
140
  }
141
 
142
- public function formatAmount($amount, $currency) {
 
 
 
 
 
143
 
144
- // check the format
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  switch($currency) {
146
  case "JPY":
147
  case "IDR":
@@ -181,7 +304,8 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
181
  return number_format($amount, $format, '', '');
182
  }
183
 
184
- public function originalAmount($amount, $currency) {
 
185
  // check the format
186
  switch($currency) {
187
  case "JPY":
@@ -222,177 +346,24 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
222
  return ($amount / $format);
223
  }
224
 
225
- /*
226
- * creditcard type that is selected is different from creditcard type that we get back from the request
227
- * this function get the magento creditcard type this is needed for getting settings like installments
 
 
228
  */
229
- public function getMagentoCreditCartType($ccType) {
230
-
231
- $ccTypesMapper = array("amex" => "AE",
232
- "visa" => "VI",
233
- "mastercard" => "MC",
234
- "discover" => "DI",
235
- "diners" => "DC",
236
- "maestro" => "SM",
237
- "jcb" => "JCB",
238
- "elo" => "ELO",
239
- "hipercard" => "hipercard"
240
- );
241
 
242
  if(isset($ccTypesMapper[$ccType])) {
243
- $ccType = $ccTypesMapper[$ccType];
244
  }
245
 
246
  return $ccType;
247
  }
248
 
249
- public function getRecurringCards($merchantAccount, $customerId, $recurringType) {
250
-
251
- $cacheKey = $merchantAccount . "|" . $customerId . "|" . $recurringType;
252
-
253
- // Load response from cache.
254
- if ($recurringCards = Mage::app()->getCache()->load($cacheKey)) {
255
- return unserialize($recurringCards);
256
- }
257
-
258
- // create a arraylist with the cards
259
- $recurringCards = array();
260
-
261
- // do not show the oneclick if recurring type is empty or recurring
262
- if($recurringType == "ONECLICK" || $recurringType == "ONECLICK,RECURRING" || $recurringType == "RECURRING")
263
- {
264
- // recurring type is always ONECLICK
265
- if($recurringType == "ONECLICK,RECURRING") {
266
- $recurringType = "ONECLICK";
267
- }
268
-
269
- // rest call to get listrecurring details
270
- $request = array(
271
- "action" => "Recurring.listRecurringDetails",
272
- "recurringDetailsRequest.merchantAccount" => $merchantAccount,
273
- "recurringDetailsRequest.shopperReference" => $customerId,
274
- "recurringDetailsRequest.recurring.contract" => $recurringType, // i.e.: "ONECLICK" Or "RECURRING"
275
- );
276
-
277
- $ch = curl_init();
278
-
279
- $isConfigDemoMode = $this->getConfigDataDemoMode($storeId = null);
280
- $wsUsername = $this->getConfigDataWsUserName($storeId);
281
- $wsPassword = $this->getConfigDataWsPassword($storeId);
282
-
283
- if ($isConfigDemoMode)
284
- curl_setopt($ch, CURLOPT_URL, "https://pal-test.adyen.com/pal/adapter/httppost");
285
- else
286
- curl_setopt($ch, CURLOPT_URL, "https://pal-live.adyen.com/pal/adapter/httppost");
287
-
288
- curl_setopt($ch, CURLOPT_HEADER, false);
289
- curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
290
- curl_setopt($ch, CURLOPT_USERPWD,$wsUsername.":".$wsPassword);
291
- curl_setopt($ch, CURLOPT_POST,count($request));
292
- curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($request));
293
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
294
-
295
- $results = curl_exec($ch);
296
- $httpStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
297
-
298
- if ($httpStatus != 200) {
299
- Mage::throwException(
300
- Mage::helper('adyen')->__('HTTP Status code %s received, data %s', $httpStatus, $results)
301
- );
302
- }
303
-
304
- if ($results === false) {
305
- Mage::throwException(
306
- Mage::helper('adyen')->__('Got an empty response, status code %s', $httpStatus)
307
- );
308
- }else{
309
- /**
310
- * The $result contains a JSON array containing
311
- * the available payment methods for the merchant account.
312
- */
313
-
314
- // convert result to utf8 characters
315
- $result = utf8_encode(urldecode($results));
316
- // convert to array
317
- parse_str($result,$result);
318
-
319
- foreach($result as $key => $value) {
320
- // strip the key
321
- $key = str_replace("recurringDetailsResult_details_", "", $key);
322
- $key2 = strstr($key, '_');
323
- $keyNumber = str_replace($key2, "", $key);
324
- $keyAttribute = substr($key2, 1);
325
-
326
- // set ideal to sepadirectdebit because it is and we want to show sepadirectdebit logo
327
- if($keyAttribute == "variant" && $value == "ideal") {
328
- $value = 'sepadirectdebit';
329
- }
330
-
331
- $recurringCards[$keyNumber][$keyAttribute] = $value;
332
- }
333
- // unset the recurringDetailsResult because this is not a card
334
- unset($recurringCards["recurringDetailsResult"]);
335
- }
336
- }
337
-
338
- // Save response to cache.
339
- Mage::app()->getCache()->save(
340
- serialize($recurringCards),
341
- $cacheKey,
342
- array(Mage_Core_Model_Config::CACHE_TAG),
343
- 60 * 5 // save for 5 minutes ( and will be removed if payment is done)
344
- );
345
- return $recurringCards;
346
- }
347
-
348
- public function removeRecurringCard($merchantAccount, $shopperReference, $recurringDetailReference) {
349
-
350
- // rest call to disable cart
351
- $request = array(
352
- "action" => "Recurring.disable",
353
- "disableRequest.merchantAccount" => $merchantAccount,
354
- "disableRequest.shopperReference" => $shopperReference,
355
- "disableRequest.recurringDetailReference" => $recurringDetailReference
356
- );
357
-
358
- $ch = curl_init();
359
-
360
- $isConfigDemoMode = $this->getConfigDataDemoMode();
361
- $wsUsername = $this->getConfigDataWsUserName();
362
- $wsPassword = $this->getConfigDataWsPassword();
363
-
364
- if ($isConfigDemoMode)
365
- curl_setopt($ch, CURLOPT_URL, "https://pal-test.adyen.com/pal/adapter/httppost");
366
- else
367
- curl_setopt($ch, CURLOPT_URL, "https://pal-live.adyen.com/pal/adapter/httppost");
368
-
369
- curl_setopt($ch, CURLOPT_HEADER, false);
370
- curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
371
- curl_setopt($ch, CURLOPT_USERPWD,$wsUsername.":".$wsPassword);
372
- curl_setopt($ch, CURLOPT_POST,count($request));
373
- curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($request));
374
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
375
-
376
- $result = curl_exec($ch);
377
-
378
- if($result === false) {
379
- Mage::log("Disable recurring contract is failing, error is: " . curl_error($ch), self::DEBUG_LEVEL, 'adyen_http-request.log',true);
380
- Mage::throwException(Mage::helper('adyen')->__('Disable recurring contract is generating the error see the log'));
381
- } else{
382
-
383
- // convert result to utf8 characters
384
- $result = utf8_encode(urldecode($result));
385
-
386
- if($result != "disableResult.response=[detail-successfully-disabled]") {
387
- Mage::log("Disable contract is not succeeded the response is: " . $result, self::DEBUG_LEVEL, 'adyen_http-request.log',true);
388
- return false;
389
- }
390
- return true;
391
- }
392
- return false;
393
- }
394
-
395
-
396
  /**
397
  * Used via Payment method.Notice via configuration ofcourse Y or N
398
  * @return boolean true on demo, else false
@@ -405,6 +376,12 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
405
  return false;
406
  }
407
 
 
 
 
 
 
 
408
  public function getConfigDataWsUserName($storeId = null)
409
  {
410
  if ($this->getConfigDataDemoMode($storeId)) {
@@ -413,6 +390,12 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
413
  return $this->getConfigData('ws_username_live', null, $storeId);
414
  }
415
 
 
 
 
 
 
 
416
  public function getConfigDataWsPassword($storeId = null)
417
  {
418
  if ($this->getConfigDataDemoMode($storeId)) {
@@ -444,7 +427,8 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
444
  *
445
  * @return mixed
446
  */
447
- public function getConfigData($code, $paymentMethodCode = null, $storeId = null) {
 
448
  if (null === $storeId) {
449
  $storeId = Mage::app()->getStore()->getStoreId();
450
  }
@@ -454,21 +438,24 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
454
  return trim(Mage::getStoreConfig("payment/$paymentMethodCode/$code", $storeId));
455
  }
456
 
457
- // Function to get the client ip address
458
- public function getClientIp() {
459
- $ipaddress = '';
460
 
 
 
 
 
 
 
461
  if (isset($_SERVER['HTTP_CLIENT_IP'])) {
462
  $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
463
- } else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
464
  $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
465
- } else if(isset($_SERVER['HTTP_X_FORWARDED'])) {
466
  $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
467
- }else if(isset($_SERVER['HTTP_FORWARDED_FOR'])) {
468
  $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
469
- } else if(isset($_SERVER['HTTP_FORWARDED'])) {
470
  $ipaddress = $_SERVER['HTTP_FORWARDED'];
471
- } else if(isset($_SERVER['REMOTE_ADDR'])) {
472
  $ipaddress = $_SERVER['REMOTE_ADDR'];
473
  } else {
474
  $ipaddress = '';
@@ -477,7 +464,17 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
477
  return $ipaddress;
478
  }
479
 
480
- public function ipInRange($ip, $from, $to) {
 
 
 
 
 
 
 
 
 
 
481
  $ip = ip2long($ip);
482
  $lowIp = ip2long($from);
483
  $highIp = ip2long($to);
@@ -494,7 +491,8 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
494
  * @param type $address
495
  * @return Varien_Object
496
  */
497
- public function getStreet($address) {
 
498
  if (empty($address)) return false;
499
  $street = self::formatStreet($address->getStreet());
500
  $streetName = $street['0'];
@@ -511,7 +509,8 @@ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data {
511
  * @param type $street
512
  * @return type $street
513
  */
514
- static public function formatStreet($street) {
 
515
  if (count($street) != 1) {
516
  return $street;
517
  }
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
+ class Adyen_Payment_Helper_Data extends Mage_Payment_Helper_Data
29
+ {
30
+ const XML_PATH_HPP_PAYMENT_METHOD_FEE = 'payment/adyen_hpp/fee';
31
  /**
32
+ * @return array
 
33
  */
34
+ public function getCcTypes()
35
+ {
 
36
  $_types = Mage::getConfig()->getNode('default/adyen/payment/cctypes')->asArray();
37
  uasort($_types, array('Mage_Payment_Model_Config', 'compareCcTypes'));
38
  $types = array();
39
  foreach ($_types as $data) {
40
+ if (! $data['is_checkout']) {
41
+ continue;
42
+ }
43
  $types[$data['code']] = $data['name'];
44
  }
45
  return $types;
46
  }
47
 
48
+
49
+ /**
50
+ *
51
+ */
52
+ public function getCcTypesAltData()
53
+ {
54
+ $_types = Mage::getConfig()->getNode('default/adyen/payment/cctypes')->asArray();
55
+ uasort($_types, array('Mage_Payment_Model_Config', 'compareCcTypes'));
56
+ $types = array();
57
+ foreach ($_types as $data) {
58
+ $types[$data['code_alt']] = $data;
59
+ }
60
+ return $types;
61
+ }
62
+
63
+
64
+ /**
65
+ * @return array
66
+ */
67
+ public function getBoletoTypes()
68
+ {
69
  $_types = Mage::getConfig()->getNode('default/adyen/payment/boletotypes')->asArray();
70
  $types = array();
71
  foreach ($_types as $data) {
74
  return $types;
75
  }
76
 
77
+
78
+ /**
79
+ * @return array
80
+ */
81
+ public function getOpenInvoiceTypes()
82
+ {
83
  $_types = Mage::getConfig()->getNode('default/adyen/payment/openinvoicetypes')->asArray();
84
  $types = array();
85
  foreach ($_types as $data) {
88
  return $types;
89
  }
90
 
91
+
92
+ /**
93
+ * @return array
94
+ */
95
+ public function getRecurringTypes()
96
+ {
97
  $_types = Mage::getConfig()->getNode('default/adyen/payment/recurringtypes')->asArray();
98
  $types = array();
99
  foreach ($_types as $data) {
102
  return $types;
103
  }
104
 
105
+
106
+ /**
107
+ * @return string
108
+ */
109
+ public function getExtensionVersion()
110
+ {
111
+ return (string) Mage::getConfig()->getModuleConfig('Adyen_Payment')->version;
112
  }
113
 
114
+
115
+ /**
116
+ * @return bool|int
117
+ */
118
+ public function hasEnableScanner()
119
+ {
120
  if(Mage::getStoreConfig('payment/adyen_pos/active')) {
121
  return (int) Mage::getStoreConfig('payment/adyen_pos/enable_scanner');
122
  }
123
  return false;
124
  }
125
 
126
+
127
+ /**
128
+ * @return int
129
+ */
130
+ public function hasAutoSubmitScanner()
131
+ {
132
  return (int) Mage::getStoreConfig('payment/adyen_pos/auto_submit_scanner');
133
  }
134
 
135
+
136
+ /**
137
+ * @return bool|int
138
+ */
139
+ public function hasExpressCheckout()
140
+ {
141
  if(Mage::getStoreConfig('payment/adyen_pos/active')) {
142
  // check if metmethod is available
143
  $methodModel = Mage::getModel('adyen/adyen_pos');
150
  return false;
151
  }
152
 
153
+ /**
154
+ * @return bool|int
155
+ */
156
+ public function hasCashExpressCheckout()
157
+ {
158
+ if(Mage::getStoreConfig('payment/adyen_cash/active'))
159
+ {
160
  // check if metmethod is available
161
  $methodModel = Mage::getModel('adyen/adyen_cash');
162
  if ($methodModel) {
168
  return false;
169
  }
170
 
171
+ /**
172
+ * @return mixed
173
+ */
174
+ public function getOrderStatus()
175
+ {
176
  return Mage::getStoreConfig('payment/adyen_abstract/order_status');
177
  }
178
 
179
+
180
  /**
181
  * @param Mage_Sales_Model_Quote | Mage_Sales_Model_Order $object
182
+ * @return bool
183
  */
184
  public function isPaymentFeeEnabled($object)
185
  {
186
+ $paymentMethod = $object->getPayment()->getMethod();
187
+
188
+ if($paymentMethod == 'adyen_openinvoice')
189
+ {
190
+ $fee = Mage::getStoreConfig('payment/adyen_openinvoice/fee');
191
+ if($fee > 0) {
192
+ return true;
193
+ }
194
+ } elseif($paymentMethod == 'adyen_ideal') {
195
+ $fee = Mage::getStoreConfig('payment/adyen_ideal/fee');
196
+ if($fee > 0) {
197
+ return true;
198
+ }
199
+ } elseif(substr($paymentMethod,0, 10) == 'adyen_hpp_') {
200
+
201
+ $fee = $this->getHppPaymentMethodFee($paymentMethod);
202
+ if($fee) {
203
+ return true;
204
+ }
205
  }
206
+
207
+ return false;
208
  }
209
 
210
+
211
  /**
212
  * @param Mage_Sales_Model_Quote | Mage_Sales_Model_Order $object
213
+ * @return float
214
  */
215
  public function getPaymentFeeAmount($object)
216
  {
217
+ $paymentMethod = $object->getPayment()->getMethod() ;
218
+ if ($paymentMethod == 'adyen_openinvoice') {
219
+ return Mage::getStoreConfig('payment/adyen_openinvoice/fee');
220
+ } elseif($paymentMethod == 'adyen_ideal') {
221
+ return Mage::getStoreConfig('payment/adyen_ideal/fee');
222
+ } elseif(substr($paymentMethod,0, 10) == 'adyen_hpp_') {
223
+ return $this->getHppPaymentMethodFee($paymentMethod);
224
+ }
225
+ return 0;
226
  }
227
 
228
+ /**
229
+ * @return array
230
+ */
231
+ public function getHppPaymentMethodFees()
232
+ {
233
+ $config = Mage::getStoreConfig(self::XML_PATH_HPP_PAYMENT_METHOD_FEE);
234
 
235
+ return $config ? unserialize($config) : array();
236
+ }
237
+
238
+ public function getHppPaymentMethodFee($paymentMethod)
239
+ {
240
+ $paymentMethod = str_replace('adyen_hpp_', '', $paymentMethod);
241
+
242
+ $paymentFees = $this->getHppPaymentMethodFees();
243
+
244
+ if($paymentFees && is_array($paymentFees) && !empty($paymentFees)) {
245
+
246
+ foreach($paymentFees as $paymentFee) {
247
+ if(isset($paymentFee['code']) && $paymentFee['code'] == $paymentMethod) {
248
+ if(isset($paymentFee['amount']) && $paymentFee['amount'] > 0) {
249
+ return $paymentFee['amount'];
250
+ }
251
+ }
252
+ }
253
+ }
254
+ return null;
255
+ }
256
+
257
+
258
+
259
+ /**
260
+ * Return the formatted currency. Adyen accepts the currency in multiple formats.
261
+ * @param $amount
262
+ * @param $currency
263
+ *
264
+ * @return string
265
+ */
266
+ public function formatAmount($amount, $currency)
267
+ {
268
  switch($currency) {
269
  case "JPY":
270
  case "IDR":
304
  return number_format($amount, $format, '', '');
305
  }
306
 
307
+ public function originalAmount($amount, $currency)
308
+ {
309
  // check the format
310
  switch($currency) {
311
  case "JPY":
346
  return ($amount / $format);
347
  }
348
 
349
+ /**
350
+ * Creditcard type that is selected is different from creditcard type that we get back from the request this
351
+ * function get the magento creditcard type this is needed for getting settings like installments
352
+ * @param $ccType
353
+ * @return mixed
354
  */
355
+ public function getMagentoCreditCartType($ccType)
356
+ {
357
+
358
+ $ccTypesMapper = Mage::helper('adyen')->getCcTypesAltData();
 
 
 
 
 
 
 
 
359
 
360
  if(isset($ccTypesMapper[$ccType])) {
361
+ $ccType = $ccTypesMapper[$ccType]['code'];
362
  }
363
 
364
  return $ccType;
365
  }
366
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
367
  /**
368
  * Used via Payment method.Notice via configuration ofcourse Y or N
369
  * @return boolean true on demo, else false
376
  return false;
377
  }
378
 
379
+
380
+ /**
381
+ * @param null $storeId
382
+ *
383
+ * @return mixed
384
+ */
385
  public function getConfigDataWsUserName($storeId = null)
386
  {
387
  if ($this->getConfigDataDemoMode($storeId)) {
390
  return $this->getConfigData('ws_username_live', null, $storeId);
391
  }
392
 
393
+
394
+ /**
395
+ * @param null $storeId
396
+ *
397
+ * @return string
398
+ */
399
  public function getConfigDataWsPassword($storeId = null)
400
  {
401
  if ($this->getConfigDataDemoMode($storeId)) {
427
  *
428
  * @return mixed
429
  */
430
+ public function getConfigData($code, $paymentMethodCode = null, $storeId = null)
431
+ {
432
  if (null === $storeId) {
433
  $storeId = Mage::app()->getStore()->getStoreId();
434
  }
438
  return trim(Mage::getStoreConfig("payment/$paymentMethodCode/$code", $storeId));
439
  }
440
 
 
 
 
441
 
442
+ /**
443
+ * Get the client ip address
444
+ * @return string
445
+ */
446
+ public function getClientIp()
447
+ {
448
  if (isset($_SERVER['HTTP_CLIENT_IP'])) {
449
  $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
450
+ } elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
451
  $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
452
+ } elseif(isset($_SERVER['HTTP_X_FORWARDED'])) {
453
  $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
454
+ }elseif(isset($_SERVER['HTTP_FORWARDED_FOR'])) {
455
  $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
456
+ } elseif(isset($_SERVER['HTTP_FORWARDED'])) {
457
  $ipaddress = $_SERVER['HTTP_FORWARDED'];
458
+ } elseif(isset($_SERVER['REMOTE_ADDR'])) {
459
  $ipaddress = $_SERVER['REMOTE_ADDR'];
460
  } else {
461
  $ipaddress = '';
464
  return $ipaddress;
465
  }
466
 
467
+
468
+ /**
469
+ * Is th IP in the given range
470
+ * @param $ip
471
+ * @param $from
472
+ * @param $to
473
+ *
474
+ * @return bool
475
+ */
476
+ public function ipInRange($ip, $from, $to)
477
+ {
478
  $ip = ip2long($ip);
479
  $lowIp = ip2long($from);
480
  $highIp = ip2long($to);
491
  * @param type $address
492
  * @return Varien_Object
493
  */
494
+ public function getStreet($address)
495
+ {
496
  if (empty($address)) return false;
497
  $street = self::formatStreet($address->getStreet());
498
  $streetName = $street['0'];
509
  * @param type $street
510
  * @return type $street
511
  */
512
+ static public function formatStreet($street)
513
+ {
514
  if (count($street) != 1) {
515
  return $street;
516
  }
app/code/community/Adyen/Payment/Helper/Payment/Data.php CHANGED
@@ -17,7 +17,14 @@
17
  * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
  */
20
-
 
 
 
 
 
 
 
21
  class Adyen_Payment_Helper_Payment_Data extends Mage_Payment_Helper_Data {
22
 
23
  /**
@@ -36,12 +43,10 @@ class Adyen_Payment_Helper_Payment_Data extends Mage_Payment_Helper_Data {
36
  Mage::getSingleton('adyen/observer')->createPaymentMethodFromHpp($methodCode, array(), Mage::app()->getStore(), '0');
37
  $class = Mage::getStoreConfig($key);
38
  } elseif(! $class && strpos($code, 'adyen_oneclick') !== false) {
39
- if(Mage::app()->getStore()->isAdmin()) {
40
- $methodCode = substr($code, strlen('adyen_oneclick_'));
41
- $store = Mage::getSingleton('adminhtml/session_quote')->getStore();
42
- Mage::getSingleton('adyen/observer')->createPaymentMethodFromOneClick($methodCode, array(), $store);
43
- $class = Mage::getStoreConfig($key, $store->getId());
44
- }
45
  }
46
 
47
  $methodInstance = Mage::getModel($class);
@@ -58,6 +63,7 @@ class Adyen_Payment_Helper_Payment_Data extends Mage_Payment_Helper_Data {
58
  * array structure:
59
  * $index => Varien_Simplexml_Element
60
  *
 
61
  * @param mixed $store
62
  * @param Mage_Sales_Model_Quote $quote
63
  * @return array
17
  * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
  */
20
+
21
+
22
+
23
+ /**
24
+ * Because of the dynamic payment methods used we rewrite the Payment helper so we always get the right payment methods
25
+ * back.
26
+ * Class Adyen_Payment_Helper_Payment_Data
27
+ */
28
  class Adyen_Payment_Helper_Payment_Data extends Mage_Payment_Helper_Data {
29
 
30
  /**
43
  Mage::getSingleton('adyen/observer')->createPaymentMethodFromHpp($methodCode, array(), Mage::app()->getStore(), '0');
44
  $class = Mage::getStoreConfig($key);
45
  } elseif(! $class && strpos($code, 'adyen_oneclick') !== false) {
46
+ $methodCode = substr($code, strlen('adyen_oneclick_'));
47
+ $store = Mage::getSingleton('adminhtml/session_quote')->getStore();
48
+ Mage::getSingleton('adyen/billing_agreement_observer')->createPaymentMethodFromOneClick($methodCode, array(), $store);
49
+ $class = Mage::getStoreConfig($key, $store->getId());
 
 
50
  }
51
 
52
  $methodInstance = Mage::getModel($class);
63
  * array structure:
64
  * $index => Varien_Simplexml_Element
65
  *
66
+ * @todo maybe we can use this method instead of loading the payment methods on each pageload.
67
  * @param mixed $store
68
  * @param Mage_Sales_Model_Quote $quote
69
  * @return array
app/code/community/Adyen/Payment/Helper/Pci.php CHANGED
@@ -7,7 +7,7 @@
7
  class Adyen_Payment_Helper_Pci
8
  {
9
  /** @var array */
10
- protected static $_sensitiveDataKeys = ['holdername', 'expiryyear', 'expirymonth', 'issuenumber', 'cvc', 'number'];
11
 
12
  /** @var array */
13
  protected static $_sensitiveElementPatterns;
7
  class Adyen_Payment_Helper_Pci
8
  {
9
  /** @var array */
10
+ protected static $_sensitiveDataKeys = array('holdername', 'expiryyear', 'expirymonth', 'issuenumber', 'cvc', 'number');
11
 
12
  /** @var array */
13
  protected static $_sensitiveElementPatterns;
app/code/community/Adyen/Payment/Model/Adyen/Abstract.php CHANGED
@@ -33,6 +33,10 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
33
  */
34
  const DEBUG_LEVEL = 7;
35
 
 
 
 
 
36
  protected $_isGateway = false;
37
  protected $_canAuthorize = true;
38
  protected $_canCapture = true;
@@ -73,16 +77,38 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
73
  protected $_optionalData = NULL;
74
  protected $_testModificationUrl = 'https://pal-test.adyen.com/pal/adapter/httppost';
75
  protected $_liveModificationUrl = 'https://pal-live.adyen.com/pal/adapter/httppost';
76
-
77
  protected $_paymentMethodType = 'api';
78
 
79
  public function getPaymentMethodType() {
80
  return $this->$_paymentMethodType;
81
  }
82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  /**
84
  * @param Varien_Object $payment
85
- * @param unknown_type $amount
 
86
  */
87
  public function refund(Varien_Object $payment, $amount) {
88
  $this->writeLog('refund fx called');
@@ -105,19 +131,28 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
105
  /**
106
  * In the backend it means Authorize only
107
  * @param Varien_Object $payment
108
- * @param unknown_type $amount
 
109
  */
110
  public function authorize(Varien_Object $payment, $amount) {
111
  parent::authorize($payment, $amount);
112
  $payment->setLastTransId($this->getTransactionId())->setIsTransactionPending(true);
113
 
114
  $order = $payment->getOrder();
 
 
 
 
 
 
115
  /*
116
  * Do not send a email notification when order is created.
117
  * Only do this on the AUHTORISATION notification.
118
- * This is needed for old versions where there is no check if email is already send
119
  */
120
- $order->setCanSendNewEmailFlag(false);
 
 
121
 
122
  if ($this->getCode() == 'adyen_boleto' || $this->getCode() == 'adyen_cc' || substr($this->getCode(), 0, 14) == 'adyen_oneclick' || $this->getCode() == 'adyen_elv' || $this->getCode() == 'adyen_sepa') {
123
 
@@ -217,6 +252,7 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
217
  $this->_initService($storeId);
218
  $merchantAccount = trim($this->_getConfigData('merchantAccount', 'adyen_abstract', $storeId));
219
  $recurringType = $this->_getConfigData('recurringtypes', 'adyen_abstract', $storeId);
 
220
  $enableMoto = (int) $this->_getConfigData('enable_moto', 'adyen_cc', $storeId);
221
  $modificationResult = Mage::getModel('adyen/adyen_data_modificationResult');
222
  $requestData = Mage::getModel('adyen/adyen_data_modificationRequest')
@@ -225,7 +261,7 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
225
  switch ($request) {
226
  case "authorise":
227
  $requestData = Mage::getModel('adyen/adyen_data_paymentRequest')
228
- ->create($payment, $amount, $this->_paymentMethod, $merchantAccount,$recurringType, $enableMoto);
229
 
230
  $response = $this->_service->authorise(array('paymentRequest' => $requestData));
231
  break;
@@ -252,7 +288,18 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
252
  break;
253
  }
254
 
 
 
 
 
 
 
 
255
  if (!empty($response)) {
 
 
 
 
256
  $this->_processResponse($payment, $response, $request);
257
  }
258
 
@@ -262,34 +309,19 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
262
  $cacheKey = $merchantAccount . "|" . $payment->getOrder()->getCustomerId() . "|" . $recurringType;
263
  Mage::app()->getCache()->remove($cacheKey);
264
 
265
- //debug || log
266
- Mage::getResourceModel('adyen/adyen_debug')->assignData($response);
267
- $this->_debugAdyen();
268
- Mage::log($this->_pci()->obscureSensitiveData($requestData), self::DEBUG_LEVEL, "$request.log", true);
269
- Mage::log("Response from Adyen:", self::DEBUG_LEVEL, "$request.log", true);
270
- Mage::log($this->_pci()->obscureSensitiveData($response), self::DEBUG_LEVEL, "$request.log", true);
271
-
272
  //return $this;
273
  return $response;
274
  }
275
 
276
- protected function _processRecurringRequest($customerId) {
277
-
278
- $this->_initService();
279
-
280
- // customerId
281
- $merchantAccount = trim($this->_getConfigData('merchantAccount'));
282
- $recurringType = $this->_getConfigData('recurringtypes', 'adyen_abstract');
283
-
284
- // call to helper
285
- return Mage::helper('adyen')->getRecurringCards($merchantAccount, $customerId, $recurringType);
286
- }
287
-
288
  /**
289
  * @desc authorise response
290
  * Process the response of the soap
 
291
  * @param Varien_Object $payment
292
- * @param unknown_type $response
 
 
 
293
  * @todo Add comment with checkout Authorised
294
  */
295
  protected function _processResponse(Varien_Object $payment, $response, $request = null) {
@@ -323,11 +355,11 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
323
  $pspReference = $response->captureResult->pspReference;
324
  break;
325
  default:
 
326
  $this->writeLog("Unknown data type by Adyen");
327
  break;
328
  }
329
  switch ($responseCode) {
330
-
331
  case "RedirectShopper":
332
  $payment->setAdditionalInformation('paRequest', $response->paymentResult->paRequest);
333
  $payment->setAdditionalInformation('md', $response->paymentResult->md);
@@ -350,6 +382,9 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
350
  case "Restricted Card":
351
  $errorMsg = Mage::helper('adyen')->__('The card is restricted.');
352
  break;
 
 
 
353
  default:
354
  $errorMsg = Mage::helper('adyen')->__('The payment is REFUSED by Adyen.');
355
  break;
@@ -358,7 +393,7 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
358
  $errorMsg = Mage::helper('adyen')->__('The payment is REFUSED by Adyen.');
359
  }
360
 
361
- Mage::throwException($errorMsg);
362
  break;
363
  case "Authorised":
364
  $this->_addStatusHistory($payment, $responseCode, $pspReference, $this->_getConfigData('order_status'));
@@ -380,7 +415,7 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
380
  break;
381
  case "Error":
382
  $errorMsg = Mage::helper('adyen')->__('System error, please try again later');
383
- Mage::throwException($errorMsg);
384
  break;
385
  default:
386
  $this->writeLog("Unknown data type by Adyen");
@@ -622,23 +657,6 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
622
  return Mage::helper('adyen')->getConfigDataWsPassword($storeId);
623
  }
624
 
625
- /**
626
- * @since 0.0.2
627
- */
628
- public function getAvailableCCTypes() {
629
- $types = Mage::helper('adyen')->getCcTypes();
630
- $availableTypes = $this->_getConfigData('cctypes', 'adyen_cc');
631
- if ($availableTypes) {
632
- $availableTypes = explode(',', $availableTypes);
633
- foreach ($types as $code => $name) {
634
- if (!in_array($code, $availableTypes)) {
635
- unset($types[$code]);
636
- }
637
- }
638
- }
639
- return $types;
640
- }
641
-
642
  public function getAvailableBoletoTypes() {
643
  $types = Mage::helper('adyen')->getBoletoTypes();
644
  $availableTypes = $this->_getConfigData('boletotypes', 'adyen_boleto');
@@ -665,4 +683,119 @@ abstract class Adyen_Payment_Model_Adyen_Abstract extends Mage_Payment_Model_Met
665
  return $this;
666
  }
667
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
668
  }
33
  */
34
  const DEBUG_LEVEL = 7;
35
 
36
+ const VISIBLE_INTERNAL = 'backend';
37
+ const VISIBLE_CHECKOUT = 'frontend';
38
+ const VISIBLE_BOTH = 'both';
39
+
40
  protected $_isGateway = false;
41
  protected $_canAuthorize = true;
42
  protected $_canCapture = true;
77
  protected $_optionalData = NULL;
78
  protected $_testModificationUrl = 'https://pal-test.adyen.com/pal/adapter/httppost';
79
  protected $_liveModificationUrl = 'https://pal-live.adyen.com/pal/adapter/httppost';
 
80
  protected $_paymentMethodType = 'api';
81
 
82
  public function getPaymentMethodType() {
83
  return $this->$_paymentMethodType;
84
  }
85
 
86
+ public function __construct()
87
+ {
88
+ $visibleType = $this->getConfigData('visible_type');
89
+ switch ($visibleType) {
90
+ case self::VISIBLE_INTERNAL:
91
+ $this->_canUseCheckout = false;
92
+ $this->_canUseInternal = true;
93
+ break;
94
+
95
+ case self::VISIBLE_CHECKOUT:
96
+ $this->_canUseCheckout = true;
97
+ $this->_canUseInternal = false;
98
+ break;
99
+
100
+ case self::VISIBLE_BOTH:
101
+ $this->_canUseCheckout = true;
102
+ $this->_canUseInternal = true;
103
+ break;
104
+ }
105
+ }
106
+
107
+
108
  /**
109
  * @param Varien_Object $payment
110
+ * @param float $amount
111
+ * @return $this
112
  */
113
  public function refund(Varien_Object $payment, $amount) {
114
  $this->writeLog('refund fx called');
131
  /**
132
  * In the backend it means Authorize only
133
  * @param Varien_Object $payment
134
+ * @param $amount
135
+ * @return $this
136
  */
137
  public function authorize(Varien_Object $payment, $amount) {
138
  parent::authorize($payment, $amount);
139
  $payment->setLastTransId($this->getTransactionId())->setIsTransactionPending(true);
140
 
141
  $order = $payment->getOrder();
142
+
143
+ // by zero authentication payment is authorised when api responds is succesfull
144
+ if($order->getGrandTotal() == 0) {
145
+ $payment->setIsTransactionPending(false);
146
+ }
147
+
148
  /*
149
  * Do not send a email notification when order is created.
150
  * Only do this on the AUHTORISATION notification.
151
+ * For Boleto send it on order creation
152
  */
153
+ if($this->getCode() != 'adyen_boleto') {
154
+ $order->setCanSendNewEmailFlag(false);
155
+ }
156
 
157
  if ($this->getCode() == 'adyen_boleto' || $this->getCode() == 'adyen_cc' || substr($this->getCode(), 0, 14) == 'adyen_oneclick' || $this->getCode() == 'adyen_elv' || $this->getCode() == 'adyen_sepa') {
158
 
252
  $this->_initService($storeId);
253
  $merchantAccount = trim($this->_getConfigData('merchantAccount', 'adyen_abstract', $storeId));
254
  $recurringType = $this->_getConfigData('recurringtypes', 'adyen_abstract', $storeId);
255
+ $recurringPaymentType = $this->_getConfigData('recurring_payment_type', 'adyen_oneclick', $storeId);
256
  $enableMoto = (int) $this->_getConfigData('enable_moto', 'adyen_cc', $storeId);
257
  $modificationResult = Mage::getModel('adyen/adyen_data_modificationResult');
258
  $requestData = Mage::getModel('adyen/adyen_data_modificationRequest')
261
  switch ($request) {
262
  case "authorise":
263
  $requestData = Mage::getModel('adyen/adyen_data_paymentRequest')
264
+ ->create($payment, $amount, $this->_paymentMethod, $merchantAccount,$recurringType, $recurringPaymentType, $enableMoto);
265
 
266
  $response = $this->_service->authorise(array('paymentRequest' => $requestData));
267
  break;
288
  break;
289
  }
290
 
291
+
292
+ // log the request
293
+ Mage::getResourceModel('adyen/adyen_debug')->assignData($response);
294
+ $this->_debugAdyen();
295
+ Mage::log($this->_pci()->obscureSensitiveData($requestData), self::DEBUG_LEVEL, "$request.log", true);
296
+
297
+
298
  if (!empty($response)) {
299
+ // log the result
300
+ Mage::log("Response from Adyen:", self::DEBUG_LEVEL, "$request.log", true);
301
+ Mage::log($this->_pci()->obscureSensitiveData($response), self::DEBUG_LEVEL, "$request.log", true);
302
+
303
  $this->_processResponse($payment, $response, $request);
304
  }
305
 
309
  $cacheKey = $merchantAccount . "|" . $payment->getOrder()->getCustomerId() . "|" . $recurringType;
310
  Mage::app()->getCache()->remove($cacheKey);
311
 
 
 
 
 
 
 
 
312
  //return $this;
313
  return $response;
314
  }
315
 
 
 
 
 
 
 
 
 
 
 
 
 
316
  /**
317
  * @desc authorise response
318
  * Process the response of the soap
319
+ *
320
  * @param Varien_Object $payment
321
+ * @param stdClass $response
322
+ * @param null $request
323
+ *
324
+ * @return $this
325
  * @todo Add comment with checkout Authorised
326
  */
327
  protected function _processResponse(Varien_Object $payment, $response, $request = null) {
355
  $pspReference = $response->captureResult->pspReference;
356
  break;
357
  default:
358
+ $responseCode = null;
359
  $this->writeLog("Unknown data type by Adyen");
360
  break;
361
  }
362
  switch ($responseCode) {
 
363
  case "RedirectShopper":
364
  $payment->setAdditionalInformation('paRequest', $response->paymentResult->paRequest);
365
  $payment->setAdditionalInformation('md', $response->paymentResult->md);
382
  case "Restricted Card":
383
  $errorMsg = Mage::helper('adyen')->__('The card is restricted.');
384
  break;
385
+ case "803 PaymentDetail not found":
386
+ $errorMsg = Mage::helper('adyen')->__('The payment is REFUSED because the saved card is removed. Please try an other payment method.');
387
+ break;
388
  default:
389
  $errorMsg = Mage::helper('adyen')->__('The payment is REFUSED by Adyen.');
390
  break;
393
  $errorMsg = Mage::helper('adyen')->__('The payment is REFUSED by Adyen.');
394
  }
395
 
396
+ Adyen_Payment_Exception::throwException($errorMsg);
397
  break;
398
  case "Authorised":
399
  $this->_addStatusHistory($payment, $responseCode, $pspReference, $this->_getConfigData('order_status'));
415
  break;
416
  case "Error":
417
  $errorMsg = Mage::helper('adyen')->__('System error, please try again later');
418
+ Adyen_Payment_Exception::throwException($errorMsg);
419
  break;
420
  default:
421
  $this->writeLog("Unknown data type by Adyen");
657
  return Mage::helper('adyen')->getConfigDataWsPassword($storeId);
658
  }
659
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
660
  public function getAvailableBoletoTypes() {
661
  $types = Mage::helper('adyen')->getBoletoTypes();
662
  $availableTypes = $this->_getConfigData('boletotypes', 'adyen_boleto');
683
  return $this;
684
  }
685
 
686
+ public function canCreateBillingAgreement()
687
+ {
688
+ if (! $this->_canCreateBillingAgreement) {
689
+ return false;
690
+ }
691
+ $recurringType = $this->_getConfigData('recurringtypes');
692
+ if($recurringType == "ONECLICK" || $recurringType == "ONECLICK,RECURRING") {
693
+ return true;
694
+ }
695
+ return false;
696
+ }
697
+
698
+
699
+ public function getBillingAgreementCollection()
700
+ {
701
+ $customerId = $this->getInfoInstance()->getQuote()->getCustomerId();
702
+ return Mage::getModel('adyen/billing_agreement')
703
+ ->getAvailableCustomerBillingAgreements($customerId)
704
+ ->addFieldToFilter('method_code', $this->getCode());
705
+ }
706
+
707
+
708
+ /**
709
+ * @return Adyen_Payment_Model_Api
710
+ */
711
+ protected function _api()
712
+ {
713
+ return Mage::getSingleton('adyen/api');
714
+ }
715
+
716
+ /**
717
+ * Create billing agreement by token specified in request
718
+ *
719
+ * @param Mage_Payment_Model_Billing_AgreementAbstract $agreement
720
+ * @return Exception
721
+ */
722
+ public function placeBillingAgreement(Mage_Payment_Model_Billing_AgreementAbstract $agreement)
723
+ {
724
+ Mage::throwException('Not yet implemented.');
725
+ return $this;
726
+ }
727
+
728
+
729
+ /**
730
+ * Init billing agreement
731
+ *
732
+ * @param Mage_Payment_Model_Billing_AgreementAbstract $agreement
733
+ * @return Exception
734
+ */
735
+ public function initBillingAgreementToken(Mage_Payment_Model_Billing_AgreementAbstract $agreement)
736
+ {
737
+ Mage::throwException('Not yet implemented.');
738
+ return $this;
739
+ }
740
+
741
+ /**
742
+ * Update billing agreement status
743
+ *
744
+ * @param Adyen_Payment_Model_Billing_Agreement|Mage_Payment_Model_Billing_AgreementAbstract $agreement
745
+ *
746
+ * @return $this
747
+ * @throws Exception
748
+ * @throws Mage_Core_Exception
749
+ */
750
+ public function updateBillingAgreementStatus(Mage_Payment_Model_Billing_AgreementAbstract $agreement)
751
+ {
752
+ Mage::dispatchEvent('adyen_payment_update_billing_agreement_status', array('agreement' => $agreement));
753
+
754
+ $targetStatus = $agreement->getStatus();
755
+ $adyenHelper = Mage::helper('adyen');
756
+
757
+ if ($targetStatus == Mage_Sales_Model_Billing_Agreement::STATUS_CANCELED) {
758
+ try {
759
+ $this->_api()->disableRecurringContract(
760
+ $agreement->getReferenceId(),
761
+ $agreement->getCustomerReference(),
762
+ $agreement->getStoreId()
763
+ );
764
+ } catch (Adyen_Payment_Exception $e) {
765
+ Mage::throwException($adyenHelper->__(
766
+ "Error while disabling Billing Agreement #%s: %s", $agreement->getReferenceId(), $e->getMessage()
767
+ ));
768
+ }
769
+ } else {
770
+ throw new Exception(Mage::helper('adyen')->__(
771
+ 'Changing billing agreement status to "%s" not yet implemented.', $targetStatus
772
+ ));
773
+ }
774
+ return $this;
775
+ }
776
+
777
+
778
+ /**
779
+ * Retrieve billing agreement customer details by token
780
+ *
781
+ * @param Adyen_Payment_Model_Billing_Agreement|Mage_Payment_Model_Billing_AgreementAbstract $agreement
782
+ * @return array
783
+ */
784
+ public function getBillingAgreementTokenInfo(Mage_Payment_Model_Billing_AgreementAbstract $agreement)
785
+ {
786
+ $recurringContractDetail = $this->_api()->getRecurringContractDetail(
787
+ $agreement->getCustomerReference(),
788
+ $agreement->getReferenceId()
789
+ );
790
+
791
+ if (! $recurringContractDetail) {
792
+ Adyen_Payment_Exception::throwException(Mage::helper('adyen')->__(
793
+ 'The recurring contract (%s) could not be retrieved', $agreement->getReferenceId()
794
+ ));
795
+ }
796
+
797
+ $agreement->parseRecurringContractData($recurringContractDetail);
798
+
799
+ return $recurringContractDetail;
800
+ }
801
  }
app/code/community/Adyen/Payment/Model/Adyen/Boleto.php CHANGED
@@ -35,22 +35,6 @@ class Adyen_Payment_Model_Adyen_Boleto extends Adyen_Payment_Model_Adyen_Abstrac
35
  protected $_canUseInternal = true;
36
  protected $_canUseForMultishipping = true;
37
 
38
- public function __construct()
39
- {
40
- $visible = Mage::getStoreConfig("payment/adyen_boleto/visible_type");
41
- if($visible == "backend") {
42
- $this->_canUseCheckout = false;
43
- $this->_canUseInternal = true;
44
- } else if($visible == "frontend") {
45
- $this->_canUseCheckout = true;
46
- $this->_canUseInternal = false;
47
- } else {
48
- $this->_canUseCheckout = true;
49
- $this->_canUseInternal = true;
50
- }
51
- parent::__construct();
52
- }
53
-
54
  /**
55
  * 1)Called everytime the adyen_boleto is called or used in checkout
56
  * @descrition Assign data to info model instance
35
  protected $_canUseInternal = true;
36
  protected $_canUseForMultishipping = true;
37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  /**
39
  * 1)Called everytime the adyen_boleto is called or used in checkout
40
  * @descrition Assign data to info model instance
app/code/community/Adyen/Payment/Model/Adyen/Cc.php CHANGED
@@ -25,37 +25,18 @@
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
- class Adyen_Payment_Model_Adyen_Cc extends Adyen_Payment_Model_Adyen_Abstract {
 
29
 
30
  protected $_code = 'adyen_cc';
31
  protected $_formBlockType = 'adyen/form_cc';
32
  protected $_infoBlockType = 'adyen/info_cc';
33
  protected $_paymentMethod = 'cc';
34
- protected $_canUseCheckout = true;
35
- protected $_canUseInternal = true;
36
- protected $_canUseForMultishipping = true;
37
-
38
- public function __construct()
39
- {
40
- // check if this is adyen_cc payment method because this function is as well used for oneclick payments
41
- if($this->getCode() == "adyen_cc") {
42
- $visible = Mage::getStoreConfig("payment/adyen_cc/visible_type");
43
- if($visible == "backend") {
44
- $this->_canUseCheckout = false;
45
- $this->_canUseInternal = true;
46
- } else if($visible == "frontend") {
47
- $this->_canUseCheckout = true;
48
- $this->_canUseInternal = false;
49
- } else {
50
- $this->_canUseCheckout = true;
51
- $this->_canUseInternal = true;
52
- }
53
- }
54
- parent::__construct();
55
- }
56
 
57
  /**
58
- * 1)Called everytime the adyen_cc is called or used in checkout
59
  * @description Assign data to info model instance
60
  *
61
  * @param mixed $data
@@ -143,14 +124,6 @@ class Adyen_Payment_Model_Adyen_Cc extends Adyen_Payment_Model_Adyen_Abstract {
143
  return trim(Mage::getStoreConfig("payment/adyen_cc/cse_publickey"));
144
  }
145
 
146
- public function showRememberThisCheckoutbox() {
147
- $recurringType = $this->_getConfigData('recurringtypes');
148
- if($recurringType == "ONECLICK" || $recurringType == "ONECLICK,RECURRING") {
149
- return true;
150
- }
151
- return false;
152
- }
153
-
154
  /**
155
  * @desc Specific functions for 3d secure validation
156
  */
@@ -191,4 +164,41 @@ class Adyen_Payment_Model_Adyen_Cc extends Adyen_Payment_Model_Adyen_Abstract {
191
  return $adyFields;
192
  }
193
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
194
  }
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
+ class Adyen_Payment_Model_Adyen_Cc extends Adyen_Payment_Model_Adyen_Abstract
29
+ implements Mage_Payment_Model_Billing_Agreement_MethodInterface {
30
 
31
  protected $_code = 'adyen_cc';
32
  protected $_formBlockType = 'adyen/form_cc';
33
  protected $_infoBlockType = 'adyen/info_cc';
34
  protected $_paymentMethod = 'cc';
35
+ protected $_canCreateBillingAgreement = true;
36
+ protected $_ccTypes;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
  /**
39
+ * 1) Called everytime the adyen_cc is called or used in checkout
40
  * @description Assign data to info model instance
41
  *
42
  * @param mixed $data
124
  return trim(Mage::getStoreConfig("payment/adyen_cc/cse_publickey"));
125
  }
126
 
 
 
 
 
 
 
 
 
127
  /**
128
  * @desc Specific functions for 3d secure validation
129
  */
164
  return $adyFields;
165
  }
166
 
167
+ /**
168
+ * @desc setAvailableCCypes to remove MAESTRO as creditcard type for the Adyen_Subscription module
169
+ * @param $ccTypes
170
+ */
171
+ public function setAvailableCCypes($ccTypes) {
172
+ $this->_ccTypes = $ccTypes;
173
+ }
174
+
175
+ /**
176
+ * @return mixed
177
+ */
178
+ public function getAvailableCCTypes() {
179
+ if(!$this->_ccTypes) {
180
+ $types = Mage::helper('adyen')->getCcTypes();
181
+ $availableTypes = $this->_getConfigData('cctypes', 'adyen_cc');
182
+ if ($availableTypes) {
183
+ $availableTypes = explode(',', $availableTypes);
184
+ foreach ($types as $code => $name) {
185
+ if (!in_array($code, $availableTypes)) {
186
+ unset($types[$code]);
187
+ }
188
+ }
189
+ }
190
+ $this->_ccTypes = $types;
191
+ }
192
+ return $this->_ccTypes;
193
+ }
194
+
195
+ public function canCreateAdyenSubscription() {
196
+
197
+ // validate if recurringType is correctly configured
198
+ $recurringType = $this->_getConfigData('recurringtypes', 'adyen_abstract');
199
+ if($recurringType == "RECURRING" || $recurringType == "ONECLICK,RECURRING") {
200
+ return true;
201
+ }
202
+ return false;
203
+ }
204
  }
app/code/community/Adyen/Payment/Model/Adyen/Data/PaymentRequest.php CHANGED
@@ -65,8 +65,15 @@ class Adyen_Payment_Model_Adyen_Data_PaymentRequest extends Adyen_Payment_Model_
65
  $this->bankAccount = new Adyen_Payment_Model_Adyen_Data_BankAccount(); // for SEPA
66
  }
67
 
68
- public function create(Varien_Object $payment, $amount, $paymentMethod = null, $merchantAccount = null, $recurringType = null, $enableMoto = null)
69
- {
 
 
 
 
 
 
 
70
  $order = $payment->getOrder();
71
  $incrementId = $order->getIncrementId();
72
  $orderCurrencyCode = $order->getOrderCurrencyCode();
@@ -86,16 +93,27 @@ class Adyen_Payment_Model_Adyen_Data_PaymentRequest extends Adyen_Payment_Model_
86
  $this->shopperIP = $order->getRemoteIp();
87
  $this->shopperReference = (!empty($customerId)) ? $customerId : self::GUEST_ID . $realOrderId;
88
 
89
- // add recurring type for oneclick and recurring
90
  if($recurringType) {
91
-
92
- /* if user uncheck the checkbox store creditcard don't set ONECLICK in the recurring contract
93
- * for contracttype oneclick,recurring it means it will use recurring and if contracttype is recurring this can stay on recurring
94
- */
95
- if($paymentMethod == "cc" && $payment->getAdditionalInformation("store_cc") == "" && $recurringType == "ONECLICK,RECURRING") {
96
- $this->recurring = new Adyen_Payment_Model_Adyen_Data_Recurring();
97
- $this->recurring->contract = "RECURRING";
98
- } else if(!($paymentMethod == "cc" && $payment->getAdditionalInformation("store_cc") == "" && $recurringType != "RECURRING")) {
 
 
 
 
 
 
 
 
 
 
 
99
  $this->recurring = new Adyen_Payment_Model_Adyen_Data_Recurring();
100
  $this->recurring->contract = $recurringType;
101
  }
@@ -126,14 +144,13 @@ class Adyen_Payment_Model_Adyen_Data_PaymentRequest extends Adyen_Payment_Model_
126
  $this->shopperName = null;
127
  $this->elv = null;
128
  $this->bankAccount = null;
129
- $this->deliveryAddress = new Adyen_Payment_Model_Adyen_Data_DeliveryAddress();
130
- $this->billingAddress = new Adyen_Payment_Model_Adyen_Data_BillingAddress();
131
 
132
  $billingAddress = $order->getBillingAddress();
133
  $helper = Mage::helper('adyen');
134
 
135
  if($billingAddress)
136
  {
 
137
  $this->billingAddress->street = $helper->getStreet($billingAddress)->getName();
138
  $this->billingAddress->houseNumberOrName = $helper->getStreet($billingAddress)->getHouseNumber();
139
  $this->billingAddress->city = $billingAddress->getCity();
@@ -145,6 +162,7 @@ class Adyen_Payment_Model_Adyen_Data_PaymentRequest extends Adyen_Payment_Model_
145
  $deliveryAddress = $order->getShippingAddress();
146
  if($deliveryAddress)
147
  {
 
148
  $this->deliveryAddress->street = $helper->getStreet($billingAddress)->getName();
149
  $this->deliveryAddress->houseNumberOrName = $helper->getStreet($billingAddress)->getHouseNumber();
150
  $this->deliveryAddress->city = $billingAddress->getCity();
@@ -155,18 +173,25 @@ class Adyen_Payment_Model_Adyen_Data_PaymentRequest extends Adyen_Payment_Model_
155
 
156
  if($paymentMethod == "oneclick") {
157
  $recurringDetailReference = $payment->getAdditionalInformation("recurring_detail_reference");
158
- } else {
159
- $recurringDetailReference = null;
160
- }
161
 
162
- // set shopperInteraction
163
- if($recurringType == "RECURRING") {
164
- $this->shopperInteraction = "ContAuth";
 
 
 
 
 
 
 
 
 
165
  } else {
 
166
  $this->shopperInteraction = "Ecommerce";
167
  }
168
 
169
- if($paymentMethod == "adyen_cc" && Mage::app()->getStore()->isAdmin() && $enableMoto != null && $enableMoto == 1) {
170
  $this->shopperInteraction = "Moto";
171
  }
172
 
@@ -181,9 +206,10 @@ class Adyen_Payment_Model_Adyen_Data_PaymentRequest extends Adyen_Payment_Model_
181
 
182
  if (Mage::getModel('adyen/adyen_cc')->isCseEnabled()) {
183
 
 
 
184
  // this is only needed for creditcards
185
  if($payment->getAdditionalInformation("encrypted_data") != "") {
186
- $this->card = null;
187
  $kv = new Adyen_Payment_Model_Adyen_Data_AdditionalDataKVPair();
188
  $kv->key = new SoapVar("card.encrypted.json", XSD_STRING, "string", "http://www.w3.org/2001/XMLSchema");
189
  $kv->value = new SoapVar($payment->getAdditionalInformation("encrypted_data"), XSD_STRING, "string", "http://www.w3.org/2001/XMLSchema");
65
  $this->bankAccount = new Adyen_Payment_Model_Adyen_Data_BankAccount(); // for SEPA
66
  }
67
 
68
+ public function create(
69
+ Varien_Object $payment,
70
+ $amount,
71
+ $paymentMethod = null,
72
+ $merchantAccount = null,
73
+ $recurringType = null,
74
+ $recurringPaymentType = null,
75
+ $enableMoto = null
76
+ ) {
77
  $order = $payment->getOrder();
78
  $incrementId = $order->getIncrementId();
79
  $orderCurrencyCode = $order->getOrderCurrencyCode();
93
  $this->shopperIP = $order->getRemoteIp();
94
  $this->shopperReference = (!empty($customerId)) ? $customerId : self::GUEST_ID . $realOrderId;
95
 
96
+ // Set the recurring contract
97
  if($recurringType) {
98
+ if($paymentMethod == "oneclick") {
99
+ // For ONECLICK look at the recurringPaymentType that the merchant has selected in Adyen ONECLICK settings
100
+ if($payment->getAdditionalInformation('customer_interaction')) {
101
+ $this->recurring = new Adyen_Payment_Model_Adyen_Data_Recurring();
102
+ $this->recurring->contract = "ONECLICK";
103
+ } else {
104
+ $this->recurring = new Adyen_Payment_Model_Adyen_Data_Recurring();
105
+ $this->recurring->contract = "RECURRING";
106
+ }
107
+ } elseif($paymentMethod == "cc") {
108
+ // if save card is disabled only shoot in as recurring if recurringType is set to ONECLICK,RECURRING
109
+ if($payment->getAdditionalInformation("store_cc") == "" && $recurringType == "ONECLICK,RECURRING") {
110
+ $this->recurring = new Adyen_Payment_Model_Adyen_Data_Recurring();
111
+ $this->recurring->contract = "RECURRING";
112
+ } elseif($payment->getAdditionalInformation("store_cc") == "1") {
113
+ $this->recurring = new Adyen_Payment_Model_Adyen_Data_Recurring();
114
+ $this->recurring->contract = $recurringType;
115
+ }
116
+ } else {
117
  $this->recurring = new Adyen_Payment_Model_Adyen_Data_Recurring();
118
  $this->recurring->contract = $recurringType;
119
  }
144
  $this->shopperName = null;
145
  $this->elv = null;
146
  $this->bankAccount = null;
 
 
147
 
148
  $billingAddress = $order->getBillingAddress();
149
  $helper = Mage::helper('adyen');
150
 
151
  if($billingAddress)
152
  {
153
+ $this->billingAddress = new Adyen_Payment_Model_Adyen_Data_BillingAddress();
154
  $this->billingAddress->street = $helper->getStreet($billingAddress)->getName();
155
  $this->billingAddress->houseNumberOrName = $helper->getStreet($billingAddress)->getHouseNumber();
156
  $this->billingAddress->city = $billingAddress->getCity();
162
  $deliveryAddress = $order->getShippingAddress();
163
  if($deliveryAddress)
164
  {
165
+ $this->deliveryAddress = new Adyen_Payment_Model_Adyen_Data_DeliveryAddress();
166
  $this->deliveryAddress->street = $helper->getStreet($billingAddress)->getName();
167
  $this->deliveryAddress->houseNumberOrName = $helper->getStreet($billingAddress)->getHouseNumber();
168
  $this->deliveryAddress->city = $billingAddress->getCity();
173
 
174
  if($paymentMethod == "oneclick") {
175
  $recurringDetailReference = $payment->getAdditionalInformation("recurring_detail_reference");
 
 
 
176
 
177
+ if($payment->getAdditionalInformation('customer_interaction')) {
178
+ $this->shopperInteraction = "Ecommerce";
179
+ } else {
180
+ $this->shopperInteraction = "ContAuth";
181
+ }
182
+
183
+ // For recurring Ideal and Sofort needs to be converted to SEPA for this it is mandatory to set selectBrand to sepadirectdebit
184
+ if(!$payment->getAdditionalInformation('customer_interaction')) {
185
+ if($payment->getCcType() == "directEbanking" || $payment->getCcType() == "ideal") {
186
+ $this->selectedBrand = "sepadirectdebit";
187
+ }
188
+ }
189
  } else {
190
+ $recurringDetailReference = null;
191
  $this->shopperInteraction = "Ecommerce";
192
  }
193
 
194
+ if($paymentMethod == "cc" && Mage::app()->getStore()->isAdmin() && $enableMoto != null && $enableMoto == 1) {
195
  $this->shopperInteraction = "Moto";
196
  }
197
 
206
 
207
  if (Mage::getModel('adyen/adyen_cc')->isCseEnabled()) {
208
 
209
+ $this->card = null;
210
+
211
  // this is only needed for creditcards
212
  if($payment->getAdditionalInformation("encrypted_data") != "") {
 
213
  $kv = new Adyen_Payment_Model_Adyen_Data_AdditionalDataKVPair();
214
  $kv->key = new SoapVar("card.encrypted.json", XSD_STRING, "string", "http://www.w3.org/2001/XMLSchema");
215
  $kv->value = new SoapVar($payment->getAdditionalInformation("encrypted_data"), XSD_STRING, "string", "http://www.w3.org/2001/XMLSchema");
app/code/community/Adyen/Payment/Model/Adyen/Elv.php CHANGED
@@ -35,22 +35,6 @@ class Adyen_Payment_Model_Adyen_Elv extends Adyen_Payment_Model_Adyen_Abstract {
35
  protected $_canUseInternal = true;
36
  protected $_canUseForMultishipping = true;
37
 
38
- public function __construct()
39
- {
40
- $visible = Mage::getStoreConfig("payment/adyen_elv/visible_type");
41
- if($visible == "backend") {
42
- $this->_canUseCheckout = false;
43
- $this->_canUseInternal = true;
44
- } else if($visible == "frontend") {
45
- $this->_canUseCheckout = true;
46
- $this->_canUseInternal = false;
47
- } else {
48
- $this->_canUseCheckout = true;
49
- $this->_canUseInternal = true;
50
- }
51
- parent::__construct();
52
- }
53
-
54
  /**
55
  * 1)Called everytime the adyen_elv is called or used in checkout
56
  * @descrition Assign data to info model instance
35
  protected $_canUseInternal = true;
36
  protected $_canUseForMultishipping = true;
37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  /**
39
  * 1)Called everytime the adyen_elv is called or used in checkout
40
  * @descrition Assign data to info model instance
app/code/community/Adyen/Payment/Model/Adyen/Hpp.php CHANGED
@@ -368,4 +368,14 @@ class Adyen_Payment_Model_Adyen_Hpp extends Adyen_Payment_Model_Adyen_Abstract
368
  public function getShowIdealLogos() {
369
  return $this->_getConfigData('show_ideal_logos', 'adyen_hpp');
370
  }
 
 
 
 
 
 
 
 
 
 
371
  }
368
  public function getShowIdealLogos() {
369
  return $this->_getConfigData('show_ideal_logos', 'adyen_hpp');
370
  }
371
+
372
+ public function canCreateAdyenSubscription() {
373
+
374
+ // validate if recurringType is correctly configured
375
+ $recurringType = $this->_getConfigData('recurringtypes', 'adyen_abstract');
376
+ if($recurringType == "RECURRING" || $recurringType == "ONECLICK,RECURRING") {
377
+ return true;
378
+ }
379
+ return false;
380
+ }
381
  }
app/code/community/Adyen/Payment/Model/Adyen/Ideal.php CHANGED
@@ -1,22 +1,28 @@
1
  <?php
2
  /**
3
- * Adyen_Payment
4
  *
5
  * NOTICE OF LICENSE
6
  *
7
- * This source file is subject to the H&O Commercial License
8
- * that is bundled with this package in the file LICENSE_HO.txt.
9
  * It is also available through the world-wide-web at this URL:
10
- * http://www.h-o.nl/license
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 info@h-o.com so we can send you a copy immediately.
14
  *
15
- * @category Adyen
16
- * @package Adyen_Payment
17
- * @author Paul Hachmang H&O <info@h-o.nl>
18
- * @copyright 2015 Copyright © H&O (http://www.h-o.nl/)
19
- * @license H&O Commercial License (http://www.h-o.nl/license)
 
 
 
 
 
 
20
  */
21
 
22
  class Adyen_Payment_Model_Adyen_Ideal
1
  <?php
2
  /**
3
+ * Adyen Payment Module
4
  *
5
  * NOTICE OF LICENSE
6
  *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
 
28
  class Adyen_Payment_Model_Adyen_Ideal
app/code/community/Adyen/Payment/Model/Adyen/Oneclick.php CHANGED
@@ -32,8 +32,31 @@ class Adyen_Payment_Model_Adyen_Oneclick extends Adyen_Payment_Model_Adyen_Cc {
32
  protected $_infoBlockType = 'adyen/info_oneclick';
33
  protected $_paymentMethod = 'oneclick';
34
  protected $_canUseInternal = true; // not possible through backoffice interface
 
35
 
36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  /**
38
  * Ability to set the code, for dynamic payment methods.
39
  * @param $code
@@ -64,11 +87,10 @@ class Adyen_Payment_Model_Adyen_Oneclick extends Adyen_Payment_Model_Adyen_Cc {
64
  $info->setAdditionalInformation('recurring_detail_reference', $data->getRecurringDetailReference());
65
  } else {
66
  // Get recurringDetailReference from config
67
- $recurringDetailReference = Mage::getStoreConfig("payment/".$this->getCode() . "/recurringDetailReference", $storeId);
68
  $info->setAdditionalInformation('recurring_detail_reference', $recurringDetailReference);
69
  }
70
 
71
-
72
  $ccType = Mage::getStoreConfig("payment/".$this->getCode() . "/variant", $storeId);
73
  $ccType = Mage::helper('adyen')->getMagentoCreditCartType($ccType);
74
  $info->setCcType($ccType);
@@ -109,21 +131,157 @@ class Adyen_Payment_Model_Adyen_Oneclick extends Adyen_Payment_Model_Adyen_Cc {
109
  $quote->collectTotals();
110
  }
111
 
 
 
 
 
112
  return $this;
113
  }
114
 
115
- public function getlistRecurringDetails()
 
 
 
 
 
 
 
 
 
116
  {
117
- $quote = (Mage::getModel('checkout/type_onepage') !== false)? Mage::getModel('checkout/type_onepage')->getQuote(): Mage::getModel('checkout/session')->getQuote();
118
- $customerId = $quote->getCustomerId();
119
- return $this->_processRecurringRequest($customerId);
 
 
 
 
 
 
 
120
  }
121
 
122
- public function isNotRecurring() {
123
- $recurring_type = $this->_getConfigData('recurringtypes', 'adyen_abstract');
124
- if($recurring_type == "RECURRING")
125
- return false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  return true;
127
  }
128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  }
32
  protected $_infoBlockType = 'adyen/info_oneclick';
33
  protected $_paymentMethod = 'oneclick';
34
  protected $_canUseInternal = true; // not possible through backoffice interface
35
+ protected $_customerInteraction;
36
 
37
 
38
+ public function isAvailable($quote=null) {
39
+ $isAvailble = parent::isAvailable($quote);
40
+
41
+ // extra check if contract_type is allowed
42
+ if($isAvailble) {
43
+ $recurringPaymentType = $this->getRecurringPaymentType();
44
+ $recurringDetails = $this->getRecurringDetails();
45
+
46
+ if(isset($recurringDetails['recurring_type'])) {
47
+
48
+ $result = strpos($recurringDetails['recurring_type'], $recurringPaymentType);
49
+
50
+ if($result !== false) {
51
+ return true;
52
+ } else {
53
+ return false;
54
+ }
55
+ }
56
+ }
57
+ return $isAvailble;
58
+ }
59
+
60
  /**
61
  * Ability to set the code, for dynamic payment methods.
62
  * @param $code
87
  $info->setAdditionalInformation('recurring_detail_reference', $data->getRecurringDetailReference());
88
  } else {
89
  // Get recurringDetailReference from config
90
+ $recurringDetailReference = str_replace('adyen_oneclick_', '', $info->getData('method'));
91
  $info->setAdditionalInformation('recurring_detail_reference', $recurringDetailReference);
92
  }
93
 
 
94
  $ccType = Mage::getStoreConfig("payment/".$this->getCode() . "/variant", $storeId);
95
  $ccType = Mage::helper('adyen')->getMagentoCreditCartType($ccType);
96
  $info->setCcType($ccType);
131
  $quote->collectTotals();
132
  }
133
 
134
+ // get and set customer interaction needed for payment request
135
+ $this->hasCustomerInteraction();
136
+ $info->setAdditionalInformation('customer_interaction', $this->_customerInteraction);
137
+
138
  return $this;
139
  }
140
 
141
+ /**
142
+ * @desc CustomerInteraction is set by the recurring_payment_type or controlled by Adyen_Subscription module
143
+ * @param $customerInteraction
144
+ */
145
+ public function setCustomerInteraction($customerInteraction)
146
+ {
147
+ $this->_customerInteraction = (bool) $customerInteraction;
148
+ }
149
+
150
+ public function hasCustomerInteraction()
151
  {
152
+ if($this->_customerInteraction === null) {
153
+ $recurringPaymentType = $this->getRecurringPaymentType();
154
+ if($recurringPaymentType == "ONECLICK") {
155
+ $this->_customerInteraction = true;
156
+ } else {
157
+ $this->_customerInteraction = false;
158
+ }
159
+ }
160
+ return $this->_customerInteraction;
161
+
162
  }
163
 
164
+ public function getRecurringPaymentType()
165
+ {
166
+ return $this->_getConfigData('recurring_payment_type', 'adyen_oneclick');
167
+ }
168
+
169
+ /**
170
+ * @param Adyen_Payment_Model_Billing_Agreement $billingAgreement
171
+ * @param Mage_Sales_Model_Quote_Payment $paymentInfo
172
+ *
173
+ * @return $this
174
+ */
175
+ public function initBillingAgreementPaymentInfo(
176
+ Adyen_Payment_Model_Billing_Agreement $billingAgreement,
177
+ Mage_Sales_Model_Quote_Payment $paymentInfo)
178
+ {
179
+ try {
180
+ $recurringDetailReference = $billingAgreement->getReferenceId();
181
+ $paymentInfo->setMethod('adyen_oneclick_'.$recurringDetailReference);
182
+ $paymentInfo->setAdditionalInformation('recurring_detail_reference', $recurringDetailReference);
183
+
184
+ // set the ccType needed for Sepa, Sofort and Ideal
185
+ $agreementData = $billingAgreement->getAgreementData();
186
+ if(isset($agreementData['variant'])) {
187
+ $paymentInfo->setCcType($agreementData['variant']);
188
+ }
189
+ } catch(Exception $e) {
190
+ Adyen_Payment_Exception::logException($e);
191
+ }
192
+ return $this;
193
+ }
194
+
195
+ /**
196
+ * @return bool
197
+ */
198
+ public function isBillingAgreement()
199
+ {
200
  return true;
201
  }
202
 
203
+ public function canCreateAdyenSubscription() {
204
+
205
+ // get storeId
206
+ if(Mage::app()->getStore()->isAdmin()) {
207
+ $store = Mage::getSingleton('adminhtml/session_quote')->getStore();
208
+ } else {
209
+ $store = Mage::app()->getStore();
210
+ }
211
+ $storeId = $store->getId();
212
+
213
+ // Only cards that are saved as RECURRING or ONECLICK,RECURRING can be used for subscription
214
+ $recurringType = $this->getConfigData('recurring_type', $storeId);
215
+ if($recurringType == "RECURRING" || $recurringType == "ONECLICK,RECURRING") {
216
+ return true;
217
+ }
218
+ return false;
219
+ }
220
+
221
+ /**
222
+ * @param Adyen_Payment_Model_Billing_Agreement $billingAgreement
223
+ * @param array $data
224
+ *
225
+ * @return $this
226
+ */
227
+ public function parseRecurringContractData(
228
+ Adyen_Payment_Model_Billing_Agreement $billingAgreement,
229
+ array $data)
230
+ {
231
+ $billingAgreement
232
+ ->setMethodCode($this->getCode())
233
+ ->setReferenceId($data['recurringDetailReference'])
234
+ ->setCreatedAt($data['creationDate']);
235
+
236
+ $creationDate = str_replace(' ', '-', $data['creationDate']);
237
+ $billingAgreement->setCreatedAt($creationDate);
238
+
239
+ //Billing agreement SEPA
240
+ if (isset($data['bank_iban'])) {
241
+ $billingAgreement->setAgreementLabel(Mage::helper('adyen')->__('%s, %s',
242
+ $data['bank_iban'],
243
+ $data['bank_ownerName']
244
+ ));
245
+ }
246
+
247
+ // Billing agreement is CC
248
+ if (isset($data['card_number'])) {
249
+ $ccType = $data['variant'];
250
+ $ccTypes = Mage::helper('adyen')->getCcTypesAltData();
251
+
252
+ if (isset($ccTypes[$ccType])) {
253
+ $ccType = $ccTypes[$ccType]['name'];
254
+ }
255
+
256
+ $label = Mage::helper('adyen')->__('%s, %s, **** %s',
257
+ $ccType,
258
+ $data['card_holderName'],
259
+ $data['card_number'],
260
+ $data['card_expiryMonth'],
261
+ $data['card_expiryYear']
262
+ );
263
+ $billingAgreement->setAgreementLabel($label);
264
+ }
265
+
266
+ if ($data['variant'] == 'paypal') {
267
+ $label = Mage::helper('adyen')->__('PayPal %s',
268
+ $data['lastKnownShopperEmail']
269
+ );
270
+ $billingAgreement->setAgreementLabel($label);
271
+ }
272
+
273
+ return $this;
274
+ }
275
+
276
+ public function getRecurringDetails() {
277
+
278
+ if(Mage::app()->getStore()->isAdmin()) {
279
+ $storeId = Mage::getSingleton('adminhtml/session_quote')->getStoreId();
280
+ } else {
281
+ $storeId = Mage::app()->getStore()->getStoreId();
282
+ }
283
+
284
+ $recurringDetails = Mage::getStoreConfig("payment/".$this->getCode(), $storeId);
285
+ return $recurringDetails;
286
+ }
287
  }
app/code/community/Adyen/Payment/Model/Adyen/Sepa.php CHANGED
@@ -25,31 +25,14 @@
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
- class Adyen_Payment_Model_Adyen_Sepa extends Adyen_Payment_Model_Adyen_Abstract {
 
29
 
30
  protected $_code = 'adyen_sepa';
31
  protected $_formBlockType = 'adyen/form_sepa';
32
  protected $_infoBlockType = 'adyen/info_sepa';
33
  protected $_paymentMethod = 'sepa';
34
- protected $_canUseCheckout = true;
35
- protected $_canUseInternal = true;
36
- protected $_canUseForMultishipping = true;
37
-
38
- public function __construct()
39
- {
40
- $visible = Mage::getStoreConfig("payment/adyen_sepa/visible_type");
41
- if($visible == "backend") {
42
- $this->_canUseCheckout = false;
43
- $this->_canUseInternal = true;
44
- } else if($visible == "frontend") {
45
- $this->_canUseCheckout = true;
46
- $this->_canUseInternal = false;
47
- } else {
48
- $this->_canUseCheckout = true;
49
- $this->_canUseInternal = true;
50
- }
51
- parent::__construct();
52
- }
53
 
54
  /**
55
  * 1)Called everytime the adyen_sepa is called or used in checkout
@@ -68,7 +51,8 @@ class Adyen_Payment_Model_Adyen_Sepa extends Adyen_Payment_Model_Adyen_Abstract
68
  $sepa = array(
69
  'account_name' => $data->getAccountName(),
70
  'iban' => $data->getIban(),
71
- 'country' => $data->getCountry()
 
72
  );
73
 
74
  $info = $this->getInfoInstance();
@@ -78,6 +62,7 @@ class Adyen_Payment_Model_Adyen_Sepa extends Adyen_Payment_Model_Adyen_Abstract
78
  ->setCcNumber($data->getAccountNumber())
79
  ->setCcNumberEnc($data->getBankCode())
80
  ->setPoNumber(serialize($sepa)); /* @note misused field for the elv */
 
81
  return $this;
82
  }
83
 
@@ -85,14 +70,18 @@ class Adyen_Payment_Model_Adyen_Sepa extends Adyen_Payment_Model_Adyen_Abstract
85
  {
86
  parent::validate();
87
 
 
 
 
 
 
 
 
88
  // check if validator is on
89
  $ibanValidation = $this->_getConfigData("validate_iban", "adyen_sepa");
90
 
91
  if($ibanValidation) {
92
 
93
- $info = $this->getInfoInstance();
94
- $sepa = unserialize($info->getPoNumber());
95
-
96
  if(!$this->validateIban($sepa['iban']) || empty($sepa['iban'])){
97
  $errorCode = 'invalid_data';
98
  $errorMsg = Mage::helper('adyen')->__('Invalid Iban number.');
@@ -144,94 +133,15 @@ class Adyen_Payment_Model_Adyen_Sepa extends Adyen_Payment_Model_Adyen_Abstract
144
  parent::prepareSave();
145
  }
146
 
147
- public function getBillingAgreementCollection()
148
- {
149
- return Mage::getResourceModel('sales/billing_agreement_collection')
150
- ->addFieldToFilter('customer_id', $this->getInfoInstance()->getQuote()->getCustomerId())
151
- ->addFieldToFilter('status', 'active')
152
- ->addFieldToFilter('method_code', $this->getCode());
153
- }
154
-
155
- /**
156
- * Init billing agreement
157
- *
158
- * @param Mage_Payment_Model_Billing_AgreementAbstract $agreement
159
- * @return $this
160
- */
161
- public function initBillingAgreementToken(Mage_Payment_Model_Billing_AgreementAbstract $agreement)
162
- {
163
- $agreement->setRedirectUrl(
164
- Mage::getUrl('*/*/returnWizard', array('payment_method' => $this->getCode(), 'token' => uniqid('t')))
165
- );
166
- return $this;
167
- }
168
-
169
-
170
- /**
171
- * Retrieve billing agreement details
172
- *
173
- * @param Mage_Payment_Model_Billing_AgreementAbstract $agreement
174
- * @return $this
175
- */
176
- public function getBillingAgreementTokenInfo(Mage_Payment_Model_Billing_AgreementAbstract $agreement)
177
- {
178
-
179
- return $this;
180
- }
181
-
182
-
183
- /**
184
- * Create billing agreement
185
- *
186
- * @param Mage_Payment_Model_Billing_AgreementAbstract $agreement
187
- * @return $this
188
- */
189
- public function placeBillingAgreement(Mage_Payment_Model_Billing_AgreementAbstract $agreement)
190
- {
191
- $agreement->setBillingAgreementId('SEPA12345');
192
- return $this;
193
- }
194
 
 
 
 
 
 
 
195
 
196
- /**
197
- * Update billing agreement status
198
- *
199
- * @param Mage_Payment_Model_Billing_AgreementAbstract $agreeme*
200
- * @return $this
201
- nt
202
- */
203
- public function updateBillingAgreementStatus(Mage_Payment_Model_Billing_AgreementAbstract $agreement)
204
- {
205
- return $this;
206
  }
207
-
208
- // public function validateRecurringProfile(Mage_Payment_Model_Recurring_Profile $profile)
209
- // {
210
- // return true;
211
- // }
212
- //
213
- // public function submitRecurringProfile(Mage_Payment_Model_Recurring_Profile $profile, Mage_Payment_Model_Info $paymentInfo)
214
- // {
215
- //
216
- // }
217
- //
218
- // public function getRecurringProfileDetails($referenceId, Varien_Object $result)
219
- // {
220
- //
221
- // }
222
- //
223
- // public function canGetRecurringProfileDetails()
224
- // {
225
- // return false;
226
- // }
227
- //
228
- // public function updateRecurringProfile(Mage_Payment_Model_Recurring_Profile $profile)
229
- // {
230
- //
231
- // }
232
- //
233
- // public function updateRecurringProfileStatus(Mage_Payment_Model_Recurring_Profile $profile)
234
- // {
235
- //
236
- // }
237
  }
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
+ class Adyen_Payment_Model_Adyen_Sepa extends Adyen_Payment_Model_Adyen_Abstract
29
+ implements Mage_Payment_Model_Billing_Agreement_MethodInterface {
30
 
31
  protected $_code = 'adyen_sepa';
32
  protected $_formBlockType = 'adyen/form_sepa';
33
  protected $_infoBlockType = 'adyen/info_sepa';
34
  protected $_paymentMethod = 'sepa';
35
+ protected $_canCreateBillingAgreement = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  /**
38
  * 1)Called everytime the adyen_sepa is called or used in checkout
51
  $sepa = array(
52
  'account_name' => $data->getAccountName(),
53
  'iban' => $data->getIban(),
54
+ 'country' => $data->getCountry(),
55
+ 'accept_sepa' => $data->getAcceptSepa()
56
  );
57
 
58
  $info = $this->getInfoInstance();
62
  ->setCcNumber($data->getAccountNumber())
63
  ->setCcNumberEnc($data->getBankCode())
64
  ->setPoNumber(serialize($sepa)); /* @note misused field for the elv */
65
+
66
  return $this;
67
  }
68
 
70
  {
71
  parent::validate();
72
 
73
+ $info = $this->getInfoInstance();
74
+ $sepa = unserialize($info->getPoNumber());
75
+
76
+ if(!$sepa['accept_sepa']) {
77
+ $errorMsg = Mage::helper('adyen')->__('Please accept the conditions for a SEPA direct debit.');
78
+ Mage::throwException($errorMsg);
79
+ }
80
  // check if validator is on
81
  $ibanValidation = $this->_getConfigData("validate_iban", "adyen_sepa");
82
 
83
  if($ibanValidation) {
84
 
 
 
 
85
  if(!$this->validateIban($sepa['iban']) || empty($sepa['iban'])){
86
  $errorCode = 'invalid_data';
87
  $errorMsg = Mage::helper('adyen')->__('Invalid Iban number.');
133
  parent::prepareSave();
134
  }
135
 
136
+ public function canCreateAdyenSubscription() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
 
138
+ // validate if recurringType is correctly configured
139
+ $recurringType = $this->_getConfigData('recurringtypes', 'adyen_abstract');
140
+ if($recurringType == "RECURRING" || $recurringType == "ONECLICK,RECURRING") {
141
+ return true;
142
+ }
143
+ return false;
144
 
145
+ // TODO: add config where merchant can set the payment types that are available for subscription
 
 
 
 
 
 
 
 
 
146
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
147
  }
app/code/community/Adyen/Payment/Model/Api.php ADDED
@@ -0,0 +1,275 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adyen Payment Module
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2015 Adyen BV (http://www.adyen.com)
26
+ */
27
+ class Adyen_Payment_Model_Api extends Mage_Core_Model_Abstract
28
+ {
29
+ const RECURRING_TYPE_ONECLICK = 'ONECLICK';
30
+ const RECURRING_TYPE_RECURRING = 'RECURRING';
31
+ const RECURRING_TYPE_ONECLICK_RECURRING = 'ONECLICK,RECURRING';
32
+
33
+ protected $_recurringTypes = [
34
+ self::RECURRING_TYPE_ONECLICK,
35
+ self::RECURRING_TYPE_RECURRING
36
+ ];
37
+
38
+ protected $_paymentMethodMap;
39
+
40
+
41
+ /**
42
+ * @param string $shopperReference
43
+ * @param string $recurringDetailReference
44
+ * @param int|Mage_Core_model_Store|null $store
45
+ * @return bool
46
+ */
47
+ public function getRecurringContractDetail($shopperReference, $recurringDetailReference, $store = null)
48
+ {
49
+ $recurringContracts = $this->listRecurringContracts($shopperReference, $store);
50
+ foreach ($recurringContracts as $rc) {
51
+ if (isset($rc['recurringDetailReference']) && $rc['recurringDetailReference'] == $recurringDetailReference) {
52
+ return $rc;
53
+ }
54
+ }
55
+ return false;
56
+ }
57
+
58
+
59
+ /**
60
+ * Get all the stored Credit Cards and other billing agreements stored with Adyen.
61
+ *
62
+ * @param string $shopperReference
63
+ * @param int|Mage_Core_model_Store|null $store
64
+ * @return array
65
+ */
66
+ public function listRecurringContracts($shopperReference, $store = null)
67
+ {
68
+
69
+ $recurringContracts = [];
70
+ foreach ($this->_recurringTypes as $recurringType) {
71
+ try {
72
+ // merge ONECLICK and RECURRING into one record with recurringType ONECLICK,RECURRING
73
+ $listRecurringContractByType = $this->listRecurringContractByType($shopperReference, $store, $recurringType);
74
+
75
+ foreach($listRecurringContractByType as $recurringContract) {
76
+
77
+ if(isset($recurringContract['recurringDetailReference'])) {
78
+ $recurringDetailReference = $recurringContract['recurringDetailReference'];
79
+ // check if recurring reference is already in array
80
+ if(isset($recurringContracts[$recurringDetailReference])) {
81
+ // recurring reference already exists so recurringType is possible for ONECLICK and RECURRING
82
+ $recurringContracts[$recurringDetailReference]['recurring_type']= "ONECLICK,RECURRING";
83
+ } else {
84
+ $recurringContracts[$recurringDetailReference] = $recurringContract;
85
+ }
86
+ }
87
+ }
88
+ } catch (Adyen_Payment_Exception $exception) { }
89
+ }
90
+ return $recurringContracts;
91
+ }
92
+
93
+
94
+ /**
95
+ * @param $shopperReference
96
+ * @param $store
97
+ * @param $recurringType
98
+ *
99
+ * @return array
100
+ */
101
+ public function listRecurringContractByType($shopperReference, $store, $recurringType)
102
+ {
103
+ // rest call to get list of recurring details
104
+ $request = array(
105
+ "action" => "Recurring.listRecurringDetails",
106
+ "recurringDetailsRequest.merchantAccount" => $this->_helper()->getConfigData('merchantAccount', null, $store),
107
+ "recurringDetailsRequest.shopperReference" => $shopperReference,
108
+ "recurringDetailsRequest.recurring.contract" => $recurringType,
109
+ );
110
+
111
+ $result = $this->_doRequest($request, $store);
112
+
113
+ // convert result to utf8 characters
114
+ $result = utf8_encode(urldecode($result));
115
+
116
+ // The $result contains a JSON array containing the available payment methods for the merchant account.
117
+ parse_str($result, $resultArr);
118
+
119
+ $recurringContracts = [];
120
+ $recurringContractExtra = [];
121
+ foreach($resultArr as $key => $value) {
122
+ // strip the key
123
+ $key = str_replace("recurringDetailsResult_details_", "", $key);
124
+ $key2 = strstr($key, '_');
125
+ $keyNumber = str_replace($key2, "", $key);
126
+ $keyAttribute = substr($key2, 1);
127
+
128
+ // set ideal to sepadirectdebit because it is and we want to show sepadirectdebit logo
129
+ if($keyAttribute == "variant" && $value == "ideal") {
130
+ $value = 'sepadirectdebit';
131
+ }
132
+
133
+ if ($keyAttribute == 'variant') {
134
+ $recurringContracts[$keyNumber]['recurring_type'] = $recurringType;
135
+ $recurringContracts[$keyNumber]['payment_method'] = $this->_mapToPaymentMethod($value);
136
+ }
137
+
138
+ $recurringContracts[$keyNumber][$keyAttribute] = $value;
139
+
140
+ if ($keyNumber == 'recurringDetailsResult') {
141
+ $recurringContractExtra[$keyAttribute] = $value;
142
+ }
143
+ }
144
+
145
+ // unset the recurringDetailsResult because this is not a card
146
+ unset($recurringContracts["recurringDetailsResult"]);
147
+
148
+ foreach ($recurringContracts as $key => $recurringContract) {
149
+ $recurringContracts[$key] = $recurringContracts[$key] + $recurringContractExtra;
150
+ }
151
+
152
+ return $recurringContracts;
153
+ }
154
+
155
+ /**
156
+ * Map the recurring variant to a Magento payment method.
157
+ * @param $variant
158
+ * @return mixed
159
+ */
160
+ protected function _mapToPaymentMethod($variant)
161
+ {
162
+ if (is_null($this->_paymentMethodMap)) {
163
+ //@todo abstract this away to some config?
164
+ $this->_paymentMethodMap = [
165
+ 'sepadirectdebit' => 'adyen_sepa'
166
+ ];
167
+
168
+
169
+ $ccTypes = Mage::helper('adyen')->getCcTypes();
170
+ $ccTypes = array_keys(array_change_key_case($ccTypes, CASE_LOWER));
171
+ foreach ($ccTypes as $ccType) {
172
+ $this->_paymentMethodMap[$ccType] = 'adyen_cc';
173
+ }
174
+ }
175
+
176
+ return isset($this->_paymentMethodMap[$variant])
177
+ ? $this->_paymentMethodMap[$variant]
178
+ : $variant;
179
+ }
180
+
181
+
182
+ /**
183
+ * Disable a recurring contract
184
+ *
185
+ * @param string $recurringDetailReference
186
+ * @param string $shopperReference
187
+ * @param int|Mage_Core_model_Store|null $store
188
+ *
189
+ * @throws Adyen_Payment_Exception
190
+ * @return bool
191
+ */
192
+ public function disableRecurringContract($recurringDetailReference, $shopperReference, $store = null)
193
+ {
194
+ $merchantAccount = $this->_helper()->getConfigData('merchantAccount', null, $store);
195
+
196
+ $request = array(
197
+ "action" => "Recurring.disable",
198
+ "disableRequest.merchantAccount" => $merchantAccount,
199
+ "disableRequest.shopperReference" => $shopperReference,
200
+ "disableRequest.recurringDetailReference" => $recurringDetailReference
201
+ );
202
+
203
+ $result = $this->_doRequest($request, $store);
204
+
205
+ // convert result to utf8 characters
206
+ $result = utf8_encode(urldecode($result));
207
+
208
+ if ($result != "disableResult.response=[detail-successfully-disabled]") {
209
+ Adyen_Payment_Exception::throwException(Mage::helper('adyen')->__($result));
210
+ }
211
+
212
+ return true;
213
+ }
214
+
215
+
216
+ /**
217
+ * Do the actual API request
218
+ *
219
+ * @param array $request
220
+ * @param int|Mage_Core_model_Store $storeId
221
+ *
222
+ * @throws Adyen_Payment_Exception
223
+ * @return mixed
224
+ */
225
+ protected function _doRequest(array $request, $storeId)
226
+ {
227
+ if ($storeId instanceof Mage_Core_model_Store) {
228
+ $storeId = $storeId->getId();
229
+ }
230
+
231
+ $requestUrl = $this->_helper()->getConfigDataDemoMode()
232
+ ? "https://pal-test.adyen.com/pal/adapter/httppost"
233
+ : "https://pal-live.adyen.com/pal/adapter/httppost";
234
+ $username = $this->_helper()->getConfigDataWsUserName($storeId);
235
+ $password = $this->_helper()->getConfigDataWsPassword($storeId);
236
+
237
+ Mage::log($request, null, 'adyen_api.log');
238
+
239
+ $ch = curl_init();
240
+ curl_setopt($ch, CURLOPT_URL, $requestUrl);
241
+ curl_setopt($ch, CURLOPT_HEADER, false);
242
+ curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
243
+ curl_setopt($ch, CURLOPT_USERPWD, $username.":".$password);
244
+ curl_setopt($ch, CURLOPT_POST, count($request));
245
+ curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($request));
246
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
247
+
248
+ $result = curl_exec($ch);
249
+ $error = curl_error($ch);
250
+
251
+ if ($result === false) {
252
+ Adyen_Payment_Exception::throwException($error);
253
+ }
254
+
255
+ $httpStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
256
+ if ($httpStatus != 200) {
257
+ Adyen_Payment_Exception::throwException(
258
+ Mage::helper('adyen')->__('HTTP Status code %s received, data %s', $httpStatus, $result)
259
+ );
260
+ }
261
+
262
+ curl_close($ch);
263
+
264
+ return $result;
265
+ }
266
+
267
+
268
+ /**
269
+ * @return Adyen_Payment_Helper_Data
270
+ */
271
+ protected function _helper()
272
+ {
273
+ return Mage::helper('adyen');
274
+ }
275
+ }
app/code/community/Adyen/Payment/Model/Authenticate.php CHANGED
@@ -113,7 +113,9 @@ class Adyen_Payment_Model_Authenticate extends Mage_Core_Model_Abstract {
113
  }
114
  }
115
 
116
- $accountCmp = strcmp($submitedMerchantAccount, $internalMerchantAccount);
 
 
117
  $usernameCmp = strcmp($_SERVER['PHP_AUTH_USER'], $username);
118
  $passwordCmp = strcmp($_SERVER['PHP_AUTH_PW'], $password);
119
  if ($accountCmp === 0 && $usernameCmp === 0 && $passwordCmp === 0) {
@@ -235,4 +237,4 @@ class Adyen_Payment_Model_Authenticate extends Mage_Core_Model_Abstract {
235
  return Mage::helper('adyen')->_getConfigData($code, $paymentMethodCode, $storeId);
236
  }
237
 
238
- }
113
  }
114
  }
115
 
116
+ $accountCmp = !$this->_getConfigData('multiple_merchants')
117
+ ? strcmp($submitedMerchantAccount, $internalMerchantAccount)
118
+ : 0;
119
  $usernameCmp = strcmp($_SERVER['PHP_AUTH_USER'], $username);
120
  $passwordCmp = strcmp($_SERVER['PHP_AUTH_PW'], $password);
121
  if ($accountCmp === 0 && $usernameCmp === 0 && $passwordCmp === 0) {
237
  return Mage::helper('adyen')->_getConfigData($code, $paymentMethodCode, $storeId);
238
  }
239
 
240
+ }
app/code/community/Adyen/Payment/Model/Billing/Agreement.php ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adyen Payment Module
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2015 Adyen BV (http://www.adyen.com)
26
+ */
27
+
28
+
29
+
30
+ /**
31
+ * Class Adyen_Payment_Model_Billing_Agreement
32
+ */
33
+ class Adyen_Payment_Model_Billing_Agreement
34
+ extends Mage_Sales_Model_Billing_Agreement {
35
+
36
+ public function parseRecurringContractData($data)
37
+ {
38
+ /** @var Adyen_Payment_Model_Adyen_Oneclick $methodInstance */
39
+ $methodInstance = Mage::helper('payment')->getMethodInstance('adyen_oneclick');
40
+ if (! $methodInstance) {
41
+ Adyen_Payment_Exception::throwException('Can not update billing agreement, incorrect payment method specified in recurring contract data');
42
+ }
43
+
44
+ $methodInstance->parseRecurringContractData($this, $data);
45
+ $this->setAgreementData($data);
46
+
47
+ return $this;
48
+ }
49
+
50
+
51
+ public function setAgreementData($data)
52
+ {
53
+ if (is_array($data)) {
54
+ unset($data['creationDate']);
55
+ unset($data['recurringDetailReference']);
56
+ unset($data['payment_method']);
57
+ }
58
+
59
+ $this->setData('agreement_data', json_encode($data));
60
+ return $this;
61
+ }
62
+
63
+ public function getOneClickData()
64
+ {
65
+ $data = is_array($this->getAgreementData()) ? $this->getData() + $this->getAgreementData() : $this->getData();
66
+ $data['title'] = $data['agreement_label'];
67
+ unset($data['agreement_data']);
68
+ unset($data['agreement_label']);
69
+
70
+ return $data;
71
+ }
72
+
73
+ public function getAgreementData()
74
+ {
75
+ return json_decode($this->getData('agreement_data'), true);
76
+ }
77
+
78
+
79
+ /**
80
+ * @return Mage_Customer_Model_Customer
81
+ */
82
+ public function getCustomer()
83
+ {
84
+ if (! $this->hasData('customer')) {
85
+ $customer = Mage::getModel('customer/customer')->load($this->getCustomerId());
86
+ $this->setData('customer', $customer);
87
+ }
88
+
89
+ return $this->getData('customer');
90
+ }
91
+
92
+
93
+ /**
94
+ * @return mixed
95
+ */
96
+ public function getCustomerReference()
97
+ {
98
+ if (! $this->hasData('customer_reference')) {
99
+ $customerReference = $this->getCustomer()->getData('adyen_customer_ref') ?: $this->getCustomerId();
100
+ $this->setData('customer_reference', $customerReference);
101
+ }
102
+
103
+ return $this->getData('customer_reference');
104
+ }
105
+
106
+ /**
107
+ * Payment method instance
108
+ *
109
+ * @var Mage_Payment_Model_Method_Abstract
110
+ */
111
+ protected $_paymentMethodInstance = null;
112
+
113
+ /**
114
+ * Retreive payment method instance
115
+ *
116
+ * @return Mage_Payment_Model_Method_Abstract
117
+ */
118
+ public function getPaymentMethodInstance()
119
+ {
120
+ if (is_null($this->_paymentMethodInstance)) {
121
+ $methodCode = $this->getMethodCode();
122
+ $referenceId = $this->getReferenceId();
123
+ $methodInstanceName = $methodCode . "_" . $referenceId;
124
+ $this->_paymentMethodInstance = Mage::helper('payment')->getMethodInstance($methodInstanceName);
125
+ }
126
+ if ($this->_paymentMethodInstance) {
127
+ $this->_paymentMethodInstance->setStore($this->getStoreId());
128
+ }
129
+ return $this->_paymentMethodInstance;
130
+ }
131
+
132
+ }
app/code/community/Adyen/Payment/Model/Billing/Agreement/Observer.php ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adyen Payment Module
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
+ */
27
+
28
+ class Adyen_Payment_Model_Billing_Agreement_Observer
29
+ {
30
+ /**
31
+ * @event controller_action_predispatch
32
+ * @param Varien_Event_Observer $observer
33
+ */
34
+ public function addMethodsToConfig(Varien_Event_Observer $observer)
35
+ {
36
+ if(Mage::app()->getStore()->isAdmin()) {
37
+ $store = Mage::getSingleton('adminhtml/session_quote')->getStore();
38
+ } else {
39
+ $store = Mage::app()->getStore();
40
+ }
41
+
42
+ if (Mage::getStoreConfigFlag('payment/adyen_oneclick/active', $store)) {
43
+ try {
44
+ $this->_addOneClickMethodsToConfig($store);
45
+ $store->setConfig('payment/adyen_oneclick/active', 0);
46
+ } catch (Exception $e) {
47
+ Adyen_Payment_Exception::logException($e);
48
+ }
49
+ }
50
+ }
51
+
52
+
53
+ /**
54
+ * @param Mage_Core_Model_Store $store
55
+ * @return $this
56
+ */
57
+ protected function _addOneClickMethodsToConfig(Mage_Core_Model_Store $store)
58
+ {
59
+ Varien_Profiler::start(__CLASS__.'::'.__FUNCTION__);
60
+
61
+ $customer = Mage::helper('adyen/billing_agreement')->getCurrentCustomer();
62
+
63
+ if (! $customer || ! $customer->getId()) {
64
+ return $this;
65
+ }
66
+
67
+ $baCollection = Mage::getResourceModel('adyen/billing_agreement_collection');
68
+ $baCollection->addFieldToFilter('customer_id', $customer->getId());
69
+ $baCollection->addFieldToFilter('store_id', $store->getId());
70
+ $baCollection->addActiveFilter();
71
+
72
+ foreach ($baCollection as $billingAgreement) {
73
+
74
+ // Only show payment methods that are enabled by the merchant
75
+ $agreementData = json_decode($billingAgreement->agreement_data, true);
76
+ $recurringPaymentType = Mage::getStoreConfig('payment/adyen_oneclick/recurring_payment_type', $store);
77
+
78
+ $this->_createPaymentMethodFromBA($billingAgreement, $store);
79
+
80
+ }
81
+
82
+ Varien_Profiler::stop(__CLASS__.'::'.__FUNCTION__);
83
+ }
84
+
85
+
86
+ /**
87
+ * @param Adyen_Payment_Model_Billing_Agreement $billingAgreement
88
+ * @param Mage_Core_Model_Store $store
89
+ *
90
+ * @return bool
91
+ */
92
+ protected function _createPaymentMethodFromBA(
93
+ Adyen_Payment_Model_Billing_Agreement $billingAgreement,
94
+ Mage_Core_Model_Store $store)
95
+ {
96
+ $methodInstance = $billingAgreement->getPaymentMethodInstance();
97
+ if (! $methodInstance || ! $methodInstance->getConfigData('active', $store)) {
98
+ return false;
99
+ }
100
+
101
+ $methodNewCode = 'adyen_oneclick_'.$billingAgreement->getReferenceId();
102
+
103
+ $methodData = array('model' => 'adyen/adyen_oneclick')
104
+ + $billingAgreement->getOneClickData()
105
+ + Mage::getStoreConfig('payment/adyen_oneclick', $store);
106
+
107
+ foreach ($methodData as $key => $value) {
108
+ $store->setConfig('payment/'.$methodNewCode.'/'.$key, $value);
109
+ }
110
+
111
+ return true;
112
+ }
113
+
114
+
115
+ /**
116
+ * @param string $methodCode ideal,mc,etc.
117
+ * @param array $methodData
118
+ * @param Mage_Core_Model_Store $store
119
+ */
120
+ public function createPaymentMethodFromOneClick($methodCode, $methodData = array(), Mage_Core_Model_Store $store)
121
+ {
122
+ $methodNewCode = 'adyen_oneclick_'.$methodCode;
123
+
124
+ $methodData = $methodData + Mage::getStoreConfig('payment/adyen_oneclick', $store);
125
+ $methodData['model'] = 'adyen/adyen_oneclick';
126
+ $methodData['active'] = true;
127
+
128
+ foreach ($methodData as $key => $value) {
129
+ $store->setConfig('payment/'.$methodNewCode.'/'.$key, $value);
130
+ }
131
+
132
+ $store->setConfig('payment/adyen_oneclick/active', 0);
133
+ }
134
+ }
app/code/community/Adyen/Payment/Model/Observer.php CHANGED
@@ -37,43 +37,16 @@ class Adyen_Payment_Model_Observer {
37
  $store = Mage::app()->getStore();
38
  }
39
 
40
- // Add OneClick payment methods
41
- if (Mage::getStoreConfigFlag('payment/adyen_oneclick/active', $store)) {
42
- try {
43
- $this->_addOneClickMethodsToConfig($store);
44
- } catch (Exception $e) {
45
- $store->setConfig('payment/adyen_oneclick/active', 0);
46
- Mage::logException($e);
47
- }
48
- }
49
-
50
  if (Mage::getStoreConfigFlag('payment/adyen_hpp/active', $store)) {
51
  try {
52
  $this->_addHppMethodsToConfig($store);
53
  } catch (Exception $e) {
54
  $store->setConfig('payment/adyen_hpp/active', 0);
55
- Mage::logException($e);
56
  }
57
  }
58
  }
59
 
60
- /**
61
- * @param Mage_Core_Model_Store $store
62
- */
63
- protected function _addOneClickMethodsToConfig(Mage_Core_Model_Store $store)
64
- {
65
- Varien_Profiler::start(__CLASS__.'::'.__FUNCTION__);
66
-
67
- // Adyen CC needs to be active
68
- if(Mage::getStoreConfigFlag('payment/adyen_cc/active', $store)) {
69
- foreach ($this->_fetchOneClickMethods($store) as $methodCode => $methodData) {
70
- $this->createPaymentMethodFromOneClick($methodCode, $methodData, $store);
71
- }
72
- }
73
- $store->setConfig('payment/adyen_oneclick/active', 0);
74
-
75
- Varien_Profiler::stop(__CLASS__.'::'.__FUNCTION__);
76
- }
77
 
78
 
79
  /**
@@ -98,26 +71,6 @@ class Adyen_Payment_Model_Observer {
98
  Varien_Profiler::stop(__CLASS__.'::'.__FUNCTION__);
99
  }
100
 
101
-
102
- /**
103
- * @param string $methodCode ideal,mc,etc.
104
- * @param array $methodData
105
- */
106
- public function createPaymentMethodFromOneClick($methodCode, $methodData = array(), Mage_Core_Model_Store $store)
107
- {
108
-
109
- $methodNewCode = 'adyen_oneclick_'.$methodCode;
110
-
111
- $methodData = $methodData + Mage::getStoreConfig('payment/adyen_oneclick', $store);
112
- $methodData['model'] = 'adyen/adyen_oneclick';
113
-
114
- foreach ($methodData as $key => $value) {
115
- $store->setConfig('payment/'.$methodNewCode.'/'.$key, $value);
116
- }
117
-
118
- $store->setConfig('payment/adyen_oneclick/active', 0);
119
- }
120
-
121
  /**
122
  * @param string $methodCode ideal,mc,etc.
123
  * @param array $methodData
@@ -143,52 +96,6 @@ class Adyen_Payment_Model_Observer {
143
  $store->setConfig('/payment/' . $methodNewCode . '/sort_order', $sortOrder);
144
  }
145
 
146
- /**
147
- * @param Mage_Core_Model_Store $store
148
- * @return array
149
- */
150
- protected function _fetchOneClickMethods(Mage_Core_Model_Store $store)
151
- {
152
- $adyenHelper = Mage::helper('adyen');
153
- $paymentMethods = array();
154
-
155
- $merchantAccount = trim($adyenHelper->getConfigData('merchantAccount', 'adyen_abstract', $store->getId()));
156
-
157
- if(Mage::app()->getStore()->isAdmin()) {
158
- $customerId = Mage::getSingleton('adminhtml/session_quote')->getCustomerId();
159
- } else if($customer = Mage::getSingleton('customer/session')->isLoggedIn()) {
160
- $customerData = Mage::getSingleton('customer/session')->getCustomer();
161
- $customerId = $customerData->getId();
162
- } else {
163
- // not logged in so has no cards
164
- return array();
165
- }
166
-
167
- $recurringType = $adyenHelper->getConfigData('recurringtypes', 'adyen_abstract', $store->getId());
168
- $recurringCards = $adyenHelper->getRecurringCards($merchantAccount, $customerId, $recurringType);
169
-
170
- $paymentMethods = array();
171
- foreach ($recurringCards as $key => $paymentMethod) {
172
-
173
- $paymentMethodCode = $paymentMethod['recurringDetailReference'];
174
- $paymentMethods[$paymentMethodCode] = $paymentMethod;
175
-
176
- if($paymentMethod['variant'] == 'sepadirectdebit' || $paymentMethod['variant'] == 'ideal' || $paymentMethod['variant'] == 'openinvoice') {
177
- $paymentMethods[$paymentMethodCode]['title'] = $paymentMethod['bank_ownerName'] ;
178
- } else if($paymentMethod['variant'] == 'elv') {
179
- $paymentMethods[$paymentMethodCode]['title'] = $paymentMethod['elv_accountHolderName'] ;
180
- } else if(isset($paymentMethod["card_holderName"]) && isset($paymentMethod['card_number'])) {
181
- $paymentMethods[$paymentMethodCode]['title'] = $paymentMethod["card_holderName"] . " **** " . $paymentMethod['card_number'];
182
- } else {
183
- // for now ignore PayPal and Klarna because we have no information on what account this is linked to. You will only get these back when you have recurring enabled
184
- // $paymentMethods[$paymentMethodCode]['title'] = Mage::helper('adyen')->__('Saved Card') . " " . $paymentMethod["variant"];
185
- unset($paymentMethods[$paymentMethodCode]);
186
- }
187
- }
188
-
189
- return $paymentMethods;
190
- }
191
-
192
  /**
193
  * @param Mage_Core_Model_Store $store
194
  * @return array
@@ -197,9 +104,9 @@ class Adyen_Payment_Model_Observer {
197
  {
198
  $adyenHelper = Mage::helper('adyen');
199
 
 
 
200
 
201
- $skinCode = $adyenHelper->getConfigData('skinCode', 'adyen_hpp', $store);
202
- $merchantAccount = $adyenHelper->getConfigData('merchantAccount', null, $store);
203
  if (!$skinCode || !$merchantAccount) {
204
  return array();
205
  }
@@ -214,12 +121,14 @@ class Adyen_Payment_Model_Observer {
214
  DATE_ATOM,
215
  mktime(date("H") + 1, date("i"), date("s"), date("m"), date("j"), date("Y"))
216
  ),
217
- "countryCode" => $this->_getCurrentCountryCode(),
218
- "shopperLocale" => Mage::app()->getLocale()->getLocaleCode()
219
  );
220
  $responseData = $this->_getDirectoryLookupResponse($adyFields, $store);
221
 
222
  $paymentMethods = array();
 
 
223
  foreach ($responseData['paymentMethods'] as $paymentMethod) {
224
  $paymentMethod = $this->_fieldMapPaymentMethod($paymentMethod);
225
  $paymentMethodCode = $paymentMethod['brandCode'];
@@ -231,7 +140,7 @@ class Adyen_Payment_Model_Observer {
231
  }
232
 
233
  if (Mage::getStoreConfigFlag('payment/adyen_cc/active')
234
- && in_array($paymentMethodCode, array('diners','discover','amex','mc','visa','maestro'))) {
235
  continue;
236
  }
237
 
@@ -270,8 +179,13 @@ class Adyen_Payment_Model_Observer {
270
  /**
271
  * @return string
272
  */
273
- protected function _getCurrentLocaleCode()
274
  {
 
 
 
 
 
275
  return Mage::app()->getLocale()->getLocaleCode();
276
  }
277
 
@@ -288,8 +202,15 @@ class Adyen_Payment_Model_Observer {
288
  /**
289
  * @return string
290
  */
291
- protected function _getCurrentCountryCode()
292
  {
 
 
 
 
 
 
 
293
  $billingParams = Mage::app()->getRequest()->getParam('billing');
294
  if (isset($billingParams['country_id'])) {
295
  return $billingParams['country_id'];
@@ -303,10 +224,13 @@ class Adyen_Payment_Model_Observer {
303
  return Mage::getStoreConfig('payment/account/merchant_country');
304
  }
305
 
 
 
 
 
306
  return null;
307
  }
308
 
309
-
310
  /**
311
  * @return bool|int
312
  */
@@ -366,7 +290,7 @@ class Adyen_Payment_Model_Observer {
366
  $responseData = json_decode($results, true);
367
  if (! $responseData || !isset($responseData['paymentMethods'])) {
368
  Mage::throwException(Mage::helper('adyen')->__(
369
- 'Did not receive JSON, could not retrieve payment methods, received %s', $results
370
  ));
371
  }
372
 
@@ -530,4 +454,68 @@ class Adyen_Payment_Model_Observer {
530
  {
531
  return strpos($order->getPayment()->getMethod(), 'adyen') !== false;
532
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
533
  }
37
  $store = Mage::app()->getStore();
38
  }
39
 
 
 
 
 
 
 
 
 
 
 
40
  if (Mage::getStoreConfigFlag('payment/adyen_hpp/active', $store)) {
41
  try {
42
  $this->_addHppMethodsToConfig($store);
43
  } catch (Exception $e) {
44
  $store->setConfig('payment/adyen_hpp/active', 0);
45
+ Adyen_Payment_Exception::logException($e);
46
  }
47
  }
48
  }
49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
 
52
  /**
71
  Varien_Profiler::stop(__CLASS__.'::'.__FUNCTION__);
72
  }
73
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  /**
75
  * @param string $methodCode ideal,mc,etc.
76
  * @param array $methodData
96
  $store->setConfig('/payment/' . $methodNewCode . '/sort_order', $sortOrder);
97
  }
98
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  /**
100
  * @param Mage_Core_Model_Store $store
101
  * @return array
104
  {
105
  $adyenHelper = Mage::helper('adyen');
106
 
107
+ $skinCode = $adyenHelper->getConfigData('skinCode', 'adyen_hpp', $store->getId());
108
+ $merchantAccount = $adyenHelper->getConfigData('merchantAccount', null, $store->getId());
109
 
 
 
110
  if (!$skinCode || !$merchantAccount) {
111
  return array();
112
  }
121
  DATE_ATOM,
122
  mktime(date("H") + 1, date("i"), date("s"), date("m"), date("j"), date("Y"))
123
  ),
124
+ "countryCode" => $this->_getCurrentCountryCode($adyenHelper, $store),
125
+ "shopperLocale" => $this->_getCurrentLocaleCode($adyenHelper, $store)
126
  );
127
  $responseData = $this->_getDirectoryLookupResponse($adyFields, $store);
128
 
129
  $paymentMethods = array();
130
+ $ccTypes = array_keys(Mage::helper('adyen')->getCcTypesAltData());
131
+
132
  foreach ($responseData['paymentMethods'] as $paymentMethod) {
133
  $paymentMethod = $this->_fieldMapPaymentMethod($paymentMethod);
134
  $paymentMethodCode = $paymentMethod['brandCode'];
140
  }
141
 
142
  if (Mage::getStoreConfigFlag('payment/adyen_cc/active')
143
+ && in_array($paymentMethodCode, $ccTypes)) {
144
  continue;
145
  }
146
 
179
  /**
180
  * @return string
181
  */
182
+ protected function _getCurrentLocaleCode($adyenHelper, $store)
183
  {
184
+ $localeCode = $adyenHelper->getConfigData('shopperlocale', 'adyen_abstract', $store->getId());
185
+ if($localeCode != "") {
186
+ return $localeCode;
187
+ }
188
+
189
  return Mage::app()->getLocale()->getLocaleCode();
190
  }
191
 
202
  /**
203
  * @return string
204
  */
205
+ protected function _getCurrentCountryCode($adyenHelper, $store)
206
  {
207
+ // if fixed countryCode is setup in config use this
208
+ $countryCode = $adyenHelper->getConfigData('countryCode', 'adyen_abstract', $store->getId());
209
+
210
+ if($countryCode != "") {
211
+ return $countryCode;
212
+ }
213
+
214
  $billingParams = Mage::app()->getRequest()->getParam('billing');
215
  if (isset($billingParams['country_id'])) {
216
  return $billingParams['country_id'];
224
  return Mage::getStoreConfig('payment/account/merchant_country');
225
  }
226
 
227
+ if (Mage::getStoreConfig('general/country/default')) {
228
+ return Mage::getStoreConfig('general/country/default');
229
+ }
230
+
231
  return null;
232
  }
233
 
 
234
  /**
235
  * @return bool|int
236
  */
290
  $responseData = json_decode($results, true);
291
  if (! $responseData || !isset($responseData['paymentMethods'])) {
292
  Mage::throwException(Mage::helper('adyen')->__(
293
+ 'Did not receive JSON, could not retrieve payment methods, received %s request was: %s', $results, print_r($requestParams, true)
294
  ));
295
  }
296
 
454
  {
455
  return strpos($order->getPayment()->getMethod(), 'adyen') !== false;
456
  }
457
+
458
+ /**
459
+ * @param Varien_Event_Observer $observer
460
+ */
461
+ public function captureInvoiceOnShipment(Varien_Event_Observer $observer)
462
+ {
463
+
464
+ /* @noinspection PhpUndefinedMethodInspection */
465
+ /* @var Mage_Sales_Model_Order_Shipment $shipment */
466
+ $shipment = $observer->getShipment();
467
+
468
+ /** @var Mage_Sales_Model_Order $order */
469
+ $order = $shipment->getOrder();
470
+
471
+ $adyenHelper = Mage::helper('adyen');
472
+ $storeId = $order->getStoreId();
473
+
474
+ $captureOnShipment = $adyenHelper->getConfigData('capture_on_shipment', 'adyen_abstract', $storeId);
475
+ $createPendingInvoice = $adyenHelper->getConfigData('create_pending_invoice', 'adyen_abstract', $storeId);
476
+
477
+ // validate if payment method is adyen and if capture_on_shipment is enabled
478
+ if($this->isPaymentMethodAdyen($order) && $captureOnShipment) {
479
+ if($createPendingInvoice) {
480
+ $transaction = Mage::getModel('core/resource_transaction');
481
+ $transaction->addObject($order);
482
+
483
+ foreach ($order->getInvoiceCollection() as $invoice) {
484
+ /* @var Ho_Invoice_Model_Sales_Order_Invoice $invoice */
485
+ if (! $invoice->canCapture()) {
486
+ continue;
487
+ }
488
+
489
+ $invoice->capture();
490
+ $invoice->setCreatedAt(now());
491
+ $transaction->addObject($invoice);
492
+ }
493
+
494
+ $order->setIsInProcess(true);
495
+ $transaction->save();
496
+ } else {
497
+ // create an invoice and do a capture to adyen
498
+ if ($order->canInvoice()) {
499
+ try {
500
+ $invoice = $order->prepareInvoice();
501
+ $invoice->getOrder()->setIsInProcess(true);
502
+
503
+ // set transaction id so you can do a online refund from credit memo
504
+ $invoice->setTransactionId(1);
505
+ $invoice->register()->capture();
506
+ $invoice->save();
507
+ } catch (Exception $e) {
508
+ Mage::logException($e);
509
+ }
510
+
511
+ $invoiceAutoMail = (bool) $adyenHelper->getConfigData('send_invoice_update_mail', 'adyen_abstract', $storeId);
512
+ if ($invoiceAutoMail) {
513
+ $invoice->sendEmail();
514
+ }
515
+ }
516
+ }
517
+ }
518
+
519
+ return $this;
520
+ }
521
  }
app/code/community/Adyen/Payment/Model/ProcessNotification.php CHANGED
@@ -238,6 +238,8 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
238
  $valueArray = $params->getData('amount');
239
  if($valueArray && is_array($valueArray)) {
240
  $this->_value = isset($valueArray['value']) ? $valueArray['value'] : "";
 
 
241
  }
242
 
243
  $additionalData = $params->getData('additionalData');
@@ -387,7 +389,7 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
387
  }
388
 
389
  /**
390
- * @param $order
391
  * @param $params
392
  */
393
  protected function _processNotification($order)
@@ -468,10 +470,10 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
468
  $orderStatus = $this->_getConfigData('order_status', 'adyen_abstract', $order->getStoreId());
469
  if(($orderStatus != Mage_Sales_Model_Order::STATE_HOLDED && $order->canCancel()) || ($orderStatus == Mage_Sales_Model_Order::STATE_HOLDED && $order->canHold())) {
470
  // cancel order
471
- $this->_debugData['_processNotification'] = 'try to cancel the order';
472
  $this->_holdCancelOrder($order, true);
473
  } else {
474
- $this->_debugData['_processNotification'] = 'try to refund the order';
475
  // refund
476
  $this->_refundOrder($order);
477
  //refund completed
@@ -484,32 +486,60 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
484
  // get payment object
485
  $payment = $order->getPayment();
486
 
487
- // save recurring contract (not for oneclicks because billing agreement does already exists
488
- if($_paymentCode != "adyen_oneclick") {
489
 
490
- // storedReferenceCode
491
- $recurringDetailReference = $this->_pspReference;
492
 
493
- // check if there is already a BillingAgreement
494
- $agreement = Mage::getModel('sales/billing_agreement')->load($recurringDetailReference, 'reference_id');
495
 
496
- if ($agreement && $agreement->getAgreementId() > 0 && $agreement->isValid()) {
 
 
 
 
497
 
498
- $agreement->addOrderRelation($order);
499
- $agreement->setIsObjectChanged(true);
500
- $order->addRelatedObject($agreement);
501
- $message = Mage::helper('adyen')->__('Used existing billing agreement #%s.', $agreement->getReferenceId());
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
502
 
503
- } else {
504
- // set billing agreement data
505
- $payment->setBillingAgreementData(array(
506
- 'billing_agreement_id' => $recurringDetailReference,
507
- 'method_code' => $payment->getMethodCode()
508
- ));
 
 
 
 
 
 
 
 
509
 
510
- // create billing agreement for this order
511
- $agreement = Mage::getModel('sales/billing_agreement')->importOrderPayment($payment);
512
- $agreement->setAgreementLabel($payment->getMethodInstance()->getTitle());
513
 
514
  if ($agreement->isValid()) {
515
  $message = Mage::helper('adyen')->__('Created billing agreement #%s.', $agreement->getReferenceId());
@@ -522,19 +552,16 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
522
  } else {
523
  $message = Mage::helper('adyen')->__('Failed to create billing agreement for this order.');
524
  }
 
 
 
 
 
 
525
  }
526
- $comment = $order->addStatusHistoryComment($message);
527
- $order->addRelatedObject($comment);
528
-
529
- /*
530
- * clear the cache for recurring payments so new card will be added
531
- */
532
- $merchantAccount = $this->_getConfigData('merchantAccount','adyen_abstract', $order->getStoreId());
533
- $recurringType = $this->_getConfigData('recurringtypes', 'adyen_abstract', $order->getStoreId());
534
-
535
- $cacheKey = $merchantAccount . "|" . $order->getCustomerId() . "|" . $recurringType;
536
- Mage::app()->getCache()->remove($cacheKey);
537
  }
 
 
538
  break;
539
  default:
540
  $order->getPayment()->getMethodInstance()->writeLog('notification event not supported!');
@@ -598,7 +625,9 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
598
  }
599
 
600
  $_mail = (bool) $this->_getConfigData('send_update_mail', 'adyen_abstract', $order->getStoreId());
601
- $amount = $this->_value;
 
 
602
 
603
  if ($order->canCreditmemo()) {
604
  $service = Mage::getModel('sales/service_order', $order);
@@ -657,17 +686,30 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
657
  protected function _authorizePayment($order, $payment_method)
658
  {
659
  $this->_debugData['_authorizePayment'] = 'Authorisation of the order';
660
- //pre-authorise if success
661
- $order->sendNewOrderEmail(); // send order email
662
 
663
  $this->_uncancelOrder($order);
664
 
665
- $this->_setPrePaymentAuthorized($order);
 
 
 
 
 
 
 
 
666
 
667
  $this->_prepareInvoice($order);
668
 
669
  $_paymentCode = $this->_paymentMethodCode($order);
670
- if($payment_method == "c_cash" || ($this->_getConfigData('create_shipment', 'adyen_pos', $order->getStoreId()) && $_paymentCode == "adyen_pos"))
 
 
 
 
 
 
 
671
  {
672
  $this->_createShipment($order);
673
  }
@@ -709,27 +751,27 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
709
  if (!$this->_isAutoCapture($order)) {
710
  $order->addStatusHistoryComment(Mage::helper('adyen')->__('Capture Mode set to Manual'));
711
  $order->sendOrderUpdateEmail($_mail);
712
- $this->_debugData['_prepareInvoice done'] = 'Capture mode is set to Manual so don\'t create an invoice wait for the capture notification';
713
 
714
  // show message if order is in manual review
715
  if($this->_fraudManualReview) {
716
  // check if different status is selected
717
- $fraudManualReviewStatus = $this->_getConfigData('fraud_manual_review_status', 'adyen_abstract', $order->getStoreId());
718
  if($fraudManualReviewStatus != "") {
719
  $status = $fraudManualReviewStatus;
720
  $comment = "Adyen Payment is in Manual Review check the Adyen platform";
721
  $order->addStatusHistoryComment(Mage::helper('adyen')->__($comment), $status);
722
  }
723
  }
724
- return;
725
- }
726
-
727
- // validate if amount is total amount
728
- $orderCurrencyCode = $order->getOrderCurrencyCode();
729
- if ($this->_value == Mage::helper('adyen')->formatAmount($order->getGrandTotal(), $orderCurrencyCode)) {
730
 
 
 
 
 
 
731
  }
732
 
 
733
  $orderCurrencyCode = $order->getOrderCurrencyCode();
734
  $orderAmount = (int) Mage::helper('adyen')->formatAmount($order->getGrandTotal(), $orderCurrencyCode);
735
 
@@ -766,6 +808,17 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
766
  $order->sendOrderUpdateEmail($_mail);
767
  }
768
 
 
 
 
 
 
 
 
 
 
 
 
769
  protected function _isTotalAmount($orderAmount) {
770
 
771
  $this->_debugData['_isTotalAmount'] = 'Validate if AUTHORISATION notification has the total amount of the order';
@@ -786,24 +839,43 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
786
  $this->_debugData['_createInvoice'] = 'Creating invoice for order';
787
 
788
  if ($order->canInvoice()) {
789
- $invoice = $order->prepareInvoice();
790
- $invoice->getOrder()->setIsInProcess(true);
791
- // set transaction id so you can do a online refund this is used instead of online capture
792
- // because it is already auto capture in Adyen Backoffice
793
- $invoice->setTransactionId(1);
794
- $invoice->register()->pay();
795
  try {
796
- Mage::getModel('core/resource_transaction')
797
- ->addObject($invoice)
798
- ->addObject($invoice->getOrder())
799
- ->save();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
800
  $this->_debugData['_createInvoice done'] = 'Created invoice';
801
  } catch (Exception $e) {
802
  $this->_debugData['_createInvoice error'] = 'Error saving invoice. The error message is: ' . $e->getMessage();
803
  Mage::logException($e);
804
  }
805
 
806
- //selected adyen status
807
  $this->_setPaymentAuthorized($order);
808
 
809
  $invoiceAutoMail = (bool) $this->_getConfigData('send_invoice_update_mail', 'adyen_abstract', $order->getStoreId());
@@ -812,6 +884,8 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
812
  }
813
  } else {
814
  $this->_debugData['_createInvoice error'] = 'It is not possible to create invoice for this order';
 
 
815
  }
816
  }
817
 
@@ -822,7 +896,7 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
822
  protected function _isAutoCapture($order)
823
  {
824
  $captureMode = trim($this->_getConfigData('capture_mode', 'adyen_abstract', $order->getStoreId()));
825
- $sepaFlow = trim($this->_getConfigData('capture_mode', 'adyen_sepa', $order->getStoreId()));
826
  $_paymentCode = $this->_paymentMethodCode($order);
827
  $captureModeOpenInvoice = $this->_getConfigData('auto_capture_openinvoice', 'adyen_abstract', $order->getStoreId());
828
  $captureModePayPal = trim($this->_getConfigData('paypal_capture_mode', 'adyen_abstract', $order->getStoreId()));
@@ -830,6 +904,11 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
830
  //check if it is a banktransfer. Banktransfer only a Authorize notification is send.
831
  $isBankTransfer = $this->_isBankTransfer($this->_paymentMethod);
832
 
 
 
 
 
 
833
  // payment method ideal, cash adyen_boleto or adyen_pos has direct capture
834
  if (strcmp($this->_paymentMethod, 'ideal') === 0 || strcmp($this->_paymentMethod, 'c_cash' ) === 0 || $_paymentCode == "adyen_pos" || $isBankTransfer == true || ($_paymentCode == "adyen_sepa" && $sepaFlow != "authcap") || $_paymentCode == "adyen_boleto") {
835
  return true;
@@ -900,9 +979,15 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
900
  $this->_createInvoice($order);
901
  }
902
 
903
- $status = $this->_getConfigData('payment_authorized', 'adyen_abstract', $order->getStoreId());
 
 
 
 
 
904
  // virtual order can have different status
905
  if($order->getIsVirtual()) {
 
906
  $virtual_status = $this->_getConfigData('payment_authorized_virtual');
907
  if($virtual_status != "") {
908
  $status = $virtual_status;
@@ -943,7 +1028,7 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
943
  // if manual review is true use the manual review status if this is set
944
  if($manualReviewComment == true && $this->_fraudManualReview) {
945
  // check if different status is selected
946
- $fraudManualReviewStatus = $this->_getConfigData('fraud_manual_review_status', 'adyen_abstract', $order->getStoreId());
947
  if($fraudManualReviewStatus != "") {
948
  $status = $fraudManualReviewStatus;
949
  $comment = "Adyen Payment is in Manual Review check the Adyen platform";
@@ -1039,6 +1124,16 @@ class Adyen_Payment_Model_ProcessNotification extends Mage_Core_Model_Abstract {
1039
  }
1040
  }
1041
 
 
 
 
 
 
 
 
 
 
 
1042
  $order->addStatusHistoryComment($comment);
1043
  $this->_debugData['_addStatusHistoryComment'] = 'Created comment history for this notification';
1044
  }
238
  $valueArray = $params->getData('amount');
239
  if($valueArray && is_array($valueArray)) {
240
  $this->_value = isset($valueArray['value']) ? $valueArray['value'] : "";
241
+ } elseif(is_object($valueArray)) {
242
+ $this->_value = $valueArray->value; // for soap
243
  }
244
 
245
  $additionalData = $params->getData('additionalData');
389
  }
390
 
391
  /**
392
+ * @param Mage_Sales_Model_Order $order
393
  * @param $params
394
  */
395
  protected function _processNotification($order)
470
  $orderStatus = $this->_getConfigData('order_status', 'adyen_abstract', $order->getStoreId());
471
  if(($orderStatus != Mage_Sales_Model_Order::STATE_HOLDED && $order->canCancel()) || ($orderStatus == Mage_Sales_Model_Order::STATE_HOLDED && $order->canHold())) {
472
  // cancel order
473
+ $this->_debugData['_processNotification info'] = 'try to cancel the order';
474
  $this->_holdCancelOrder($order, true);
475
  } else {
476
+ $this->_debugData['_processNotification info'] = 'try to refund the order';
477
  // refund
478
  $this->_refundOrder($order);
479
  //refund completed
486
  // get payment object
487
  $payment = $order->getPayment();
488
 
489
+ // storedReferenceCode
490
+ $recurringDetailReference = $this->_pspReference;
491
 
492
+ // check if there is already a BillingAgreement
493
+ $agreement = Mage::getModel('adyen/billing_agreement')->load($recurringDetailReference, 'reference_id');
494
 
495
+ if ($agreement && $agreement->getAgreementId() > 0 && $agreement->isValid()) {
 
496
 
497
+ $agreement->addOrderRelation($order);
498
+ $agreement->setStatus($agreement::STATUS_ACTIVE);
499
+ $agreement->setIsObjectChanged(true);
500
+ $order->addRelatedObject($agreement);
501
+ $message = Mage::helper('adyen')->__('Used existing billing agreement #%s.', $agreement->getReferenceId());
502
 
503
+ } else {
504
+ // set billing agreement data
505
+ $payment->setBillingAgreementData(array(
506
+ 'billing_agreement_id' => $recurringDetailReference,
507
+ 'method_code' => $payment->getMethodCode()
508
+ ));
509
+
510
+ // create billing agreement for this order
511
+ $agreement = Mage::getModel('adyen/billing_agreement');
512
+ $agreement->setStoreId($order->getStoreId());
513
+ $agreement->importOrderPayment($payment);
514
+
515
+ $listRecurringContracts = Mage::getSingleton('adyen/api')->listRecurringContracts($agreement->getCustomerReference(), $agreement->getStoreId());
516
+
517
+ $contractDetail = null;
518
+ // get currenct Contract details and get list of all current ones
519
+ $recurringReferencesList = array();
520
+ foreach ($listRecurringContracts as $rc) {
521
+ $recurringReferencesList[] = $rc['recurringDetailReference'];
522
+ if (isset($rc['recurringDetailReference']) && $rc['recurringDetailReference'] == $recurringDetailReference) {
523
+ $contractDetail = $rc;
524
+ }
525
+ }
526
 
527
+ if($contractDetail != null) {
528
+ // update status of the agreements in magento
529
+ $billingAgreements = Mage::getResourceModel('adyen/billing_agreement_collection')
530
+ ->addFieldToFilter('customer_id', $agreement->getCustomerReference());
531
+
532
+ foreach($billingAgreements as $billingAgreement) {
533
+ if(!in_array($billingAgreement->getReferenceId(), $recurringReferencesList)) {
534
+ $billingAgreement->setStatus(Adyen_Payment_Model_Billing_Agreement::STATUS_CANCELED);
535
+ $billingAgreement->save();
536
+ } else {
537
+ $billingAgreement->setStatus(Adyen_Payment_Model_Billing_Agreement::STATUS_ACTIVE);
538
+ $billingAgreement->save();
539
+ }
540
+ }
541
 
542
+ $agreement->parseRecurringContractData($contractDetail);
 
 
543
 
544
  if ($agreement->isValid()) {
545
  $message = Mage::helper('adyen')->__('Created billing agreement #%s.', $agreement->getReferenceId());
552
  } else {
553
  $message = Mage::helper('adyen')->__('Failed to create billing agreement for this order.');
554
  }
555
+ } else {
556
+ $this->_debugData['_processNotification error'] = 'Failed to create billing agreement for this order (listRecurringCall did not contain contract)';
557
+ $this->_debugData['_processNotification ref'] = printf('recurringDetailReference in notification is %s', $recurringDetailReference) ;
558
+ $this->_debugData['_processNotification customer ref'] = printf('CustomerReference is: %s and storeId is %s', $agreement->getCustomerReference(), $agreement->getStoreId());
559
+ $this->_debugData['_processNotification customer result'] = $listRecurringContracts;
560
+ $message = Mage::helper('adyen')->__('Failed to create billing agreement for this order (listRecurringCall did not contain contract)');
561
  }
 
 
 
 
 
 
 
 
 
 
 
562
  }
563
+ $comment = $order->addStatusHistoryComment($message);
564
+ $order->addRelatedObject($comment);
565
  break;
566
  default:
567
  $order->getPayment()->getMethodInstance()->writeLog('notification event not supported!');
625
  }
626
 
627
  $_mail = (bool) $this->_getConfigData('send_update_mail', 'adyen_abstract', $order->getStoreId());
628
+
629
+ $currency = $order->getOrderCurrencyCode(); // use orderCurrency because adyen respond in the same currency as in the request
630
+ $amount = Mage::helper('adyen')->originalAmount($this->_value, $currency);
631
 
632
  if ($order->canCreditmemo()) {
633
  $service = Mage::getModel('sales/service_order', $order);
686
  protected function _authorizePayment($order, $payment_method)
687
  {
688
  $this->_debugData['_authorizePayment'] = 'Authorisation of the order';
 
 
689
 
690
  $this->_uncancelOrder($order);
691
 
692
+ $fraudManualReviewStatus = $this->_getFraudManualReviewStatus($order);
693
+
694
+
695
+ // If manual review is active and a seperate status is used then ignore the pre authorized status
696
+ if($this->_fraudManualReview != true || $fraudManualReviewStatus == "") {
697
+ $this->_setPrePaymentAuthorized($order);
698
+ } else {
699
+ $this->_debugData['_authorizePayment info'] = 'Ignore the pre authorized status because the order is under manual review and use the Manual review status';
700
+ }
701
 
702
  $this->_prepareInvoice($order);
703
 
704
  $_paymentCode = $this->_paymentMethodCode($order);
705
+
706
+ // for boleto confirmation mail is send on order creation
707
+ if($payment_method != "adyen_boleto") {
708
+ // send order confirmation mail after invoice creation so merchant can add invoicePDF to this mail
709
+ $order->sendNewOrderEmail(); // send order email
710
+ }
711
+
712
+ if(($payment_method == "c_cash" && $this->_getConfigData('create_shipment', 'adyen_cash', $order->getStoreId())) || ($this->_getConfigData('create_shipment', 'adyen_pos', $order->getStoreId()) && $_paymentCode == "adyen_pos"))
713
  {
714
  $this->_createShipment($order);
715
  }
751
  if (!$this->_isAutoCapture($order)) {
752
  $order->addStatusHistoryComment(Mage::helper('adyen')->__('Capture Mode set to Manual'));
753
  $order->sendOrderUpdateEmail($_mail);
754
+ $this->_debugData['_prepareInvoice capture mode'] = 'Capture mode is set to Manual';
755
 
756
  // show message if order is in manual review
757
  if($this->_fraudManualReview) {
758
  // check if different status is selected
759
+ $fraudManualReviewStatus = $this->_getFraudManualReviewStatus($order);
760
  if($fraudManualReviewStatus != "") {
761
  $status = $fraudManualReviewStatus;
762
  $comment = "Adyen Payment is in Manual Review check the Adyen platform";
763
  $order->addStatusHistoryComment(Mage::helper('adyen')->__($comment), $status);
764
  }
765
  }
 
 
 
 
 
 
766
 
767
+ $createPendingInvoice = (bool) $this->_getConfigData('create_pending_invoice', 'adyen_abstract', $order->getStoreId());
768
+ if(!$createPendingInvoice) {
769
+ $this->_debugData['_prepareInvoice done'] = 'Setting pending invoice is off so don\'t create an invoice wait for the capture notification';
770
+ return;
771
+ }
772
  }
773
 
774
+ // validate if amount is total amount
775
  $orderCurrencyCode = $order->getOrderCurrencyCode();
776
  $orderAmount = (int) Mage::helper('adyen')->formatAmount($order->getGrandTotal(), $orderCurrencyCode);
777
 
808
  $order->sendOrderUpdateEmail($_mail);
809
  }
810
 
811
+
812
+ protected function _getFraudManualReviewStatus($order)
813
+ {
814
+ return $this->_getConfigData('fraud_manual_review_status', 'adyen_abstract', $order->getStoreId());
815
+ }
816
+
817
+ protected function _getFraudManualReviewAcceptStatus($order)
818
+ {
819
+ return $this->_getConfigData('fraud_manual_review_accept_status', 'adyen_abstract', $order->getStoreId());
820
+ }
821
+
822
  protected function _isTotalAmount($orderAmount) {
823
 
824
  $this->_debugData['_isTotalAmount'] = 'Validate if AUTHORISATION notification has the total amount of the order';
839
  $this->_debugData['_createInvoice'] = 'Creating invoice for order';
840
 
841
  if ($order->canInvoice()) {
842
+
843
+ /* We do not use this inside a transaction because order->save() is always done on the end of the notification
844
+ * and it could result in a deadlock see https://github.com/Adyen/magento/issues/334
845
+ */
 
 
846
  try {
847
+ $invoice = $order->prepareInvoice();
848
+ $invoice->getOrder()->setIsInProcess(true);
849
+
850
+ // set transaction id so you can do a online refund from credit memo
851
+ $invoice->setTransactionId(1);
852
+
853
+ $autoCapture = $this->_isAutoCapture($order);
854
+ $createPendingInvoice = (bool) $this->_getConfigData('create_pending_invoice', 'adyen_abstract', $order->getStoreId());
855
+
856
+ if((!$autoCapture) && ($createPendingInvoice)) {
857
+
858
+ // if amount is zero create a offline invoice
859
+ $value = (int)$this->_value;
860
+ if($value == 0) {
861
+ $invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_OFFLINE);
862
+ } else {
863
+ $invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::NOT_CAPTURE);
864
+ }
865
+
866
+ $invoice->register();
867
+ } else {
868
+ $invoice->register()->pay();
869
+ }
870
+
871
+ $invoice->save();
872
+
873
  $this->_debugData['_createInvoice done'] = 'Created invoice';
874
  } catch (Exception $e) {
875
  $this->_debugData['_createInvoice error'] = 'Error saving invoice. The error message is: ' . $e->getMessage();
876
  Mage::logException($e);
877
  }
878
 
 
879
  $this->_setPaymentAuthorized($order);
880
 
881
  $invoiceAutoMail = (bool) $this->_getConfigData('send_invoice_update_mail', 'adyen_abstract', $order->getStoreId());
884
  }
885
  } else {
886
  $this->_debugData['_createInvoice error'] = 'It is not possible to create invoice for this order';
887
+
888
+ // TODO: check if pending invoice exists if so capture this invoice
889
  }
890
  }
891
 
896
  protected function _isAutoCapture($order)
897
  {
898
  $captureMode = trim($this->_getConfigData('capture_mode', 'adyen_abstract', $order->getStoreId()));
899
+ $sepaFlow = trim($this->_getConfigData('flow', 'adyen_sepa', $order->getStoreId()));
900
  $_paymentCode = $this->_paymentMethodCode($order);
901
  $captureModeOpenInvoice = $this->_getConfigData('auto_capture_openinvoice', 'adyen_abstract', $order->getStoreId());
902
  $captureModePayPal = trim($this->_getConfigData('paypal_capture_mode', 'adyen_abstract', $order->getStoreId()));
904
  //check if it is a banktransfer. Banktransfer only a Authorize notification is send.
905
  $isBankTransfer = $this->_isBankTransfer($this->_paymentMethod);
906
 
907
+ // if you are using authcap the payment method is manual. There will be a capture send to indicate if payment is succesfull
908
+ if($_paymentCode == "adyen_sepa" && $sepaFlow == "authcap") {
909
+ return false;
910
+ }
911
+
912
  // payment method ideal, cash adyen_boleto or adyen_pos has direct capture
913
  if (strcmp($this->_paymentMethod, 'ideal') === 0 || strcmp($this->_paymentMethod, 'c_cash' ) === 0 || $_paymentCode == "adyen_pos" || $isBankTransfer == true || ($_paymentCode == "adyen_sepa" && $sepaFlow != "authcap") || $_paymentCode == "adyen_boleto") {
914
  return true;
979
  $this->_createInvoice($order);
980
  }
981
 
982
+ // if you have capture on shipment enabled don't set update the status of the payment
983
+ $captureOnShipment = $this->_getConfigData('capture_on_shipment', 'adyen_abstract', $order->getStoreId());
984
+ if(!$captureOnShipment) {
985
+ $status = $this->_getConfigData('payment_authorized', 'adyen_abstract', $order->getStoreId());
986
+ }
987
+
988
  // virtual order can have different status
989
  if($order->getIsVirtual()) {
990
+ $this->_debugData['_setPaymentAuthorized virtual'] = 'Product is a virtual product';
991
  $virtual_status = $this->_getConfigData('payment_authorized_virtual');
992
  if($virtual_status != "") {
993
  $status = $virtual_status;
1028
  // if manual review is true use the manual review status if this is set
1029
  if($manualReviewComment == true && $this->_fraudManualReview) {
1030
  // check if different status is selected
1031
+ $fraudManualReviewStatus = $this->_getFraudManualReviewStatus($order);
1032
  if($fraudManualReviewStatus != "") {
1033
  $status = $fraudManualReviewStatus;
1034
  $comment = "Adyen Payment is in Manual Review check the Adyen platform";
1124
  }
1125
  }
1126
 
1127
+ // if manual review is accepted and a status is selected. Change the status through this comment history item
1128
+ if($this->_eventCode == Adyen_Payment_Model_Event::ADYEN_EVENT_MANUAL_REVIEW_ACCEPT
1129
+ && $this->_getFraudManualReviewAcceptStatus($order) != "")
1130
+ {
1131
+ $manualReviewAcceptStatus = $this->_getFraudManualReviewAcceptStatus($order);
1132
+ $order->addStatusHistoryComment($comment, $manualReviewAcceptStatus);
1133
+ $this->_debugData['_addStatusHistoryComment'] = 'Created comment history for this notification with status change to: ' . $manualReviewAcceptStatus;
1134
+ return;
1135
+ }
1136
+
1137
  $order->addStatusHistoryComment($comment);
1138
  $this->_debugData['_addStatusHistoryComment'] = 'Created comment history for this notification';
1139
  }
app/code/community/Adyen/Payment/Model/Resource/Billing/Agreement.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adyen Payment Module
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2015 Adyen BV (http://www.adyen.com)
26
+ */
27
+
28
+ class Adyen_Payment_Model_Resource_Billing_Agreement
29
+ extends Mage_Sales_Model_Resource_Billing_Agreement {
30
+
31
+ /**
32
+ * Add order relation to billing agreement
33
+ *
34
+ * @param int $agreementId
35
+ * @param int $orderId
36
+ * @return Mage_Sales_Model_Resource_Billing_Agreement
37
+ */
38
+ public function addOrderRelation($agreementId, $orderId)
39
+ {
40
+ $this->_getWriteAdapter()->insertIgnore(
41
+ $this->getTable('sales/billing_agreement_order'), array(
42
+ 'agreement_id' => $agreementId,
43
+ 'order_id' => $orderId
44
+ )
45
+ );
46
+ return $this;
47
+ }
48
+ }
app/code/community/Adyen/Payment/Model/Resource/Billing/Agreement/Collection.php ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adyen Payment Module
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2015 Adyen BV (http://www.adyen.com)
26
+ */
27
+
28
+ class Adyen_Payment_Model_Resource_Billing_Agreement_Collection
29
+ extends Mage_Sales_Model_Resource_Billing_Agreement_Collection {
30
+
31
+ /**
32
+ * @return array
33
+ */
34
+ protected function _getNameFields()
35
+ {
36
+ $fields = array();
37
+
38
+ $customerAccount = Mage::getConfig()->getFieldset('customer_account');
39
+ foreach ($customerAccount as $code => $node) {
40
+ if ($node->is('name')) {
41
+ $fields[$code] = $code.'.value';
42
+ }
43
+ }
44
+ return $fields;
45
+ }
46
+
47
+
48
+ /**
49
+ * @param $store
50
+ * @return $this
51
+ */
52
+ public function addStoreFilter($store)
53
+ {
54
+ if ($store instanceof Mage_Core_Model_Store) {
55
+ $store = $store->getId();
56
+ }
57
+ $this->addFieldToFilter('store_id', $store);
58
+ return $this;
59
+ }
60
+
61
+ /**
62
+ * @param Mage_Customer_Model_Customer|int $customer
63
+ * @return $this
64
+ */
65
+ public function addCustomerFilter($customer)
66
+ {
67
+ if ($customer instanceof Mage_Customer_Model_Customer) {
68
+ $customer = $customer->getId();
69
+ }
70
+ $this->addFieldToFilter('customer_id', $customer);
71
+ return $this;
72
+ }
73
+
74
+
75
+ /**
76
+ * @return $this
77
+ */
78
+ public function addActiveFilter()
79
+ {
80
+ $this->addFieldToFilter('status', Mage_Sales_Model_Billing_Agreement::STATUS_ACTIVE);
81
+ return $this;
82
+ }
83
+
84
+ /**
85
+ * Add cutomer details(email, firstname, lastname) to select
86
+ *
87
+ * @return Mage_Sales_Model_Resource_Billing_Agreement_Collection
88
+ */
89
+ public function addCustomerDetails()
90
+ {
91
+ $select = $this->getSelect()->joinInner(
92
+ array('ce' => $this->getTable('customer/entity')),
93
+ 'ce.entity_id = main_table.customer_id',
94
+ array('customer_email' => 'email')
95
+ );
96
+
97
+ $customer = Mage::getResourceSingleton('customer/customer');
98
+ foreach (array_keys($this->_getNameFields()) as $field) {
99
+ $adapter = $this->getConnection();
100
+ $attr = $customer->getAttribute($field);
101
+
102
+ $joinExpr = $field.'.entity_id = main_table.customer_id AND '
103
+ . $adapter->quoteInto($field.'.entity_type_id = ?', $customer->getTypeId()) . ' AND '
104
+ . $adapter->quoteInto($field.'.attribute_id = ?', $attr->getAttributeId());
105
+
106
+ $select->joinLeft(
107
+ array($field => $attr->getBackend()->getTable()),
108
+ $joinExpr,
109
+ array($field => 'value')
110
+ );
111
+ }
112
+
113
+ return $this;
114
+ }
115
+
116
+ /**
117
+ * Add Name to select
118
+ *
119
+ * @return Mage_Customer_Model_Resource_Customer_Collection
120
+ */
121
+ public function addNameToSelect()
122
+ {
123
+ $fields = $this->_getNameFields();
124
+ $adapter = $this->getConnection();
125
+ $concatenate = array();
126
+
127
+ if (isset($fields['prefix'])) {
128
+ $concatenate[] = $adapter->getCheckSql(
129
+ '{{prefix}} IS NOT NULL AND {{prefix}} != \'\'',
130
+ $adapter->getConcatSql(array('LTRIM(RTRIM({{prefix}}))', '\' \'')),
131
+ '\'\'');
132
+ }
133
+ $concatenate[] = 'LTRIM(RTRIM({{firstname}}))';
134
+ $concatenate[] = '\' \'';
135
+ if (isset($fields['middlename'])) {
136
+ $concatenate[] = $adapter->getCheckSql(
137
+ '{{middlename}} IS NOT NULL AND {{middlename}} != \'\'',
138
+ $adapter->getConcatSql(array('LTRIM(RTRIM({{middlename}}))', '\' \'')),
139
+ '\'\'');
140
+ }
141
+ $concatenate[] = 'LTRIM(RTRIM({{lastname}}))';
142
+ if (isset($fields['suffix'])) {
143
+ $concatenate[] = $adapter
144
+ ->getCheckSql('{{suffix}} IS NOT NULL AND {{suffix}} != \'\'',
145
+ $adapter->getConcatSql(array('\' \'', 'LTRIM(RTRIM({{suffix}}))')),
146
+ '\'\'');
147
+ }
148
+
149
+ $nameExpr = $adapter->getConcatSql($concatenate);
150
+
151
+
152
+ $this->addExpressionFieldToSelect('name', $nameExpr, $fields);
153
+
154
+ return $this;
155
+ }
156
+ }
app/code/community/Adyen/Payment/Model/Sales/Quote/Address/Total/PaymentFee.php CHANGED
@@ -28,28 +28,25 @@
28
  class Adyen_Payment_Model_Sales_Quote_Address_Total_PaymentFee extends Mage_Sales_Model_Quote_Address_Total_Abstract
29
  {
30
  protected $_code = 'payment_fee';
31
-
32
  public function collect(Mage_Sales_Model_Quote_Address $address)
33
  {
34
  parent::collect($address);
35
 
36
  $this->_setAmount(0);
37
  $this->_setBaseAmount(0);
38
-
39
  $quote = $address->getQuote();
40
- $val = Mage::Helper('adyen')->isPaymentFeeEnabled($quote);
 
41
  if ($address->getAllItems() && $val) {
42
  $currentAmount = $address->getPaymentFeeAmount();
43
  $fee = Mage::Helper('adyen')->getPaymentFeeAmount($quote);
44
  $balance = $fee - $currentAmount;
45
-
46
  $address->setPaymentFeeAmount($address->getQuote()->getStore()->convertPrice($balance));
47
  $address->setBasePaymentFeeAmount($balance);
48
-
49
  $address->setGrandTotal($address->getGrandTotal() + $address->getPaymentFeeAmount());
50
  $address->setBaseGrandTotal($address->getBaseGrandTotal() + $address->getBasePaymentFeeAmount());
51
  }
52
-
53
  return $this;
54
  }
55
 
28
  class Adyen_Payment_Model_Sales_Quote_Address_Total_PaymentFee extends Mage_Sales_Model_Quote_Address_Total_Abstract
29
  {
30
  protected $_code = 'payment_fee';
31
+
32
  public function collect(Mage_Sales_Model_Quote_Address $address)
33
  {
34
  parent::collect($address);
35
 
36
  $this->_setAmount(0);
37
  $this->_setBaseAmount(0);
 
38
  $quote = $address->getQuote();
39
+ $val = Mage::Helper('adyen')->isPaymentFeeEnabled($quote);
40
+
41
  if ($address->getAllItems() && $val) {
42
  $currentAmount = $address->getPaymentFeeAmount();
43
  $fee = Mage::Helper('adyen')->getPaymentFeeAmount($quote);
44
  $balance = $fee - $currentAmount;
 
45
  $address->setPaymentFeeAmount($address->getQuote()->getStore()->convertPrice($balance));
46
  $address->setBasePaymentFeeAmount($balance);
 
47
  $address->setGrandTotal($address->getGrandTotal() + $address->getPaymentFeeAmount());
48
  $address->setBaseGrandTotal($address->getBaseGrandTotal() + $address->getBasePaymentFeeAmount());
49
  }
 
50
  return $this;
51
  }
52
 
app/code/community/Adyen/Payment/Model/Source/CaptureModes.php CHANGED
@@ -29,8 +29,8 @@ class Adyen_Payment_Model_Source_CaptureModes {
29
 
30
  public function toOptionArray() {
31
  return array(
32
- array('value' => 'auto', 'label' => 'Auto Capture'),
33
- array('value' => 'manual', 'label' => 'Manual Capture'),
34
  );
35
  }
36
 
29
 
30
  public function toOptionArray() {
31
  return array(
32
+ array('value' => 'auto', 'label' => 'immediate'),
33
+ array('value' => 'manual', 'label' => 'manual'),
34
  );
35
  }
36
 
app/code/community/Adyen/Payment/Model/Source/DemoModes.php CHANGED
@@ -27,10 +27,19 @@
27
  */
28
  class Adyen_Payment_Model_Source_DemoModes {
29
 
30
- public function toOptionArray() {
 
31
  return array(
32
- array('value' => 'Y', 'label' => 'Test Mode'),
33
- array('value' => 'N', 'label' => 'Production Mode'),
 
 
 
 
 
 
 
 
34
  );
35
  }
36
 
27
  */
28
  class Adyen_Payment_Model_Source_DemoModes {
29
 
30
+ public function toOptionArray()
31
+ {
32
  return array(
33
+ array('value' => 'Y', 'label' => Mage::helper('adyen')->__('Test Mode')),
34
+ array('value' => 'N', 'label' => Mage::helper('adyen')->__('Production Mode')),
35
+ );
36
+ }
37
+
38
+ public function toOptionHash()
39
+ {
40
+ return array(
41
+ 'Y' => Mage::helper('adyen')->__('Test Mode'),
42
+ 'N' => Mage::helper('adyen')->__('Production Mode')
43
  );
44
  }
45
 
app/code/community/Adyen/Payment/Model/Source/PayPalCaptureModes.php CHANGED
@@ -29,9 +29,8 @@ class Adyen_Payment_Model_Source_PayPalCaptureModes {
29
 
30
  public function toOptionArray() {
31
  return array(
32
- array('value' => '', 'label' => 'Default'),
33
- array('value' => 'auto', 'label' => 'Auto Capture'),
34
- array('value' => 'manual', 'label' => 'Manual Capture')
35
  );
36
  }
37
 
29
 
30
  public function toOptionArray() {
31
  return array(
32
+ array('value' => 'auto', 'label' => 'No'),
33
+ array('value' => 'manual', 'label' => 'Yes')
 
34
  );
35
  }
36
 
app/code/community/Adyen/Payment/Model/Source/RecurringPaymentType.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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_RecurringPaymentType {
29
+
30
+ public function toOptionArray() {
31
+ $options = array();
32
+ foreach (Mage::helper('adyen')->getRecurringTypes() as $code => $name) {
33
+ // only use ONECLICK and RECURRING
34
+ if($code == "ONECLICK" || $code == "RECURRING") {
35
+ $options[] = array(
36
+ 'value' => $code,
37
+ 'label' => $name
38
+ );
39
+ }
40
+ }
41
+ return $options;
42
+ }
43
+
44
+ }
app/code/community/Adyen/Payment/Model/Source/Rendermode.php CHANGED
@@ -37,7 +37,7 @@ class Adyen_Payment_Model_Source_Rendermode
37
  {
38
  return array(
39
  array('value' => self::MODE_TITLE, 'label' => Mage::helper('adyen')->__('Title')),
40
- array('value' => self::MODE_TITLE_IMAGE, 'label' => Mage::helper('adyen')->__('Image + Title')),
41
  );
42
  }
43
  }
37
  {
38
  return array(
39
  array('value' => self::MODE_TITLE, 'label' => Mage::helper('adyen')->__('Title')),
40
+ array('value' => self::MODE_TITLE_IMAGE, 'label' => Mage::helper('adyen')->__('Logo + Title')),
41
  );
42
  }
43
  }
app/code/community/Adyen/Payment/Model/Source/SepaFlow.php CHANGED
@@ -29,7 +29,7 @@ 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
  }
29
 
30
  public function toOptionArray() {
31
  return array(
32
+ array('value' => 'sales', 'label' => 'Sale'),
33
  array('value' => 'authcap', 'label' => 'Auth/Cap'),
34
  );
35
  }
app/code/community/Adyen/Payment/Model/Source/Status/Refund.php CHANGED
@@ -27,5 +27,7 @@
27
  */
28
  class Adyen_Payment_Model_Source_Status_Refund extends Mage_Adminhtml_Model_System_Config_Source_Order_Status
29
  {
30
- protected $_stateStatuses = null;
 
 
31
  }
27
  */
28
  class Adyen_Payment_Model_Source_Status_Refund extends Mage_Adminhtml_Model_System_Config_Source_Order_Status
29
  {
30
+ protected $_stateStatuses = array(
31
+ Mage_Sales_Model_Order::STATE_CLOSED,
32
+ );
33
  }
app/code/community/Adyen/Payment/controllers/Adminhtml/Adyen/Event/QueueController.php CHANGED
@@ -30,7 +30,7 @@ class Adyen_Payment_Adminhtml_Adyen_Event_QueueController extends Mage_Adminhtml
30
 
31
  public function indexAction() {
32
 
33
- Mage::getSingleton('adminhtml/session')->addNotice(Mage::helper('catalogrule')->__('If you are using Adyen CreditCard payment method it could be that the notifcation that is send from the Adyen Platform is faster then Magento saves the order. The notification is saved and when a new notification is send it will try to update the previous notification as well. You can see here what notifications did not processed yet and you can proccess it here manual if you want to by selecting "Execute" under the Actions column '));
34
 
35
  $this->_title(Mage::helper('sales')->__('Sales'))->_title(Mage::helper('adyen')->__('Adyen Event Queue'))
36
  ->loadLayout()
@@ -50,7 +50,7 @@ class Adyen_Payment_Adminhtml_Adyen_Event_QueueController extends Mage_Adminhtml
50
  } catch (Mage_Core_Exception $e) {
51
  $this->_getSession()->addError($e->getMessage());
52
  } catch (Exception $e) {
53
- Mage::logException($e);
54
  }
55
  $this->_redirect('*/*/');
56
  }
@@ -61,6 +61,14 @@ class Adyen_Payment_Adminhtml_Adyen_Event_QueueController extends Mage_Adminhtml
61
  public function executeAction() {
62
  // get event queue id
63
  $eventQueueId = $this->getRequest()->getParam('event_queue_id');
 
 
 
 
 
 
 
 
64
  $eventQueue = Mage::getModel('adyen/event_queue')->load($eventQueueId);
65
 
66
  $incrementId = $eventQueue->getIncrementId();
@@ -84,8 +92,6 @@ class Adyen_Payment_Adminhtml_Adyen_Event_QueueController extends Mage_Adminhtml
84
 
85
  $this->_getSession()->addError($this->__('The order does not exist.'));
86
  }
87
- // return back to the view
88
- $this->_redirect('*/*/');
89
  }
90
 
91
  public function deleteAction() {
@@ -97,4 +103,62 @@ class Adyen_Payment_Adminhtml_Adyen_Event_QueueController extends Mage_Adminhtml
97
  $this->_redirect('*/*/');
98
  }
99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  }
30
 
31
  public function indexAction() {
32
 
33
+ Mage::getSingleton('adminhtml/session')->addNotice(Mage::helper('adyen')->__('If you are using Adyen CreditCard payment method it could be that the notifcation that is send from the Adyen Platform is faster then Magento saves the order. The notification is saved and when a new notification is send it will try to update the previous notification as well. You can see here what notifications did not processed yet and you can proccess it here manual if you want to by selecting "Execute" under the Actions column '));
34
 
35
  $this->_title(Mage::helper('sales')->__('Sales'))->_title(Mage::helper('adyen')->__('Adyen Event Queue'))
36
  ->loadLayout()
50
  } catch (Mage_Core_Exception $e) {
51
  $this->_getSession()->addError($e->getMessage());
52
  } catch (Exception $e) {
53
+ Adyen_Payment_Exception::logException($e);
54
  }
55
  $this->_redirect('*/*/');
56
  }
61
  public function executeAction() {
62
  // get event queue id
63
  $eventQueueId = $this->getRequest()->getParam('event_queue_id');
64
+ $this->_executeEventQueue($eventQueueId);
65
+
66
+ // return back to the view
67
+ $this->_redirect('*/*/');
68
+ }
69
+
70
+ private function _executeEventQueue($eventQueueId) {
71
+
72
  $eventQueue = Mage::getModel('adyen/event_queue')->load($eventQueueId);
73
 
74
  $incrementId = $eventQueue->getIncrementId();
92
 
93
  $this->_getSession()->addError($this->__('The order does not exist.'));
94
  }
 
 
95
  }
96
 
97
  public function deleteAction() {
103
  $this->_redirect('*/*/');
104
  }
105
 
106
+ public function massDeleteAction()
107
+ {
108
+ $queueIds = $this->getRequest()->getParam('queue_id'); // $this->getMassactionBlock()->setFormFieldName('queue_id'); from Adyen_Payment_Block_Adminhtml_Adyen_Event_Queue_Grid
109
+
110
+ if(!is_array($queueIds)) {
111
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adyen')->__('Please select notification queue(s).'));
112
+ } else {
113
+ try {
114
+ $eventQueueModel = Mage::getModel('adyen/event_queue');
115
+ foreach ($queueIds as $queueId) {
116
+ $eventQueueModel->load($queueId)->delete();
117
+ }
118
+ Mage::getSingleton('adminhtml/session')->addSuccess(
119
+ Mage::helper('adyen')->__(
120
+ 'Total of %d record(s) were deleted.', count($queueIds)
121
+ )
122
+ );
123
+ } catch (Exception $e) {
124
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
125
+ }
126
+ }
127
+
128
+ $this->_redirect('*/*/index');
129
+ }
130
+
131
+ public function massExecuteAction()
132
+ {
133
+ $queueIds = $this->getRequest()->getParam('queue_id'); // $this->getMassactionBlock()->setFormFieldName('queue_id'); from Adyen_Payment_Block_Adminhtml_Adyen_Event_Queue_Grid
134
+
135
+ if(!is_array($queueIds)) {
136
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adyen')->__('Please select notification queue(s).'));
137
+ } else {
138
+ try {
139
+ $eventQueueModel = Mage::getModel('adyen/event_queue');
140
+ foreach ($queueIds as $queueId) {
141
+ $this->_executeEventQueue($queueId);
142
+ }
143
+ Mage::getSingleton('adminhtml/session')->addSuccess(
144
+ Mage::helper('adyen')->__(
145
+ 'Total of %d record(s) were deleted.', count($queueIds)
146
+ )
147
+ );
148
+ } catch (Exception $e) {
149
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
150
+ }
151
+ }
152
+
153
+ $this->_redirect('*/*/index');
154
+ }
155
+
156
+ /**
157
+ * @return bool
158
+ */
159
+ protected function _isAllowed()
160
+ {
161
+ return Mage::getSingleton('admin/session')->isAllowed('sales/adyen_payment');
162
+ }
163
+
164
  }
app/code/community/Adyen/Payment/controllers/Adminhtml/ExportAdyenSettingsController.php CHANGED
@@ -106,4 +106,12 @@ class Adyen_Payment_Adminhtml_ExportAdyenSettingsController extends Mage_Adminht
106
  }
107
  }
108
 
 
 
 
 
 
 
 
 
109
  }
106
  }
107
  }
108
 
109
+ /**
110
+ * @return bool
111
+ */
112
+ protected function _isAllowed()
113
+ {
114
+ return Mage::getSingleton('admin/session')->isAllowed('system/config/payment');
115
+ }
116
+
117
  }
app/code/community/Adyen/Payment/controllers/Adminhtml/ValidateWebserverSettingsController.php CHANGED
@@ -82,4 +82,12 @@ class Adyen_Payment_Adminhtml_ValidateWebserverSettingsController extends Mage_A
82
  echo $result;
83
  return;
84
  }
 
 
 
 
 
 
 
 
85
  }
82
  echo $result;
83
  return;
84
  }
85
+
86
+ /**
87
+ * @return bool
88
+ */
89
+ protected function _isAllowed()
90
+ {
91
+ return Mage::getSingleton('admin/session')->isAllowed('system/config/payment');
92
+ }
93
  }
app/code/community/Adyen/Payment/controllers/ProcessController.php CHANGED
@@ -313,11 +313,14 @@ class Adyen_Payment_ProcessController extends Mage_Core_Controller_Front_Action
313
 
314
  // reactivate the quote again
315
  $quoteId = $order->getQuoteId();
316
- $cart = Mage::getModel('sales/quote')->load($quoteId);
317
- $cart->setIsActive(true)->save();
 
 
 
318
  // reset reserverOrderId because already used by previous order
319
- $cart->setReservedOrderId(null);
320
- $session->replaceQuote($cart);
321
 
322
  // if setting failed_attempt_disable is on and the payment method is openinvoice ignore this payment mehthod the second time
323
  if($this->_getConfigData('failed_attempt_disable', 'adyen_openinvoice') && $order->getPayment()->getMethod() == "adyen_openinvoice") {
@@ -346,7 +349,7 @@ class Adyen_Payment_ProcessController extends Mage_Core_Controller_Front_Action
346
  break;
347
  }
348
  } catch (Mage_Core_Exception $e) {
349
- Mage::logException($e);
350
  }
351
 
352
  $params = $this->getRequest()->getParams();
@@ -376,7 +379,7 @@ class Adyen_Payment_ProcessController extends Mage_Core_Controller_Front_Action
376
  if($redirect == "checkout/cart") {
377
  $redirect = Mage::getUrl('checkout/cart');
378
  $this->_redirectUrl($redirect);
379
- } else if ($redirect == "checkout/onepage") {
380
  $redirect = Mage::helper('checkout/url')->getCheckoutUrl();
381
  $this->_redirectUrl($redirect);
382
  } else {
@@ -440,7 +443,7 @@ class Adyen_Payment_ProcessController extends Mage_Core_Controller_Front_Action
440
  }
441
 
442
  } catch (Exception $e) {
443
- Mage::logException($e);
444
  }
445
  return $this;
446
  }
313
 
314
  // reactivate the quote again
315
  $quoteId = $order->getQuoteId();
316
+ $quote = Mage::getModel('sales/quote')
317
+ ->load($quoteId)
318
+ ->setIsActive(1)
319
+ ->save();
320
+
321
  // reset reserverOrderId because already used by previous order
322
+ $quote->setReservedOrderId(null);
323
+ $session->replaceQuote($quote);
324
 
325
  // if setting failed_attempt_disable is on and the payment method is openinvoice ignore this payment mehthod the second time
326
  if($this->_getConfigData('failed_attempt_disable', 'adyen_openinvoice') && $order->getPayment()->getMethod() == "adyen_openinvoice") {
349
  break;
350
  }
351
  } catch (Mage_Core_Exception $e) {
352
+ Adyen_Payment_Exception::logException($e);
353
  }
354
 
355
  $params = $this->getRequest()->getParams();
379
  if($redirect == "checkout/cart") {
380
  $redirect = Mage::getUrl('checkout/cart');
381
  $this->_redirectUrl($redirect);
382
+ } elseif ($redirect == "checkout/onepage") {
383
  $redirect = Mage::helper('checkout/url')->getCheckoutUrl();
384
  $this->_redirectUrl($redirect);
385
  } else {
443
  }
444
 
445
  } catch (Exception $e) {
446
+ Adyen_Payment_Exception::logException($e);
447
  }
448
  return $this;
449
  }
app/code/community/Adyen/Payment/controllers/SavedCardController.php DELETED
@@ -1,117 +0,0 @@
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_SavedCardController extends Mage_Core_Controller_Front_Action
29
- {
30
-
31
- /**
32
- *
33
- * @var Mage_Customer_Model_Session
34
- */
35
- protected $_session = null;
36
-
37
- /**
38
- * Make sure customer is logged in and put it into registry
39
- */
40
- public function preDispatch()
41
- {
42
- parent::preDispatch();
43
- if (!$this->getRequest()->isDispatched()) {
44
- return;
45
- }
46
- $this->_session = Mage::getSingleton('customer/session');
47
- if (!$this->_session->authenticate($this)) {
48
- $this->setFlag('', 'no-dispatch', true);
49
- }
50
- Mage::register('current_customer', $this->_session->getCustomer());
51
- }
52
-
53
- /**
54
- * Profiles listing
55
- */
56
- public function indexAction()
57
- {
58
- // check if there is a submit on card delete
59
- if ($this->getRequest()->isPost()) {
60
- $recurringDetailReference = $this->getRequest()->getParam('recurringDetailReference');
61
- if($recurringDetailReference != "") {
62
- $storeId = Mage::app()->getStore()->getStoreId();
63
- $merchantAccount = Mage::getStoreConfig("payment/adyen_abstract/merchantAccount", $storeId);
64
- $customer = Mage::registry('current_customer');
65
- $shopperReference = $customer->getId();
66
- // do api call to delete this card
67
- $success = Mage::helper('adyen')->removeRecurringCard($merchantAccount, $shopperReference, $recurringDetailReference);
68
-
69
- // show result message
70
- if($success) {
71
- $this->_getSession()->addSuccess(Mage::helper('adyen')->__('The card has been deleted.'));
72
-
73
- // remove the billing agreement
74
- $agreement = Mage::getModel('sales/billing_agreement')->load($recurringDetailReference, 'reference_id');
75
-
76
- if ($agreement && $agreement->getAgreementId() > 0 && $agreement->isValid()) {
77
- $agreement->delete();
78
- }
79
-
80
- /*
81
- * clear the cache for recurring payments so new card will be added
82
- */
83
- $recurringType = Mage::getStoreConfig('payment/adyen_abstract/recurringtypes', $storeId);
84
- $customer = Mage::registry('current_customer');
85
- $shopperReference = $customer->getId();
86
-
87
- $cacheKey = $merchantAccount . "|" . $shopperReference . "|" . $recurringType;
88
- Mage::app()->getCache()->remove($cacheKey);
89
-
90
- } else {
91
- $this->_getSession()->addError(Mage::helper('adyen')->__('The card has not been deleted, please contact us.'));
92
- }
93
- }
94
- }
95
-
96
- $this->_title($this->__('Saved Cards'));
97
- $this->loadLayout();
98
- $this->_initLayoutMessages('customer/session');
99
- $block = $this->getLayout()->getBlock('adyen.savedCards');
100
- if ($block) {
101
- $block->setRefererUrl($this->_getRefererUrl());
102
- }
103
- $this->renderLayout();
104
- }
105
-
106
- /**
107
- * Retrieve customer session object
108
- *
109
- * @return Mage_Customer_Model_Session
110
- */
111
- protected function _getSession()
112
- {
113
- return Mage::getSingleton('customer/session');
114
- }
115
-
116
-
117
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Adyen/Payment/controllers/UpdateCartController.php CHANGED
@@ -38,7 +38,7 @@ class Adyen_Payment_UpdateCartController extends Mage_Core_Controller_Front_Acti
38
  // check if barcdoe is from scanner or filled in manually
39
  if($code != "") {
40
  $sku = $code;
41
- } else if($customCode != "") {
42
  $sku = $customCode;
43
  } else {
44
  // no barcode
38
  // check if barcdoe is from scanner or filled in manually
39
  if($code != "") {
40
  $sku = $code;
41
+ } elseif($customCode != "") {
42
  $sku = $customCode;
43
  } else {
44
  // no barcode
app/code/community/Adyen/Payment/etc/config.xml CHANGED
@@ -29,7 +29,7 @@
29
  <config>
30
  <modules>
31
  <Adyen_Payment>
32
- <version>2.3.1</version>
33
  </Adyen_Payment>
34
  </modules>
35
  <global>
@@ -52,6 +52,17 @@
52
  </event_queue>
53
  </entities>
54
  </adyen_resource>
 
 
 
 
 
 
 
 
 
 
 
55
  </models>
56
  <helpers>
57
  <adyen>
@@ -98,6 +109,7 @@
98
  <sales>
99
  <rewrite>
100
  <order_totals>Adyen_Payment_Block_Sales_Order_Totals</order_totals>
 
101
  </rewrite>
102
  </sales>
103
  </blocks>
@@ -170,12 +182,24 @@
170
  <events>
171
  <controller_action_predispatch>
172
  <observers>
173
- <adyen_payment>
174
  <class>adyen/observer</class>
175
  <method>addMethodsToConfig</method>
176
- </adyen_payment>
 
 
 
 
177
  </observers>
178
  </controller_action_predispatch>
 
 
 
 
 
 
 
 
179
  </events>
180
  </global>
181
 
@@ -269,9 +293,10 @@
269
  <payment_authorized_virtual>complete</payment_authorized_virtual>
270
  <payment_cancelled_redirect>checkout/cart</payment_cancelled_redirect>
271
  <capture_mode>auto</capture_mode>
 
272
  <recurringtypes>ONECLICK</recurringtypes>
273
  <auto_capture_openinvoice>0</auto_capture_openinvoice>
274
- <paypal_capture_mode>0</paypal_capture_mode>
275
  <send_email_bank_sepa_on_pending>0</send_email_bank_sepa_on_pending>
276
  <title_renderer>title_image</title_renderer>
277
  <ignore_refund_notification>0</ignore_refund_notification>
@@ -292,8 +317,7 @@
292
  <allowspecific>0</allowspecific>
293
  <disable_hpptypes>0</disable_hpptypes>
294
  <sort_order>30</sort_order>
295
- <cache_directory_lookup>0</cache_directory_lookup>
296
- <return_url_in_request>0</return_url_in_request>
297
  </adyen_hpp>
298
  <adyen_ideal translate="title" module="adyen">
299
  <active>0</active>
@@ -328,6 +352,7 @@
328
  <group>adyen</group>
329
  <title>Cash</title>
330
  <sort_order>90</sort_order>
 
331
  <visible_type>both</visible_type>
332
  <cash_express_checkout>0</cash_express_checkout>
333
  <cash_drawer>0</cash_drawer>
@@ -355,7 +380,7 @@
355
  <title>Adyen Credit Card</title>
356
  <debug>0</debug>
357
  <enable_installments>0</enable_installments>
358
- <cse_enabled>0</cse_enabled>
359
  <cse_public_key></cse_public_key>
360
  <visible_type>both</visible_type>
361
  <enable_moto>0</enable_moto>
@@ -364,6 +389,7 @@
364
  <trxuser_password>0</trxuser_password>
365
  <adminaction_password>5cfgRT34xsdedtFLdfHxj7tfwx24fe</adminaction_password>
366
  <wsdl>https://pal-test.adyen.com/pal/Payment.wsdl</wsdl>
 
367
  <sort_order>20</sort_order>
368
  </adyen_cc>
369
  <adyen_oneclick translate="title" module="adyen">
@@ -372,6 +398,7 @@
372
  <group>adyen</group>
373
  <title>Adyen OneClick</title>
374
  <sort_order>1</sort_order>
 
375
  </adyen_oneclick>
376
  <adyen_elv translate="title" module="adyen">
377
  <active>0</active>
@@ -399,6 +426,7 @@
399
  <title>Adyen SEPA</title>
400
  <sort_order>60</sort_order>
401
  <validate_iban>0</validate_iban>
 
402
  <flow>sales</flow>
403
  </adyen_sepa>
404
  <adyen_pay_by_mail>
@@ -416,57 +444,75 @@
416
  <cctypes>
417
  <AE>
418
  <code>AE</code>
 
419
  <name>American Express</name>
420
  <order>0</order>
421
  <is_cvv_required>1</is_cvv_required>
 
422
  </AE>
423
  <VI>
424
  <code>VI</code>
 
425
  <name>Visa</name>
426
  <order>10</order>
427
  <is_cvv_required>1</is_cvv_required>
 
428
  </VI>
429
  <MC>
430
  <code>MC</code>
 
431
  <name>Master Card</name>
432
  <order>20</order>
433
  <is_cvv_required>1</is_cvv_required>
 
434
  </MC>
435
  <DI>
436
  <code>DI</code>
 
437
  <name>Discover</name>
438
  <order>30</order>
439
  <is_cvv_required>1</is_cvv_required>
 
440
  </DI>
441
  <DC>
442
  <code>DC</code>
 
443
  <name>Diners Club</name>
444
  <order>40</order>
445
  <is_cvv_required>1</is_cvv_required>
 
446
  </DC>
447
  <SM>
448
  <code>SM</code>
 
449
  <name>Maestro</name>
450
  <order>60</order>
451
  <is_cvv_required>0</is_cvv_required>
 
452
  </SM>
453
  <JCB>
454
  <code>JCB</code>
 
455
  <name>JCB</name>
456
  <order>70</order>
457
  <is_cvv_required>0</is_cvv_required>
 
458
  </JCB>
459
  <ELO>
460
  <code>ELO</code>
 
461
  <name>Elo</name>
462
  <order>80</order>
463
  <is_cvv_required>0</is_cvv_required>
 
464
  </ELO>
465
  <hipercard>
466
  <code>hipercard</code>
 
467
  <name>Hipercard</name>
468
  <order>90</order>
469
  <is_cvv_required>0</is_cvv_required>
 
470
  </hipercard>
471
  </cctypes>
472
  <boletotypes>
29
  <config>
30
  <modules>
31
  <Adyen_Payment>
32
+ <version>2.4.0</version>
33
  </Adyen_Payment>
34
  </modules>
35
  <global>
52
  </event_queue>
53
  </entities>
54
  </adyen_resource>
55
+ <sales>
56
+ <rewrite>
57
+ <billing_agreement>Adyen_Payment_Model_Billing_Agreement</billing_agreement>
58
+ </rewrite>
59
+ </sales>
60
+ <sales_resource>
61
+ <rewrite>
62
+ <billing_agreement>Adyen_Payment_Model_Resource_Billing_Agreement</billing_agreement>
63
+ <billing_agreement_collection>Adyen_Payment_Model_Resource_Billing_Agreement_Collection</billing_agreement_collection>
64
+ </rewrite>
65
+ </sales_resource>
66
  </models>
67
  <helpers>
68
  <adyen>
109
  <sales>
110
  <rewrite>
111
  <order_totals>Adyen_Payment_Block_Sales_Order_Totals</order_totals>
112
+ <adminhtml_billing_agreement_grid>Adyen_Payment_Block_Adminhtml_Sales_Billing_Agreement_Grid</adminhtml_billing_agreement_grid>
113
  </rewrite>
114
  </sales>
115
  </blocks>
182
  <events>
183
  <controller_action_predispatch>
184
  <observers>
185
+ <adyen_payment_hpp>
186
  <class>adyen/observer</class>
187
  <method>addMethodsToConfig</method>
188
+ </adyen_payment_hpp>
189
+ <adyen_payment_billing_agreement>
190
+ <class>adyen/billing_agreement_observer</class>
191
+ <method>addMethodsToConfig</method>
192
+ </adyen_payment_billing_agreement>
193
  </observers>
194
  </controller_action_predispatch>
195
+ <sales_order_shipment_save_after>
196
+ <observers>
197
+ <adyen_payment_capture_invoice_on_shipment>
198
+ <class>adyen/observer</class>
199
+ <method>captureInvoiceOnShipment</method>
200
+ </adyen_payment_capture_invoice_on_shipment>
201
+ </observers>
202
+ </sales_order_shipment_save_after>
203
  </events>
204
  </global>
205
 
293
  <payment_authorized_virtual>complete</payment_authorized_virtual>
294
  <payment_cancelled_redirect>checkout/cart</payment_cancelled_redirect>
295
  <capture_mode>auto</capture_mode>
296
+ <create_pending_invoice>0</create_pending_invoice>
297
  <recurringtypes>ONECLICK</recurringtypes>
298
  <auto_capture_openinvoice>0</auto_capture_openinvoice>
299
+ <paypal_capture_mode>auto</paypal_capture_mode>
300
  <send_email_bank_sepa_on_pending>0</send_email_bank_sepa_on_pending>
301
  <title_renderer>title_image</title_renderer>
302
  <ignore_refund_notification>0</ignore_refund_notification>
317
  <allowspecific>0</allowspecific>
318
  <disable_hpptypes>0</disable_hpptypes>
319
  <sort_order>30</sort_order>
320
+ <return_url_in_request>1</return_url_in_request>
 
321
  </adyen_hpp>
322
  <adyen_ideal translate="title" module="adyen">
323
  <active>0</active>
352
  <group>adyen</group>
353
  <title>Cash</title>
354
  <sort_order>90</sort_order>
355
+ <create_shipment>1</create_shipment>
356
  <visible_type>both</visible_type>
357
  <cash_express_checkout>0</cash_express_checkout>
358
  <cash_drawer>0</cash_drawer>
380
  <title>Adyen Credit Card</title>
381
  <debug>0</debug>
382
  <enable_installments>0</enable_installments>
383
+ <cse_enabled>1</cse_enabled>
384
  <cse_public_key></cse_public_key>
385
  <visible_type>both</visible_type>
386
  <enable_moto>0</enable_moto>
389
  <trxuser_password>0</trxuser_password>
390
  <adminaction_password>5cfgRT34xsdedtFLdfHxj7tfwx24fe</adminaction_password>
391
  <wsdl>https://pal-test.adyen.com/pal/Payment.wsdl</wsdl>
392
+ <allow_billing_agreement_wizard>0</allow_billing_agreement_wizard>
393
  <sort_order>20</sort_order>
394
  </adyen_cc>
395
  <adyen_oneclick translate="title" module="adyen">
398
  <group>adyen</group>
399
  <title>Adyen OneClick</title>
400
  <sort_order>1</sort_order>
401
+ <recurring_payment_type>ONECLICK</recurring_payment_type>
402
  </adyen_oneclick>
403
  <adyen_elv translate="title" module="adyen">
404
  <active>0</active>
426
  <title>Adyen SEPA</title>
427
  <sort_order>60</sort_order>
428
  <validate_iban>0</validate_iban>
429
+ <allow_billing_agreement_wizard>0</allow_billing_agreement_wizard>
430
  <flow>sales</flow>
431
  </adyen_sepa>
432
  <adyen_pay_by_mail>
444
  <cctypes>
445
  <AE>
446
  <code>AE</code>
447
+ <code_alt>amex</code_alt>
448
  <name>American Express</name>
449
  <order>0</order>
450
  <is_cvv_required>1</is_cvv_required>
451
+ <is_checkout>1</is_checkout>
452
  </AE>
453
  <VI>
454
  <code>VI</code>
455
+ <code_alt>visa</code_alt>
456
  <name>Visa</name>
457
  <order>10</order>
458
  <is_cvv_required>1</is_cvv_required>
459
+ <is_checkout>1</is_checkout>
460
  </VI>
461
  <MC>
462
  <code>MC</code>
463
+ <code_alt>mc</code_alt>
464
  <name>Master Card</name>
465
  <order>20</order>
466
  <is_cvv_required>1</is_cvv_required>
467
+ <is_checkout>1</is_checkout>
468
  </MC>
469
  <DI>
470
  <code>DI</code>
471
+ <code_alt>discover</code_alt>
472
  <name>Discover</name>
473
  <order>30</order>
474
  <is_cvv_required>1</is_cvv_required>
475
+ <is_checkout>1</is_checkout>
476
  </DI>
477
  <DC>
478
  <code>DC</code>
479
+ <code_alt>diners</code_alt>
480
  <name>Diners Club</name>
481
  <order>40</order>
482
  <is_cvv_required>1</is_cvv_required>
483
+ <is_checkout>1</is_checkout>
484
  </DC>
485
  <SM>
486
  <code>SM</code>
487
+ <code_alt>maestro</code_alt>
488
  <name>Maestro</name>
489
  <order>60</order>
490
  <is_cvv_required>0</is_cvv_required>
491
+ <is_checkout>1</is_checkout>
492
  </SM>
493
  <JCB>
494
  <code>JCB</code>
495
+ <code_alt>jcb</code_alt>
496
  <name>JCB</name>
497
  <order>70</order>
498
  <is_cvv_required>0</is_cvv_required>
499
+ <is_checkout>1</is_checkout>
500
  </JCB>
501
  <ELO>
502
  <code>ELO</code>
503
+ <code_alt>elo</code_alt>
504
  <name>Elo</name>
505
  <order>80</order>
506
  <is_cvv_required>0</is_cvv_required>
507
+ <is_checkout>1</is_checkout>
508
  </ELO>
509
  <hipercard>
510
  <code>hipercard</code>
511
+ <code_alt>hipercard</code_alt>
512
  <name>Hipercard</name>
513
  <order>90</order>
514
  <is_cvv_required>0</is_cvv_required>
515
+ <is_checkout>1</is_checkout>
516
  </hipercard>
517
  </cctypes>
518
  <boletotypes>
app/code/community/Adyen/Payment/etc/system.xml CHANGED
@@ -32,357 +32,554 @@
32
  <groups>
33
  <!-- @default -->
34
  <adyen_abstract translate="label" module="adyen">
35
- <label>Adyen Default Settings</label>
36
  <frontend_type>text</frontend_type>
37
  <sort_order>300</sort_order>
 
38
  <show_in_default>1</show_in_default>
39
  <show_in_website>1</show_in_website>
40
  <show_in_store>1</show_in_store>
41
- <frontend_class>adyen-method-abstract</frontend_class>
42
- <frontend_model>adyen/adminhtml_system_config_fieldset_payment</frontend_model>
43
- <comment><![CDATA[<p>Click the following link for an <a target="_blank" href="http://vimeo.com/94005128">instructional video on how to set up the Adyen Magento plugin</a>, or <a target="_blank" href="https://www.adyen.com/dam/documentation/manuals/MagentoQuickIntegrationManual.pdf">here to download the Quick Quick Integration Guide</a> or <a target="_blank" href="https://www.adyen.com/dam/documentation/manuals/AdyenMagentoExtension.pdf">here to download the more advanced manual</a> and <a target="_blank" href="https://www.adyen.com/home/payment-services/plug-ins/magento#form">here to sign up for a test account</a>.
44
- For the test environment you can use test cards. You can find the test cards <a target="_blank" href="https://www.adyen.com/home/support/knowledgebase/implementation-articles?article=kb_imp_17">here</a>.
45
- The latest version of the <a target="_blank" href="https://github.com/adyenpayments/magento/releases">Adyen Magento plugin is also available through GitHub</a>.
46
- If you have any further questions, please visit the <a target="_blank" href="http://www.adyen.com">Adyen.com</a> website or email <a href="mailto:magento@adyen.com">magento@adyen.com</a>.
47
- </p>]]></comment>
48
  <fields>
49
- <version translate="label">
50
-             <label>Extension version</label>
51
-                     <frontend_type>label</frontend_type>
52
-                     <frontend_model>Adyen_Payment_Block_Adminhtml_Version</frontend_model>
53
-                     <sort_order>0</sort_order>
54
-                     <show_in_default>1</show_in_default>
55
-                     <show_in_website>1</show_in_website>
56
-                     <show_in_store>1</show_in_store>
57
-         </version>
58
- <merchantAccount translate="label">
59
- <label>Merchant Account</label>
60
- <comment><![CDATA[You can find this in the Adyen back-office. The Adyen back-office can be found on <a target="_blank" href="https://ca-test.adyen.com">https://ca-test.adyen.com</a> for test or <a target="_blank" href="https://ca-live.adyen.com">https://ca-live.adyen.com</a> for live.]]></comment>
61
  <frontend_type>text</frontend_type>
62
- <sort_order>10</sort_order>
63
- <show_in_default>1</show_in_default>
64
- <show_in_website>1</show_in_website>
65
- <show_in_store>1</show_in_store>
66
- </merchantAccount>
67
- <demoMode translate="label">
68
- <label>Test/Production Mode</label>
69
- <frontend_type>select</frontend_type>
70
- <source_model>adyen/source_DemoModes</source_model>
71
- <sort_order>20</sort_order>
72
  <show_in_default>1</show_in_default>
73
  <show_in_website>1</show_in_website>
74
  <show_in_store>1</show_in_store>
75
- <comment><![CDATA[In test mode you must use test cards. You can find them <a target="_blank" href="http://adyen.com/test-card-numbers">here</a>]]></comment>
76
- </demoMode>
77
- <order_status translate="label">
78
- <label>New order status</label>
79
- <comment>Select only status assigned to state new</comment>
80
- <frontend_type>select</frontend_type>
81
- <source_model>adminhtml/system_config_source_order_status_new</source_model>
82
- <sort_order>30</sort_order>
83
- <show_in_default>1</show_in_default>
84
- <show_in_website>1</show_in_website>
85
- <show_in_store>0</show_in_store>
86
- </order_status>
87
- <payment_authorized translate="label">
88
- <label>Order status authorised payment</label>
89
- <comment>(optional)Select only status assigned to state processing.Leave empty if you are not sure</comment>
90
- <frontend_type>select</frontend_type>
91
- <source_model>adminhtml/system_config_source_order_status_processing</source_model>
92
- <sort_order>40</sort_order>
93
- <show_in_default>1</show_in_default>
94
- <show_in_website>1</show_in_website>
95
- <show_in_store>0</show_in_store>
96
- </payment_authorized>
97
- <payment_authorized_virtual>
98
- <label>Order status authorised payment for virtual products</label>
99
- <comment>(optional)Select only status assigned to state complete. Leave empty to use the same as normal products</comment>
100
- <frontend_type>select</frontend_type>
101
- <source_model>adyen/source_status_complete</source_model>
102
- <sort_order>41</sort_order>
103
- <show_in_default>1</show_in_default>
104
- <show_in_website>1</show_in_website>
105
- <show_in_store>0</show_in_store>
106
- </payment_authorized_virtual>
107
- <payment_pre_authorized>
108
- <label>Order status pre-authorised payment</label>
109
- <comment>(optional)Only affecting manual work flow.Leave empty if you are not sure</comment>
110
- <frontend_type>select</frontend_type>
111
- <source_model>adminhtml/system_config_source_order_status_newprocessing</source_model>
112
- <sort_order>50</sort_order>
113
- <show_in_default>1</show_in_default>
114
- <show_in_website>1</show_in_website>
115
- <show_in_store>0</show_in_store>
116
- </payment_pre_authorized>
117
- <payment_cancelled translate="label">
118
- <label>Order status cancelled payment</label>
119
- <comment>Action to be attempted incase of failed notifications from Adyen.Notice orders with invoices can not be cancelled, will just get status change.</comment>
120
- <frontend_type>select</frontend_type>
121
- <source_model>adyen/source_cancelModes</source_model>
122
- <sort_order>60</sort_order>
123
- <show_in_default>1</show_in_default>
124
- <show_in_website>1</show_in_website>
125
- <show_in_store>0</show_in_store>
126
- </payment_cancelled>
127
- <payment_cancelled_redirect>
128
- <label>Redirect to page after cancellation</label>
129
- <frontend_type>select</frontend_type>
130
- <source_model>adyen/source_cancelRedirect</source_model>
131
- <sort_order>65</sort_order>
132
- <show_in_default>1</show_in_default>
133
- <show_in_website>1</show_in_website>
134
- <show_in_store>0</show_in_store>
135
- </payment_cancelled_redirect>
136
- <refund_authorized translate="label">
137
- <label>Refund authorise (refund success)</label>
138
- <comment>(optional) leave empty if you are not sure</comment>
139
- <frontend_type>select</frontend_type>
140
- <source_model>adyen/source_status_refund</source_model>
141
- <sort_order>70</sort_order>
142
- <show_in_default>1</show_in_default>
143
- <show_in_website>1</show_in_website>
144
- <show_in_store>0</show_in_store>
145
- </refund_authorized>
146
- <notification_username translate="label">
147
- <label>Notification Username</label>
148
- <comment>Should match your "notifications settings" in your Adyen account.</comment>
149
- <frontend_type>text</frontend_type>
150
- <sort_order>75</sort_order>
151
- <show_in_default>1</show_in_default>
152
- <show_in_website>1</show_in_website>
153
- <show_in_store>0</show_in_store>
154
- </notification_username>
155
- <notification_password translate="label">
156
- <label>Notification Password</label>
157
- <comment>Should match your "notifications settings" in your Adyen account.</comment>
158
- <frontend_type>obscure</frontend_type>
159
- <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
160
- <sort_order>76</sort_order>
161
- <show_in_default>1</show_in_default>
162
- <show_in_website>1</show_in_website>
163
- <show_in_store>0</show_in_store>
164
- </notification_password>
165
- <notification_hmac>
166
- <label>Notification Hmac Key</label>
167
- <comment>This is not required. You can use this as extra security or if you do not want to use HTTP AUTHENTICATION you can leave notification username and password empty and only use this key. Key can be generated in the Adyen backoffice => Server Communication => Additional Settings</comment>
168
  <frontend_type>text</frontend_type>
169
- <sort_order>77</sort_order>
170
- <show_in_default>1</show_in_default>
171
- <show_in_website>1</show_in_website>
172
- <show_in_store>0</show_in_store>
173
- </notification_hmac>
174
- <capture_mode translate="label">
175
- <label>Capture Mode</label>
176
- <frontend_type>select</frontend_type>
177
- <comment>If you are using "The manual capture in Adyen" set this to manual and you will get a chance to capture it by creating the invoice and select "capture online".If not sure select auto.Notice:iDEAL and Cash are always Auto Capture!</comment>
178
- <source_model>adyen/source_captureModes</source_model>
179
- <sort_order>78</sort_order>
180
- <show_in_default>1</show_in_default>
181
- <show_in_website>1</show_in_website>
182
- <show_in_store>0</show_in_store>
183
- </capture_mode>
184
- <recurringtypes translate="label">
185
- <label>Recurring Type</label>
186
- <frontend_type>select</frontend_type>
187
- <source_model>adyen/source_recurringType</source_model>
188
- <sort_order>79</sort_order>
189
  <show_in_default>1</show_in_default>
190
  <show_in_website>1</show_in_website>
191
  <show_in_store>1</show_in_store>
192
- </recurringtypes>
193
- <ws_username_test translate="label">
194
- <label>Adyen ws username for Test</label>
195
- <comment>Normally this will be ws@Company.YourCompanyCode</comment>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  <frontend_type>text</frontend_type>
197
- <sort_order>80</sort_order>
198
- <show_in_default>1</show_in_default>
199
- <show_in_website>1</show_in_website>
200
- <show_in_store>0</show_in_store>
201
- </ws_username_test>
202
- <ws_password_test translate="label">
203
- <label>Adyen ws password for Test</label>
204
- <comment>The password of the ws user for Test</comment>
205
- <frontend_type>obscure</frontend_type>
206
- <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
207
- <sort_order>90</sort_order>
208
  <show_in_default>1</show_in_default>
209
  <show_in_website>1</show_in_website>
210
- <show_in_store>0</show_in_store>
211
- </ws_password_test>
212
- <ws_test_button translate="label">
213
- <label></label>
214
- <button_label>Test Webserver Credentials for test</button_label>
215
- <modus>test</modus>
216
- <frontend_model>adyen/adminhtml_system_config_testWebserverConfiguration</frontend_model>
217
- <sort_order>91</sort_order>
218
- <show_in_default>1</show_in_default>
219
- <show_in_website>1</show_in_website>
220
- <show_in_store></show_in_store>
221
- </ws_test_button>
222
- <ws_username_live translate="label">
223
- <label>Adyen ws username for Live</label>
224
- <comment>Normally this will be ws@Company.YourCompanyCode</comment>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
225
  <frontend_type>text</frontend_type>
226
- <sort_order>100</sort_order>
227
- <show_in_default>1</show_in_default>
228
- <show_in_website>1</show_in_website>
229
- <show_in_store>0</show_in_store>
230
- </ws_username_live>
231
- <ws_password_live translate="label">
232
- <label>Adyen ws password for Live</label>
233
- <comment>The password of the ws user for Live</comment>
234
- <frontend_type>obscure</frontend_type>
235
- <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
236
- <sort_order>110</sort_order>
237
- <show_in_default>1</show_in_default>
238
- <show_in_website>1</show_in_website>
239
- <show_in_store>0</show_in_store>
240
- </ws_password_live>
241
- <ws_live_button translate="label">
242
- <label></label>
243
- <button_label>Test Webserver Credentials for live</button_label>
244
- <modus>live</modus>
245
- <frontend_model>adyen/adminhtml_system_config_testWebserverConfiguration</frontend_model>
246
- <sort_order>111</sort_order>
247
- <show_in_default>1</show_in_default>
248
- <show_in_website>1</show_in_website>
249
- </ws_live_button>
250
- <debug translate="label">
251
- <label>Debug</label>
252
- <frontend_type>select</frontend_type>
253
- <source_model>adminhtml/system_config_source_yesno</source_model>
254
- <sort_order>112</sort_order>
255
- <show_in_default>1</show_in_default>
256
- <show_in_website>1</show_in_website>
257
- <show_in_store>0</show_in_store>
258
- </debug>
259
- <auto_capture_openinvoice>
260
- <label>Auto capture Openinvoice(AfterPay/Klarna) payment methods</label>
261
- <comment>By default OpenInvoice is set to manual capture. If you want auto capture you need to contact magento@adyen.com so we can set this up for your account and then you can set this option to yes</comment>
262
- <frontend_type>select</frontend_type>
263
- <source_model>adminhtml/system_config_source_yesno</source_model>
264
- <sort_order>115</sort_order>
265
- <show_in_default>1</show_in_default>
266
- <show_in_website>1</show_in_website>
267
- <show_in_store>0</show_in_store>
268
- </auto_capture_openinvoice>
269
- <paypal_capture_mode>
270
- <label>Capture Mode for PayPal</label>
271
- <comment>If you are using a different capture mode for PayPal setup in your Adyen account select here this capture modus</comment>
272
- <frontend_type>select</frontend_type>
273
- <source_model>adyen/source_PayPalCaptureModes</source_model>
274
- <sort_order>118</sort_order>
275
- <show_in_default>1</show_in_default>
276
- <show_in_website>1</show_in_website>
277
- <show_in_store>0</show_in_store>
278
- </paypal_capture_mode>
279
- <pending_status>
280
- <label>Pending order status</label>
281
- <comment>By default pending notifications are not send. If you want these notifications to be received enable the BankTransfer Pending Notification and\or Direct-Debit Pending Notification in the Adyen Platform</comment>
282
- <frontend_type>select</frontend_type>
283
- <source_model>adyen/source_status_pending</source_model>
284
- <sort_order>119</sort_order>
285
- <show_in_default>1</show_in_default>
286
- <show_in_website>1</show_in_website>
287
- <show_in_store>0</show_in_store>
288
- </pending_status>
289
- <send_email_bank_sepa_on_pending>
290
- <label>Send confirmation email for Banktransfer/SEPA</label>
291
- <comment>Send a confirmation mail after banktranfer/SEPA is placed (not yet paid). Make sure that you have BankTransfer Pending Notification enabled in Adyen backoffice to do this contact magento@adyen.com</comment>
292
- <frontend_type>select</frontend_type>
293
- <source_model>adminhtml/system_config_source_yesno</source_model>
294
- <sort_order>120</sort_order>
295
  <show_in_default>1</show_in_default>
296
  <show_in_website>1</show_in_website>
297
- <show_in_store>0</show_in_store>
298
- </send_email_bank_sepa_on_pending>
299
- <shopperlocale translate="label">
300
- <label>Language locale (optional)</label>
301
- <comment>Leave empty to let Magento decide (Ex: nl_NL)</comment>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
  <frontend_type>text</frontend_type>
303
- <sort_order>180</sort_order>
304
  <show_in_default>1</show_in_default>
305
- <show_in_website>1</show_in_website>
306
- <show_in_store>1</show_in_store>
307
- </shopperlocale>
308
- <countryCode translate="label">
309
- <label>Country Code ISO (optional)</label>
310
- <comment>Leave empty to let Adyen decide on IP-address (Ex: NL)</comment>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
311
  <frontend_type>text</frontend_type>
312
- <sort_order>190</sort_order>
313
  <show_in_default>1</show_in_default>
314
  <show_in_website>1</show_in_website>
315
  <show_in_store>1</show_in_store>
316
- </countryCode>
317
- <send_update_mail translate="label">
318
- <label>Mail update</label>
319
- <frontend_type>select</frontend_type>
320
- <comment>Enable/Disable update mails</comment>
321
- <source_model>adminhtml/system_config_source_yesno</source_model>
322
- <sort_order>200</sort_order>
323
- <show_in_default>1</show_in_default>
324
- <show_in_website>1</show_in_website>
325
- <show_in_store>0</show_in_store>
326
- </send_update_mail>
327
- <send_invoice_update_mail translate="label">
328
- <label>Mail update (Invoice Mail)</label>
329
- <frontend_type>select</frontend_type>
330
- <comment>Enable/Disable update mails</comment>
331
- <source_model>adminhtml/system_config_source_yesno</source_model>
332
- <sort_order>210</sort_order>
333
- <show_in_default>1</show_in_default>
334
- <show_in_website>1</show_in_website>
335
- <show_in_store>0</show_in_store>
336
- </send_invoice_update_mail>
337
- <title_renderer>
338
- <label>Title renderer</label>
339
- <frontend_type>select</frontend_type>
340
- <source_model>adyen/source_rendermode</source_model>
341
  <sort_order>220</sort_order>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
342
  <show_in_default>1</show_in_default>
343
  <show_in_website>1</show_in_website>
344
  <show_in_store>1</show_in_store>
345
- </title_renderer>
346
- <ignore_refund_notification>
347
- <label>Ignore refund notification</label>
348
- <comment>If the refund is done on the Adyen Platform it will send a refund notification to Magento that automatically create a credit memo. If you enable this setting this will not happen because it will not process any of the REFUND notification that is received.</comment>
349
- <frontend_type>select</frontend_type>
350
- <source_model>adminhtml/system_config_source_yesno</source_model>
351
- <sort_order>230</sort_order>
352
- <show_in_default>1</show_in_default>
353
- <show_in_website>1</show_in_website>
354
- <show_in_store>1</show_in_store>
355
- </ignore_refund_notification>
356
- <update_notification_cronjob>
357
- <label>Update notification queue by cronjob (every 5 minutes)</label>
358
- <comment>If you using API methods(CC, SEPA, ELV or Boleto) and your magento order processing is slow it could be that the notificaiton is faster then magento saves the ordrer. The notification will then be saved in a queue. This is processed on default when next notification is received. If you want to update the notificaiton queue every 5 minutes activate this and make sure cronjob of magento is called by your webserver</comment>
359
- <frontend_type>select</frontend_type>
360
- <source_model>adminhtml/system_config_source_yesno</source_model>
361
- <sort_order>240</sort_order>
362
- <show_in_default>1</show_in_default>
363
- <show_in_website>0</show_in_website>
364
- <show_in_store>0</show_in_store>
365
- </update_notification_cronjob>
366
- <fraud_manual_review_status>
367
- <label>Manual Review Status</label>
368
- <comment>If you are using Manual Review and a payment match your case set here the status it should have in magento. It will then move to processing when you approve the payment on Adyen platform. If you don't have this or don't want a seperate status please keep it on -- Please Select --</comment>
369
- <frontend_type>select</frontend_type>
370
- <source_model>adyen/source_status_pending</source_model>
371
- <sort_order>250</sort_order>
372
- <show_in_default>1</show_in_default>
373
- <show_in_website>1</show_in_website>
374
- <show_in_store>0</show_in_store>
375
- </fraud_manual_review_status>
 
 
 
 
 
376
  </fields>
377
  </adyen_abstract>
378
- <!-- @Hpp only -->
379
- <adyen_hpp translate="label" module="adyen">
380
- <label>Adyen HPP</label>
381
  <frontend_type>text</frontend_type>
382
  <sort_order>310</sort_order>
383
  <show_in_default>1</show_in_default>
384
  <show_in_website>1</show_in_website>
385
  <show_in_store>1</show_in_store>
 
 
386
  <fields>
387
  <active translate="label">
388
  <label>Enabled</label>
@@ -403,184 +600,280 @@
403
  </title>
404
  <sort_order translate="label">
405
  <label>Sort Order</label>
 
406
  <frontend_type>text</frontend_type>
407
  <sort_order>25</sort_order>
408
  <show_in_default>1</show_in_default>
409
  <show_in_website>1</show_in_website>
410
- <show_in_store>0</show_in_store>
411
- </sort_order>
412
- <skinCode translate="label">
413
- <label>Skin Code</label>
414
- <comment>The skin code you want to use (You can find this in the admin are of your Adyen account)</comment>
415
- <frontend_type>text</frontend_type>
416
- <sort_order>30</sort_order>
417
- <show_in_default>1</show_in_default>
418
- <show_in_website>1</show_in_website>
419
  <show_in_store>1</show_in_store>
420
- </skinCode>
421
- <secret_wordt translate="label">
422
- <label>HMAC Key for Test</label>
423
- <comment>Should match with the HMAC test key in the Adyen backoffice.</comment>
424
- <frontend_type>text</frontend_type>
425
  <sort_order>40</sort_order>
426
  <show_in_default>1</show_in_default>
427
  <show_in_website>1</show_in_website>
428
  <show_in_store>1</show_in_store>
429
- </secret_wordt>
430
- <secret_wordp translate="label">
431
- <label>HMAC Key for Live</label>
432
- <comment>Should match with the HMAC live key in the Adyen backoffice.</comment>
433
- <frontend_type>text</frontend_type>
434
- <sort_order>50</sort_order>
435
- <show_in_default>1</show_in_default>
436
- <show_in_website>1</show_in_website>
437
- <show_in_store>1</show_in_store>
438
- </secret_wordp>
439
- <delivery_days translate="label">
440
- <label>Days for Delivery</label>
441
- <validate>validate-digits</validate>
442
- <comment>How many days to be added to the current date for delivery. ONLY numbers allowed.</comment>
443
- <frontend_type>text</frontend_type>
444
- <sort_order>70</sort_order>
445
- <show_in_default>1</show_in_default>
446
- <show_in_website>1</show_in_website>
447
- <show_in_store>0</show_in_store>
448
- </delivery_days>
449
- <disable_hpptypes translate="label">
450
- <label>Leave payment method selection on HPP</label>
451
- <comment>If you say yes here, payment methods in the checkout won't be displayed and you will be redirected to the Adyen HPP to make the selection.</comment>
452
  <frontend_type>select</frontend_type>
453
  <source_model>adminhtml/system_config_source_yesno</source_model>
454
- <sort_order>90</sort_order>
455
- <show_in_default>1</show_in_default>
456
- <show_in_website>1</show_in_website>
457
- <show_in_store>1</show_in_store>
458
- </disable_hpptypes>
459
- <payment_routines translate="label">
460
- <label>Payment Flow Selection</label>
461
- <comment>Adyen provide you with 2 types of payment routines. Multi-page and Single Page</comment>
462
- <frontend_type>select</frontend_type>
463
- <source_model>adyen/source_PaymentRoutines</source_model>
464
- <sort_order>95</sort_order>
465
  <show_in_default>1</show_in_default>
466
  <show_in_website>1</show_in_website>
467
  <show_in_store>1</show_in_store>
468
- <depends><disable_hpptypes>1</disable_hpptypes></depends>
469
- </payment_routines>
470
- <cache_directory_lookup>
471
- <label>Cache payment method call</label>
472
- <comment>Enable this if you having trouble with performance and you don't have any amount rules setup in your skin in the Adyen backoffice.</comment>
473
- <frontend_type>select</frontend_type>
474
- <source_model>adminhtml/system_config_source_yesno</source_model>
475
- <sort_order>100</sort_order>
476
  <show_in_default>1</show_in_default>
477
  <show_in_website>1</show_in_website>
478
  <show_in_store>1</show_in_store>
479
- <depends><disable_hpptypes>0</disable_hpptypes></depends>
480
- </cache_directory_lookup>
481
- <return_url_in_request>
482
- <label>Return url in request</label>
483
- <comment>If you have a multi webshop and you want to use one skin only, enable this option</comment>
484
- <frontend_type>select</frontend_type>
485
- <source_model>adminhtml/system_config_source_yesno</source_model>
486
- <sort_order>110</sort_order>
487
  <show_in_default>1</show_in_default>
488
  <show_in_website>1</show_in_website>
489
  <show_in_store>1</show_in_store>
490
- </return_url_in_request>
 
491
  <allowspecific translate="label">
492
- <label>Payment to applicable countries</label>
493
  <frontend_type>allowspecific</frontend_type>
494
- <sort_order>120</sort_order>
495
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
496
  <show_in_default>1</show_in_default>
497
  <show_in_website>1</show_in_website>
498
  <show_in_store>1</show_in_store>
499
  </allowspecific>
500
  <specificcountry translate="label">
501
- <label>Payment to Specific countries</label>
502
  <frontend_type>multiselect</frontend_type>
503
- <sort_order>130</sort_order>
504
  <source_model>adminhtml/system_config_source_country</source_model>
505
  <show_in_default>1</show_in_default>
506
  <show_in_website>1</show_in_website>
507
  <show_in_store>1</show_in_store>
508
  <depends><allowspecific>1</allowspecific></depends>
509
  </specificcountry>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
510
  </fields>
511
- </adyen_hpp>
512
- <adyen_ideal translate="label" module="adyen">
513
- <label>Adyen iDEAL</label>
514
  <frontend_type>text</frontend_type>
515
- <sort_order>315</sort_order>
 
 
 
516
  <show_in_default>1</show_in_default>
517
  <show_in_website>1</show_in_website>
518
  <show_in_store>1</show_in_store>
 
 
519
  <fields>
520
  <active translate="label">
521
  <label>Enabled</label>
522
  <frontend_type>select</frontend_type>
523
  <source_model>adminhtml/system_config_source_yesno</source_model>
524
- <sort_order>10</sort_order>
525
  <show_in_default>1</show_in_default>
526
  <show_in_website>1</show_in_website>
527
  <show_in_store>1</show_in_store>
 
528
  </active>
529
  <title translate="label">
530
  <label>Title</label>
531
  <frontend_type>text</frontend_type>
532
- <sort_order>20</sort_order>
533
  <show_in_default>1</show_in_default>
534
  <show_in_website>1</show_in_website>
535
  <show_in_store>1</show_in_store>
536
  </title>
537
- <show_ideal_logos>
538
- <label>Show iDEAL bank logos</label>
539
- <comment>Show iDEAL bank logos (radio buttons) instead of dropdown</comment>
540
- <frontend_type>select</frontend_type>
541
- <source_model>adminhtml/system_config_source_yesno</source_model>
542
- <sort_order>30</sort_order>
543
- <show_in_default>1</show_in_default>
544
- <show_in_website>1</show_in_website>
545
- <show_in_store>1</show_in_store>
546
- </show_ideal_logos>
547
  <sort_order translate="label">
548
  <label>Sort Order</label>
 
549
  <frontend_type>text</frontend_type>
550
- <sort_order>40</sort_order>
551
- <show_in_default>1</show_in_default>
552
- <show_in_website>1</show_in_website>
553
- <show_in_store>0</show_in_store>
554
- </sort_order>
555
- <allowspecific translate="label">
556
- <label>Payment to applicable countries</label>
557
- <frontend_type>allowspecific</frontend_type>
558
- <sort_order>49</sort_order>
559
- <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
560
  <show_in_default>1</show_in_default>
561
  <show_in_website>1</show_in_website>
562
  <show_in_store>1</show_in_store>
563
- </allowspecific>
564
- <specificcountry translate="label">
565
- <label>Payment to Specific countries</label>
566
- <frontend_type>multiselect</frontend_type>
567
- <sort_order>50</sort_order>
568
- <source_model>adminhtml/system_config_source_country</source_model>
 
569
  <show_in_default>1</show_in_default>
570
  <show_in_website>1</show_in_website>
571
  <show_in_store>1</show_in_store>
572
- <depends><allowspecific>1</allowspecific></depends>
573
- </specificcountry>
574
  </fields>
575
- </adyen_ideal>
576
- <!-- @Pos only -->
577
- <adyen_pos translate="label" module="adyen">
578
- <label>Adyen POS</label>
579
  <frontend_type>text</frontend_type>
580
- <sort_order>320</sort_order>
581
  <show_in_default>1</show_in_default>
582
  <show_in_website>1</show_in_website>
583
  <show_in_store>1</show_in_store>
 
 
584
  <fields>
585
  <active translate="label">
586
  <label>Enabled</label>
@@ -591,173 +884,128 @@
591
  <show_in_website>1</show_in_website>
592
  <show_in_store>1</show_in_store>
593
  </active>
594
- <title translate="label">
595
- <label>Title</label>
596
- <frontend_type>text</frontend_type>
597
- <sort_order>20</sort_order>
598
- <show_in_default>1</show_in_default>
599
- <show_in_website>1</show_in_website>
600
- <show_in_store>1</show_in_store>
601
- </title>
602
  <sort_order translate="label">
603
  <label>Sort Order</label>
 
604
  <frontend_type>text</frontend_type>
605
  <sort_order>25</sort_order>
606
  <show_in_default>1</show_in_default>
607
  <show_in_website>1</show_in_website>
608
- <show_in_store>0</show_in_store>
609
  </sort_order>
610
- <recurringtypes translate="label">
611
- <label>Recurring Type</label>
612
- <comment>You can set different value for POS because you have to have the permission of the customer</comment>
613
- <frontend_type>select</frontend_type>
614
- <source_model>adyen/source_recurringType</source_model>
615
  <sort_order>30</sort_order>
616
  <show_in_default>1</show_in_default>
617
  <show_in_website>1</show_in_website>
618
  <show_in_store>1</show_in_store>
619
- </recurringtypes>
620
- <add_receipt_order_lines translate="label">
621
- <label>Add orderlines to receipt</label>
622
- <comment>If you have the Adyen App configured to print to an external printer the orderlines can be printed on to the receipt if you turn this option on.</comment>
623
- <frontend_type>select</frontend_type>
624
- <source_model>adminhtml/system_config_source_yesno</source_model>
625
- <sort_order>33</sort_order>
626
- <show_in_default>1</show_in_default>
627
- <show_in_website>1</show_in_website>
628
- <show_in_store>1</show_in_store>
629
- </add_receipt_order_lines>
630
- <enable_scanner translate="label">
631
- <label>Enable Scanner</label>
632
- <comment>If you enable this you have the possiblity to scan products with a hand scanner on the shopping cart page and this will automatically add products to the shopping cart based on the same SKU name</comment>
633
- <frontend_type>select</frontend_type>
634
- <source_model>adminhtml/system_config_source_yesno</source_model>
635
- <sort_order>35</sort_order>
636
- <show_in_default>1</show_in_default>
637
- <show_in_website>1</show_in_website>
638
- <show_in_store>1</show_in_store>
639
- </enable_scanner>
640
- <auto_submit_scanner>
641
- <label>Auto submit scanner</label>
642
- <comment>If you have a scanner that puss a enter command after scanning turn this setting on.</comment>
643
- <frontend_type>select</frontend_type>
644
- <source_model>adminhtml/system_config_source_yesno</source_model>
645
- <sort_order>36</sort_order>
646
- <show_in_default>1</show_in_default>
647
- <show_in_website>1</show_in_website>
648
- <show_in_store>1</show_in_store>
649
- <depends><enable_scanner>1</enable_scanner></depends>
650
- </auto_submit_scanner>
651
- <express_checkout>
652
- <label>Express checkout</label>
653
- <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>
654
- <frontend_type>select</frontend_type>
655
- <source_model>adminhtml/system_config_source_yesno</source_model>
656
- <sort_order>37</sort_order>
657
- <show_in_default>1</show_in_default>
658
- <show_in_website>1</show_in_website>
659
- <show_in_store>1</show_in_store>
660
- </express_checkout>
661
- <express_checkout_redirect_connect>
662
- <label>Redirect direct</label>
663
- <comment>Redirect directly to the Adyen app to do the PIN payment. This is not supported for all browsers if you have problems set this setting to false</comment>
664
- <frontend_type>select</frontend_type>
665
- <source_model>adminhtml/system_config_source_yesno</source_model>
666
- <sort_order>38</sort_order>
667
- <show_in_default>1</show_in_default>
668
- <show_in_website>1</show_in_website>
669
- <show_in_store>1</show_in_store>
670
- <depends><express_checkout>1</express_checkout></depends>
671
- </express_checkout_redirect_connect>
672
- <express_checkout_kiosk_mode>
673
- <label>Kiosk mode</label>
674
- <comment>If you turn kiosk modus on it will not autocomplete the customers based on the filled in email address</comment>
675
- <frontend_type>select</frontend_type>
676
- <source_model>adminhtml/system_config_source_yesno</source_model>
677
- <sort_order>45</sort_order>
678
- <show_in_default>1</show_in_default>
679
- <show_in_website>1</show_in_website>
680
- <show_in_store>1</show_in_store>
681
- </express_checkout_kiosk_mode>
682
- <express_checkout_recurring>
683
- <label>Show Recurring Cards</label>
684
- <comment>This will show the recurring cards beneath the express checkout and makes it possible to do a recurring online payment by clicking on the card</comment>
685
- <frontend_type>select</frontend_type>
686
- <source_model>adminhtml/system_config_source_yesno</source_model>
687
- <sort_order>50</sort_order>
688
- <show_in_default>1</show_in_default>
689
- <show_in_website>1</show_in_website>
690
- <show_in_store>1</show_in_store>
691
- <depends><express_checkout_kiosk_mode>0</express_checkout_kiosk_mode></depends>
692
- </express_checkout_recurring>
693
- <create_shipment>
694
- <label>Create Shipment</label>
695
- <comment>If you enable this there will be automatically be created a shipment if the invoice is created</comment>
696
- <frontend_type>select</frontend_type>
697
- <source_model>adminhtml/system_config_source_yesno</source_model>
698
- <sort_order>55</sort_order>
699
- <show_in_default>1</show_in_default>
700
- <show_in_website>1</show_in_website>
701
- <show_in_store>1</show_in_store>
702
- </create_shipment>
703
- <ip_filter>
704
- <label>IP filter</label>
705
- <comment>Enable IP filter let's you define an IP range when this payment method is visable</comment>
706
- <frontend_type>select</frontend_type>
707
- <source_model>adminhtml/system_config_source_yesno</source_model>
708
- <sort_order>57</sort_order>
709
- <show_in_default>1</show_in_default>
710
- <show_in_website>1</show_in_website>
711
- <show_in_store>1</show_in_store>
712
- </ip_filter>
713
- <ip_filter_from>
714
- <label>IP From</label>
715
  <frontend_type>text</frontend_type>
716
- <source_model>adminhtml/system_config_source_yesno</source_model>
717
- <sort_order>58</sort_order>
718
  <show_in_default>1</show_in_default>
719
  <show_in_website>1</show_in_website>
720
  <show_in_store>1</show_in_store>
721
- <depends><ip_filter>1</ip_filter></depends>
722
- </ip_filter_from>
723
- <ip_filter_to>
724
- <label>IP To</label>
725
  <frontend_type>text</frontend_type>
726
- <source_model>adminhtml/system_config_source_yesno</source_model>
727
- <sort_order>59</sort_order>
728
  <show_in_default>1</show_in_default>
729
  <show_in_website>1</show_in_website>
730
  <show_in_store>1</show_in_store>
731
- <depends><ip_filter>1</ip_filter></depends>
732
- </ip_filter_to>
733
- <allowspecific translate="label">
734
- <label>Payment to applicable countries</label>
735
- <frontend_type>allowspecific</frontend_type>
736
- <sort_order>60</sort_order>
737
- <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
738
  <show_in_default>1</show_in_default>
739
  <show_in_website>1</show_in_website>
740
  <show_in_store>1</show_in_store>
741
- </allowspecific>
742
- <specificcountry translate="label">
743
- <label>Payment to Specific countries</label>
744
- <frontend_type>multiselect</frontend_type>
745
  <sort_order>70</sort_order>
746
- <source_model>adminhtml/system_config_source_country</source_model>
747
- <show_in_default>1</show_in_default>
748
- <show_in_website>1</show_in_website>
749
- <show_in_store>1</show_in_store>
750
- <depends><allowspecific>1</allowspecific></depends>
751
- </specificcountry>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
752
  </fields>
753
- </adyen_pos>
754
- <adyen_cash translate="label" module="adyen">
755
- <label>Adyen CASH</label>
756
  <frontend_type>text</frontend_type>
757
- <sort_order>325</sort_order>
758
  <show_in_default>1</show_in_default>
759
  <show_in_website>1</show_in_website>
760
  <show_in_store>1</show_in_store>
 
 
761
  <fields>
762
  <active translate="label">
763
  <label>Enabled</label>
@@ -776,117 +1024,47 @@
776
  <show_in_website>1</show_in_website>
777
  <show_in_store>1</show_in_store>
778
  </title>
779
- <sort_order translate="label">
780
- <label>Sort Order</label>
781
- <frontend_type>text</frontend_type>
782
- <sort_order>30</sort_order>
783
- <show_in_default>1</show_in_default>
784
- <show_in_website>1</show_in_website>
785
- <show_in_store>0</show_in_store>
786
- </sort_order>
787
- <cash_express_checkout>
788
- <label>Cash Express checkout</label>
789
- <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>
790
- <frontend_type>select</frontend_type>
791
- <source_model>adminhtml/system_config_source_yesno</source_model>
792
- <sort_order>39</sort_order>
793
- <show_in_default>1</show_in_default>
794
- <show_in_website>1</show_in_website>
795
- <show_in_store>1</show_in_store>
796
- </cash_express_checkout>
797
- <cash_drawer>
798
- <label>Open Cash Drawer</label>
799
- <comment>Open the Cash drawer if you connect this to your printer this works for all Epson ePOS-Device printers</comment>
800
- <frontend_type>select</frontend_type>
801
- <source_model>adminhtml/system_config_source_yesno</source_model>
802
- <sort_order>40</sort_order>
803
- <show_in_default>1</show_in_default>
804
- <show_in_website>1</show_in_website>
805
- <show_in_store>1</show_in_store>
806
- </cash_drawer>
807
- <cash_drawer_printer_ip>
808
- <label>IP address printer</label>
809
- <comment>Enter here the IP address of the printer where the cash drawer is connected to</comment>
810
- <frontend_type>text</frontend_type>
811
- <sort_order>41</sort_order>
812
- <show_in_default>1</show_in_default>
813
- <show_in_website>1</show_in_website>
814
- <show_in_store>1</show_in_store>
815
- <depends><cash_drawer>1</cash_drawer></depends>
816
- </cash_drawer_printer_ip>
817
- <cash_drawer_printer_port>
818
- <label>Printer port</label>
819
- <comment>Enter here the port number of the printer where the cash drawer is connected to</comment>
820
- <frontend_type>text</frontend_type>
821
- <sort_order>42</sort_order>
822
- <show_in_default>1</show_in_default>
823
- <show_in_website>1</show_in_website>
824
- <show_in_store>1</show_in_store>
825
- <depends><cash_drawer>1</cash_drawer></depends>
826
- </cash_drawer_printer_port>
827
- <cash_drawer_printer_device_id>
828
- <label>Printer Device ID</label>
829
- <comment>Enter here the deviceID of the printer where the cash drawer is connected to</comment>
830
- <frontend_type>text</frontend_type>
831
- <sort_order>43</sort_order>
832
- <show_in_default>1</show_in_default>
833
- <show_in_website>1</show_in_website>
834
- <show_in_store>1</show_in_store>
835
- <depends><cash_drawer>1</cash_drawer></depends>
836
- </cash_drawer_printer_device_id>
837
- <ip_filter>
838
- <label>IP filter</label>
839
- <comment>Enable IP filter let's you define an IP range when this payment method is visable</comment>
840
  <frontend_type>select</frontend_type>
841
  <source_model>adminhtml/system_config_source_yesno</source_model>
842
- <sort_order>45</sort_order>
843
- <show_in_default>1</show_in_default>
844
- <show_in_website>1</show_in_website>
845
- <show_in_store>1</show_in_store>
846
- </ip_filter>
847
- <ip_filter_from>
848
- <label>IP From</label>
849
- <frontend_type>text</frontend_type>
850
- <source_model>adminhtml/system_config_source_yesno</source_model>
851
- <sort_order>46</sort_order>
852
  <show_in_default>1</show_in_default>
853
  <show_in_website>1</show_in_website>
854
  <show_in_store>1</show_in_store>
855
- <depends><ip_filter>1</ip_filter></depends>
856
- </ip_filter_from>
857
- <ip_filter_to>
858
- <label>IP To</label>
859
  <frontend_type>text</frontend_type>
860
- <source_model>adminhtml/system_config_source_yesno</source_model>
861
- <sort_order>47</sort_order>
862
- <show_in_default>1</show_in_default>
863
- <show_in_website>1</show_in_website>
864
- <show_in_store>1</show_in_store>
865
- <depends><ip_filter>1</ip_filter></depends>
866
- </ip_filter_to>
867
- <visible_type>
868
- <label>Visible in:</label>
869
- <frontend_type>select</frontend_type>
870
- <source_model>adyen/source_VisibleType</source_model>
871
- <sort_order>80</sort_order>
872
- <comment>Where do you want to show this payment method in the backend of magento or in the frontend for the shoppers</comment>
873
  <show_in_default>1</show_in_default>
874
  <show_in_website>1</show_in_website>
875
  <show_in_store>1</show_in_store>
876
- </visible_type>
 
 
 
 
 
 
 
 
 
 
877
  <allowspecific translate="label">
878
- <label>Payment to applicable countries</label>
879
  <frontend_type>allowspecific</frontend_type>
880
- <sort_order>90</sort_order>
881
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
882
  <show_in_default>1</show_in_default>
883
  <show_in_website>1</show_in_website>
884
  <show_in_store>1</show_in_store>
885
  </allowspecific>
886
  <specificcountry translate="label">
887
- <label>Payment to Specific countries</label>
888
  <frontend_type>multiselect</frontend_type>
889
- <sort_order>100</sort_order>
890
  <source_model>adminhtml/system_config_source_country</source_model>
891
  <show_in_default>1</show_in_default>
892
  <show_in_website>1</show_in_website>
@@ -894,15 +1072,17 @@
894
  <depends><allowspecific>1</allowspecific></depends>
895
  </specificcountry>
896
  </fields>
897
- </adyen_cash>
898
  <!-- @Openinvoice only -->
899
  <adyen_openinvoice translate="label" module="adyen">
900
- <label>Adyen OpenInvoice</label>
901
  <frontend_type>text</frontend_type>
902
- <sort_order>330</sort_order>
903
  <show_in_default>1</show_in_default>
904
  <show_in_website>1</show_in_website>
905
  <show_in_store>1</show_in_store>
 
 
906
  <fields>
907
  <active translate="label">
908
  <label>Enabled</label>
@@ -923,11 +1103,12 @@
923
  </title>
924
  <sort_order translate="label">
925
  <label>Sort Order</label>
 
926
  <frontend_type>text</frontend_type>
927
  <sort_order>25</sort_order>
928
  <show_in_default>1</show_in_default>
929
  <show_in_website>1</show_in_website>
930
- <show_in_store>0</show_in_store>
931
  </sort_order>
932
  <openinvoicetypes translate="label">
933
  <label>OpenInvoice Type</label>
@@ -975,8 +1156,8 @@
975
  <validate>validate-number</validate>
976
  </fee>
977
  <different_address_disable>
978
- <label>Disable on Different Address</label>
979
- <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>
980
  <frontend_type>select</frontend_type>
981
  <source_model>adminhtml/system_config_source_yesno</source_model>
982
  <sort_order>39</sort_order>
@@ -986,7 +1167,7 @@
986
  </different_address_disable>
987
  <failed_attempt_disable>
988
  <label>Disable this payment method if first attempt is refused</label>
989
- <comment>If the first attempt is refused don't show this as an payment option for the current quote</comment>
990
  <frontend_type>select</frontend_type>
991
  <source_model>adminhtml/system_config_source_yesno</source_model>
992
  <sort_order>45</sort_order>
@@ -995,7 +1176,7 @@
995
  <show_in_store>1</show_in_store>
996
  </failed_attempt_disable>
997
  <allowspecific translate="label">
998
- <label>Payment to applicable countries</label>
999
  <frontend_type>allowspecific</frontend_type>
1000
  <sort_order>49</sort_order>
1001
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
@@ -1004,7 +1185,7 @@
1004
  <show_in_store>1</show_in_store>
1005
  </allowspecific>
1006
  <specificcountry translate="label">
1007
- <label>Payment to Specific countries</label>
1008
  <frontend_type>multiselect</frontend_type>
1009
  <sort_order>50</sort_order>
1010
  <source_model>adminhtml/system_config_source_country</source_model>
@@ -1015,14 +1196,16 @@
1015
  </specificcountry>
1016
  </fields>
1017
  </adyen_openinvoice>
1018
- <!-- @CC only -->
1019
- <adyen_cc translate="label" module="adyen">
1020
- <label>Adyen CC</label>
1021
  <frontend_type>text</frontend_type>
1022
- <sort_order>340</sort_order>
1023
  <show_in_default>1</show_in_default>
1024
  <show_in_website>1</show_in_website>
1025
  <show_in_store>1</show_in_store>
 
 
1026
  <fields>
1027
  <active translate="label">
1028
  <label>Enabled</label>
@@ -1043,61 +1226,46 @@
1043
  </title>
1044
  <sort_order translate="label">
1045
  <label>Sort Order</label>
 
1046
  <frontend_type>text</frontend_type>
1047
  <sort_order>25</sort_order>
1048
  <show_in_default>1</show_in_default>
1049
  <show_in_website>1</show_in_website>
1050
- <show_in_store>0</show_in_store>
1051
- </sort_order>
1052
- <cctypes translate="label">
1053
- <label>Credit Card Types</label>
1054
- <frontend_type>multiselect</frontend_type>
1055
- <source_model>adyen/source_ccType</source_model>
1056
- <sort_order>40</sort_order>
1057
- <show_in_default>1</show_in_default>
1058
- <show_in_website>1</show_in_website>
1059
  <show_in_store>1</show_in_store>
1060
- </cctypes>
1061
- <cse_enabled translate="label">
1062
- <label>Enable Client-Side Encryption</label>
1063
  <frontend_type>select</frontend_type>
1064
  <source_model>adminhtml/system_config_source_yesno</source_model>
1065
- <sort_order>60</sort_order>
1066
- <show_in_default>1</show_in_default>
1067
- <show_in_website>1</show_in_website>
1068
- <show_in_store>1</show_in_store>
1069
- </cse_enabled>
1070
- <cse_publickey_test translate="label">
1071
- <label>Client-Side Encryption Public Key For Test</label>
1072
- <frontend_type>textarea</frontend_type>
1073
- <sort_order>70</sort_order>
1074
  <show_in_default>1</show_in_default>
1075
  <show_in_website>1</show_in_website>
1076
  <show_in_store>1</show_in_store>
1077
- <depends><cse_enabled>1</cse_enabled></depends>
1078
- </cse_publickey_test>
1079
- <cse_publickey translate="label">
1080
- <label>Client-Side Encryption Public Key For Live</label>
1081
- <frontend_type>textarea</frontend_type>
1082
- <sort_order>71</sort_order>
 
1083
  <show_in_default>1</show_in_default>
1084
  <show_in_website>1</show_in_website>
1085
  <show_in_store>1</show_in_store>
1086
- <depends><cse_enabled>1</cse_enabled></depends>
1087
- </cse_publickey>
1088
  <allowspecific translate="label">
1089
- <label>Payment to applicable countries</label>
1090
  <frontend_type>allowspecific</frontend_type>
1091
- <sort_order>90</sort_order>
1092
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1093
  <show_in_default>1</show_in_default>
1094
  <show_in_website>1</show_in_website>
1095
  <show_in_store>1</show_in_store>
1096
  </allowspecific>
1097
  <specificcountry translate="label">
1098
- <label>Payment to Specific countries</label>
1099
  <frontend_type>multiselect</frontend_type>
1100
- <sort_order>100</sort_order>
1101
  <source_model>adminhtml/system_config_source_country</source_model>
1102
  <show_in_default>1</show_in_default>
1103
  <show_in_website>1</show_in_website>
@@ -1105,228 +1273,323 @@
1105
  <depends><allowspecific>1</allowspecific></depends>
1106
  </specificcountry>
1107
  <visible_type>
1108
- <label>Visible in:</label>
1109
  <frontend_type>select</frontend_type>
1110
  <source_model>adyen/source_VisibleType</source_model>
1111
- <sort_order>101</sort_order>
1112
- <comment>Where do you want to show this payment method in the backend of magento or in the frontend for the shoppers</comment>
1113
  <show_in_default>1</show_in_default>
1114
  <show_in_website>1</show_in_website>
1115
  <show_in_store>1</show_in_store>
1116
  </visible_type>
1117
- <enable_moto>
1118
- <label>Enable MOTO for backend orders</label>
1119
- <frontend_type>select</frontend_type>
1120
- <source_model>adminhtml/system_config_source_yesno</source_model>
1121
- <sort_order>105</sort_order>
1122
- <show_in_default>1</show_in_default>
1123
- <show_in_website>1</show_in_website>
1124
- <show_in_store>1</show_in_store>
1125
- <comment><![CDATA[Important you have to activate MOTO for your acocunt contact magento@adyen.com. For more information <a target="_blank" href="https://www.adyen.com/dam/documentation/manuals/MotoManual.pdf">check our MOTO manual</a>]]></comment>
1126
- </enable_moto>
1127
- <enable_installments translate="label">
1128
- <label>Enable Installments</label>
 
 
 
1129
  <frontend_type>select</frontend_type>
1130
  <source_model>adminhtml/system_config_source_yesno</source_model>
1131
- <sort_order>110</sort_order>
1132
  <show_in_default>1</show_in_default>
1133
  <show_in_website>1</show_in_website>
1134
  <show_in_store>1</show_in_store>
1135
- </enable_installments>
1136
- <installments translate="label">
1137
- <label>Installments default</label>
1138
- <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
1139
- <backend_model>adyen/system_config_backend_installments</backend_model>
1140
- <sort_order>120</sort_order>
1141
  <show_in_default>1</show_in_default>
1142
  <show_in_website>1</show_in_website>
1143
  <show_in_store>1</show_in_store>
1144
- <comments>This is the fallback if specific credit card type has no installments configured</comments>
1145
- </installments>
1146
- <installments_AE translate="label">
1147
- <label>Installments For American Express</label>
1148
- <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
1149
- <backend_model>adyen/system_config_backend_installments</backend_model>
1150
- <sort_order>130</sort_order>
1151
  <show_in_default>1</show_in_default>
1152
  <show_in_website>1</show_in_website>
1153
  <show_in_store>1</show_in_store>
1154
- </installments_AE>
1155
- <installments_VI translate="label">
1156
- <label>Installments For Visa</label>
1157
- <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
1158
- <backend_model>adyen/system_config_backend_installments</backend_model>
1159
- <sort_order>140</sort_order>
1160
  <show_in_default>1</show_in_default>
1161
  <show_in_website>1</show_in_website>
1162
- <show_in_store>1</show_in_store>
1163
- </installments_VI>
1164
- <installments_MC translate="label">
1165
- <label>Installments For Master Card</label>
1166
- <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
1167
- <backend_model>adyen/system_config_backend_installments</backend_model>
1168
- <sort_order>150</sort_order>
1169
  <show_in_default>1</show_in_default>
1170
  <show_in_website>1</show_in_website>
1171
  <show_in_store>1</show_in_store>
1172
- </installments_MC>
1173
- <installments_DI translate="label">
1174
- <label>Installments For Discover</label>
1175
- <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
1176
- <backend_model>adyen/system_config_backend_installments</backend_model>
1177
- <sort_order>160</sort_order>
 
1178
  <show_in_default>1</show_in_default>
1179
  <show_in_website>1</show_in_website>
1180
  <show_in_store>1</show_in_store>
1181
- </installments_DI>
1182
- <installments_DC translate="label">
1183
- <label>Installments For Diners Club</label>
1184
- <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
1185
- <backend_model>adyen/system_config_backend_installments</backend_model>
1186
- <sort_order>170</sort_order>
 
1187
  <show_in_default>1</show_in_default>
1188
  <show_in_website>1</show_in_website>
1189
- <show_in_store>1</show_in_store>
1190
- </installments_DC>
1191
- <installments_MO translate="label">
1192
- <label>Installments For Maestro</label>
1193
- <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
1194
- <backend_model>adyen/system_config_backend_installments</backend_model>
1195
- <sort_order>180</sort_order>
 
1196
  <show_in_default>1</show_in_default>
1197
  <show_in_website>1</show_in_website>
1198
- <show_in_store>1</show_in_store>
1199
- </installments_MO>
1200
- <installments_JCB translate="label">
1201
- <label>Installments For JCB</label>
1202
- <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
1203
- <backend_model>adyen/system_config_backend_installments</backend_model>
1204
- <sort_order>190</sort_order>
1205
  <show_in_default>1</show_in_default>
1206
  <show_in_website>1</show_in_website>
1207
  <show_in_store>1</show_in_store>
1208
- </installments_JCB>
1209
- <installments_ELO translate="label">
1210
- <label>Installments For Elo</label>
1211
- <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
1212
- <backend_model>adyen/system_config_backend_installments</backend_model>
1213
- <sort_order>200</sort_order>
1214
  <show_in_default>1</show_in_default>
1215
  <show_in_website>1</show_in_website>
1216
  <show_in_store>1</show_in_store>
1217
- </installments_ELO>
1218
- <installments_hipercard translate="label">
1219
- <label>Installments For Hipercard</label>
1220
- <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
1221
- <backend_model>adyen/system_config_backend_installments</backend_model>
1222
- <sort_order>210</sort_order>
 
 
1223
  <show_in_default>1</show_in_default>
1224
  <show_in_website>1</show_in_website>
1225
  <show_in_store>1</show_in_store>
1226
- </installments_hipercard>
1227
  </fields>
1228
- </adyen_cc>
1229
- <adyen_oneclick>
1230
- <label>Adyen OneClick</label>
 
1231
  <frontend_type>text</frontend_type>
1232
- <sort_order>350</sort_order>
1233
  <show_in_default>1</show_in_default>
1234
  <show_in_website>1</show_in_website>
1235
  <show_in_store>1</show_in_store>
 
 
1236
  <fields>
1237
  <active translate="label">
1238
  <label>Enabled</label>
1239
  <frontend_type>select</frontend_type>
1240
  <source_model>adminhtml/system_config_source_yesno</source_model>
1241
- <sort_order>1</sort_order>
1242
  <show_in_default>1</show_in_default>
1243
  <show_in_website>1</show_in_website>
1244
  <show_in_store>1</show_in_store>
1245
- <comment>One Click payments only work if you have Adyen CC enabled</comment>
1246
  </active>
1247
  <title translate="label">
1248
  <label>Title</label>
1249
  <frontend_type>text</frontend_type>
1250
- <sort_order>2</sort_order>
1251
  <show_in_default>1</show_in_default>
1252
  <show_in_website>1</show_in_website>
1253
  <show_in_store>1</show_in_store>
1254
  </title>
1255
- </fields>
1256
- </adyen_oneclick>
1257
- <!-- @Elv only -->
1258
- <adyen_elv translate="label" module="adyen">
1259
- <label>Adyen ELV</label>
1260
- <frontend_type>text</frontend_type>
1261
- <sort_order>360</sort_order>
1262
- <show_in_default>1</show_in_default>
1263
- <show_in_website>1</show_in_website>
1264
- <show_in_store>1</show_in_store>
1265
- <fields>
1266
- <active translate="label">
1267
- <label>Enabled</label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1268
  <frontend_type>select</frontend_type>
1269
  <source_model>adminhtml/system_config_source_yesno</source_model>
1270
- <sort_order>10</sort_order>
1271
  <show_in_default>1</show_in_default>
1272
  <show_in_website>1</show_in_website>
1273
  <show_in_store>1</show_in_store>
1274
- </active>
1275
- <title translate="label">
1276
- <label>Title</label>
 
 
 
 
 
 
 
 
 
 
1277
  <frontend_type>text</frontend_type>
1278
- <sort_order>20</sort_order>
 
1279
  <show_in_default>1</show_in_default>
1280
  <show_in_website>1</show_in_website>
1281
  <show_in_store>1</show_in_store>
1282
- </title>
1283
- <sort_order translate="label">
1284
- <label>Sort Order</label>
 
1285
  <frontend_type>text</frontend_type>
1286
- <sort_order>25</sort_order>
 
1287
  <show_in_default>1</show_in_default>
1288
  <show_in_website>1</show_in_website>
1289
- <show_in_store>0</show_in_store>
1290
- </sort_order>
 
1291
  <allowspecific translate="label">
1292
- <label>Payment to applicable countries</label>
1293
  <frontend_type>allowspecific</frontend_type>
1294
- <sort_order>50</sort_order>
1295
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1296
  <show_in_default>1</show_in_default>
1297
  <show_in_website>1</show_in_website>
1298
  <show_in_store>1</show_in_store>
1299
  </allowspecific>
1300
  <specificcountry translate="label">
1301
- <label>Payment to Specific countries</label>
1302
  <frontend_type>multiselect</frontend_type>
1303
- <sort_order>60</sort_order>
1304
  <source_model>adminhtml/system_config_source_country</source_model>
1305
  <show_in_default>1</show_in_default>
1306
  <show_in_website>1</show_in_website>
1307
  <show_in_store>1</show_in_store>
1308
  <depends><allowspecific>1</allowspecific></depends>
1309
  </specificcountry>
1310
- <visible_type>
1311
- <label>Visible in:</label>
1312
- <frontend_type>select</frontend_type>
1313
- <source_model>adyen/source_VisibleType</source_model>
1314
- <sort_order>70</sort_order>
1315
- <comment>Where do you want to show this payment method in the backend of magento or in the frontend for the shoppers</comment>
1316
- <show_in_default>1</show_in_default>
1317
- <show_in_website>1</show_in_website>
1318
- <show_in_store>1</show_in_store>
1319
- </visible_type>
1320
  </fields>
1321
- </adyen_elv>
1322
- <!-- @boleto only -->
1323
- <adyen_boleto translate="label" module="adyen">
1324
- <label>Adyen Boleto</label>
1325
  <frontend_type>text</frontend_type>
1326
- <sort_order>370</sort_order>
1327
  <show_in_default>1</show_in_default>
1328
  <show_in_website>1</show_in_website>
1329
  <show_in_store>1</show_in_store>
 
 
1330
  <fields>
1331
  <active translate="label">
1332
  <label>Enabled</label>
@@ -1347,99 +1610,143 @@
1347
  </title>
1348
  <sort_order translate="label">
1349
  <label>Sort Order</label>
 
1350
  <frontend_type>text</frontend_type>
1351
- <sort_order>25</sort_order>
1352
  <show_in_default>1</show_in_default>
1353
  <show_in_website>1</show_in_website>
1354
- <show_in_store>0</show_in_store>
1355
  </sort_order>
1356
- <delivery_days translate="label">
1357
- <label>Days for Delivery</label>
1358
- <comment>How many days to be added to the current date for delivery. ONLY numbers allowed.</comment>
1359
- <frontend_type>text</frontend_type>
1360
- <sort_order>30</sort_order>
 
1361
  <show_in_default>1</show_in_default>
1362
  <show_in_website>1</show_in_website>
1363
- <show_in_store>0</show_in_store>
1364
- </delivery_days>
1365
- <boletotypes translate="label">
1366
- <label>Boleto Types</label>
1367
- <frontend_type>multiselect</frontend_type>
1368
- <source_model>adyen/source_boletoType</source_model>
1369
- <sort_order>40</sort_order>
 
1370
  <show_in_default>1</show_in_default>
1371
  <show_in_website>1</show_in_website>
1372
  <show_in_store>1</show_in_store>
1373
- </boletotypes>
1374
- <use_taxvat>
1375
- <label>Use taxvat for CPF or CNPJ</label>
1376
- <comment>If you use taxvat for the CPF/CNPJ field you can then enable this option to auto fill in the Social Security Number</comment>
1377
  <frontend_type>select</frontend_type>
1378
  <source_model>adminhtml/system_config_source_yesno</source_model>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1379
  <sort_order>43</sort_order>
1380
  <show_in_default>1</show_in_default>
1381
  <show_in_website>1</show_in_website>
1382
  <show_in_store>1</show_in_store>
1383
- </use_taxvat>
1384
- <order_underpaid_status translate="label">
1385
- <label>Order status underpaid</label>
1386
- <comment>With Boleto it is possible to pay less than the full amount. Select here the status if this is the case. If you leave this empty it will take the Order status authorised payment as default status</comment>
 
1387
  <frontend_type>select</frontend_type>
1388
- <source_model>adminhtml/system_config_source_order_status_processing</source_model>
1389
  <sort_order>45</sort_order>
1390
  <show_in_default>1</show_in_default>
1391
  <show_in_website>1</show_in_website>
1392
- <show_in_store>0</show_in_store>
1393
- </order_underpaid_status>
1394
- <order_overpaid_status translate="label">
1395
- <label>Order status overpaid</label>
1396
- <comment>With Boleto it is possible to pay more than the total amount. Select here the status if this is the case. If you leave this empty it will take the Order status authorised payment as default status</comment>
1397
- <frontend_type>select</frontend_type>
1398
- <source_model>adminhtml/system_config_source_order_status_processing</source_model>
1399
  <sort_order>46</sort_order>
1400
  <show_in_default>1</show_in_default>
1401
  <show_in_website>1</show_in_website>
1402
- <show_in_store>0</show_in_store>
1403
- </order_overpaid_status>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1404
  <allowspecific translate="label">
1405
- <label>Payment to applicable countries</label>
1406
  <frontend_type>allowspecific</frontend_type>
1407
- <sort_order>50</sort_order>
1408
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1409
  <show_in_default>1</show_in_default>
1410
  <show_in_website>1</show_in_website>
1411
  <show_in_store>1</show_in_store>
1412
  </allowspecific>
1413
  <specificcountry translate="label">
1414
- <label>Payment to Specific countries</label>
1415
  <frontend_type>multiselect</frontend_type>
1416
- <sort_order>60</sort_order>
1417
  <source_model>adminhtml/system_config_source_country</source_model>
1418
  <show_in_default>1</show_in_default>
1419
  <show_in_website>1</show_in_website>
1420
  <show_in_store>1</show_in_store>
1421
  <depends><allowspecific>1</allowspecific></depends>
1422
  </specificcountry>
1423
- <visible_type>
1424
- <label>Visible in:</label>
1425
- <frontend_type>select</frontend_type>
1426
- <source_model>adyen/source_VisibleType</source_model>
1427
- <sort_order>70</sort_order>
1428
- <comment>Where do you want to show this payment method in the backend of magento or in the frontend for the shoppers</comment>
1429
- <show_in_default>1</show_in_default>
1430
- <show_in_website>1</show_in_website>
1431
- <show_in_store>1</show_in_store>
1432
- </visible_type>
1433
  </fields>
1434
- </adyen_boleto>
1435
- <!-- @SEPA only -->
1436
- <adyen_sepa translate="label" module="adyen">
1437
- <label>Adyen SEPA</label>
1438
  <frontend_type>text</frontend_type>
1439
- <sort_order>380</sort_order>
1440
  <show_in_default>1</show_in_default>
1441
  <show_in_website>1</show_in_website>
1442
  <show_in_store>1</show_in_store>
 
 
1443
  <fields>
1444
  <active translate="label">
1445
  <label>Enabled</label>
@@ -1460,70 +1767,71 @@
1460
  </title>
1461
  <sort_order translate="label">
1462
  <label>Sort Order</label>
 
1463
  <frontend_type>text</frontend_type>
1464
  <sort_order>25</sort_order>
1465
  <show_in_default>1</show_in_default>
1466
  <show_in_website>1</show_in_website>
1467
- <show_in_store>0</show_in_store>
1468
  </sort_order>
1469
- <validate_iban>
1470
- <label>Validate Iban</label>
1471
- <frontend_type>select</frontend_type>
1472
- <source_model>adminhtml/system_config_source_yesno</source_model>
1473
  <sort_order>30</sort_order>
1474
- <comment>This is a basic validation on the Iban number.</comment>
1475
  <show_in_default>1</show_in_default>
1476
  <show_in_website>1</show_in_website>
1477
  <show_in_store>1</show_in_store>
1478
- </validate_iban>
1479
- <flow>
1480
- <label>Flow</label>
1481
- <frontend_type>select</frontend_type>
1482
- <source_model>adyen/source_SepaFlow</source_model>
1483
- <sort_order>30</sort_order>
1484
- <comment>If you are not sure just use the default => Sales</comment>
1485
  <show_in_default>1</show_in_default>
1486
  <show_in_website>1</show_in_website>
1487
  <show_in_store>1</show_in_store>
1488
- </flow>
1489
- <allowspecific translate="label">
1490
- <label>Payment to applicable countries</label>
1491
- <frontend_type>allowspecific</frontend_type>
 
1492
  <sort_order>50</sort_order>
1493
- <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1494
  <show_in_default>1</show_in_default>
1495
  <show_in_website>1</show_in_website>
1496
  <show_in_store>1</show_in_store>
1497
- </allowspecific>
1498
- <specificcountry translate="label">
1499
- <label>Payment to Specific countries</label>
1500
- <frontend_type>multiselect</frontend_type>
 
1501
  <sort_order>60</sort_order>
1502
- <source_model>adminhtml/system_config_source_country</source_model>
1503
  <show_in_default>1</show_in_default>
1504
  <show_in_website>1</show_in_website>
1505
  <show_in_store>1</show_in_store>
1506
- <depends><allowspecific>1</allowspecific></depends>
1507
- </specificcountry>
1508
  <visible_type>
1509
- <label>Visible in:</label>
1510
  <frontend_type>select</frontend_type>
1511
  <source_model>adyen/source_VisibleType</source_model>
1512
  <sort_order>70</sort_order>
1513
- <comment>Where do you want to show this payment method in the backend of magento or in the frontend for the shoppers</comment>
1514
  <show_in_default>1</show_in_default>
1515
  <show_in_website>1</show_in_website>
1516
  <show_in_store>1</show_in_store>
1517
  </visible_type>
1518
  </fields>
1519
- </adyen_sepa>
1520
- <adyen_pay_by_mail translate="label" module="adyen">
1521
- <label>Adyen Pay By Mail</label>
 
1522
  <frontend_type>text</frontend_type>
1523
- <sort_order>390</sort_order>
1524
  <show_in_default>1</show_in_default>
1525
  <show_in_website>1</show_in_website>
1526
  <show_in_store>1</show_in_store>
 
 
1527
  <fields>
1528
  <active translate="label">
1529
  <label>Enabled</label>
@@ -1544,61 +1852,45 @@
1544
  </title>
1545
  <sort_order translate="label">
1546
  <label>Sort Order</label>
 
1547
  <frontend_type>text</frontend_type>
1548
  <sort_order>25</sort_order>
1549
  <show_in_default>1</show_in_default>
1550
  <show_in_website>1</show_in_website>
1551
- <show_in_store>0</show_in_store>
1552
- </sort_order>
1553
- <session_validity>
1554
- <label>Session Validity</label>
1555
- <comment>How many days do you want this payment page to be active</comment>
1556
- <frontend_type>text</frontend_type>
1557
- <sort_order>30</sort_order>
1558
- <show_in_default>1</show_in_default>
1559
- <show_in_website>1</show_in_website>
1560
- <show_in_store>1</show_in_store>
1561
- </session_validity>
1562
- <skin_code translate="label">
1563
- <label>Skin Code</label>
1564
- <comment>The skin code you want to use levae this empty if you want to use the same as Adyen HPP settings</comment>
1565
- <frontend_type>text</frontend_type>
1566
- <sort_order>40</sort_order>
1567
- <show_in_default>1</show_in_default>
1568
- <show_in_website>1</show_in_website>
1569
  <show_in_store>1</show_in_store>
1570
- </skin_code>
1571
- <secret_wordt translate="label">
1572
- <label>HMAC Key for Test</label>
1573
- <comment>Should match with the HMAC test key in the Adyen backoffice. Fill this in if you are using a different skin then defined in Adyen HPP</comment>
1574
- <frontend_type>text</frontend_type>
1575
  <sort_order>50</sort_order>
 
1576
  <show_in_default>1</show_in_default>
1577
  <show_in_website>1</show_in_website>
1578
  <show_in_store>1</show_in_store>
1579
- </secret_wordt>
1580
- <secret_wordp translate="label">
1581
- <label>HMAC Key for Live</label>
1582
- <comment>Should match with the HMAC live key in the Adyen backoffice. Fill this in if you are using a different skin then defined in Adyen HPP</comment>
1583
- <frontend_type>text</frontend_type>
1584
  <sort_order>60</sort_order>
 
1585
  <show_in_default>1</show_in_default>
1586
  <show_in_website>1</show_in_website>
1587
  <show_in_store>1</show_in_store>
1588
- </secret_wordp>
 
1589
  <visible_type>
1590
- <label>Visible in:</label>
1591
  <frontend_type>select</frontend_type>
1592
  <source_model>adyen/source_VisibleType</source_model>
1593
  <sort_order>70</sort_order>
1594
- <comment>Where do you want to show this payment method in the backend of magento or in the frontend for the shoppers</comment>
1595
  <show_in_default>1</show_in_default>
1596
  <show_in_website>1</show_in_website>
1597
  <show_in_store>1</show_in_store>
1598
  </visible_type>
1599
  </fields>
1600
- </adyen_pay_by_mail>
1601
  </groups>
1602
  </payment>
1603
  </sections>
1604
- </config>
32
  <groups>
33
  <!-- @default -->
34
  <adyen_abstract translate="label" module="adyen">
35
+ <label>Default Settings</label>
36
  <frontend_type>text</frontend_type>
37
  <sort_order>300</sort_order>
38
+ <frontend_class>complex</frontend_class>
39
  <show_in_default>1</show_in_default>
40
  <show_in_website>1</show_in_website>
41
  <show_in_store>1</show_in_store>
42
+ <frontend_model>adyen/adminhtml_system_config_fieldset_method</frontend_model>
43
+ <activity_path/>
 
 
 
 
 
44
  <fields>
45
+ <adyen_getting_started type="group" translate="label comment tooltip">
46
+ <label><![CDATA[Documentation & Support]]></label>
 
 
 
 
 
 
 
 
 
 
47
  <frontend_type>text</frontend_type>
 
 
 
 
 
 
 
 
 
 
48
  <show_in_default>1</show_in_default>
49
  <show_in_website>1</show_in_website>
50
  <show_in_store>1</show_in_store>
51
+ <sort_order>0</sort_order>
52
+ <frontend_class>adyen-payment-methods with-button</frontend_class>
53
+ <frontend_model>adyen/adminhtml_system_config_fieldset_gettingstarted</frontend_model>
54
+ <comment><![CDATA[
55
+ <ul>
56
+ <li><a target="_blank" href="http://vimeo.com/94005128">Instructional video on how to set up the Adyen Magento plugin</a></a>
57
+ <li><a target="_blank" href="https://www.adyen.com/dam/documentation/manuals/MagentoQuickIntegrationManual.pdf">Download the Quick Quick Integration Guide</a></li>
58
+ <li><a target="_blank" href="https://www.adyen.com/dam/documentation/manuals/AdyenMagentoExtension.pdf">Download the more advanced manual</a></li>
59
+ <li><a target="_blank" href="https://www.adyen.com/home/payment-services/plug-ins/magento#form"><strong>Sign</strong> up for a test account</a></li>
60
+ <li>The latest version of the <a target="_blank" href="https://github.com/adyenpayments/magento/releases">Adyen Magento module is also available through GitHub</a>.</li>
61
+ </ul>
62
+ <p> In the test modus you nee to use test cards. <a target="_blank" href="http://adyen.com/test-card-numbers">Test cards can be found here</a>
63
+ <p>You can find this in the Adyen back-office. The Adyen back-office can be found on <a target="_blank" href="https://ca-test.adyen.com">https://ca-test.adyen.com</a> for test or <a target="_blank" href="https://ca-live.adyen.com">https://ca-live.adyen.com</a> for live.</p>
64
+ <p>If you have any further questions, please visit the <a target="_blank" href="http://www.adyen.com">Adyen.com</a> website or email <a href="mailto:magento@adyen.com">magento@adyen.com</a>.</p>
65
+ ]]>
66
+ </comment>
67
+ <fields>
68
+ <version translate="label">
69
+ <label>Extension version</label>
70
+ <frontend_type>label</frontend_type>
71
+ <frontend_model>adyen/adminhtml_version</frontend_model>
72
+ <sort_order>0</sort_order>
73
+ <show_in_default>1</show_in_default>
74
+ <show_in_website>1</show_in_website>
75
+ <show_in_store>1</show_in_store>
76
+ </version>
77
+ </fields>
78
+ </adyen_getting_started>
79
+
80
+ <adyen_required_settings type="group" translate="label comment tooltip">
81
+ <label>Required Settings</label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  <frontend_type>text</frontend_type>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  <show_in_default>1</show_in_default>
84
  <show_in_website>1</show_in_website>
85
  <show_in_store>1</show_in_store>
86
+ <sort_order>5</sort_order>
87
+ <frontend_model>adyen/adminhtml_system_config_fieldset_expanded</frontend_model>
88
+ <fields>
89
+ <merchantAccount translate="label comment tooltip">
90
+ <label>Merchant Account</label>
91
+ <tooltip><![CDATA[The merchant account identifier you want to process the (transaction) request with. Find this at the top of the screen in the Adyen Customer Area, where you will see [YourCompanyAccount] > [YourMerchantAccount] . Please note that the merchant account is different from the company account; a company account can have one or more merchant accounts.]]></tooltip>
92
+ <frontend_type>text</frontend_type>
93
+ <config_path>payment/adyen_abstract/merchantAccount</config_path>
94
+ <sort_order>10</sort_order>
95
+ <show_in_default>1</show_in_default>
96
+ <show_in_website>1</show_in_website>
97
+ <show_in_store>1</show_in_store>
98
+ </merchantAccount>
99
+ <demoMode translate="label">
100
+ <label>Test/Production Mode</label>
101
+ <frontend_type>select</frontend_type>
102
+ <config_path>payment/adyen_abstract/demoMode</config_path>
103
+ <source_model>adyen/source_DemoModes</source_model>
104
+ <sort_order>20</sort_order>
105
+ <show_in_default>1</show_in_default>
106
+ <show_in_website>1</show_in_website>
107
+ <show_in_store>1</show_in_store>
108
+ <tooltip><![CDATA[ In the test mode you must use test cards. See section Documentation & Support for the link to the test cards]]></tooltip>
109
+ </demoMode>
110
+ <notification_username translate="label">
111
+ <label>Notification User Name</label>
112
+ <tooltip>Set a user name of your choice here and copy it over to Adyen Customer Area => Settings => Server Communication => Standard Notification => User Name.</tooltip>
113
+ <frontend_type>text</frontend_type>
114
+ <config_path>payment/adyen_abstract/notification_username</config_path>
115
+ <sort_order>40</sort_order>
116
+ <show_in_default>1</show_in_default>
117
+ <show_in_website>1</show_in_website>
118
+ <show_in_store>0</show_in_store>
119
+ </notification_username>
120
+ <notification_password translate="label">
121
+ <label>Notification Password</label>
122
+ <tooltip>Set a password of your choice and copy it over to Adyen Customer Area => Settings => Server Communication => Standard Notification => Password.</tooltip>
123
+ <frontend_type>obscure</frontend_type>
124
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
125
+ <config_path>payment/adyen_abstract/notification_password</config_path>
126
+ <sort_order>50</sort_order>
127
+ <show_in_default>1</show_in_default>
128
+ <show_in_website>1</show_in_website>
129
+ <show_in_store>0</show_in_store>
130
+ </notification_password>
131
+ <ws_username_test translate="label">
132
+ <label>Test: Web Service User Name</label>
133
+ <tooltip>Find this in your Test Adyen Customer Area => Settings => Users => System. Normally this will be ws@Company.YourCompanyAccount. Copy and Paste the exact ws user name here.</tooltip>
134
+ <config_path>payment/adyen_abstract/ws_username_test</config_path>
135
+ <frontend_type>text</frontend_type>
136
+ <sort_order>70</sort_order>
137
+ <show_in_default>1</show_in_default>
138
+ <show_in_website>1</show_in_website>
139
+ <show_in_store>0</show_in_store>
140
+ </ws_username_test>
141
+ <ws_password_test translate="label">
142
+ <label>Test: Web Service Password</label>
143
+ <tooltip>Find this in your Test Adyen Customer Area => Settings => Users => System. Click on your web service user and generate a new password. Copy and Paste the exact password here.</tooltip>
144
+ <config_path>payment/adyen_abstract/ws_password_test</config_path>
145
+ <frontend_type>obscure</frontend_type>
146
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
147
+ <sort_order>80</sort_order>
148
+ <show_in_default>1</show_in_default>
149
+ <show_in_website>1</show_in_website>
150
+ <show_in_store>0</show_in_store>
151
+ </ws_password_test>
152
+ <ws_test_button translate="label">
153
+ <label></label>
154
+ <button_label>Test Web Service Credentials for test</button_label>
155
+ <config_path>payment/adyen_abstract/ws_test_button</config_path>
156
+ <modus>test</modus>
157
+ <frontend_model>adyen/adminhtml_system_config_testWebserverConfiguration</frontend_model>
158
+ <sort_order>90</sort_order>
159
+ <show_in_default>1</show_in_default>
160
+ <show_in_website>1</show_in_website>
161
+ <show_in_store></show_in_store>
162
+ </ws_test_button>
163
+ <ws_username_live translate="label">
164
+ <label>Live: Web Service User Name</label>
165
+ <tooltip>This is only applicable if you have a Live account. Find this in your Live Adyen Customer Area => Settings => Users => System. Normally this will be ws@Company.YourCompanyAccount. Copy and Paste the exact ws user name here.</tooltip>
166
+ <config_path>payment/adyen_abstract/ws_username_live</config_path>
167
+ <frontend_type>text</frontend_type>
168
+ <sort_order>100</sort_order>
169
+ <show_in_default>1</show_in_default>
170
+ <show_in_website>1</show_in_website>
171
+ <show_in_store>0</show_in_store>
172
+ </ws_username_live>
173
+ <ws_password_live translate="label">
174
+ <label>Live: Web Service Password</label>
175
+ <label>Live: Web Service Password</label>
176
+ <tooltip>This is only applicable if you have a Live account. Find this in your Live Adyen Customer Area => Settings => Users => System. Click on your web service user and generate a new password. Copy and Paste the exact password here.</tooltip>
177
+ <config_path>payment/adyen_abstract/ws_password_live</config_path>
178
+ <frontend_type>obscure</frontend_type>
179
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
180
+ <sort_order>110</sort_order>
181
+ <show_in_default>1</show_in_default>
182
+ <show_in_website>1</show_in_website>
183
+ <show_in_store>0</show_in_store>
184
+ </ws_password_live>
185
+ <ws_live_button translate="label">
186
+ <label></label>
187
+ <button_label>Test Web Service Credentials for live</button_label>
188
+ <config_path>payment/adyen_abstract/ws_live_button</config_path>
189
+ <modus>live</modus>
190
+ <frontend_model>adyen/adminhtml_system_config_testWebserverConfiguration</frontend_model>
191
+ <sort_order>120</sort_order>
192
+ <show_in_default>1</show_in_default>
193
+ <show_in_website>1</show_in_website>
194
+ </ws_live_button>
195
+ <capture_mode translate="label">
196
+ <label>Capture Delay</label>
197
+ <frontend_type>select</frontend_type>
198
+ <tooltip>Immediate is the default. Set to manual if you want to perform the capture of funds manually later (only affects credit cards and a few alternative payment methods). You need to change this setting as well in Adyen Customer Area => Settings => Merchant Settings => Capture Delay. If you have selected a capture delay of a couple of days in Adyen keep it here on immediate</tooltip>
199
+ <source_model>adyen/source_captureModes</source_model>
200
+ <config_path>payment/adyen_abstract/capture_mode</config_path>
201
+ <sort_order>130</sort_order>
202
+ <show_in_default>1</show_in_default>
203
+ <show_in_website>1</show_in_website>
204
+ <show_in_store>0</show_in_store>
205
+ </capture_mode>
206
+ <order_status translate="label">
207
+ <label>Order status: order creation</label>
208
+ <tooltip>Status given to newly created orders before payment result confirmation via server notifications from Adyen.</tooltip>
209
+ <frontend_type>select</frontend_type>
210
+ <config_path>payment/adyen_abstract/order_status</config_path>
211
+ <source_model>adminhtml/system_config_source_order_status_new</source_model>
212
+ <sort_order>140</sort_order>
213
+ <show_in_default>1</show_in_default>
214
+ <show_in_website>1</show_in_website>
215
+ <show_in_store>0</show_in_store>
216
+ </order_status>
217
+ <payment_pre_authorized>
218
+ <label>Order status: payment authorisation</label>
219
+ <tooltip>Status given to orders after authorisation confirmed by an AUTHORISATION notification from Adyen. Note: an authorisation status via the result URL does not yet trigger this status.</tooltip>
220
+ <frontend_type>select</frontend_type>
221
+ <config_path>payment/adyen_abstract/payment_pre_authorized</config_path>
222
+ <source_model>adminhtml/system_config_source_order_status_newprocessing</source_model>
223
+ <sort_order>150</sort_order>
224
+ <show_in_default>1</show_in_default>
225
+ <show_in_website>1</show_in_website>
226
+ <show_in_store>0</show_in_store>
227
+ <depends><capture_mode>manual</capture_mode></depends>
228
+ </payment_pre_authorized>
229
+ <payment_authorized translate="label">
230
+ <label>Order status: payment confirmed</label>
231
+ <tooltip>Status given to orders after capture result is confirmed by an AUTHORISATION notification (if capture mode = immediate) or a CAPTURE notification (if capture mode = manual capture) from Adyen.</tooltip>
232
+ <frontend_type>select</frontend_type>
233
+ <config_path>payment/adyen_abstract/payment_authorized</config_path>
234
+ <source_model>adminhtml/system_config_source_order_status_processing</source_model>
235
+ <sort_order>160</sort_order>
236
+ <show_in_default>1</show_in_default>
237
+ <show_in_website>1</show_in_website>
238
+ <show_in_store>0</show_in_store>
239
+ </payment_authorized>
240
+ <payment_cancelled translate="label">
241
+ <label>Order status: order cancellation</label>
242
+ <tooltip>Status given to orders after order cancellation is confirmed by a CANCEL_OR_REFUND notification from Adyen. If orders are already invoiced, they cannot be cancelled, but will be refunded instead.</tooltip>
243
+ <frontend_type>select</frontend_type>
244
+ <config_path>payment/adyen_abstract/payment_cancelled</config_path>
245
+ <source_model>adyen/source_cancelModes</source_model>
246
+ <sort_order>170</sort_order>
247
+ <show_in_default>1</show_in_default>
248
+ <show_in_website>1</show_in_website>
249
+ <show_in_store>0</show_in_store>
250
+ </payment_cancelled>
251
+ <debug translate="label">
252
+ <label>Enable debug logging</label>
253
+ <frontend_type>select</frontend_type>
254
+ <config_path>payment/adyen_abstract/debug</config_path>
255
+ <source_model>adminhtml/system_config_source_yesno</source_model>
256
+ <sort_order>180</sort_order>
257
+ <show_in_default>1</show_in_default>
258
+ <show_in_website>1</show_in_website>
259
+ <show_in_store>0</show_in_store>
260
+ </debug>
261
+ </fields>
262
+ </adyen_required_settings>
263
+
264
+ <adyen_order_process type="group" translate="label comment tooltip">
265
+ <label>Advanced: Magento Order Processing</label>
266
  <frontend_type>text</frontend_type>
 
 
 
 
 
 
 
 
 
 
 
267
  <show_in_default>1</show_in_default>
268
  <show_in_website>1</show_in_website>
269
+ <show_in_store>1</show_in_store>
270
+ <sort_order>30</sort_order>
271
+ <frontend_model>adyen/adminhtml_system_config_fieldset_expanded</frontend_model>
272
+ <fields>
273
+ <paypal_capture_mode>
274
+ <label>Use manual capture for PayPal</label>
275
+ <tooltip>Should be on 'No' by default. If you have requested with Adyen Support for your PayPal integration to be on manual capture, set this to 'Yes'.</tooltip>
276
+ <frontend_type>select</frontend_type>
277
+ <source_model>adyen/source_PayPalCaptureModes</source_model>
278
+ <config_path>payment/adyen_abstract/paypal_capture_mode</config_path>
279
+ <sort_order>10</sort_order>
280
+ <show_in_default>1</show_in_default>
281
+ <show_in_website>1</show_in_website>
282
+ <show_in_store>0</show_in_store>
283
+ </paypal_capture_mode>
284
+ <auto_capture_openinvoice>
285
+ <label>Use auto-capture for OpenInvoice payments</label>
286
+ <tooltip>Applicable for Klarna and AfterPay only. By default OpenInvoice is set to manual capture. If you want auto capture you need to contact magento@adyen.com. After approval has been given, then you can set this option to 'Yes'.</tooltip>
287
+ <frontend_type>select</frontend_type>
288
+ <source_model>adminhtml/system_config_source_yesno</source_model>
289
+ <config_path>payment/adyen_abstract/auto_capture_openinvoice</config_path>
290
+ <sort_order>20</sort_order>
291
+ <show_in_default>1</show_in_default>
292
+ <show_in_website>1</show_in_website>
293
+ <show_in_store>0</show_in_store>
294
+ </auto_capture_openinvoice>
295
+ <payment_authorized_virtual>
296
+ <label>Order status: payment capture (virtual products)</label>
297
+ <tooltip>(optional) Select only status assigned to state complete. Leave empty to use the same as normal products</tooltip>
298
+ <frontend_type>select</frontend_type>
299
+ <config_path>payment/adyen_abstract/payment_authorized_virtual</config_path>
300
+ <source_model>adyen/source_status_complete</source_model>
301
+ <sort_order>30</sort_order>
302
+ <show_in_default>1</show_in_default>
303
+ <show_in_website>1</show_in_website>
304
+ <show_in_store>0</show_in_store>
305
+ </payment_authorized_virtual>
306
+ <refund_authorized translate="label">
307
+ <label>Order status: Adyen Refunded</label>
308
+ <tooltip>Status given to order after a (partial) refund has been made on the order. This is triggered when the REFUND notification is received</tooltip>
309
+ <frontend_type>select</frontend_type>
310
+ <config_path>payment/adyen_abstract/refund_authorized</config_path>
311
+ <source_model>adyen/source_status_refund</source_model>
312
+ <sort_order>40</sort_order>
313
+ <show_in_default>1</show_in_default>
314
+ <show_in_website>1</show_in_website>
315
+ <show_in_store>0</show_in_store>
316
+ </refund_authorized>
317
+ <pending_status>
318
+ <label>Order status: pending Bank Transfer/SEPA orders</label>
319
+ <tooltip>By default, Adyen does not inform your Magento store about pending payments. If you want these notifications to be received, Go to Adyen Customer Area => Server Communication and add BankTransfer Pending Notification and Direct-Debit Pending Notification.</tooltip>
320
+ <frontend_type>select</frontend_type>
321
+ <config_path>payment/adyen_abstract/pending_status</config_path>
322
+ <source_model>adyen/source_status_pending</source_model>
323
+ <sort_order>50</sort_order>
324
+ <show_in_default>1</show_in_default>
325
+ <show_in_website>1</show_in_website>
326
+ <show_in_store>0</show_in_store>
327
+ </pending_status>
328
+ <send_email_bank_sepa_on_pending>
329
+ <label>Send order confirmation email for Bank Transfer/SEPA</label>
330
+ <tooltip>Send a confirmation mail after Bank Tranfer/SEPA is placed (not yet paid). If you want these notifications to be received, Go to Adyen Customer Area => Server Communication and add BankTransfer Pending Notification and Direct-Debit Pending Notification.</tooltip>
331
+ <frontend_type>select</frontend_type>
332
+ <source_model>adminhtml/system_config_source_yesno</source_model>
333
+ <config_path>payment/adyen_abstract/send_email_bank_sepa_on_pending</config_path>
334
+ <sort_order>60</sort_order>
335
+ <show_in_default>1</show_in_default>
336
+ <show_in_website>1</show_in_website>
337
+ <show_in_store>0</show_in_store>
338
+ </send_email_bank_sepa_on_pending>
339
+ <create_pending_invoice translate="label">
340
+ <label>Create a pending invoice (only for manual capture)</label>
341
+ <tooltip>This will create a pending invoice if the AUTHORISATION notification is received. Note: this will cause Magento to push all orders to Status:'Processing' once the invoice is created, ignoring all other settings.</tooltip>
342
+ <frontend_type>select</frontend_type>
343
+ <source_model>adminhtml/system_config_source_yesno</source_model>
344
+ <sort_order>70</sort_order>
345
+ <config_path>payment/adyen_abstract/create_pending_invoice</config_path>
346
+ <show_in_default>1</show_in_default>
347
+ <show_in_website>1</show_in_website>
348
+ <show_in_store>1</show_in_store>
349
+ </create_pending_invoice>
350
+ <capture_on_shipment>
351
+ <label>Order status: Capture on shipment</label>
352
+ <frontend_type>select</frontend_type>
353
+ <tooltip>If you enable this function it will do a capture request to Adyen if you do a shipment.</tooltip>
354
+ <source_model>adminhtml/system_config_source_yesno</source_model>
355
+ <config_path>payment/adyen_abstract/capture_on_shipment</config_path>
356
+ <sort_order>80</sort_order>
357
+ <show_in_default>1</show_in_default>
358
+ <show_in_website>1</show_in_website>
359
+ <show_in_store>0</show_in_store>
360
+ </capture_on_shipment>
361
+ <send_invoice_update_mail translate="label">
362
+ <label>Invoice email (deprecated)</label>
363
+ <frontend_type>select</frontend_type>
364
+ <tooltip>Enable/Disable update mails to customers.</tooltip>
365
+ <source_model>adminhtml/system_config_source_yesno</source_model>
366
+ <config_path>payment/adyen_abstract/send_invoice_update_mail</config_path>
367
+ <sort_order>1000</sort_order>
368
+ <show_in_default>1</show_in_default>
369
+ <show_in_website>1</show_in_website>
370
+ <show_in_store>0</show_in_store>
371
+ </send_invoice_update_mail>
372
+ <send_update_mail translate="label">
373
+ <label>Customers receive order status update email (deprecated).</label>
374
+ <frontend_type>select</frontend_type>
375
+ <tooltip>Enable/Disable update mails for all order status changes to the shopper.</tooltip>
376
+ <source_model>adminhtml/system_config_source_yesno</source_model>
377
+ <config_path>payment/adyen_abstract/send_update_mail</config_path>
378
+ <sort_order>1200</sort_order>
379
+ <show_in_default>1</show_in_default>
380
+ <show_in_website>1</show_in_website>
381
+ <show_in_store>0</show_in_store>
382
+ </send_update_mail>
383
+ </fields>
384
+ </adyen_order_process>
385
+ <adyen_order_notifications type="group" translate="label comment tooltip">
386
+ <label>Advanced: Adyen Payment Notifications</label>
387
  <frontend_type>text</frontend_type>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
388
  <show_in_default>1</show_in_default>
389
  <show_in_website>1</show_in_website>
390
+ <show_in_store>1</show_in_store>
391
+ <sort_order>40</sort_order>
392
+ <frontend_model>adyen/adminhtml_system_config_fieldset_expanded</frontend_model>
393
+ <fields>
394
+ <notification_hmac>
395
+ <label>Notification HMAC Key</label>
396
+ <tooltip>This is not required and should be left empty by default. You can use this as extra security, or if you do not want to use HTTP authentication. If the latter is the case, leave notification user name and password in 'Required Settings' empty and only use this key. Key can be generated at Adyen Customer Area => Server Communication => Standard Notification => Additional Settings => Generate new HMAC key</tooltip>
397
+ <frontend_type>text</frontend_type>
398
+ <config_path>payment/adyen_abstract/notification_hmac</config_path>
399
+ <sort_order>77</sort_order>
400
+ <show_in_default>1</show_in_default>
401
+ <show_in_website>1</show_in_website>
402
+ <show_in_store>0</show_in_store>
403
+ </notification_hmac>
404
+ <ignore_refund_notification>
405
+ <label>Ignore refund notification</label>
406
+ <tooltip>If the refund is done on the Adyen Platform it will send a refund notification to Magento which automatically creates a credit memo. If you set this setting to 'Yes', this will not happen because it will not process any of the REFUND notification that is received.</tooltip>
407
+ <frontend_type>select</frontend_type>
408
+ <source_model>adminhtml/system_config_source_yesno</source_model>
409
+ <sort_order>230</sort_order>
410
+ <config_path>payment/adyen_abstract/ignore_refund_notification</config_path>
411
+ <show_in_default>1</show_in_default>
412
+ <show_in_website>1</show_in_website>
413
+ <show_in_store>1</show_in_store>
414
+ </ignore_refund_notification>
415
+ <update_notification_cronjob>
416
+ <label>Update notification queue by cronjob (every 5 minutes)</label>
417
+ <tooltip>If you are using API methods(CC, SEPA, ELV or Boleto) and your Magento order processing is slow, it could be that the notification is faster then Magento saves the order. The notification will then be saved in a queue. This is processed on default when next notification is received. If you want to update the notification queue every 5 minutes activate this and make sure cronjob of Magento is called by your web server</tooltip>
418
+ <frontend_type>select</frontend_type>
419
+ <source_model>adminhtml/system_config_source_yesno</source_model>
420
+ <config_path>payment/adyen_abstract/update_notification_cronjob</config_path>
421
+ <sort_order>240</sort_order>
422
+ <show_in_default>1</show_in_default>
423
+ <show_in_website>0</show_in_website>
424
+ <show_in_store>0</show_in_store>
425
+ </update_notification_cronjob>
426
+ <multiple_merchants translate="label">
427
+ <label>Allow multiple merchants</label>
428
+ <tooltip><![CDATA[Allow notifications sent from other Adyen merchant accounts. Keep in mind that the Notification user name and password should be the same for all the merchant accounts]]></tooltip>
429
+ <frontend_type>select</frontend_type>
430
+ <source_model>adminhtml/system_config_source_yesno</source_model>
431
+ <sort_order>250</sort_order>
432
+ <show_in_default>1</show_in_default>
433
+ <show_in_website>0</show_in_website>
434
+ <show_in_store>0</show_in_store>
435
+ </multiple_merchants>
436
+ </fields>
437
+ </adyen_order_notifications>
438
+ <adyen_billing_agreements type="group" translate="label comment tooltip">
439
+ <label>Advanced: Billing Agreements</label>
440
  <frontend_type>text</frontend_type>
 
441
  <show_in_default>1</show_in_default>
442
+ <!--<show_in_website>1</show_in_website>-->
443
+ <!--<show_in_store>1</show_in_store>-->
444
+ <sort_order>50</sort_order>
445
+ <frontend_model>adyen/adminhtml_system_config_fieldset_expanded</frontend_model>
446
+ <comment>
447
+ <![CDATA[
448
+ <p>
449
+ <strong>ONECLICK</strong>: The shopper opts in to storing their card details for future use.
450
+ The shopper is present for the subsequent transaction, for cards the security code (CVC/CVV) is required.
451
+ </p>
452
+ <p>
453
+ <strong>RECURRING</strong>: Payment details are stored for future use. For cards, the security
454
+ code (CVC/CVV) is not required for subsequent payments.
455
+ </p>
456
+ <p>
457
+ <strong>ONECLICK, RECURRING</strong>: Payment details are stored for future use. This allows the use of
458
+ the stored payment details regardless of whether the shopper is on your site or not.
459
+ </p>
460
+ ]]>
461
+ </comment>
462
+ <fields>
463
+ <recurringtypes translate="label">
464
+ <label>Agreement Type</label>
465
+ <frontend_type>select</frontend_type>
466
+ <source_model>adyen/source_recurringType</source_model>
467
+ <config_path>payment/adyen_abstract/recurringtypes</config_path>
468
+ <sort_order>79</sort_order>
469
+ <show_in_default>1</show_in_default>
470
+ <!--<show_in_website>1</show_in_website>-->
471
+ <!--<show_in_store>1</show_in_store>-->
472
+ <tooltip>When enabled, users can save their Credit Cards and their SEPA authorizations. ONECLICK will require the input of the CVC for subsequent payments, while RECURRING does not.</tooltip>
473
+ </recurringtypes>
474
+ </fields>
475
+ </adyen_billing_agreements>
476
+ <adyen_checkout_experience type="group" translate="label comment tooltip">
477
+ <label>Advanced: Checkout Experience</label>
478
  <frontend_type>text</frontend_type>
 
479
  <show_in_default>1</show_in_default>
480
  <show_in_website>1</show_in_website>
481
  <show_in_store>1</show_in_store>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
482
  <sort_order>220</sort_order>
483
+ <frontend_model>adyen/adminhtml_system_config_fieldset_expanded</frontend_model>
484
+ <fields>
485
+ <payment_cancelled_redirect>
486
+ <label>Redirect destination after cancellation</label>
487
+ <frontend_type>select</frontend_type>
488
+ <tooltip>Determines how shoppers get redirected after they cancel a payment.</tooltip>
489
+ <source_model>adyen/source_cancelRedirect</source_model>
490
+ <config_path>payment/adyen_abstract/payment_cancelled_redirect</config_path>
491
+ <sort_order>10</sort_order>
492
+ <show_in_default>1</show_in_default>
493
+ <show_in_website>1</show_in_website>
494
+ <show_in_store>0</show_in_store>
495
+ </payment_cancelled_redirect>
496
+ <title_renderer>
497
+ <label>Payment method render method</label>
498
+ <frontend_type>select</frontend_type>
499
+ <tooltip>Determines whether the payment methods will be displayed with its logo or just the name.</tooltip>
500
+ <source_model>adyen/source_rendermode</source_model>
501
+ <config_path>payment/adyen_abstract/title_renderer</config_path>
502
+ <sort_order>20</sort_order>
503
+ <show_in_default>1</show_in_default>
504
+ <show_in_website>1</show_in_website>
505
+ <show_in_store>1</show_in_store>
506
+ </title_renderer>
507
+ <shopperlocale translate="label">
508
+ <label>Language locale (optional)</label>
509
+ <tooltip>This will override the default shopper locale of the Magento store (e.g. nl_NL). Leave empty to let Magento decide.</tooltip>
510
+ <frontend_type>text</frontend_type>
511
+ <config_path>payment/adyen_abstract/shopperlocale</config_path>
512
+ <sort_order>180</sort_order>
513
+ <show_in_default>1</show_in_default>
514
+ <show_in_website>1</show_in_website>
515
+ <show_in_store>1</show_in_store>
516
+ </shopperlocale>
517
+ <countryCode translate="label">
518
+ <label>ISO Country Code (optional)</label>
519
+ <tooltip>This will override the shopper billing address country when determining what payment methods to display.</tooltip>
520
+ <frontend_type>text</frontend_type>
521
+ <config_path>payment/adyen_abstract/countryCode</config_path>
522
+ <sort_order>190</sort_order>
523
+ <show_in_default>1</show_in_default>
524
+ <show_in_website>1</show_in_website>
525
+ <show_in_store>1</show_in_store>
526
+ </countryCode>
527
+ </fields>
528
+ </adyen_checkout_experience>
529
+ <adyen_manual_review type="group" translate="label comment tooltip">
530
+ <label>Advanced: Manual Review</label>
531
+ <frontend_type>text</frontend_type>
532
  <show_in_default>1</show_in_default>
533
  <show_in_website>1</show_in_website>
534
  <show_in_store>1</show_in_store>
535
+ <sort_order>300</sort_order>
536
+ <frontend_model>adyen/adminhtml_system_config_fieldset_expanded</frontend_model>
537
+ <comment>
538
+ <![CDATA[
539
+ <p>
540
+ Adyen's Risk analysis tool allows merchants to configure when a transaction should be rejected or accepted depending on certain characteristics of the payment.
541
+ This process has always had two automatic outcomes, either accept or reject the payment. Now, Adyen's risk system can tell merchants when a transaction seems to be risky but without rejecting it, and requires to be manually reviewed in order to decide if it should be accepted or rejected.
542
+ If you want this to be turned on please contact <a href="mailto:magento@adyen.com">magento@adyen.com</a>
543
+ </p>
544
+ ]]>
545
+ </comment>
546
+ <fields>
547
+ <fraud_manual_review_status>
548
+ <label>Manual Review Status</label>
549
+ <tooltip>This status will be triggered when Adyen notifies your Magento module that the payment has come under Manual Review. If you do not have this set up or do not want a separate status, please keep it on the default (e.g.'— Please Select —').</tooltip>
550
+ <frontend_type>select</frontend_type>
551
+ <source_model>adyen/source_status_pending</source_model>
552
+ <config_path>payment/adyen_abstract/fraud_manual_review_status</config_path>
553
+ <sort_order>10</sort_order>
554
+ <show_in_default>1</show_in_default>
555
+ <show_in_website>1</show_in_website>
556
+ <show_in_store>0</show_in_store>
557
+ </fraud_manual_review_status>
558
+ <fraud_manual_review_accept_status>
559
+ <label>Manual Review Accepted Status</label>
560
+ <tooltip>Only relevant if you do not have an action defined when you accept a manual review. This status will be triggered when a 'MANUAL_REVIEW_ACCEPT' notification is received from Adyen. If you have already asked Adyen to set an action for this (e.g. capture) or don't want a separate status for this, please keep it on the default (e.g.'— Please Select —')</tooltip>
561
+ <frontend_type>select</frontend_type>
562
+ <source_model>adminhtml/system_config_source_order_status_processing</source_model>
563
+ <config_path>payment/adyen_abstract/fraud_manual_review_accept_status</config_path>
564
+ <sort_order>20</sort_order>
565
+ <show_in_default>1</show_in_default>
566
+ <show_in_website>1</show_in_website>
567
+ <show_in_store>0</show_in_store>
568
+ </fraud_manual_review_accept_status>
569
+ </fields>
570
+ </adyen_manual_review>
571
  </fields>
572
  </adyen_abstract>
573
+ <!-- @CC only -->
574
+ <adyen_cc translate="label" module="adyen">
575
+ <label>Credit Card</label>
576
  <frontend_type>text</frontend_type>
577
  <sort_order>310</sort_order>
578
  <show_in_default>1</show_in_default>
579
  <show_in_website>1</show_in_website>
580
  <show_in_store>1</show_in_store>
581
+ <frontend_model>adyen/adminhtml_system_config_fieldset_method</frontend_model>
582
+ <activity_path>payment/adyen_cc/active</activity_path>
583
  <fields>
584
  <active translate="label">
585
  <label>Enabled</label>
600
  </title>
601
  <sort_order translate="label">
602
  <label>Sort Order</label>
603
+ <tooltip>Set the sequence number of this payment method in the checkout. Payment methods with a higher sort order number will be displayed lower in the list.</tooltip>
604
  <frontend_type>text</frontend_type>
605
  <sort_order>25</sort_order>
606
  <show_in_default>1</show_in_default>
607
  <show_in_website>1</show_in_website>
 
 
 
 
 
 
 
 
 
608
  <show_in_store>1</show_in_store>
609
+ </sort_order>
610
+ <cctypes translate="label">
611
+ <label>Credit Card Types</label>
612
+ <frontend_type>multiselect</frontend_type>
613
+ <source_model>adyen/source_ccType</source_model>
614
  <sort_order>40</sort_order>
615
  <show_in_default>1</show_in_default>
616
  <show_in_website>1</show_in_website>
617
  <show_in_store>1</show_in_store>
618
+ </cctypes>
619
+ <cse_enabled translate="label">
620
+ <label>Enable Client-Side Encryption (CSE)</label>
621
+ <tooltip>Contact support@adyen.com to enable CSE permission on your Adyen account. If you want this to be turned on on your live account please fill in the SAQ-A form and send this to salessupport@adyen.com</tooltip>
622
+ <comment><![CDATA[<a target="_blank" href="https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-1_SAQ_A_rev1-1.docx">Click here to download the SAQ A form</a>]]></comment>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
623
  <frontend_type>select</frontend_type>
624
  <source_model>adminhtml/system_config_source_yesno</source_model>
625
+ <sort_order>50</sort_order>
 
 
 
 
 
 
 
 
 
 
626
  <show_in_default>1</show_in_default>
627
  <show_in_website>1</show_in_website>
628
  <show_in_store>1</show_in_store>
629
+ </cse_enabled>
630
+ <cse_publickey_test translate="label">
631
+ <label>Enter CSE Public Key of Test Adyen Web Service User</label>
632
+ <tooltip>Copy this from the Test Adyen Customer Area => Settings => Users => System => [web service user]=> Client Encryption Public Key.</tooltip>
633
+ <frontend_type>textarea</frontend_type>
634
+ <sort_order>60</sort_order>
 
 
635
  <show_in_default>1</show_in_default>
636
  <show_in_website>1</show_in_website>
637
  <show_in_store>1</show_in_store>
638
+ <depends><cse_enabled>1</cse_enabled></depends>
639
+ </cse_publickey_test>
640
+ <cse_publickey translate="label">
641
+ <label>Enter CSE Public Key of Live Adyen Web Service User</label>
642
+ <frontend_type>textarea</frontend_type>
643
+ <tooltip>Copy this from the Live Adyen Customer Area => Settings => Users => System => [web service user] => Client Encryption Public Key.</tooltip>
644
+ <sort_order>70</sort_order>
 
645
  <show_in_default>1</show_in_default>
646
  <show_in_website>1</show_in_website>
647
  <show_in_store>1</show_in_store>
648
+ <depends><cse_enabled>1</cse_enabled></depends>
649
+ </cse_publickey>
650
  <allowspecific translate="label">
651
+ <label>Payment from applicable countries</label>
652
  <frontend_type>allowspecific</frontend_type>
653
+ <sort_order>90</sort_order>
654
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
655
  <show_in_default>1</show_in_default>
656
  <show_in_website>1</show_in_website>
657
  <show_in_store>1</show_in_store>
658
  </allowspecific>
659
  <specificcountry translate="label">
660
+ <label>Payment from specific countries</label>
661
  <frontend_type>multiselect</frontend_type>
662
+ <sort_order>100</sort_order>
663
  <source_model>adminhtml/system_config_source_country</source_model>
664
  <show_in_default>1</show_in_default>
665
  <show_in_website>1</show_in_website>
666
  <show_in_store>1</show_in_store>
667
  <depends><allowspecific>1</allowspecific></depends>
668
  </specificcountry>
669
+ <visible_type>
670
+ <label>Visible in</label>
671
+ <frontend_type>select</frontend_type>
672
+ <source_model>adyen/source_VisibleType</source_model>
673
+ <sort_order>101</sort_order>
674
+ <tooltip>Determine the visibility of this payment method in the frontend and/or backend of Magento.</tooltip>
675
+ <show_in_default>1</show_in_default>
676
+ <show_in_website>1</show_in_website>
677
+ <show_in_store>1</show_in_store>
678
+ </visible_type>
679
+ <adyen_cc_advanced type="group" translate="label">
680
+ <label>Advanced Settings</label>
681
+ <frontend_class>config-advanced</frontend_class>
682
+ <frontend_type>text</frontend_type>
683
+ <show_in_default>1</show_in_default>
684
+ <show_in_website>1</show_in_website>
685
+ <show_in_store>1</show_in_store>
686
+ <sort_order>110</sort_order>
687
+ <fields>
688
+ <enable_moto>
689
+ <label>Enable MOTO for backend orders</label>
690
+ <frontend_type>select</frontend_type>
691
+ <source_model>adminhtml/system_config_source_yesno</source_model>
692
+ <config_path>payment/adyen_cc/enable_moto</config_path>
693
+ <sort_order>105</sort_order>
694
+ <show_in_default>1</show_in_default>
695
+ <show_in_website>1</show_in_website>
696
+ <show_in_store>1</show_in_store>
697
+ <tooltip><![CDATA[Important you have to activate MOTO for your account contact magento@adyen.com. For more information <a target="_blank" href="https://www.adyen.com/dam/documentation/manuals/MotoManual.pdf">check our MOTO manual</a>]]></tooltip>
698
+ </enable_moto>
699
+ <enable_installments translate="label">
700
+ <label>Enable Installments</label>
701
+ <frontend_type>select</frontend_type>
702
+ <source_model>adminhtml/system_config_source_yesno</source_model>
703
+ <config_path>payment/adyen_cc/enable_installments</config_path>
704
+ <sort_order>110</sort_order>
705
+ <show_in_default>1</show_in_default>
706
+ <show_in_website>1</show_in_website>
707
+ <show_in_store>1</show_in_store>
708
+ </enable_installments>
709
+ <installments translate="label">
710
+ <label>Installments default</label>
711
+ <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
712
+ <backend_model>adyen/system_config_backend_installments</backend_model>
713
+ <config_path>payment/adyen_cc/installments</config_path>
714
+ <sort_order>120</sort_order>
715
+ <show_in_default>1</show_in_default>
716
+ <show_in_website>1</show_in_website>
717
+ <show_in_store>1</show_in_store>
718
+ <comments>This is the fallback if specific credit card type has no installments configured</comments>
719
+ </installments>
720
+ <installments_AE translate="label">
721
+ <label>Installments For American Express</label>
722
+ <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
723
+ <backend_model>adyen/system_config_backend_installments</backend_model>
724
+ <config_path>payment/adyen_cc/installments_AE</config_path>
725
+ <sort_order>130</sort_order>
726
+ <show_in_default>1</show_in_default>
727
+ <show_in_website>1</show_in_website>
728
+ <show_in_store>1</show_in_store>
729
+ </installments_AE>
730
+ <installments_VI translate="label">
731
+ <label>Installments For Visa</label>
732
+ <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
733
+ <backend_model>adyen/system_config_backend_installments</backend_model>
734
+ <config_path>payment/adyen_cc/installments_VI</config_path>
735
+ <sort_order>140</sort_order>
736
+ <show_in_default>1</show_in_default>
737
+ <show_in_website>1</show_in_website>
738
+ <show_in_store>1</show_in_store>
739
+ </installments_VI>
740
+ <installments_MC translate="label">
741
+ <label>Installments For Master Card</label>
742
+ <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
743
+ <backend_model>adyen/system_config_backend_installments</backend_model>
744
+ <config_path>payment/adyen_cc/installments_MC</config_path>
745
+ <sort_order>150</sort_order>
746
+ <show_in_default>1</show_in_default>
747
+ <show_in_website>1</show_in_website>
748
+ <show_in_store>1</show_in_store>
749
+ </installments_MC>
750
+ <installments_DI translate="label">
751
+ <label>Installments For Discover</label>
752
+ <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
753
+ <backend_model>adyen/system_config_backend_installments</backend_model>
754
+ <config_path>payment/adyen_cc/installments_DI</config_path>
755
+ <sort_order>160</sort_order>
756
+ <show_in_default>1</show_in_default>
757
+ <show_in_website>1</show_in_website>
758
+ <show_in_store>1</show_in_store>
759
+ </installments_DI>
760
+ <installments_DC translate="label">
761
+ <label>Installments For Diners Club</label>
762
+ <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
763
+ <backend_model>adyen/system_config_backend_installments</backend_model>
764
+ <config_path>payment/adyen_cc/installments_DC</config_path>
765
+ <sort_order>170</sort_order>
766
+ <show_in_default>1</show_in_default>
767
+ <show_in_website>1</show_in_website>
768
+ <show_in_store>1</show_in_store>
769
+ </installments_DC>
770
+ <installments_MO translate="label">
771
+ <label>Installments For Maestro</label>
772
+ <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
773
+ <backend_model>adyen/system_config_backend_installments</backend_model>
774
+ <config_path>payment/adyen_cc/installments_MO</config_path>
775
+ <sort_order>180</sort_order>
776
+ <show_in_default>1</show_in_default>
777
+ <show_in_website>1</show_in_website>
778
+ <show_in_store>1</show_in_store>
779
+ </installments_MO>
780
+ <installments_JCB translate="label">
781
+ <label>Installments For JCB</label>
782
+ <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
783
+ <backend_model>adyen/system_config_backend_installments</backend_model>
784
+ <config_path>payment/adyen_cc/installments_JCB</config_path>
785
+ <sort_order>190</sort_order>
786
+ <show_in_default>1</show_in_default>
787
+ <show_in_website>1</show_in_website>
788
+ <show_in_store>1</show_in_store>
789
+ </installments_JCB>
790
+ <installments_ELO translate="label">
791
+ <label>Installments For Elo</label>
792
+ <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
793
+ <backend_model>adyen/system_config_backend_installments</backend_model>
794
+ <config_path>payment/adyen_cc/installments_ELO</config_path>
795
+ <sort_order>200</sort_order>
796
+ <show_in_default>1</show_in_default>
797
+ <show_in_website>1</show_in_website>
798
+ <show_in_store>1</show_in_store>
799
+ </installments_ELO>
800
+ <installments_hipercard translate="label">
801
+ <label>Installments For Hipercard</label>
802
+ <frontend_model>adyen/adminhtml_form_field_installments</frontend_model>
803
+ <backend_model>adyen/system_config_backend_installments</backend_model>
804
+ <config_path>payment/adyen_cc/installments_hipercard</config_path>
805
+ <sort_order>210</sort_order>
806
+ <show_in_default>1</show_in_default>
807
+ <show_in_website>1</show_in_website>
808
+ <show_in_store>1</show_in_store>
809
+ </installments_hipercard>
810
+ </fields>
811
+ </adyen_cc_advanced>
812
  </fields>
813
+ </adyen_cc>
814
+ <adyen_oneclick>
815
+ <label>OneClick - Requires Adyen Credit Card</label>
816
  <frontend_type>text</frontend_type>
817
+ <comment><![CDATA[
818
+ During checkout shoppers can choose to have their payment details remembered and stored for trusted websites in Adyen’s highly secure platform. Adyen takes care of this process for its customers. Shoppers can then select in the Magento checkout the saved card and checkout with ‘OneClick’.
819
+ ]]></comment>
820
+ <sort_order>320</sort_order>
821
  <show_in_default>1</show_in_default>
822
  <show_in_website>1</show_in_website>
823
  <show_in_store>1</show_in_store>
824
+ <frontend_model>adyen/adminhtml_system_config_fieldset_method</frontend_model>
825
+ <activity_path>payment/adyen_oneclick/active</activity_path>
826
  <fields>
827
  <active translate="label">
828
  <label>Enabled</label>
829
  <frontend_type>select</frontend_type>
830
  <source_model>adminhtml/system_config_source_yesno</source_model>
831
+ <sort_order>1</sort_order>
832
  <show_in_default>1</show_in_default>
833
  <show_in_website>1</show_in_website>
834
  <show_in_store>1</show_in_store>
835
+ <tooltip>OneClick payments only work if you have Adyen Credit Card enabled</tooltip>
836
  </active>
837
  <title translate="label">
838
  <label>Title</label>
839
  <frontend_type>text</frontend_type>
840
+ <sort_order>2</sort_order>
841
  <show_in_default>1</show_in_default>
842
  <show_in_website>1</show_in_website>
843
  <show_in_store>1</show_in_store>
844
  </title>
 
 
 
 
 
 
 
 
 
 
845
  <sort_order translate="label">
846
  <label>Sort Order</label>
847
+ <tooltip>Set the sequence number of this payment method in the checkout. Payment methods with a higher sort order number will be displayed lower in the list.</tooltip>
848
  <frontend_type>text</frontend_type>
849
+ <sort_order>25</sort_order>
 
 
 
 
 
 
 
 
 
850
  <show_in_default>1</show_in_default>
851
  <show_in_website>1</show_in_website>
852
  <show_in_store>1</show_in_store>
853
+ </sort_order>
854
+ <recurring_payment_type translate="label">
855
+ <label>Agreement Type</label>
856
+ <frontend_type>select</frontend_type>
857
+ <source_model>adyen/source_recurringPaymentType</source_model>
858
+ <config_path>payment/adyen_oneclick/recurring_payment_type</config_path>
859
+ <sort_order>79</sort_order>
860
  <show_in_default>1</show_in_default>
861
  <show_in_website>1</show_in_website>
862
  <show_in_store>1</show_in_store>
863
+ <tooltip>With ONECLICK the shopper needs to fill in their security code for credit cards. For RECURRING, this is not needed. If you want to use RECURRING make sure you have Agreement Type set to RECURRING or ONECLICK,RECURRING</tooltip>
864
+ </recurring_payment_type>
865
  </fields>
866
+ </adyen_oneclick>
867
+ <!-- @Hpp only -->
868
+ <adyen_hpp translate="label" module="adyen">
869
+ <label>HPP</label>
870
  <frontend_type>text</frontend_type>
871
+ <sort_order>330</sort_order>
872
  <show_in_default>1</show_in_default>
873
  <show_in_website>1</show_in_website>
874
  <show_in_store>1</show_in_store>
875
+ <frontend_model>adyen/adminhtml_system_config_fieldset_method</frontend_model>
876
+ <activity_path>payment/adyen_hpp/active</activity_path>
877
  <fields>
878
  <active translate="label">
879
  <label>Enabled</label>
884
  <show_in_website>1</show_in_website>
885
  <show_in_store>1</show_in_store>
886
  </active>
 
 
 
 
 
 
 
 
887
  <sort_order translate="label">
888
  <label>Sort Order</label>
889
+ <tooltip>Set the sequence number of this payment method in the checkout. Payment methods with a higher sort order number will be displayed lower in the list.</tooltip>
890
  <frontend_type>text</frontend_type>
891
  <sort_order>25</sort_order>
892
  <show_in_default>1</show_in_default>
893
  <show_in_website>1</show_in_website>
894
+ <show_in_store>1</show_in_store>
895
  </sort_order>
896
+ <skinCode translate="label">
897
+ <label>Skin Code</label>
898
+ <tooltip>Copy and paste the skin code of the skin you want to use from Test Customer Area => Skins.</tooltip>
899
+ <frontend_type>text</frontend_type>
 
900
  <sort_order>30</sort_order>
901
  <show_in_default>1</show_in_default>
902
  <show_in_website>1</show_in_website>
903
  <show_in_store>1</show_in_store>
904
+ </skinCode>
905
+ <secret_wordt translate="label">
906
+ <label>HMAC Key for Test</label>
907
+ <tooltip>Copy and paste the HMAC key of the skin you want to use from Test Customer Area => Skins. => click on [skin code] => Edit => HMAC for Test platform. Currently, only the older SHA-1 HMAC calculation method is supported in this plugin.</tooltip>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
908
  <frontend_type>text</frontend_type>
909
+ <sort_order>40</sort_order>
 
910
  <show_in_default>1</show_in_default>
911
  <show_in_website>1</show_in_website>
912
  <show_in_store>1</show_in_store>
913
+ </secret_wordt>
914
+ <secret_wordp translate="label">
915
+ <label>HMAC Key for Live</label>
916
+ <tooltip>Copy and paste the HMAC key of the skin you want to use from Test Customer Area => Skins. => click on [skin code] => Edit => HMAC for Live platform. Currently, only the older SHA-1 HMAC calculation method is supported in this plugin.</tooltip>
917
  <frontend_type>text</frontend_type>
918
+ <sort_order>50</sort_order>
 
919
  <show_in_default>1</show_in_default>
920
  <show_in_website>1</show_in_website>
921
  <show_in_store>1</show_in_store>
922
+ </secret_wordp>
923
+ <adyen_hpp_advanced type="group" translate="label">
924
+ <label>Advanced Settings</label>
925
+ <frontend_class>config-advanced</frontend_class>
926
+ <frontend_type>text</frontend_type>
 
 
927
  <show_in_default>1</show_in_default>
928
  <show_in_website>1</show_in_website>
929
  <show_in_store>1</show_in_store>
 
 
 
 
930
  <sort_order>70</sort_order>
931
+ <fields>
932
+ <title translate="label">
933
+ <label>Title</label>
934
+ <frontend_type>text</frontend_type>
935
+ <config_path>payment/adyen_hpp/title</config_path>
936
+ <sort_order>20</sort_order>
937
+ <show_in_default>1</show_in_default>
938
+ <show_in_website>1</show_in_website>
939
+ <show_in_store>1</show_in_store>
940
+ </title>
941
+ <delivery_days translate="label">
942
+ <label>Days to Delivery</label>
943
+ <validate>validate-digits</validate>
944
+ <tooltip>How many days to be added to the current date for delivery. ONLY whole numbers allowed.</tooltip>
945
+ <frontend_type>text</frontend_type>
946
+ <config_path>payment/adyen_hpp/delivery_days</config_path>
947
+ <sort_order>70</sort_order>
948
+ <show_in_default>1</show_in_default>
949
+ <show_in_website>1</show_in_website>
950
+ <show_in_store>0</show_in_store>
951
+ </delivery_days>
952
+ <disable_hpptypes translate="label">
953
+ <label>Leave payment method selection on HPP</label>
954
+ <tooltip>If you set this to 'Yes', payment methods in the checkout won't be displayed and you will be redirected to the Adyen HPP to make the selection.</tooltip>
955
+ <frontend_type>select</frontend_type>
956
+ <source_model>adminhtml/system_config_source_yesno</source_model>
957
+ <config_path>payment/adyen_hpp/disable_hpptypes</config_path>
958
+ <sort_order>90</sort_order>
959
+ <show_in_default>1</show_in_default>
960
+ <show_in_website>1</show_in_website>
961
+ <show_in_store>1</show_in_store>
962
+ </disable_hpptypes>
963
+ <payment_routines translate="label">
964
+ <label>Payment Flow Selection</label>
965
+ <tooltip>Adyen provides you with 2 types of payment routines. The Single-Page flow is dynamic and contains card validation and animations powered by JavaScript. The Multi-Page flow is static, but performs better on older browsers.</tooltip>
966
+ <frontend_type>select</frontend_type>
967
+ <source_model>adyen/source_PaymentRoutines</source_model>
968
+ <config_path>payment/adyen_hpp/payment_routines</config_path>
969
+ <sort_order>95</sort_order>
970
+ <show_in_default>1</show_in_default>
971
+ <show_in_website>1</show_in_website>
972
+ <show_in_store>1</show_in_store>
973
+ <depends><disable_hpptypes>1</disable_hpptypes></depends>
974
+ </payment_routines>
975
+ <return_url_in_request>
976
+ <label>Return URL in request</label>
977
+ <tooltip>Set to 'Yes' by default. Sending the return URL in the payment request allows a single skin to also be used by multiple store views. Set to 'No' if you want to manually set which URL the shopper redirects to under Test Adyen Customer => Skins => Edit => Result URLs.</tooltip>
978
+ <frontend_type>select</frontend_type>
979
+ <source_model>adminhtml/system_config_source_yesno</source_model>
980
+ <config_path>payment/adyen_hpp/return_url_in_request</config_path>
981
+ <sort_order>110</sort_order>
982
+ <show_in_default>1</show_in_default>
983
+ <show_in_website>1</show_in_website>
984
+ <show_in_store>1</show_in_store>
985
+ </return_url_in_request>
986
+ <fee translate="label">
987
+ <label>Fee</label>
988
+ <tooltip>If you want to charge an extra fee for certain payment methods, set that fee here. Do not set any extra fees in the skin in the Adyen Customer Area.</tooltip>
989
+ <frontend_model>adyen/adminhtml_system_config_hppPaymentMethodFee</frontend_model>
990
+ <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
991
+ <config_path>payment/adyen_hpp/fee</config_path>
992
+ <sort_order>140</sort_order>
993
+ <show_in_default>1</show_in_default>
994
+ <tooltip><![CDATA[]]></tooltip>
995
+ </fee>
996
+ </fields>
997
+ </adyen_hpp_advanced>
998
  </fields>
999
+ </adyen_hpp>
1000
+ <adyen_ideal translate="label" module="adyen">
1001
+ <label>HPP iDEAL</label>
1002
  <frontend_type>text</frontend_type>
1003
+ <sort_order>340</sort_order>
1004
  <show_in_default>1</show_in_default>
1005
  <show_in_website>1</show_in_website>
1006
  <show_in_store>1</show_in_store>
1007
+ <frontend_model>adyen/adminhtml_system_config_fieldset_method</frontend_model>
1008
+ <activity_path>payment/adyen_ideal/active</activity_path>
1009
  <fields>
1010
  <active translate="label">
1011
  <label>Enabled</label>
1024
  <show_in_website>1</show_in_website>
1025
  <show_in_store>1</show_in_store>
1026
  </title>
1027
+ <show_ideal_logos>
1028
+ <label>Show iDEAL bank logos</label>
1029
+ <tooltip>Show iDEAL bank logos (radio buttons) instead of in a drop-down list.</tooltip>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1030
  <frontend_type>select</frontend_type>
1031
  <source_model>adminhtml/system_config_source_yesno</source_model>
1032
+ <sort_order>30</sort_order>
 
 
 
 
 
 
 
 
 
1033
  <show_in_default>1</show_in_default>
1034
  <show_in_website>1</show_in_website>
1035
  <show_in_store>1</show_in_store>
1036
+ </show_ideal_logos>
1037
+ <fee translate="label">
1038
+ <label>Fee</label>
 
1039
  <frontend_type>text</frontend_type>
1040
+ <sort_order>38</sort_order>
 
 
 
 
 
 
 
 
 
 
 
 
1041
  <show_in_default>1</show_in_default>
1042
  <show_in_website>1</show_in_website>
1043
  <show_in_store>1</show_in_store>
1044
+ <validate>validate-number</validate>
1045
+ </fee>
1046
+ <sort_order translate="label">
1047
+ <label>Sort Order</label>
1048
+ <tooltip>Set the sequence number of this payment method in the checkout. Payment methods with a higher sort order number will be displayed lower in the list.</tooltip>
1049
+ <frontend_type>text</frontend_type>
1050
+ <sort_order>40</sort_order>
1051
+ <show_in_default>1</show_in_default>
1052
+ <show_in_website>1</show_in_website>
1053
+ <show_in_store>1</show_in_store>
1054
+ </sort_order>
1055
  <allowspecific translate="label">
1056
+ <label>Payment from applicable countries</label>
1057
  <frontend_type>allowspecific</frontend_type>
1058
+ <sort_order>49</sort_order>
1059
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1060
  <show_in_default>1</show_in_default>
1061
  <show_in_website>1</show_in_website>
1062
  <show_in_store>1</show_in_store>
1063
  </allowspecific>
1064
  <specificcountry translate="label">
1065
+ <label>Payment from specific countries</label>
1066
  <frontend_type>multiselect</frontend_type>
1067
+ <sort_order>50</sort_order>
1068
  <source_model>adminhtml/system_config_source_country</source_model>
1069
  <show_in_default>1</show_in_default>
1070
  <show_in_website>1</show_in_website>
1072
  <depends><allowspecific>1</allowspecific></depends>
1073
  </specificcountry>
1074
  </fields>
1075
+ </adyen_ideal>
1076
  <!-- @Openinvoice only -->
1077
  <adyen_openinvoice translate="label" module="adyen">
1078
+ <label>HPP OpenInvoice</label>
1079
  <frontend_type>text</frontend_type>
1080
+ <sort_order>350</sort_order>
1081
  <show_in_default>1</show_in_default>
1082
  <show_in_website>1</show_in_website>
1083
  <show_in_store>1</show_in_store>
1084
+ <frontend_model>adyen/adminhtml_system_config_fieldset_method</frontend_model>
1085
+ <activity_path>payment/adyen_openinvoice/active</activity_path>
1086
  <fields>
1087
  <active translate="label">
1088
  <label>Enabled</label>
1103
  </title>
1104
  <sort_order translate="label">
1105
  <label>Sort Order</label>
1106
+ <tooltip>Set the sequence number of this payment method in the checkout. Payment methods with a higher sort order number will be displayed lower in the list.</tooltip>
1107
  <frontend_type>text</frontend_type>
1108
  <sort_order>25</sort_order>
1109
  <show_in_default>1</show_in_default>
1110
  <show_in_website>1</show_in_website>
1111
+ <show_in_store>1</show_in_store>
1112
  </sort_order>
1113
  <openinvoicetypes translate="label">
1114
  <label>OpenInvoice Type</label>
1156
  <validate>validate-number</validate>
1157
  </fee>
1158
  <different_address_disable>
1159
+ <label>Disable on different billing and delivery addresses</label>
1160
+ <tooltip>Klarna will probably reject payments which have differing billing and delivery addresses. Setting this to 'Yes' will disable this payment method when that is the case.</tooltip>
1161
  <frontend_type>select</frontend_type>
1162
  <source_model>adminhtml/system_config_source_yesno</source_model>
1163
  <sort_order>39</sort_order>
1167
  </different_address_disable>
1168
  <failed_attempt_disable>
1169
  <label>Disable this payment method if first attempt is refused</label>
1170
+ <tooltip>If the first attempt is refused, don't show this as an payment option for the current quote.</tooltip>
1171
  <frontend_type>select</frontend_type>
1172
  <source_model>adminhtml/system_config_source_yesno</source_model>
1173
  <sort_order>45</sort_order>
1176
  <show_in_store>1</show_in_store>
1177
  </failed_attempt_disable>
1178
  <allowspecific translate="label">
1179
+ <label>Payment from applicable countries</label>
1180
  <frontend_type>allowspecific</frontend_type>
1181
  <sort_order>49</sort_order>
1182
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1185
  <show_in_store>1</show_in_store>
1186
  </allowspecific>
1187
  <specificcountry translate="label">
1188
+ <label>Payment from specific countries</label>
1189
  <frontend_type>multiselect</frontend_type>
1190
  <sort_order>50</sort_order>
1191
  <source_model>adminhtml/system_config_source_country</source_model>
1196
  </specificcountry>
1197
  </fields>
1198
  </adyen_openinvoice>
1199
+ <!-- @SEPA only -->
1200
+ <adyen_sepa translate="label" module="adyen">
1201
+ <label>SEPA</label>
1202
  <frontend_type>text</frontend_type>
1203
+ <sort_order>360</sort_order>
1204
  <show_in_default>1</show_in_default>
1205
  <show_in_website>1</show_in_website>
1206
  <show_in_store>1</show_in_store>
1207
+ <frontend_model>adyen/adminhtml_system_config_fieldset_method</frontend_model>
1208
+ <activity_path>payment/adyen_sepa/active</activity_path>
1209
  <fields>
1210
  <active translate="label">
1211
  <label>Enabled</label>
1226
  </title>
1227
  <sort_order translate="label">
1228
  <label>Sort Order</label>
1229
+ <tooltip>Set the sequence number of this payment method in the checkout. Payment methods with a higher sort order number will be displayed lower in the list.</tooltip>
1230
  <frontend_type>text</frontend_type>
1231
  <sort_order>25</sort_order>
1232
  <show_in_default>1</show_in_default>
1233
  <show_in_website>1</show_in_website>
 
 
 
 
 
 
 
 
 
1234
  <show_in_store>1</show_in_store>
1235
+ </sort_order>
1236
+ <validate_iban>
1237
+ <label>Validate IBAN</label>
1238
  <frontend_type>select</frontend_type>
1239
  <source_model>adminhtml/system_config_source_yesno</source_model>
1240
+ <sort_order>30</sort_order>
1241
+ <tooltip>This is a basic validation on the IBAN number.</tooltip>
 
 
 
 
 
 
 
1242
  <show_in_default>1</show_in_default>
1243
  <show_in_website>1</show_in_website>
1244
  <show_in_store>1</show_in_store>
1245
+ </validate_iban>
1246
+ <flow>
1247
+ <label>Flow</label>
1248
+ <frontend_type>select</frontend_type>
1249
+ <source_model>adyen/source_SepaFlow</source_model>
1250
+ <sort_order>35</sort_order>
1251
+ <tooltip>If you are not sure just leave it at 'Sale’. If you want to enable 'Auth/Capt' for SEPA Direct Debit, please contact support@adyen.com</tooltip>
1252
  <show_in_default>1</show_in_default>
1253
  <show_in_website>1</show_in_website>
1254
  <show_in_store>1</show_in_store>
1255
+ </flow>
 
1256
  <allowspecific translate="label">
1257
+ <label>Payment from applicable countries</label>
1258
  <frontend_type>allowspecific</frontend_type>
1259
+ <sort_order>50</sort_order>
1260
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1261
  <show_in_default>1</show_in_default>
1262
  <show_in_website>1</show_in_website>
1263
  <show_in_store>1</show_in_store>
1264
  </allowspecific>
1265
  <specificcountry translate="label">
1266
+ <label>Payment from pecific countries</label>
1267
  <frontend_type>multiselect</frontend_type>
1268
+ <sort_order>60</sort_order>
1269
  <source_model>adminhtml/system_config_source_country</source_model>
1270
  <show_in_default>1</show_in_default>
1271
  <show_in_website>1</show_in_website>
1273
  <depends><allowspecific>1</allowspecific></depends>
1274
  </specificcountry>
1275
  <visible_type>
1276
+ <label>Visible in</label>
1277
  <frontend_type>select</frontend_type>
1278
  <source_model>adyen/source_VisibleType</source_model>
1279
+ <sort_order>70</sort_order>
1280
+ <tooltip>Where do you want to show this payment method in the backend of Magento or in the frontend for the shoppers</tooltip>
1281
  <show_in_default>1</show_in_default>
1282
  <show_in_website>1</show_in_website>
1283
  <show_in_store>1</show_in_store>
1284
  </visible_type>
1285
+ </fields>
1286
+ </adyen_sepa>
1287
+ <!-- @boleto only -->
1288
+ <adyen_boleto translate="label" module="adyen">
1289
+ <label>Boleto</label>
1290
+ <frontend_type>text</frontend_type>
1291
+ <sort_order>370</sort_order>
1292
+ <show_in_default>1</show_in_default>
1293
+ <show_in_website>1</show_in_website>
1294
+ <show_in_store>1</show_in_store>
1295
+ <frontend_model>adyen/adminhtml_system_config_fieldset_method</frontend_model>
1296
+ <activity_path>payment/adyen_boleto/active</activity_path>
1297
+ <fields>
1298
+ <active translate="label">
1299
+ <label>Enabled</label>
1300
  <frontend_type>select</frontend_type>
1301
  <source_model>adminhtml/system_config_source_yesno</source_model>
1302
+ <sort_order>10</sort_order>
1303
  <show_in_default>1</show_in_default>
1304
  <show_in_website>1</show_in_website>
1305
  <show_in_store>1</show_in_store>
1306
+ </active>
1307
+ <title translate="label">
1308
+ <label>Title</label>
1309
+ <frontend_type>text</frontend_type>
1310
+ <sort_order>20</sort_order>
 
1311
  <show_in_default>1</show_in_default>
1312
  <show_in_website>1</show_in_website>
1313
  <show_in_store>1</show_in_store>
1314
+ </title>
1315
+ <sort_order translate="label">
1316
+ <label>Sort Order</label>
1317
+ <tooltip>Set the sequence number of this payment method in the checkout. Payment methods with a higher sort order number will be displayed lower in the list.</tooltip>
1318
+ <frontend_type>text</frontend_type>
1319
+ <sort_order>25</sort_order>
 
1320
  <show_in_default>1</show_in_default>
1321
  <show_in_website>1</show_in_website>
1322
  <show_in_store>1</show_in_store>
1323
+ </sort_order>
1324
+ <delivery_days translate="label">
1325
+ <label>Days for Delivery</label>
1326
+ <tooltip>How many days to be added to the current date for delivery. Only whole numbers allowed.</tooltip>
1327
+ <frontend_type>text</frontend_type>
1328
+ <sort_order>30</sort_order>
1329
  <show_in_default>1</show_in_default>
1330
  <show_in_website>1</show_in_website>
1331
+ <show_in_store>0</show_in_store>
1332
+ </delivery_days>
1333
+ <boletotypes translate="label">
1334
+ <label>Boleto Types</label>
1335
+ <frontend_type>multiselect</frontend_type>
1336
+ <source_model>adyen/source_boletoType</source_model>
1337
+ <sort_order>40</sort_order>
1338
  <show_in_default>1</show_in_default>
1339
  <show_in_website>1</show_in_website>
1340
  <show_in_store>1</show_in_store>
1341
+ </boletotypes>
1342
+ <use_taxvat>
1343
+ <label>Use taxvat for CPF or CNPJ</label>
1344
+ <tooltip>If you use taxvat for the CPF/CNPJ field you can then enable this option to auto fill in the Social Security Number</tooltip>
1345
+ <frontend_type>select</frontend_type>
1346
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1347
+ <sort_order>43</sort_order>
1348
  <show_in_default>1</show_in_default>
1349
  <show_in_website>1</show_in_website>
1350
  <show_in_store>1</show_in_store>
1351
+ </use_taxvat>
1352
+ <order_underpaid_status translate="label">
1353
+ <label>Order status underpaid</label>
1354
+ <tooltip>With Boleto it is possible to pay less than the full amount. Select here the status if this is the case. If you leave this empty it will take the Order status authorised payment as default status</tooltip>
1355
+ <frontend_type>select</frontend_type>
1356
+ <source_model>adminhtml/system_config_source_order_status_processing</source_model>
1357
+ <sort_order>45</sort_order>
1358
  <show_in_default>1</show_in_default>
1359
  <show_in_website>1</show_in_website>
1360
+ <show_in_store>0</show_in_store>
1361
+ </order_underpaid_status>
1362
+ <order_overpaid_status translate="label">
1363
+ <label>Order status overpaid</label>
1364
+ <tooltip>With Boleto it is possible to pay more than the total amount. Select here the status if this is the case. If you leave this empty it will take the Order status authorised payment as default status</tooltip>
1365
+ <frontend_type>select</frontend_type>
1366
+ <source_model>adminhtml/system_config_source_order_status_processing</source_model>
1367
+ <sort_order>46</sort_order>
1368
  <show_in_default>1</show_in_default>
1369
  <show_in_website>1</show_in_website>
1370
+ <show_in_store>0</show_in_store>
1371
+ </order_overpaid_status>
1372
+ <allowspecific translate="label">
1373
+ <label>Payment from applicable countries</label>
1374
+ <frontend_type>allowspecific</frontend_type>
1375
+ <sort_order>50</sort_order>
1376
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1377
  <show_in_default>1</show_in_default>
1378
  <show_in_website>1</show_in_website>
1379
  <show_in_store>1</show_in_store>
1380
+ </allowspecific>
1381
+ <specificcountry translate="label">
1382
+ <label>Payment from specific countries</label>
1383
+ <frontend_type>multiselect</frontend_type>
1384
+ <sort_order>60</sort_order>
1385
+ <source_model>adminhtml/system_config_source_country</source_model>
1386
  <show_in_default>1</show_in_default>
1387
  <show_in_website>1</show_in_website>
1388
  <show_in_store>1</show_in_store>
1389
+ <depends><allowspecific>1</allowspecific></depends>
1390
+ </specificcountry>
1391
+ <visible_type>
1392
+ <label>Visible in</label>
1393
+ <frontend_type>select</frontend_type>
1394
+ <source_model>adyen/source_VisibleType</source_model>
1395
+ <sort_order>70</sort_order>
1396
+ <tooltip>Where do you want to show this payment method in the backend of Magento or in the frontend for the shoppers</tooltip>
1397
  <show_in_default>1</show_in_default>
1398
  <show_in_website>1</show_in_website>
1399
  <show_in_store>1</show_in_store>
1400
+ </visible_type>
1401
  </fields>
1402
+ </adyen_boleto>
1403
+ <!-- @Pos only -->
1404
+ <adyen_pos translate="label" module="adyen">
1405
+ <label>POS</label>
1406
  <frontend_type>text</frontend_type>
1407
+ <sort_order>380</sort_order>
1408
  <show_in_default>1</show_in_default>
1409
  <show_in_website>1</show_in_website>
1410
  <show_in_store>1</show_in_store>
1411
+ <frontend_model>adyen/adminhtml_system_config_fieldset_method</frontend_model>
1412
+ <activity_path>payment/adyen_pos/active</activity_path>
1413
  <fields>
1414
  <active translate="label">
1415
  <label>Enabled</label>
1416
  <frontend_type>select</frontend_type>
1417
  <source_model>adminhtml/system_config_source_yesno</source_model>
1418
+ <sort_order>10</sort_order>
1419
  <show_in_default>1</show_in_default>
1420
  <show_in_website>1</show_in_website>
1421
  <show_in_store>1</show_in_store>
 
1422
  </active>
1423
  <title translate="label">
1424
  <label>Title</label>
1425
  <frontend_type>text</frontend_type>
1426
+ <sort_order>20</sort_order>
1427
  <show_in_default>1</show_in_default>
1428
  <show_in_website>1</show_in_website>
1429
  <show_in_store>1</show_in_store>
1430
  </title>
1431
+ <sort_order translate="label">
1432
+ <label>Sort Order</label>
1433
+ <tooltip>Set the sequence number of this payment method in the checkout. Payment methods with a higher sort order number will be displayed lower in the list.</tooltip>
1434
+ <frontend_type>text</frontend_type>
1435
+ <sort_order>25</sort_order>
1436
+ <show_in_default>1</show_in_default>
1437
+ <show_in_website>1</show_in_website>
1438
+ <show_in_store>1</show_in_store>
1439
+ </sort_order>
1440
+ <recurringtypes translate="label">
1441
+ <label>Agreement Type</label>
1442
+ <tooltip>You can set different value for POS because you have to have the permission of the customer</tooltip>
1443
+ <frontend_type>select</frontend_type>
1444
+ <source_model>adyen/source_recurringType</source_model>
1445
+ <sort_order>30</sort_order>
1446
+ <show_in_default>1</show_in_default>
1447
+ <show_in_website>1</show_in_website>
1448
+ <show_in_store>1</show_in_store>
1449
+ </recurringtypes>
1450
+ <add_receipt_order_lines translate="label">
1451
+ <label>Add orderlines to receipt</label>
1452
+ <tooltip>If you have the Adyen App configured to print to an external printer the orderlines can be printed on to the receipt if you turn this option on.</tooltip>
1453
+ <frontend_type>select</frontend_type>
1454
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1455
+ <sort_order>33</sort_order>
1456
+ <show_in_default>1</show_in_default>
1457
+ <show_in_website>1</show_in_website>
1458
+ <show_in_store>1</show_in_store>
1459
+ </add_receipt_order_lines>
1460
+ <enable_scanner translate="label">
1461
+ <label>Enable Scanner</label>
1462
+ <tooltip>If you enable this you have the possibility to scan products with a hand scanner on the shopping cart page and this will automatically add products to the shopping cart based on the same SKU name.</tooltip>
1463
+ <frontend_type>select</frontend_type>
1464
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1465
+ <sort_order>35</sort_order>
1466
+ <show_in_default>1</show_in_default>
1467
+ <show_in_website>1</show_in_website>
1468
+ <show_in_store>1</show_in_store>
1469
+ </enable_scanner>
1470
+ <auto_submit_scanner>
1471
+ <label>Auto submit scanner</label>
1472
+ <tooltip>If you have a scanner that puss a enter command after scanning turn this setting on.</tooltip>
1473
+ <frontend_type>select</frontend_type>
1474
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1475
+ <sort_order>36</sort_order>
1476
+ <show_in_default>1</show_in_default>
1477
+ <show_in_website>1</show_in_website>
1478
+ <show_in_store>1</show_in_store>
1479
+ <depends><enable_scanner>1</enable_scanner></depends>
1480
+ </auto_submit_scanner>
1481
+ <express_checkout>
1482
+ <label>Express checkout</label>
1483
+ <tooltip>This will show a checkout button 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.</tooltip>
1484
+ <frontend_type>select</frontend_type>
1485
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1486
+ <sort_order>37</sort_order>
1487
+ <show_in_default>1</show_in_default>
1488
+ <show_in_website>1</show_in_website>
1489
+ <show_in_store>1</show_in_store>
1490
+ </express_checkout>
1491
+ <express_checkout_redirect_connect>
1492
+ <label>Redirect direct</label>
1493
+ <tooltip>Redirect directly to the Adyen app to do the PIN payment. This is not supported for all browsers if you have problems set this setting to false</tooltip>
1494
+ <frontend_type>select</frontend_type>
1495
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1496
+ <sort_order>38</sort_order>
1497
+ <show_in_default>1</show_in_default>
1498
+ <show_in_website>1</show_in_website>
1499
+ <show_in_store>1</show_in_store>
1500
+ <depends><express_checkout>1</express_checkout></depends>
1501
+ </express_checkout_redirect_connect>
1502
+ <express_checkout_kiosk_mode>
1503
+ <label>Kiosk mode</label>
1504
+ <tooltip>If you turn kiosk modus on it will not auto-complete the customers based on the filled in email address</tooltip>
1505
+ <frontend_type>select</frontend_type>
1506
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1507
+ <sort_order>45</sort_order>
1508
+ <show_in_default>1</show_in_default>
1509
+ <show_in_website>1</show_in_website>
1510
+ <show_in_store>1</show_in_store>
1511
+ </express_checkout_kiosk_mode>
1512
+ <express_checkout_recurring>
1513
+ <label>Show Recurring Cards</label>
1514
+ <tooltip>This will show the recurring cards beneath the express checkout and makes it possible to do a recurring online payment by clicking on the card</tooltip>
1515
+ <frontend_type>select</frontend_type>
1516
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1517
+ <sort_order>50</sort_order>
1518
+ <show_in_default>1</show_in_default>
1519
+ <show_in_website>1</show_in_website>
1520
+ <show_in_store>1</show_in_store>
1521
+ <depends><express_checkout_kiosk_mode>0</express_checkout_kiosk_mode></depends>
1522
+ </express_checkout_recurring>
1523
+ <create_shipment>
1524
+ <label>Create Shipment</label>
1525
+ <tooltip>If you enable this there will be automatically be created a shipment if the invoice is created</tooltip>
1526
  <frontend_type>select</frontend_type>
1527
  <source_model>adminhtml/system_config_source_yesno</source_model>
1528
+ <sort_order>55</sort_order>
1529
  <show_in_default>1</show_in_default>
1530
  <show_in_website>1</show_in_website>
1531
  <show_in_store>1</show_in_store>
1532
+ </create_shipment>
1533
+ <ip_filter>
1534
+ <label>IP filter</label>
1535
+ <tooltip>Enable IP filter let's you define an IP range when this payment method is visible</tooltip>
1536
+ <frontend_type>select</frontend_type>
1537
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1538
+ <sort_order>57</sort_order>
1539
+ <show_in_default>1</show_in_default>
1540
+ <show_in_website>1</show_in_website>
1541
+ <show_in_store>1</show_in_store>
1542
+ </ip_filter>
1543
+ <ip_filter_from>
1544
+ <label>IP From</label>
1545
  <frontend_type>text</frontend_type>
1546
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1547
+ <sort_order>58</sort_order>
1548
  <show_in_default>1</show_in_default>
1549
  <show_in_website>1</show_in_website>
1550
  <show_in_store>1</show_in_store>
1551
+ <depends><ip_filter>1</ip_filter></depends>
1552
+ </ip_filter_from>
1553
+ <ip_filter_to>
1554
+ <label>IP To</label>
1555
  <frontend_type>text</frontend_type>
1556
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1557
+ <sort_order>59</sort_order>
1558
  <show_in_default>1</show_in_default>
1559
  <show_in_website>1</show_in_website>
1560
+ <show_in_store>1</show_in_store>
1561
+ <depends><ip_filter>1</ip_filter></depends>
1562
+ </ip_filter_to>
1563
  <allowspecific translate="label">
1564
+ <label>Payment from applicable countries</label>
1565
  <frontend_type>allowspecific</frontend_type>
1566
+ <sort_order>60</sort_order>
1567
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1568
  <show_in_default>1</show_in_default>
1569
  <show_in_website>1</show_in_website>
1570
  <show_in_store>1</show_in_store>
1571
  </allowspecific>
1572
  <specificcountry translate="label">
1573
+ <label>Payment from specific countries</label>
1574
  <frontend_type>multiselect</frontend_type>
1575
+ <sort_order>70</sort_order>
1576
  <source_model>adminhtml/system_config_source_country</source_model>
1577
  <show_in_default>1</show_in_default>
1578
  <show_in_website>1</show_in_website>
1579
  <show_in_store>1</show_in_store>
1580
  <depends><allowspecific>1</allowspecific></depends>
1581
  </specificcountry>
 
 
 
 
 
 
 
 
 
 
1582
  </fields>
1583
+ </adyen_pos>
1584
+ <adyen_cash translate="label" module="adyen">
1585
+ <label>CASH</label>
 
1586
  <frontend_type>text</frontend_type>
1587
+ <sort_order>390</sort_order>
1588
  <show_in_default>1</show_in_default>
1589
  <show_in_website>1</show_in_website>
1590
  <show_in_store>1</show_in_store>
1591
+ <frontend_model>adyen/adminhtml_system_config_fieldset_method</frontend_model>
1592
+ <activity_path>payment/adyen_cash/active</activity_path>
1593
  <fields>
1594
  <active translate="label">
1595
  <label>Enabled</label>
1610
  </title>
1611
  <sort_order translate="label">
1612
  <label>Sort Order</label>
1613
+ <tooltip>Set the sequence number of this payment method in the checkout. Payment methods with a higher sort order number will be displayed lower in the list.</tooltip>
1614
  <frontend_type>text</frontend_type>
1615
+ <sort_order>30</sort_order>
1616
  <show_in_default>1</show_in_default>
1617
  <show_in_website>1</show_in_website>
1618
+ <show_in_store>1</show_in_store>
1619
  </sort_order>
1620
+ <create_shipment>
1621
+ <label>Create Shipment</label>
1622
+ <tooltip>If you enable this there will be automatically be created a shipment if the invoice is created</tooltip>
1623
+ <frontend_type>select</frontend_type>
1624
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1625
+ <sort_order>35</sort_order>
1626
  <show_in_default>1</show_in_default>
1627
  <show_in_website>1</show_in_website>
1628
+ <show_in_store>1</show_in_store>
1629
+ </create_shipment>
1630
+ <cash_express_checkout>
1631
+ <label>Cash Express checkout</label>
1632
+ <tooltip>This will show a checkout button 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</tooltip>
1633
+ <frontend_type>select</frontend_type>
1634
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1635
+ <sort_order>39</sort_order>
1636
  <show_in_default>1</show_in_default>
1637
  <show_in_website>1</show_in_website>
1638
  <show_in_store>1</show_in_store>
1639
+ </cash_express_checkout>
1640
+ <cash_drawer>
1641
+ <label>Open Cash Drawer</label>
1642
+ <tooltip>Open the Cash drawer if you connect this to your printer this works for all Epson ePOS-Device printers</tooltip>
1643
  <frontend_type>select</frontend_type>
1644
  <source_model>adminhtml/system_config_source_yesno</source_model>
1645
+ <sort_order>40</sort_order>
1646
+ <show_in_default>1</show_in_default>
1647
+ <show_in_website>1</show_in_website>
1648
+ <show_in_store>1</show_in_store>
1649
+ </cash_drawer>
1650
+ <cash_drawer_printer_ip>
1651
+ <label>IP address printer</label>
1652
+ <tooltip>Enter here the IP address of the printer where the cash drawer is connected to</tooltip>
1653
+ <frontend_type>text</frontend_type>
1654
+ <sort_order>41</sort_order>
1655
+ <show_in_default>1</show_in_default>
1656
+ <show_in_website>1</show_in_website>
1657
+ <show_in_store>1</show_in_store>
1658
+ <depends><cash_drawer>1</cash_drawer></depends>
1659
+ </cash_drawer_printer_ip>
1660
+ <cash_drawer_printer_port>
1661
+ <label>Printer port</label>
1662
+ <tooltip>Enter here the port number of the printer where the cash drawer is connected to</tooltip>
1663
+ <frontend_type>text</frontend_type>
1664
+ <sort_order>42</sort_order>
1665
+ <show_in_default>1</show_in_default>
1666
+ <show_in_website>1</show_in_website>
1667
+ <show_in_store>1</show_in_store>
1668
+ <depends><cash_drawer>1</cash_drawer></depends>
1669
+ </cash_drawer_printer_port>
1670
+ <cash_drawer_printer_device_id>
1671
+ <label>Printer Device ID</label>
1672
+ <tooltip>Enter here the deviceID of the printer where the cash drawer is connected to</tooltip>
1673
+ <frontend_type>text</frontend_type>
1674
  <sort_order>43</sort_order>
1675
  <show_in_default>1</show_in_default>
1676
  <show_in_website>1</show_in_website>
1677
  <show_in_store>1</show_in_store>
1678
+ <depends><cash_drawer>1</cash_drawer></depends>
1679
+ </cash_drawer_printer_device_id>
1680
+ <ip_filter>
1681
+ <label>IP filter</label>
1682
+ <tooltip>Enable IP filter let's you define an IP range when this payment method is visible</tooltip>
1683
  <frontend_type>select</frontend_type>
1684
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1685
  <sort_order>45</sort_order>
1686
  <show_in_default>1</show_in_default>
1687
  <show_in_website>1</show_in_website>
1688
+ <show_in_store>1</show_in_store>
1689
+ </ip_filter>
1690
+ <ip_filter_from>
1691
+ <label>IP From</label>
1692
+ <frontend_type>text</frontend_type>
1693
+ <source_model>adminhtml/system_config_source_yesno</source_model>
 
1694
  <sort_order>46</sort_order>
1695
  <show_in_default>1</show_in_default>
1696
  <show_in_website>1</show_in_website>
1697
+ <show_in_store>1</show_in_store>
1698
+ <depends><ip_filter>1</ip_filter></depends>
1699
+ </ip_filter_from>
1700
+ <ip_filter_to>
1701
+ <label>IP To</label>
1702
+ <frontend_type>text</frontend_type>
1703
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1704
+ <sort_order>47</sort_order>
1705
+ <show_in_default>1</show_in_default>
1706
+ <show_in_website>1</show_in_website>
1707
+ <show_in_store>1</show_in_store>
1708
+ <depends><ip_filter>1</ip_filter></depends>
1709
+ </ip_filter_to>
1710
+ <visible_type>
1711
+ <label>Visible in</label>
1712
+ <frontend_type>select</frontend_type>
1713
+ <source_model>adyen/source_VisibleType</source_model>
1714
+ <sort_order>80</sort_order>
1715
+ <tooltip>Where do you want to show this payment method in the backend of Magento or in the frontend for the shoppers</tooltip>
1716
+ <show_in_default>1</show_in_default>
1717
+ <show_in_website>1</show_in_website>
1718
+ <show_in_store>1</show_in_store>
1719
+ </visible_type>
1720
  <allowspecific translate="label">
1721
+ <label>Payment from applicable countries</label>
1722
  <frontend_type>allowspecific</frontend_type>
1723
+ <sort_order>90</sort_order>
1724
  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1725
  <show_in_default>1</show_in_default>
1726
  <show_in_website>1</show_in_website>
1727
  <show_in_store>1</show_in_store>
1728
  </allowspecific>
1729
  <specificcountry translate="label">
1730
+ <label>Payment from specific countries</label>
1731
  <frontend_type>multiselect</frontend_type>
1732
+ <sort_order>100</sort_order>
1733
  <source_model>adminhtml/system_config_source_country</source_model>
1734
  <show_in_default>1</show_in_default>
1735
  <show_in_website>1</show_in_website>
1736
  <show_in_store>1</show_in_store>
1737
  <depends><allowspecific>1</allowspecific></depends>
1738
  </specificcountry>
 
 
 
 
 
 
 
 
 
 
1739
  </fields>
1740
+ </adyen_cash>
1741
+ <adyen_pay_by_mail translate="label" module="adyen">
1742
+ <label>Pay By Mail</label>
 
1743
  <frontend_type>text</frontend_type>
1744
+ <sort_order>400</sort_order>
1745
  <show_in_default>1</show_in_default>
1746
  <show_in_website>1</show_in_website>
1747
  <show_in_store>1</show_in_store>
1748
+ <frontend_model>adyen/adminhtml_system_config_fieldset_method</frontend_model>
1749
+ <activity_path>payment/adyen_pay_by_mail/active</activity_path>
1750
  <fields>
1751
  <active translate="label">
1752
  <label>Enabled</label>
1767
  </title>
1768
  <sort_order translate="label">
1769
  <label>Sort Order</label>
1770
+ <tooltip>Set the sequence number of this payment method in the checkout. Payment methods with a higher sort order number will be displayed lower in the list.</tooltip>
1771
  <frontend_type>text</frontend_type>
1772
  <sort_order>25</sort_order>
1773
  <show_in_default>1</show_in_default>
1774
  <show_in_website>1</show_in_website>
1775
+ <show_in_store>1</show_in_store>
1776
  </sort_order>
1777
+ <session_validity>
1778
+ <label>Session Validity</label>
1779
+ <tooltip>How many days do you want this payment page to be active</tooltip>
1780
+ <frontend_type>text</frontend_type>
1781
  <sort_order>30</sort_order>
 
1782
  <show_in_default>1</show_in_default>
1783
  <show_in_website>1</show_in_website>
1784
  <show_in_store>1</show_in_store>
1785
+ </session_validity>
1786
+ <skin_code translate="label">
1787
+ <label>Skin Code</label>
1788
+ <tooltip>The skin code you want to use leave this empty if you want to use the same as Adyen HPP settings</tooltip>
1789
+ <frontend_type>text</frontend_type>
1790
+ <sort_order>40</sort_order>
 
1791
  <show_in_default>1</show_in_default>
1792
  <show_in_website>1</show_in_website>
1793
  <show_in_store>1</show_in_store>
1794
+ </skin_code>
1795
+ <secret_wordt translate="label">
1796
+ <label>HMAC Key for Test</label>
1797
+ <tooltip>Should match with the HMAC test key in the Adyen Customer Area. Fill this in if you are using a different skin then defined in Adyen HPP</tooltip>
1798
+ <frontend_type>text</frontend_type>
1799
  <sort_order>50</sort_order>
 
1800
  <show_in_default>1</show_in_default>
1801
  <show_in_website>1</show_in_website>
1802
  <show_in_store>1</show_in_store>
1803
+ </secret_wordt>
1804
+ <secret_wordp translate="label">
1805
+ <label>HMAC Key for Live</label>
1806
+ <tooltip>Should match with the HMAC live key in the Adyen Customer Area. Fill this in if you are using a different skin then defined in Adyen HPP</tooltip>
1807
+ <frontend_type>text</frontend_type>
1808
  <sort_order>60</sort_order>
 
1809
  <show_in_default>1</show_in_default>
1810
  <show_in_website>1</show_in_website>
1811
  <show_in_store>1</show_in_store>
1812
+ </secret_wordp>
 
1813
  <visible_type>
1814
+ <label>Visible in</label>
1815
  <frontend_type>select</frontend_type>
1816
  <source_model>adyen/source_VisibleType</source_model>
1817
  <sort_order>70</sort_order>
1818
+ <tooltip>Where do you want to show this payment method in the backend of Magento or in the frontend for the shoppers</tooltip>
1819
  <show_in_default>1</show_in_default>
1820
  <show_in_website>1</show_in_website>
1821
  <show_in_store>1</show_in_store>
1822
  </visible_type>
1823
  </fields>
1824
+ </adyen_pay_by_mail>
1825
+ <!-- @Elv only -->
1826
+ <adyen_elv translate="label" module="adyen">
1827
+ <label>ELV (Deprecated, better use Adyen SEPA)</label>
1828
  <frontend_type>text</frontend_type>
1829
+ <sort_order>410</sort_order>
1830
  <show_in_default>1</show_in_default>
1831
  <show_in_website>1</show_in_website>
1832
  <show_in_store>1</show_in_store>
1833
+ <frontend_model>adyen/adminhtml_system_config_fieldset_method</frontend_model>
1834
+ <activity_path>payment/adyen_elv/active</activity_path>
1835
  <fields>
1836
  <active translate="label">
1837
  <label>Enabled</label>
1852
  </title>
1853
  <sort_order translate="label">
1854
  <label>Sort Order</label>
1855
+ <tooltip>Set the sequence number of this payment method in the checkout. Payment methods with a higher sort order number will be displayed lower in the list.</tooltip>
1856
  <frontend_type>text</frontend_type>
1857
  <sort_order>25</sort_order>
1858
  <show_in_default>1</show_in_default>
1859
  <show_in_website>1</show_in_website>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1860
  <show_in_store>1</show_in_store>
1861
+ </sort_order>
1862
+ <allowspecific translate="label">
1863
+ <label>Payment from applicable countries</label>
1864
+ <frontend_type>allowspecific</frontend_type>
 
1865
  <sort_order>50</sort_order>
1866
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1867
  <show_in_default>1</show_in_default>
1868
  <show_in_website>1</show_in_website>
1869
  <show_in_store>1</show_in_store>
1870
+ </allowspecific>
1871
+ <specificcountry translate="label">
1872
+ <label>Payment from specific countries</label>
1873
+ <frontend_type>multiselect</frontend_type>
 
1874
  <sort_order>60</sort_order>
1875
+ <source_model>adminhtml/system_config_source_country</source_model>
1876
  <show_in_default>1</show_in_default>
1877
  <show_in_website>1</show_in_website>
1878
  <show_in_store>1</show_in_store>
1879
+ <depends><allowspecific>1</allowspecific></depends>
1880
+ </specificcountry>
1881
  <visible_type>
1882
+ <label>Visible in</label>
1883
  <frontend_type>select</frontend_type>
1884
  <source_model>adyen/source_VisibleType</source_model>
1885
  <sort_order>70</sort_order>
1886
+ <tooltip>Where do you want to show this payment method in the backend of Magento or in the frontend for the shoppers</tooltip>
1887
  <show_in_default>1</show_in_default>
1888
  <show_in_website>1</show_in_website>
1889
  <show_in_store>1</show_in_store>
1890
  </visible_type>
1891
  </fields>
1892
+ </adyen_elv>
1893
  </groups>
1894
  </payment>
1895
  </sections>
1896
+ </config>
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-install-0.0.1.php CHANGED
@@ -25,8 +25,9 @@
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
 
 
28
  $installer = $this;
29
- /* @var $installer Adyen_Payment_Model_Mysql4_Setup */
30
 
31
  $installer->startSetup();
32
 
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
+
29
+ /** @var Adyen_Payment_Model_Resource_Setup $installer */
30
  $installer = $this;
 
31
 
32
  $installer->startSetup();
33
 
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-0.0.1-0.0.2.php CHANGED
@@ -25,8 +25,9 @@
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
 
 
28
  $installer = $this;
29
- /* @var $installer Adyen_Payment_Model_Mysql4_Setup */
30
 
31
  $installer->startSetup();
32
  $installer->run("
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
+
29
+ /** @var Adyen_Payment_Model_Resource_Setup $installer */
30
  $installer = $this;
 
31
 
32
  $installer->startSetup();
33
  $installer->run("
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-0.0.7-0.0.8.php CHANGED
@@ -25,6 +25,7 @@
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
 
 
28
  $installer = $this;
29
- /* @var $installer Adyen_Payment_Model_Mysql4_Setup */
30
  $installer->addAttribute('order_payment', 'adyen_event_code', array());
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
+
29
+ /** @var Adyen_Payment_Model_Resource_Setup $installer */
30
  $installer = $this;
 
31
  $installer->addAttribute('order_payment', 'adyen_event_code', array());
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-0.0.8-0.0.9.php CHANGED
@@ -25,12 +25,9 @@
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
- try {
29
- $installer = $this;
30
- /* @var $installer Adyen_Payment_Model_Mysql4_Setup */
31
- $installer->removeAttribute('order_payment', 'adyen_event_code');
32
- $installer->addAttribute('order_payment', 'adyen_event_code', array());
33
- $installer->addAttribute('order_payment', 'adyen_payment_method', array());
34
- } catch (Exception $e) {
35
- // echo $e->__toString();die();
36
- }
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
+
29
+ /** @var Adyen_Payment_Model_Resource_Setup $installer */
30
+ $installer = $this;
31
+
32
+ /* @var $installer Adyen_Payment_Model_Resource_Setup */
33
+ $installer->addAttribute('order_payment', 'adyen_payment_method', array());
 
 
 
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-0.1.0.3-0.1.0.4.php CHANGED
@@ -25,8 +25,8 @@
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
 
28
  $installer = $this;
29
- /* @var $installer Adyen_Payment_Model_Mysql4_Setup */
30
 
31
  $installer->startSetup();
32
  $installer->run("
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
+ /** @var Adyen_Payment_Model_Resource_Setup $installer */
29
  $installer = $this;
 
30
 
31
  $installer->startSetup();
32
  $installer->run("
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-0.1.0.8-0.1.0.9.php CHANGED
@@ -25,9 +25,9 @@
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
 
28
  $installer = $this;
29
 
30
- /* @var $installer Adyen_Payment_Model_Entity_Setup */
31
  $installer->startSetup();
32
 
33
  $installer->addAttribute('order', 'adyen_event_code', array());
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
+ /* @var $installer Adyen_Payment_Model_Resource_Setup */
29
  $installer = $this;
30
 
 
31
  $installer->startSetup();
32
 
33
  $installer->addAttribute('order', 'adyen_event_code', array());
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-0.1.0.9-0.1.0.10.php CHANGED
@@ -25,9 +25,10 @@
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
- $setup = new Mage_Sales_Model_Entity_Setup('core_setup');
 
29
  //add new ones
30
- $setup->updateAttribute('order', 'adyen_event_code', array(
31
  'label' => 'Adyen Event Code',
32
  'visible' => true,
33
  'required' => false,
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
+ /** @var Adyen_Payment_Model_Resource_Setup $installer */
29
+ $installer = $this;
30
  //add new ones
31
+ $installer->updateAttribute('order', 'adyen_event_code', array(
32
  'label' => 'Adyen Event Code',
33
  'visible' => true,
34
  'required' => false,
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-1.0.0.3-1.0.0.7.php CHANGED
@@ -26,17 +26,13 @@
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
 
29
- // ALTER TABLE `sales_flat_order` ADD `adyen_boleto_pdf` TEXT NOT NULL ;
30
  $installer = $this;
31
 
32
- /* @var $installer Adyen_Payment_Model_Entity_Setup */
33
  $installer->startSetup();
34
-
35
  $installer->addAttribute('order', 'adyen_boleto_pdf', array(
36
  'label' => 'Adyen Boleto PDF',
37
  'visible' => true,
38
  'required' => false,
39
- 'type' => 'text'));
40
-
41
-
42
- ?>
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
 
29
+ /** @var Adyen_Payment_Model_Resource_Setup $installer */
30
  $installer = $this;
31
 
 
32
  $installer->startSetup();
 
33
  $installer->addAttribute('order', 'adyen_boleto_pdf', array(
34
  'label' => 'Adyen Boleto PDF',
35
  'visible' => true,
36
  'required' => false,
37
+ 'type' => 'text'
38
+ ));
 
 
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-2.0.3-2.1.0.php CHANGED
@@ -25,9 +25,9 @@
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
 
28
  $installer = $this;
29
 
30
- /* @var $installer Adyen_Payment_Model_Entity_Setup */
31
  $installer->startSetup();
32
 
33
  $installer->getConnection()->addColumn($this->getTable('sales/quote_address'), 'payment_fee_amount', "decimal(12,4) null default null");
25
  * @property Adyen B.V
26
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
27
  */
28
+ /** @var Adyen_Payment_Model_Resource_Setup $installer */
29
  $installer = $this;
30
 
 
31
  $installer->startSetup();
32
 
33
  $installer->getConnection()->addColumn($this->getTable('sales/quote_address'), 'payment_fee_amount', "decimal(12,4) null default null");
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-2.1.1-2.1.2.1.php CHANGED
@@ -24,8 +24,8 @@
24
  * @property Adyen B.V
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
 
27
  $installer = $this;
28
- /* @var $installer Adyen_Payment_Model_Mysql4_Setup */
29
 
30
  $installer->startSetup();
31
  $installer->run("ALTER TABLE `{$this->getTable('adyen/event')}` ADD INDEX `adyen_event_result`
24
  * @property Adyen B.V
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
+ /** @var Adyen_Payment_Model_Resource_Setup $installer */
28
  $installer = $this;
 
29
 
30
  $installer->startSetup();
31
  $installer->run("ALTER TABLE `{$this->getTable('adyen/event')}` ADD INDEX `adyen_event_result`
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-2.1.2.1-2.1.2.2.php CHANGED
@@ -24,8 +24,8 @@
24
  * @property Adyen B.V
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
 
27
  $installer = $this;
28
- /* @var $installer Adyen_Payment_Model_Mysql4_Setup */
29
 
30
  $installer->startSetup();
31
  $installer->run("ALTER TABLE `{$this->getTable('adyen/event')}` ADD INDEX (`adyen_event_result`);");
24
  * @property Adyen B.V
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
+ /** @var Adyen_Payment_Model_Resource_Setup $installer */
28
  $installer = $this;
 
29
 
30
  $installer->startSetup();
31
  $installer->run("ALTER TABLE `{$this->getTable('adyen/event')}` ADD INDEX (`adyen_event_result`);");
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-2.1.2.2-2.1.2.3.php CHANGED
@@ -24,8 +24,8 @@
24
  * @property Adyen B.V
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
 
27
  $installer = $this;
28
- /* @var $installer Adyen_Payment_Model_Mysql4_Setup */
29
 
30
  $installer->startSetup();
31
  $installer->addAttribute('order_payment', 'adyen_total_fraud_score', array());
24
  * @property Adyen B.V
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
+ /** @var Adyen_Payment_Model_Resource_Setup $installer */
28
  $installer = $this;
 
29
 
30
  $installer->startSetup();
31
  $installer->addAttribute('order_payment', 'adyen_total_fraud_score', array());
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-2.2.0-2.2.0.1.php CHANGED
@@ -24,8 +24,8 @@
24
  * @property Adyen B.V
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
 
27
  $installer = $this;
28
- /* @var $installer Adyen_Payment_Model_Mysql4_Setup */
29
 
30
  $installer->startSetup();
31
 
24
  * @property Adyen B.V
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
+ /** @var Adyen_Payment_Model_Resource_Setup $installer */
28
  $installer = $this;
 
29
 
30
  $installer->startSetup();
31
 
app/code/community/Adyen/Payment/sql/adyen_setup/mysql4-upgrade-2.3.1.1-2.3.1.2.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adyen Payment Module
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
+ */
27
+ $installer = new Mage_Customer_Model_Resource_Setup('core_setup');
28
+ $installer->startSetup();
29
+
30
+ /** @var Magento_Db_Adapter_Pdo_Mysql $connection */
31
+ $connection = $installer->getConnection();
32
+
33
+ $entityTypeId = $installer->getEntityTypeId('customer');
34
+ $attributeCode = 'adyen_customer_ref';
35
+ $attributeSetId = $installer->getDefaultAttributeSetId($entityTypeId);
36
+ $attributeGroupId = $installer->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
37
+
38
+ $installer->addAttribute('customer', $attributeCode, array(
39
+ 'input' => 'text',
40
+ 'type' => 'text',
41
+ 'label' => 'Adyen Customer Reference',
42
+ 'note' => 'Optional customer reference ID, only fill when customer reference is not the customer ID (when importing data from older systems for example).',
43
+ 'visible' => 1,
44
+ 'required' => 0,
45
+ 'user_defined' => 0,
46
+ ));
47
+
48
+ $attributeSortOrder = 120;
49
+ $installer->addAttributeToGroup(
50
+ $entityTypeId,
51
+ $attributeSetId,
52
+ $attributeGroupId,
53
+ $attributeCode,
54
+ $attributeSortOrder
55
+ );
56
+
57
+ $oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', $attributeCode);
58
+ $oAttribute->setData('used_in_forms', array('adminhtml_customer'));
59
+ $oAttribute->setData('sort_order', $attributeSortOrder);
60
+ $oAttribute->save();
61
+
62
+
63
+ $connection->addColumn($this->getTable('sales/billing_agreement'), 'agreement_data', [
64
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
65
+ 'nullable' => true,
66
+ 'comment' => 'Agreement Data'
67
+ ]);
68
+
69
+
70
+ $installer->endSetup();
app/design/adminhtml/default/default/layout/adyen.xml CHANGED
@@ -43,7 +43,7 @@
43
  <after>status</after>
44
  </action>
45
  </reference>
46
- </add_order_grid_column_handle>
47
  <!-- order grid action -->
48
  <adminhtml_sales_order_grid>
49
  <!-- apply the layout handle defined above -->
@@ -66,4 +66,11 @@
66
  <block type="adyen/adminhtml_adyen_event_queue_grid" name="adyen.adyen.adyen_event.queue.grid" output="toHtml"/>
67
  </adminhtml_adyen_event_queue_grid>
68
 
 
 
 
 
 
 
 
69
  </layout>
43
  <after>status</after>
44
  </action>
45
  </reference>
46
+ </add_order_grid_column_handle>
47
  <!-- order grid action -->
48
  <adminhtml_sales_order_grid>
49
  <!-- apply the layout handle defined above -->
66
  <block type="adyen/adminhtml_adyen_event_queue_grid" name="adyen.adyen.adyen_event.queue.grid" output="toHtml"/>
67
  </adminhtml_adyen_event_queue_grid>
68
 
69
+ <adminhtml_sales_order_create_index>
70
+ <reference name="head">
71
+ <action method="addJs"><script>adyen/payment/iban.js</script></action>
72
+ <action method="addJs"><script>adyen/adminhtml/sales.js</script></action>
73
+ </reference>
74
+ </adminhtml_sales_order_create_index>
75
+
76
  </layout>
app/design/adminhtml/default/default/template/adyen/form/cc.phtml CHANGED
@@ -25,6 +25,7 @@
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
  ?>
 
28
  <?php $_code=$this->getMethodCode() ?>
29
  <ul id="payment_form_<?php echo $_code ?>" style="display:none;">
30
  <li>
@@ -49,6 +50,10 @@
49
  <div class="input-box">
50
  <label for="<?php echo $_code ?>_cc_number"><?php echo Mage::helper('payment')->__('Credit Card Number') ?> <span class="required">*</span></label><br/>
51
  <input type="text" id="<?php echo $_code ?>_cc_number" <?php echo (!$this->isCseEnabled() ? "name=\"payment[cc_number]\"" : " data-encrypted-name=\"number\""); ?> title="<?php echo $this->__('Credit Card Number') ?>" class="input-text validate-cc-number validate-cc-type" value="" maxlength="23"/>
 
 
 
 
52
  </div>
53
  </li>
54
  <li>
@@ -126,6 +131,10 @@
126
  }
127
  }
128
  var cse_initialize = function() {
 
 
 
 
129
  if (typeof adyen === 'undefined') {
130
  js = document.createElement("script");
131
  js.type = "text/javascript";
@@ -145,6 +154,23 @@
145
  else {
146
  Event.observe(window, 'load', cse_initialize);
147
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  //]]>
149
  </script>
150
  <?php endif;?>
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
  ?>
28
+ <?php /** @var Adyen_Payment_Block_Form_Cc $this */; ?>
29
  <?php $_code=$this->getMethodCode() ?>
30
  <ul id="payment_form_<?php echo $_code ?>" style="display:none;">
31
  <li>
50
  <div class="input-box">
51
  <label for="<?php echo $_code ?>_cc_number"><?php echo Mage::helper('payment')->__('Credit Card Number') ?> <span class="required">*</span></label><br/>
52
  <input type="text" id="<?php echo $_code ?>_cc_number" <?php echo (!$this->isCseEnabled() ? "name=\"payment[cc_number]\"" : " data-encrypted-name=\"number\""); ?> title="<?php echo $this->__('Credit Card Number') ?>" class="input-text validate-cc-number validate-cc-type" value="" maxlength="23"/>
53
+ <?php if ($this->isCseEnabled()): ?>
54
+ <input type="hidden" id="payment_cc_type_cse" name="payment[cc_type]" />
55
+ <input type="hidden" id="payment_cc_number_cse" name="payment[cc_number]" />
56
+ <?php endif; ?>
57
  </div>
58
  </li>
59
  <li>
131
  }
132
  }
133
  var cse_initialize = function() {
134
+ $('payment_form_<?=$_code;?>').select('input', 'select', 'textarea').each(function(field) {
135
+ field.value = localStorage.getItem(field.id);
136
+ });
137
+
138
  if (typeof adyen === 'undefined') {
139
  js = document.createElement("script");
140
  js.type = "text/javascript";
154
  else {
155
  Event.observe(window, 'load', cse_initialize);
156
  }
157
+
158
+ $('payment_form_<?=$_code;?>').select('input', 'select', 'textarea').each(function(field) {
159
+ field.observe('change', function() {
160
+ localStorage.setItem(field.id, field.value);
161
+ });
162
+ });
163
+
164
+ // Set cc_number and cc_type on hidden input field
165
+ var cc_type = document.getElementById('<?php echo $_code ?>_cc_type'),
166
+ cc_number = document.getElementById('<?php echo $_code ?>_cc_number'),
167
+ hidden_cc_number = document.getElementById('payment_cc_number_cse'),
168
+ hidden_cc_type = document.getElementById('payment_cc_type_cse');
169
+
170
+ cc_number.addEventListener('change', function() {
171
+ hidden_cc_type.value = cc_type.value != '' ? 1 : '';
172
+ hidden_cc_number.value = cc_number.value != '' ? 1 : '';
173
+ }, false);
174
  //]]>
175
  </script>
176
  <?php endif;?>
app/design/adminhtml/default/default/template/adyen/form/hpp.phtml CHANGED
@@ -48,7 +48,7 @@
48
  <input type="radio" id="hpp_type_<?php echo $_typeCode ?>" name="payment[hpp_type]" value="<?php echo $_typeCode ?>" onclick="enableOptions('<?php echo $_typeCode ?>')"/>
49
  </td>
50
  <?php if (file_exists($filename)): ?>
51
- <td width="80px"><label for="hpp_type_<?php echo $_typeCode ?>"><img src="<?php echo $this->getSkinUrl('images'.DS.'adyen'.DS."$_typeCode.png") ?>" alt="<?php echo $_typeName ?>" /></label></td>
52
  <?php endif ?>
53
 
54
  <td><label for="hpp_type_<?php echo $_typeCode ?>"><?php echo $this->__($_typeName) ?></label></td>
@@ -75,7 +75,7 @@
75
  <input type="radio" id="hpp_ideal_type_<?php echo $_issueId ?>" name="payment[hpp_ideal_type]" value="<?php echo $_issueId .DS. $_IssueLabel ?>"/>
76
  </td>
77
  <?php if (file_exists($_filename)): ?>
78
- <td width="80px"><label for="hpp_ideal_type_<?php echo $_issueId ?>"><img src="<?php echo $this->getSkinUrl('images'.DS.'adyen'.DS."$_bankFile.png") ?>" alt="<?php echo $_IssueLabel ?>" label="<?php echo $_IssueLabel ?>" /></label></td>
79
  <?php else: ?>
80
  <td width="80px" class="label_hpp_ideal_type"><label width="80px" for="ideal_type_label_<?php echo $_issueId ?>"><?php echo $_IssueLabel ?></label></td>
81
  <?php endif; ?>
48
  <input type="radio" id="hpp_type_<?php echo $_typeCode ?>" name="payment[hpp_type]" value="<?php echo $_typeCode ?>" onclick="enableOptions('<?php echo $_typeCode ?>')"/>
49
  </td>
50
  <?php if (file_exists($filename)): ?>
51
+ <td width="80px"><label for="hpp_type_<?php echo $_typeCode ?>"><img src="<?php echo $this->getSkinUrl("images/adyen/$_typeCode.png") ?>" alt="<?php echo $_typeName ?>" /></label></td>
52
  <?php endif ?>
53
 
54
  <td><label for="hpp_type_<?php echo $_typeCode ?>"><?php echo $this->__($_typeName) ?></label></td>
75
  <input type="radio" id="hpp_ideal_type_<?php echo $_issueId ?>" name="payment[hpp_ideal_type]" value="<?php echo $_issueId .DS. $_IssueLabel ?>"/>
76
  </td>
77
  <?php if (file_exists($_filename)): ?>
78
+ <td width="80px"><label for="hpp_ideal_type_<?php echo $_issueId ?>"><img src="<?php echo $this->getSkinUrl("images/adyen/$_bankFile.png") ?>" alt="<?php echo $_IssueLabel ?>" label="<?php echo $_IssueLabel ?>" /></label></td>
79
  <?php else: ?>
80
  <td width="80px" class="label_hpp_ideal_type"><label width="80px" for="ideal_type_label_<?php echo $_issueId ?>"><?php echo $_IssueLabel ?></label></td>
81
  <?php endif; ?>
app/design/adminhtml/default/default/template/adyen/form/oneclick.phtml CHANGED
@@ -24,6 +24,7 @@
24
  * @property Adyen B.V
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
 
27
  ?>
28
  <?php $_code=$this->getMethodCode() ?>
29
  <ul id="payment_form_<?php echo $_code ?>" style="display:none;">
@@ -60,7 +61,7 @@
60
  </div>
61
  </div>
62
 
63
- <?php if($this->isNotRecurring()): ?>
64
  <div class="columns three c">
65
  <label><?php echo $this->__('Card Verification Number') ?></label>
66
  <?php if($this->hasVerification()): ?>
24
  * @property Adyen B.V
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
+ /** @var $this Adyen_Payment_Block_Form_Oneclick */
28
  ?>
29
  <?php $_code=$this->getMethodCode() ?>
30
  <ul id="payment_form_<?php echo $_code ?>" style="display:none;">
61
  </div>
62
  </div>
63
 
64
+ <?php if( $this->showCvc()):?>
65
  <div class="columns three c">
66
  <label><?php echo $this->__('Card Verification Number') ?></label>
67
  <?php if($this->hasVerification()): ?>
app/design/adminhtml/default/default/template/adyen/form/sepa.phtml CHANGED
@@ -25,10 +25,10 @@
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
  $_code=$this->getMethodCode();
 
28
  ?>
29
 
30
  <ul id="payment_form_<?php echo $_code ?>" style="display:none">
31
-
32
  <li>
33
  <div class="input-box">
34
  <label for="<?php echo $_code ?>_account_number"><?php echo $this->__('Bank account holder name') ?> <span class="required">*</span></label><br />
@@ -36,7 +36,7 @@ $_code=$this->getMethodCode();
36
  type="text" id="<?php echo $_code ?>_account_name" name="payment[account_name]"
37
  title="<?php echo $this->__('Bank account holder name') ?>"
38
  class="validate-ipayment-sepa-account-name required-entry input-text"
39
- autocomplete="off"
40
  />
41
  </div>
42
  </li>
@@ -46,8 +46,8 @@ $_code=$this->getMethodCode();
46
  <input
47
  type="text" id="<?php echo $_code ?>_iban" name="payment[iban]"
48
  title="<?php echo $this->__('IBAN') ?>"
49
- class="validate-ipayment-sepa-iban required-entry input-text"
50
- autocomplete="off"
51
  />
52
  </div>
53
  </li>
@@ -58,11 +58,18 @@ $_code=$this->getMethodCode();
58
  <select id="<?php echo $_code ?>_country" name="payment[country]" name="payment[country]" title="<?php echo $this->__('Country') ?>" class="validate-ipayment-sepa-country required-entry input-√√√">
59
  <option value="">--</option>
60
  <?php foreach($this->getCountries() as $_country): ?>
61
- <option value="<?php echo $_country['value'] ?>"<?php echo ($_country['value'] == $this->getShopperCountryId()) ? " selected" : ""; ?>><?php echo $_country['label'] ?></option>
62
  <?php endforeach; ?>
63
  </select>
64
  </div>
65
  </li>
 
 
 
 
 
 
 
66
  </ul>
67
 
68
  <div>
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
  $_code=$this->getMethodCode();
28
+ /** @var $this Adyen_Payment_Block_Form_Sepa */
29
  ?>
30
 
31
  <ul id="payment_form_<?php echo $_code ?>" style="display:none">
 
32
  <li>
33
  <div class="input-box">
34
  <label for="<?php echo $_code ?>_account_number"><?php echo $this->__('Bank account holder name') ?> <span class="required">*</span></label><br />
36
  type="text" id="<?php echo $_code ?>_account_name" name="payment[account_name]"
37
  title="<?php echo $this->__('Bank account holder name') ?>"
38
  class="validate-ipayment-sepa-account-name required-entry input-text"
39
+ value="<?=$this->getBankHolderValue();?>" autocomplete="off"
40
  />
41
  </div>
42
  </li>
46
  <input
47
  type="text" id="<?php echo $_code ?>_iban" name="payment[iban]"
48
  title="<?php echo $this->__('IBAN') ?>"
49
+ class="validate-ipayment-sepa-iban validate-iban-number required-entry input-text"
50
+ value="<?=$this->getIbanValue();?>" autocomplete="off"
51
  />
52
  </div>
53
  </li>
58
  <select id="<?php echo $_code ?>_country" name="payment[country]" name="payment[country]" title="<?php echo $this->__('Country') ?>" class="validate-ipayment-sepa-country required-entry input-√√√">
59
  <option value="">--</option>
60
  <?php foreach($this->getCountries() as $_country): ?>
61
+ <option value="<?php echo $_country['value'] ?>"<?php echo ($_country['value'] == $this->getCountryValue()) ? " selected" : ""; ?>><?php echo $_country['label'] ?></option>
62
  <?php endforeach; ?>
63
  </select>
64
  </div>
65
  </li>
66
+
67
+ <li>
68
+ <div class="input-box">
69
+ <input class="required-entry" type="checkbox" name="payment[accept_sepa]" id="<?php echo $_code ?>_accept_sepa" />
70
+ <label for="<?php echo $_code ?>_accept_sepa"><?php echo $this->__('I agree that the above amount will be debited from my bank account.') ?></label>
71
+ </div>
72
+ </li>
73
  </ul>
74
 
75
  <div>
app/design/adminhtml/default/default/template/adyen/system/config/test_webserver_configuration.phtml CHANGED
@@ -44,11 +44,11 @@
44
  var baseUrl = "<?php echo $this->getUrlWebserverValidation(); ?>";
45
 
46
  if('<?php echo $this->getModus(); ?>' == 'test') {
47
- var username = $('payment_adyen_abstract_ws_username_test').value;
48
- var password = $('payment_adyen_abstract_ws_password_test').value;
49
  } else {
50
- var username = $('payment_adyen_abstract_ws_username_live').value;
51
- var password = $('payment_adyen_abstract_ws_password_live').value;
52
  }
53
 
54
  var request = new Ajax.Request(baseUrl, {
44
  var baseUrl = "<?php echo $this->getUrlWebserverValidation(); ?>";
45
 
46
  if('<?php echo $this->getModus(); ?>' == 'test') {
47
+ var username = $('payment_adyen_required_settings_ws_username_test').value;
48
+ var password = $('payment_adyen_required_settings_ws_password_test').value;
49
  } else {
50
+ var username = $('payment_adyen_required_settings_ws_username_live').value;
51
+ var password = $('payment_adyen_required_settings_ws_password_live').value;
52
  }
53
 
54
  var request = new Ajax.Request(baseUrl, {
app/design/frontend/base/default/layout/adyen.xml CHANGED
@@ -27,26 +27,6 @@
27
  */
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/saved_cards.phtml"/>
47
- </reference>
48
- </adyen_savedcard_index>
49
-
50
  <adyen_updatecart_index>
51
  <update handle="checkout_cart_index" />
52
  </adyen_updatecart_index>
@@ -66,6 +46,7 @@
66
  <checkout_onepage_index>
67
  <reference name="head">
68
  <action method="addJs"><script>adyen/payment/cc.js</script></action>
 
69
  <action method="addJs"><script>adyen/payment/elv.js</script></action>
70
  <action method="addCss"><stylesheet>css/adyenstyle.css</stylesheet></action>
71
  </reference>
@@ -89,6 +70,7 @@
89
  <onestepcheckout_index_index>
90
  <reference name="head">
91
  <action method="addJs"><script>adyen/payment/cc.js</script></action>
 
92
  <action method="addJs"><script>adyen/payment/elv.js</script></action>
93
  <action method="addCss"><stylesheet>css/adyenstyle.css</stylesheet></action>
94
  </reference>
@@ -111,6 +93,7 @@
111
  <checkout_multishipping_billing>
112
  <reference name="head">
113
  <action method="addJs"><script>adyen/payment/cc.js</script></action>
 
114
  <action method="addJs"><script>adyen/payment/elv.js</script></action>
115
  <action method="addCss"><stylesheet>css/adyenstyle.css</stylesheet></action>
116
  </reference>
27
  */
28
  -->
29
  <layout version="0.1.0">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  <adyen_updatecart_index>
31
  <update handle="checkout_cart_index" />
32
  </adyen_updatecart_index>
46
  <checkout_onepage_index>
47
  <reference name="head">
48
  <action method="addJs"><script>adyen/payment/cc.js</script></action>
49
+ <action method="addJs"><script>adyen/payment/iban.js</script></action>
50
  <action method="addJs"><script>adyen/payment/elv.js</script></action>
51
  <action method="addCss"><stylesheet>css/adyenstyle.css</stylesheet></action>
52
  </reference>
70
  <onestepcheckout_index_index>
71
  <reference name="head">
72
  <action method="addJs"><script>adyen/payment/cc.js</script></action>
73
+ <action method="addJs"><script>adyen/payment/iban.js</script></action>
74
  <action method="addJs"><script>adyen/payment/elv.js</script></action>
75
  <action method="addCss"><stylesheet>css/adyenstyle.css</stylesheet></action>
76
  </reference>
93
  <checkout_multishipping_billing>
94
  <reference name="head">
95
  <action method="addJs"><script>adyen/payment/cc.js</script></action>
96
+ <action method="addJs"><script>adyen/payment/iban.js</script></action>
97
  <action method="addJs"><script>adyen/payment/elv.js</script></action>
98
  <action method="addCss"><stylesheet>css/adyenstyle.css</stylesheet></action>
99
  </reference>
app/design/frontend/base/default/template/adyen/form/cc.phtml CHANGED
@@ -33,7 +33,7 @@ $_code = $this->getMethodCode();
33
  <li class="adyen_payment_creditcard_labels">
34
  <?php $count = 0;
35
  foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
36
- <?php $_filename = $this->getSkinUrl('images'.DS.'adyen'.DS. strtolower($_typeCode) . "_small.png"); ?>
37
  <img id="cc_type_<?php echo $count; ?>" width="40" height="22" src="<?php echo $_filename; ?>" alt="" class="mid" />
38
  <?php ++$count;
39
  endforeach; ?>
@@ -43,174 +43,6 @@ $_code = $this->getMethodCode();
43
  <label for="<?php echo $_code ?>_cc_number" class="required"><em>*</em><?php echo $this->__('Credit Card Number') ?></label>
44
  <div class="input-box">
45
  <input type="text" id="<?php echo $_code ?>_cc_number" <?php echo (!$this->isCseEnabled() ? "name=\"payment[cc_number]\"" : " data-encrypted-name=\"number\""); ?> title="<?php echo $this->__('Credit Card Number') ?>" class="input-text validate-cc-type required-entry" value="" maxlength="23"/>
46
- <script type="text/javascript">
47
- var group_types = [];
48
- <?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
49
- group_types.push("<?php echo $_typeCode; ?>");
50
- <?php endforeach ?>
51
-
52
- card_previousCardNumber = "";
53
-
54
- function selectBrand() {
55
-
56
- cardNumber = (document.getElementById( '<?php echo $_code ?>_cc_number' ).value);
57
- dontHideErrorFrame = null;
58
-
59
- // empty card field - reset all
60
- if (cardNumber.length == 0) {
61
- card_previousCardNumber = cardNumber;
62
- cardSetCardBrand(null, false, group_types);
63
- return;
64
- }
65
-
66
- // When editing the card (but not adding digits at the end), don't reformat the number
67
- var l=0;
68
- while(l < card_previousCardNumber.length && l < cardNumber.length) {
69
- if(cardNumber[l] != card_previousCardNumber[l]) {
70
- card_previousCardNumber = cardNumber;
71
- return;
72
- }
73
- l++;
74
- }
75
-
76
- // remove all whitespace
77
- reg = /\s+/g;
78
- cardNumber = cardNumber.replace(reg,'');
79
-
80
- nrOfDigits = cardNumber.length;
81
- if(nrOfDigits > 19){
82
- return;
83
- }
84
-
85
- baseCard = getBaseCard(cardNumber, group_types);
86
-
87
- if(baseCard != null) {
88
- cardSetCardBrand(baseCard, true, group_types);
89
- } else if(nrOfDigits > 4) {
90
- cardSetCardBrand(null, true, group_types);
91
- } else {
92
- cardSetCardBrand(null, false, group_types);
93
- }
94
-
95
- //show value with white space after four numbers
96
- result = cardNumber.replace(/(\d{4})/g, '$1 ');
97
- result = result.replace(/\s+$/, ''); //remove trailing spaces
98
- card_previousCardNumber = result;
99
- document.getElementById( '<?php echo $_code; ?>_cc_number' ).value = result;
100
- }
101
-
102
- function cardSetCardBrand(selectedCard, greyInactive, group_types) {
103
-
104
- for(var i = 0; i < group_types.length; ++i) {
105
- var imageId = 'cc_type_' + i;
106
- if(selectedCard != null && group_types[i] == selectedCard.cardtype) {
107
- // remove class
108
- $(imageId).removeClassName('grey');
109
- // set hidden field cc type for installments
110
- $('<?php echo $_code ?>_cc_type').setValue(selectedCard.cardtype);
111
- } else {
112
- if(greyInactive) {
113
- // add class
114
- $(imageId).addClassName('grey');
115
- } else {
116
- // remove class
117
- $(imageId).removeClassName('grey');
118
- }
119
- }
120
- document.getElementById(imageId).style.display="inline";
121
- }
122
-
123
- <?php if($this->hasInstallments()): ?>
124
- if(selectedCard != null ) {
125
- var interval = setInterval(getInstallments(selectedCard.cardtype), 500);
126
- }
127
- <?php endif; ?>
128
-
129
- cardSetCvcElementselectedCardType(selectedCard != null ? selectedCard.cardtype : null);
130
-
131
- }
132
-
133
- function cardSetCvcElementselectedCardType(selectedCardType) {
134
- var cvcCodeElem = document.getElementById( '<?php echo $_code; ?>_cc_cid' );
135
-
136
- // first remove classnames
137
- cvcCodeElem.removeClassName('maximum-length-3');
138
- cvcCodeElem.removeClassName('minimum-length-3');
139
- cvcCodeElem.removeClassName('maximum-length-4');
140
- cvcCodeElem.removeClassName('minimum-length-4');
141
-
142
- if(selectedCardType == null) {
143
- // error do nothing
144
- } else if(selectedCardType == "AE") {
145
- cvcCodeElem.maxLength = 4;
146
- cvcCodeElem.addClassName('maximum-length-4');
147
- cvcCodeElem.addClassName('minimum-length-4');
148
- } else {
149
- cvcCodeElem.maxLength = 3;
150
- cvcCodeElem.addClassName('maximum-length-3');
151
- cvcCodeElem.addClassName('minimum-length-3');
152
- }
153
- }
154
-
155
- var ajaxReq;
156
- function getInstallments(variant) {
157
-
158
- // get the installments for this cardtype
159
- var ccType = variant;
160
-
161
- var url = '<?php echo $this->getUrl('adyen/GetInstallments', array('_secure'=>true)); ?>';
162
-
163
- if(ajaxReq && ajaxReq.readystate != 4){
164
- ajaxReq.transport.abort();
165
- }
166
-
167
- ajaxReq = new Ajax.Request(url, {
168
- parameters: {ccType: ccType, isAjax: 1, method: 'POST'},
169
- onSuccess: function(transport) {
170
-
171
- if(transport.status == 200) {
172
-
173
- // get current selected installment
174
- var currentSelectedInstallment = document.getElementById('<?php echo $_code ?>_installments').getValue();
175
-
176
- // clear the select box
177
- document.getElementById('<?php echo $_code ?>_installments').options.length = 0;
178
-
179
- var response = transport.responseText.evalJSON();
180
-
181
- var sel = false;
182
- for (var key in response) {
183
-
184
- // change the installments
185
- var opt = document.createElement('option');
186
- opt.text = response[key]
187
- opt.value = key;
188
- // check if selected installment is still available
189
- if(currentSelectedInstallment == key) {
190
- sel = true;
191
- }
192
- $('<?php echo $_code ?>_installments').options.add(opt);
193
- }
194
-
195
- if(sel == true && currentSelectedInstallment) {
196
- document.getElementById('adyen_cc_installments').value=currentSelectedInstallment;
197
- }
198
- }
199
- },
200
- onFailure: function(){
201
- alert('<?php echo $this->jsQuoteEscape($this->__('Server Error. Please try again.')) ?>');
202
- }
203
- });
204
- }
205
-
206
- // default
207
- cardSetCardBrand(null, false, group_types);
208
-
209
- // observers
210
- Event.observe($('<?php echo $_code ?>_cc_number'), 'change', selectBrand);
211
- Event.observe($('<?php echo $_code ?>_cc_number'), 'keyup', selectBrand);
212
-
213
- </script>
214
  </div>
215
  </li>
216
  <li class="adyen_payment_input_fields">
@@ -268,8 +100,8 @@ $_code = $this->getMethodCode();
268
  </li>
269
  <?php endif;?>
270
 
271
- <?php if($this->showRememberThisCheckoutbox()): ?>
272
- <li id="adyen-remember-these-details" class="adyen_payment_input_fields">
273
  <div class="input-box">
274
  <div class="v-fix">
275
  <input type="checkbox" name="payment[store_cc]" id="<?php echo $_code ?>_store_cc" value="1" checked />
@@ -280,10 +112,184 @@ $_code = $this->getMethodCode();
280
  <script type="text/javascript">
281
  // don't show save cc for quest checkout. Only possible to detect with javascript
282
  if ($('login:guest') && $('login:guest').checked) {
283
- $('adyen-remember-these-details').hide();
284
  }
285
  </script>
286
  <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  <?php if ($this->isCseEnabled()): ?>
288
  <input type="hidden" id="<?php echo $_code ?>_encrypted_form_expiry_generationtime" value="<?php echo date("c"); ?>" data-encrypted-name="generationtime" />
289
  <script type="text/javascript">
@@ -326,4 +332,4 @@ $_code = $this->getMethodCode();
326
  cseInit();
327
  </script>
328
  <?php endif;?>
329
- </ul>
33
  <li class="adyen_payment_creditcard_labels">
34
  <?php $count = 0;
35
  foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
36
+ <?php $_filename = $this->getSkinUrl('images/adyen/' . strtolower($_typeCode) . '_small.png'); ?>
37
  <img id="cc_type_<?php echo $count; ?>" width="40" height="22" src="<?php echo $_filename; ?>" alt="" class="mid" />
38
  <?php ++$count;
39
  endforeach; ?>
43
  <label for="<?php echo $_code ?>_cc_number" class="required"><em>*</em><?php echo $this->__('Credit Card Number') ?></label>
44
  <div class="input-box">
45
  <input type="text" id="<?php echo $_code ?>_cc_number" <?php echo (!$this->isCseEnabled() ? "name=\"payment[cc_number]\"" : " data-encrypted-name=\"number\""); ?> title="<?php echo $this->__('Credit Card Number') ?>" class="input-text validate-cc-type required-entry" value="" maxlength="23"/>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  </div>
47
  </li>
48
  <li class="adyen_payment_input_fields">
100
  </li>
101
  <?php endif;?>
102
 
103
+ <?php if($this->canCreateBillingAgreement()): ?>
104
+ <li id="adyen-cc-remember-these-details" class="adyen_payment_input_fields">
105
  <div class="input-box">
106
  <div class="v-fix">
107
  <input type="checkbox" name="payment[store_cc]" id="<?php echo $_code ?>_store_cc" value="1" checked />
112
  <script type="text/javascript">
113
  // don't show save cc for quest checkout. Only possible to detect with javascript
114
  if ($('login:guest') && $('login:guest').checked) {
115
+ $('adyen-cc-remember-these-details').hide();
116
  }
117
  </script>
118
  <?php endif; ?>
119
+
120
+ <script type="text/javascript">
121
+ var group_types = [];
122
+ <?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
123
+ group_types.push("<?php echo $_typeCode; ?>");
124
+ <?php endforeach ?>
125
+
126
+ card_previousCardNumber = "";
127
+
128
+ function selectBrand() {
129
+
130
+ cardNumber = (document.getElementById( '<?php echo $_code ?>_cc_number' ).value);
131
+ dontHideErrorFrame = null;
132
+
133
+ // empty card field - reset all
134
+ if (cardNumber.length == 0) {
135
+ card_previousCardNumber = cardNumber;
136
+ cardSetCardBrand(null, false, group_types);
137
+ return;
138
+ }
139
+
140
+ // When editing the card (but not adding digits at the end), don't reformat the number
141
+ var l=0;
142
+ while(l < card_previousCardNumber.length && l < cardNumber.length) {
143
+ if(cardNumber[l] != card_previousCardNumber[l]) {
144
+ card_previousCardNumber = cardNumber;
145
+ return;
146
+ }
147
+ l++;
148
+ }
149
+
150
+ // remove all whitespace
151
+ reg = /\s+/g;
152
+ cardNumber = cardNumber.replace(reg,'');
153
+
154
+ nrOfDigits = cardNumber.length;
155
+ if(nrOfDigits > 19){
156
+ return;
157
+ }
158
+
159
+ baseCard = getBaseCard(cardNumber, group_types);
160
+
161
+ if(baseCard != null) {
162
+ cardSetCardBrand(baseCard, true, group_types);
163
+ } else if(nrOfDigits > 4) {
164
+ cardSetCardBrand(null, true, group_types);
165
+ } else {
166
+ cardSetCardBrand(null, false, group_types);
167
+ }
168
+
169
+ //show value with white space after four numbers
170
+ result = cardNumber.replace(/(\d{4})/g, '$1 ');
171
+ result = result.replace(/\s+$/, ''); //remove trailing spaces
172
+ card_previousCardNumber = result;
173
+ document.getElementById( '<?php echo $_code; ?>_cc_number' ).value = result;
174
+ }
175
+
176
+ function cardSetCardBrand(selectedCard, greyInactive, group_types) {
177
+
178
+ for(var i = 0; i < group_types.length; ++i) {
179
+ var imageId = 'cc_type_' + i;
180
+ if(selectedCard != null && group_types[i] == selectedCard.cardtype) {
181
+ // remove class
182
+ $(imageId).removeClassName('grey');
183
+ // set hidden field cc type for installments
184
+ $('<?php echo $_code ?>_cc_type').setValue(selectedCard.cardtype);
185
+ } else {
186
+ if(greyInactive) {
187
+ // add class
188
+ $(imageId).addClassName('grey');
189
+ } else {
190
+ // remove class
191
+ $(imageId).removeClassName('grey');
192
+ }
193
+ }
194
+ document.getElementById(imageId).style.display="inline";
195
+ }
196
+
197
+ <?php if($this->hasInstallments()): ?>
198
+ if(selectedCard != null ) {
199
+ var interval = setInterval(getInstallments(selectedCard.cardtype), 500);
200
+ }
201
+ <?php endif; ?>
202
+
203
+ cardSetCvcElementselectedCardType(selectedCard != null ? selectedCard.cardtype : null);
204
+
205
+ }
206
+
207
+ function cardSetCvcElementselectedCardType(selectedCardType) {
208
+ var cvcCodeElem = document.getElementById( '<?php echo $_code; ?>_cc_cid' );
209
+
210
+ // first remove classnames
211
+ if(cvcCodeElem != null) {
212
+ cvcCodeElem.removeClassName('maximum-length-3');
213
+ cvcCodeElem.removeClassName('minimum-length-3');
214
+ cvcCodeElem.removeClassName('maximum-length-4');
215
+ cvcCodeElem.removeClassName('minimum-length-4');
216
+ }
217
+
218
+ if(selectedCardType == null) {
219
+ // error do nothing
220
+ } else if(selectedCardType == "AE") {
221
+ cvcCodeElem.maxLength = 4;
222
+ cvcCodeElem.addClassName('maximum-length-4');
223
+ cvcCodeElem.addClassName('minimum-length-4');
224
+ } else {
225
+ cvcCodeElem.maxLength = 3;
226
+ cvcCodeElem.addClassName('maximum-length-3');
227
+ cvcCodeElem.addClassName('minimum-length-3');
228
+ }
229
+ }
230
+
231
+ var ajaxReq;
232
+ function getInstallments(variant) {
233
+
234
+ // get the installments for this cardtype
235
+ var ccType = variant;
236
+
237
+ var url = '<?php echo $this->getUrl('adyen/GetInstallments', array('_secure'=>true)); ?>';
238
+
239
+ if(ajaxReq && ajaxReq.readystate != 4){
240
+ ajaxReq.transport.abort();
241
+ }
242
+
243
+ ajaxReq = new Ajax.Request(url, {
244
+ parameters: {ccType: ccType, isAjax: 1, method: 'POST'},
245
+ onSuccess: function(transport) {
246
+
247
+ if(transport.status == 200) {
248
+
249
+ // get current selected installment
250
+ var currentSelectedInstallment = document.getElementById('<?php echo $_code ?>_installments').getValue();
251
+
252
+ // clear the select box
253
+ document.getElementById('<?php echo $_code ?>_installments').options.length = 0;
254
+
255
+ var response = transport.responseText.evalJSON();
256
+
257
+ var sel = false;
258
+ for (var key in response) {
259
+
260
+ // change the installments
261
+ var opt = document.createElement('option');
262
+ opt.text = response[key]
263
+ opt.value = key;
264
+ // check if selected installment is still available
265
+ if(currentSelectedInstallment == key) {
266
+ sel = true;
267
+ }
268
+ $('<?php echo $_code ?>_installments').options.add(opt);
269
+ }
270
+
271
+ if(sel == true && currentSelectedInstallment) {
272
+ document.getElementById('adyen_cc_installments').value=currentSelectedInstallment;
273
+ }
274
+ }
275
+ },
276
+ onFailure: function(){
277
+ alert('<?php echo $this->jsQuoteEscape($this->__('Server Error. Please try again.')) ?>');
278
+ }
279
+ });
280
+ }
281
+
282
+ // default
283
+ window.onload = function(){
284
+ cardSetCardBrand(null, false, group_types);
285
+ }
286
+
287
+ // observers
288
+ Event.observe($('<?php echo $_code ?>_cc_number'), 'change', selectBrand);
289
+ Event.observe($('<?php echo $_code ?>_cc_number'), 'keyup', selectBrand);
290
+
291
+ </script>
292
+
293
  <?php if ($this->isCseEnabled()): ?>
294
  <input type="hidden" id="<?php echo $_code ?>_encrypted_form_expiry_generationtime" value="<?php echo date("c"); ?>" data-encrypted-name="generationtime" />
295
  <script type="text/javascript">
332
  cseInit();
333
  </script>
334
  <?php endif;?>
335
+ </ul>
app/design/frontend/base/default/template/adyen/form/oneclick.phtml CHANGED
@@ -24,54 +24,53 @@
24
  * @property Adyen B.V
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
27
- ?>
28
- <?php $_code=$this->getMethodCode() ?>
29
 
 
 
 
 
 
 
30
  <fieldset id="" class="">
31
  <ul class="form-list adyen_oneclick" id="payment_form_<?php echo $_code ?>" style="display:none">
32
  <li>
33
-
34
- <?php
35
- $recurringDetails = $this->getRecurringDetails();
36
- ?>
37
-
38
- <?php if(isset($recurringDetails["card_number"]) && isset($recurringDetails["card_expiryMonth"]) && isset($recurringDetails["card_expiryYear"]) ): ?>
39
  <div class="columns three a">
40
  <label><?php echo $this->__('Credit Card Number') ?></label>
41
- <span>****</span> <?php echo $recurringDetails["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 $_code; ?>" class="update-expiration-date"><?php echo $this->__('(update)') ?></a></label>
46
 
47
  <div id="static-card-expiry-<?php echo $_code; ?>" class="static-card-expiry">
48
- <?php echo $recurringDetails["card_expiryMonth"] . " /" . $recurringDetails["card_expiryYear"]; ?>
49
  </div>
50
  <div id="changable-card-expiry-<?php echo $_code; ?>" class="changable-card-expiry" style="display:none;">
51
  <select id="<?php echo $_code ?>_expiration_<?php echo $_code; ?>" <?php echo (!$this->isCseEnabled() ? "name=\"payment[oneclick_exp_month]\"" : "data-encrypted-name-oneclick-" . $_code . "=expiryMonth"); ?> class="month validate-oneclick-exp required-entry">
52
  <?php foreach ($this->getCcMonths() as $k=>$v): ?>
53
- <option value="<?php echo $k?$k:'' ?>"<?php if($k==$recurringDetails["card_expiryMonth"]): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
54
  <?php endforeach ?>
55
  </select>
56
 
57
  <select id="<?php echo $_code ?>_expiration_yr_<?php echo $_code; ?>" <?php echo (!$this->isCseEnabled() ? "name=\"payment[oneclick_exp_year]\"" : "data-encrypted-name-oneclick-" . $_code . "=expiryYear"); ?> class="year required-entry">
58
  <?php foreach ($this->getCcYears() as $k=>$v): ?>
59
- <option value="<?php echo $k?$k:'' ?>"<?php if($k==$recurringDetails["card_expiryYear"]): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
60
  <?php endforeach ?>
61
  </select>
62
  </div>
63
  </div>
64
 
65
- <?php if($this->isNotRecurring()):
66
  // set max lenght cvc code
67
- if($recurringDetails["variant"] == "amex") {
68
  $maxLenght = "4";
69
  $class = "validate-length maximum-length-4 minimum-length-4 validate-digits";
70
  } else {
71
  $maxLenght = "3";
72
  $class = "validate-length maximum-length-3 minimum-length-3 validate-digits";
73
  }
74
- ?>
75
  <div class="columns three c">
76
  <label><?php echo $this->__('Card Verification Number') ?></label>
77
  <?php if($this->hasVerification()): ?>
@@ -163,44 +162,44 @@
163
  </script>
164
  <?php endif;?>
165
 
166
- <?php elseif($recurringDetails["variant"] == "elv"): ?>
167
  <div class="columns three a">
168
  <label><?php echo $this->__('Account holder name') ?></label>
169
- <span><?php echo $recurringDetails["elv_accountHolderName"]; ?></span>
170
  </div>
171
  <div class="columns three b">
172
  <label><?php echo $this->__('Account Number') ?></label>
173
- <span><?php echo $recurringDetails["elv_bankAccountNumber"]; ?></span>
174
  </div>
175
  <div class="columns three c">
176
  <label><?php echo $this->__('Bank Name') ?></label>
177
- <span><?php echo $recurringDetails["elv_bankName"]; ?></span>
178
  </div>
179
- <?php elseif($recurringDetails["variant"] == "openinvoice"): ?>
180
  <div class="columns three a">
181
  <label><?php echo $this->__('Bank account holder name') ?></label>
182
- <span><?php echo $recurringDetails["bank_ownerName"]; ?></span>
183
  </div>
184
  <div class="columns three b">
185
  <label><?php echo $this->__('Bank Account Number') ?></label>
186
- <span><?php echo $recurringDetails["bank_bankAccountNumber"]; ?></span>
187
  </div>
188
  <div class="columns three c">
189
  <label><?php echo $this->__('Country') ?></label>
190
- <span><?php echo $recurringDetails["bank_countryCode"]; ?></span>
191
  </div>
192
- <?php elseif($recurringDetails["variant"] == "sepadirectdebit" || $recurringDetails["variant"] == "ideal" ): ?>
193
  <div class="columns three a">
194
  <label><?php echo $this->__('Bank account holder name') ?></label>
195
- <span><?php echo $recurringDetails["bank_ownerName"]; ?></span>
196
  </div>
197
  <div class="columns three b">
198
  <label><?php echo $this->__('IBAN') ?></label>
199
- <span><?php echo $recurringDetails["bank_iban"]; ?></span>
200
  </div>
201
  <div class="columns three c">
202
  <label><?php echo $this->__('Country') ?></label>
203
- <span><?php echo $recurringDetails["bank_countryCode"]; ?></span>
204
  </div>
205
  <?php endif;?>
206
  </li>
24
  * @property Adyen B.V
25
  * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
  */
 
 
27
 
28
+ ?>
29
+ <?php
30
+ /** @var Adyen_Payment_Block_Form_Oneclick $this */
31
+ $_code = $this->getMethodCode();
32
+ $_recurringDetails = $this->getRecurringDetails();
33
+ ?>
34
  <fieldset id="" class="">
35
  <ul class="form-list adyen_oneclick" id="payment_form_<?php echo $_code ?>" style="display:none">
36
  <li>
37
+ <?php if(isset($_recurringDetails["card_number"]) && isset($_recurringDetails["card_expiryMonth"]) && isset($_recurringDetails["card_expiryYear"]) ): ?>
 
 
 
 
 
38
  <div class="columns three a">
39
  <label><?php echo $this->__('Credit Card Number') ?></label>
40
+ <span><?php echo $this->__('**** **** **** %s', $_recurringDetails["card_number"]); ?></span>
41
  </div>
42
 
43
  <div class="columns three b">
44
  <label><?php echo $this->__('Expiration Date') ?><a href="#" id="update-expiration-date-<?php echo $_code; ?>" class="update-expiration-date"><?php echo $this->__('(update)') ?></a></label>
45
 
46
  <div id="static-card-expiry-<?php echo $_code; ?>" class="static-card-expiry">
47
+ <?php echo $_recurringDetails["card_expiryMonth"] . " / " . $_recurringDetails["card_expiryYear"]; ?>
48
  </div>
49
  <div id="changable-card-expiry-<?php echo $_code; ?>" class="changable-card-expiry" style="display:none;">
50
  <select id="<?php echo $_code ?>_expiration_<?php echo $_code; ?>" <?php echo (!$this->isCseEnabled() ? "name=\"payment[oneclick_exp_month]\"" : "data-encrypted-name-oneclick-" . $_code . "=expiryMonth"); ?> class="month validate-oneclick-exp required-entry">
51
  <?php foreach ($this->getCcMonths() as $k=>$v): ?>
52
+ <option value="<?php echo $k?$k:'' ?>"<?php if($k==$_recurringDetails["card_expiryMonth"]): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
53
  <?php endforeach ?>
54
  </select>
55
 
56
  <select id="<?php echo $_code ?>_expiration_yr_<?php echo $_code; ?>" <?php echo (!$this->isCseEnabled() ? "name=\"payment[oneclick_exp_year]\"" : "data-encrypted-name-oneclick-" . $_code . "=expiryYear"); ?> class="year required-entry">
57
  <?php foreach ($this->getCcYears() as $k=>$v): ?>
58
+ <option value="<?php echo $k?$k:'' ?>"<?php if($k==$_recurringDetails["card_expiryYear"]): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
59
  <?php endforeach ?>
60
  </select>
61
  </div>
62
  </div>
63
 
64
+ <?php if( $this->showCvc()):
65
  // set max lenght cvc code
66
+ if($_recurringDetails["variant"] == "amex") {
67
  $maxLenght = "4";
68
  $class = "validate-length maximum-length-4 minimum-length-4 validate-digits";
69
  } else {
70
  $maxLenght = "3";
71
  $class = "validate-length maximum-length-3 minimum-length-3 validate-digits";
72
  }
73
+ ?>
74
  <div class="columns three c">
75
  <label><?php echo $this->__('Card Verification Number') ?></label>
76
  <?php if($this->hasVerification()): ?>
162
  </script>
163
  <?php endif;?>
164
 
165
+ <?php elseif(isset($_recurringDetails["variant"]) && $_recurringDetails["variant"] == "elv"): ?>
166
  <div class="columns three a">
167
  <label><?php echo $this->__('Account holder name') ?></label>
168
+ <span><?php echo $_recurringDetails["elv_accountHolderName"]; ?></span>
169
  </div>
170
  <div class="columns three b">
171
  <label><?php echo $this->__('Account Number') ?></label>
172
+ <span><?php echo $_recurringDetails["elv_bankAccountNumber"]; ?></span>
173
  </div>
174
  <div class="columns three c">
175
  <label><?php echo $this->__('Bank Name') ?></label>
176
+ <span><?php echo $_recurringDetails["elv_bankName"]; ?></span>
177
  </div>
178
+ <?php elseif(isset($_recurringDetails["variant"]) && $_recurringDetails["variant"] == "openinvoice"): ?>
179
  <div class="columns three a">
180
  <label><?php echo $this->__('Bank account holder name') ?></label>
181
+ <span><?php echo $_recurringDetails["bank_ownerName"]; ?></span>
182
  </div>
183
  <div class="columns three b">
184
  <label><?php echo $this->__('Bank Account Number') ?></label>
185
+ <span><?php echo $_recurringDetails["bank_bankAccountNumber"]; ?></span>
186
  </div>
187
  <div class="columns three c">
188
  <label><?php echo $this->__('Country') ?></label>
189
+ <span><?php echo $_recurringDetails["bank_countryCode"]; ?></span>
190
  </div>
191
+ <?php elseif(isset($_recurringDetails["variant"]) && ($_recurringDetails["variant"] == "sepadirectdebit" || $_recurringDetails["variant"] == "ideal") ): ?>
192
  <div class="columns three a">
193
  <label><?php echo $this->__('Bank account holder name') ?></label>
194
+ <span><?php echo $_recurringDetails["bank_ownerName"]; ?></span>
195
  </div>
196
  <div class="columns three b">
197
  <label><?php echo $this->__('IBAN') ?></label>
198
+ <span><?php echo $_recurringDetails["bank_iban"]; ?></span>
199
  </div>
200
  <div class="columns three c">
201
  <label><?php echo $this->__('Country') ?></label>
202
+ <span><?php echo $_recurringDetails["bank_countryCode"]; ?></span>
203
  </div>
204
  <?php endif;?>
205
  </li>
app/design/frontend/base/default/template/adyen/form/sepa.phtml CHANGED
@@ -36,7 +36,7 @@ $_code = $this->getMethodCode();
36
  type="text" id="<?php echo $_code ?>_account_name" name="payment[account_name]"
37
  title="<?php echo $this->__('Bank account holder name') ?>"
38
  class="validate-ipayment-sepa-account-name required-entry input-text"
39
- value="" autocomplete="off"
40
  />
41
  </div>
42
  </li>
@@ -46,8 +46,8 @@ $_code = $this->getMethodCode();
46
  <input
47
  type="text" id="<?php echo $_code ?>_iban" name="payment[iban]"
48
  title="<?php echo $this->__('IBAN') ?>"
49
- class="validate-ipayment-sepa-iban required-entry input-text"
50
- value="" autocomplete="off"
51
  />
52
  </div>
53
  </li>
@@ -58,11 +58,20 @@ $_code = $this->getMethodCode();
58
  <select id="<?php echo $_code ?>_country" name="payment[country]" name="payment[country]" title="<?php echo $this->__('Country') ?>" class="validate-ipayment-sepa-country required-entry input-√√√">
59
  <option value="">--</option>
60
  <?php foreach($this->getCountries() as $_country): ?>
61
- <option value="<?php echo $_country['value'] ?>"<?php echo ($_country['value'] == $this->getShopperCountryId()) ? " selected" : ""; ?>><?php echo $_country['label'] ?></option>
62
  <?php endforeach; ?>
63
  </select>
64
  </div>
65
  </li>
 
 
 
 
 
 
 
 
 
66
  </ul>
67
  </fieldset>
68
  <div>
@@ -70,4 +79,3 @@ $_code = $this->getMethodCode();
70
  <img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" class="v-middle" alt=""/> &nbsp; <?php echo $this->__('Submitting payment information...') ?> &nbsp;
71
  </span>
72
  </div>
73
-
36
  type="text" id="<?php echo $_code ?>_account_name" name="payment[account_name]"
37
  title="<?php echo $this->__('Bank account holder name') ?>"
38
  class="validate-ipayment-sepa-account-name required-entry input-text"
39
+ value="<?php echo $this->getBankHolderValue(); ?>" autocomplete="off"
40
  />
41
  </div>
42
  </li>
46
  <input
47
  type="text" id="<?php echo $_code ?>_iban" name="payment[iban]"
48
  title="<?php echo $this->__('IBAN') ?>"
49
+ class="validate-ipayment-sepa-iban validate-iban-number required-entry input-text"
50
+ value="<?php echo $this->getIbanValue(); ?>" autocomplete="off"
51
  />
52
  </div>
53
  </li>
58
  <select id="<?php echo $_code ?>_country" name="payment[country]" name="payment[country]" title="<?php echo $this->__('Country') ?>" class="validate-ipayment-sepa-country required-entry input-√√√">
59
  <option value="">--</option>
60
  <?php foreach($this->getCountries() as $_country): ?>
61
+ <option value="<?php echo $_country['value'] ?>"<?php echo ($_country['value'] == $this->getCountryValue()) ? " selected" : ""; ?>><?php echo $_country['label'] ?></option>
62
  <?php endforeach; ?>
63
  </select>
64
  </div>
65
  </li>
66
+
67
+ <li id="no-agreement">
68
+ <div class="input-box">
69
+ <div class="v-fix">
70
+ <input class="required-entry" type="checkbox" name="payment[accept_sepa]" id="<?php echo $_code ?>_accept_sepa" />
71
+ <label for="<?php echo $_code ?>_accept_sepa"><?php echo $this->__('I agree that the above amount will be debited from my bank account.') ?></label>
72
+ </div>
73
+ </div>
74
+ </li>
75
  </ul>
76
  </fieldset>
77
  <div>
79
  <img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" class="v-middle" alt=""/> &nbsp; <?php echo $this->__('Submitting payment information...') ?> &nbsp;
80
  </span>
81
  </div>
 
app/design/frontend/base/default/template/adyen/saved_cards.phtml DELETED
@@ -1,157 +0,0 @@
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
- <?php /* @var $this Adyen_Payment_Block_SavedCards */ ?>
30
- <div class="page-title">
31
- <h1><?php echo $this->__('My Saved cards') ?></h1>
32
- </div>
33
-
34
- <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
35
-
36
- <div class="saved-cards">
37
-
38
- <div id="oneclick-cse" class="">
39
-
40
- <?php $_listRecurringDetails = $this->getlistRecurringDetails(); ?>
41
-
42
- <?php if(!empty($_listRecurringDetails)): ?>
43
-
44
- <ul id="oneclick_payment_form" class="recurring-creditcards">
45
- <?php
46
- $count = 0;
47
- foreach($_listRecurringDetails as $key => $value):?>
48
- <li>
49
-
50
- <form method="post" action="<?php echo $this->getUrl("adyen/savedCard/", array('_secure'=>true)); ?>">
51
-
52
- <input type="hidden" name="recurringDetailReference" value="<?php echo $value["recurringDetailReference"] ?>" />
53
-
54
-
55
- <div class="creditcard-block">
56
- <?php
57
- $_bankFile = $value["variant"];
58
- $_filename = Mage::getDesign()->getFilename("images/adyen/{$_bankFile}.png", array('_type' => 'skin'));
59
- $imageUrl = file_exists($_filename)
60
- ? $this->getSkinUrl("images/adyen/{$_bankFile}.png")
61
- : $this->getSkinUrl("images/adyen/img_trans.gif");
62
-
63
- ?>
64
-
65
- <img src="<?php echo $imageUrl; ?>" alt="<?php echo $_bankFile ?>" label="<?php echo $_bankFile ?>" />
66
-
67
-
68
- <?php if(isset($value["card_number"]) && isset($value["card_expiryMonth"]) && isset($value["card_expiryYear"]) ): ?>
69
- <div class="columns three a">
70
- <label><?php echo $this->__('Credit Card Number') ?></label>
71
- <span>****</span> <?php echo $value["card_number"]; ?>
72
- </div>
73
-
74
- <div class="columns three b">
75
- <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>
76
-
77
- <div id="static-card-expiry-<?php echo $key; ?>" class="static-card-expiry">
78
- <?php echo $value["card_expiryMonth"] . " /" . $value["card_expiryYear"]; ?>
79
- </div>
80
-
81
- </div>
82
-
83
- <div style="clear:both;"></div>
84
-
85
- <div class="creditcard-holder-name"><?php echo $value["card_holderName"]; ?></div>
86
-
87
- <?php elseif($value["variant"] == "elv"): ?>
88
-
89
- <div class="columns three a">
90
- <label><?php echo $this->__('Account Number') ?></label>
91
- <span><?php echo $value["elv_bankAccountNumber"]; ?></span>
92
- </div>
93
-
94
- <div class="columns three b">
95
- <label><?php echo $this->__('Bank Name') ?></label>
96
- <span><?php echo $value["elv_bankName"]; ?></span>
97
- </div>
98
-
99
- <div style="clear:both;"></div>
100
-
101
- <div class="creditcard-holder-name"><?php echo $value["elv_bankName"]; ?></div>
102
-
103
- <?php elseif($value["variant"] == "openinvoice"): ?>
104
-
105
- <div class="columns three a">
106
- <label><?php echo $this->__('Account Number') ?></label>
107
- <span><?php echo $value["bank_bankAccountNumber"]; ?></span>
108
- </div>
109
-
110
- <div class="columns three b">
111
- <label><?php echo $this->__('Country') ?></label>
112
- <span><?php echo $value["bank_countryCode"]; ?></span>
113
- </div>
114
-
115
- <div style="clear:both;"></div>
116
-
117
- <div class="creditcard-holder-name"><?php echo $value["bank_ownerName"]; ?></div>
118
-
119
- <?php elseif($value["variant"] == "sepadirectdebit" || $value["variant"] == "ideal" ): ?>
120
-
121
- <div class="columns three a">
122
- <label><?php echo $this->__('IBAN') ?></label>
123
- <span><?php echo $value["bank_iban"]; ?></span>
124
- </div>
125
-
126
- <div class="columns three b">
127
- <label><?php echo $this->__('Country') ?></label>
128
- <span><?php echo $value["bank_countryCode"]; ?></span>
129
- </div>
130
-
131
- <div style="clear:both;"></div>
132
-
133
- <div class="creditcard-holder-name"><?php echo $value["bank_ownerName"]; ?></div>
134
-
135
- <?php endif; ?>
136
-
137
- <button type="submit" title="Add to Cart" class="button btn-cart btn-delete"><span><span><?php echo $this->__('Remove Card');?></span></span></button>
138
-
139
- <div style="clear:both;"></div>
140
- </div>
141
- </form>
142
- <?php ++$count; ?>
143
- </li>
144
- <?php endforeach; ?>
145
- </ul>
146
- <?php else: ?>
147
- <p><?php echo $this->__('There are no saved cards for this account.');?></p>
148
- <?php endif; ?>
149
-
150
-
151
-
152
- </div>
153
-
154
- <div class="buttons-set">
155
- <p class="back-link"><a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>"><small>&laquo; </small><?php echo $this->__('Back') ?></a></p>
156
- </div>
157
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/base/default/template/adyen/scan_product.phtml CHANGED
@@ -117,13 +117,15 @@
117
  e.preventDefault();
118
  });
119
 
120
- $('SubmitScan').observe('click', function(e){
121
- var value = $('inpscan').value;;
122
- ajaxCall(value);
123
- $('inpscan').value = "";
124
- $('inpscan').focus();
125
- e.preventDefault();
126
- });
 
 
127
 
128
 
129
 
117
  e.preventDefault();
118
  });
119
 
120
+ <?php if($this->hasAutoSubmitScanner()): ?>
121
+ $('SubmitScan').observe('click', function(e){
122
+ var value = $('inpscan').value;;
123
+ ajaxCall(value);
124
+ $('inpscan').value = "";
125
+ $('inpscan').focus();
126
+ e.preventDefault();
127
+ });
128
+ <?php endif; ?>
129
 
130
 
131
 
app/locale/de_DE/Adyen_Payment.csv CHANGED
@@ -54,4 +54,4 @@
54
  "Remember these details","Sollen diese Angaben für weitere Besuche gespeichert werden"
55
  "Choose Your Bank","Wählen Sie ihre Bank aus"
56
  "You chose an invalid bank","Sie haben eine ungültige Bank ausgewählt"
57
- You have cancelled the order. Please try again", "Sie haben den Auftrag storniert. Bitte versuchen Sie es erneut"
54
  "Remember these details","Sollen diese Angaben für weitere Besuche gespeichert werden"
55
  "Choose Your Bank","Wählen Sie ihre Bank aus"
56
  "You chose an invalid bank","Sie haben eine ungültige Bank ausgewählt"
57
+ "You have cancelled the order. Please try again", "Sie haben den Auftrag storniert. Bitte versuchen Sie es erneut"
app/locale/es_ES/Adyen_Payment.csv CHANGED
@@ -54,4 +54,4 @@
54
  "Remember these details","Recordar estos datos"
55
  "Choose Your Bank","Elija su Banco"
56
  "You chose an invalid bank","El Banco elegido es inválido. "
57
- You have cancelled the order. Please try again"
54
  "Remember these details","Recordar estos datos"
55
  "Choose Your Bank","Elija su Banco"
56
  "You chose an invalid bank","El Banco elegido es inválido. "
57
+ "You have cancelled the order. Please try again"
app/locale/fr_FR/Adyen_Payment.csv CHANGED
@@ -54,4 +54,4 @@
54
  "Remember these details","Sauvegarder ces informations"
55
  "Choose Your Bank","Choisir votre banque"
56
  "You chose an invalid bank","Vous avez choisi une banque invalide"
57
- You have cancelled the order. Please try again"
54
  "Remember these details","Sauvegarder ces informations"
55
  "Choose Your Bank","Choisir votre banque"
56
  "You chose an invalid bank","Vous avez choisi une banque invalide"
57
+ "You have cancelled the order. Please try again"
app/locale/nl_NL/Adyen_Payment.csv CHANGED
@@ -53,10 +53,13 @@
53
  "Your payment is pending.","Betaling wordt verwerkt."
54
  "Your payment is refused.","Betaling tegengehouden."
55
  "Your payment is authorized.","Betaling bevestigd."
56
- "Remember these details","Onthoud deze gegevens"
57
  "Choose Your Bank","Kies uw bank"
58
  "You chose an invalid bank","U heeft een ongeldige bank geselecteerd."
59
  "Male","Man"
60
  "Female","Vrouw"
61
  "You have cancelled the order. Please try again","U heeft de betaling geannuleerd, probeer het nogmaals."
62
  "Your payment failed, Please try again later","Deze betaalmethode is niet beschikbaar voor u op het moment. Kies voor andere betaalmethode om de bestelling af te ronden"
 
 
 
53
  "Your payment is pending.","Betaling wordt verwerkt."
54
  "Your payment is refused.","Betaling tegengehouden."
55
  "Your payment is authorized.","Betaling bevestigd."
56
+ "Remember these details","Onthoud deze gegevens voor de volgende keer."
57
  "Choose Your Bank","Kies uw bank"
58
  "You chose an invalid bank","U heeft een ongeldige bank geselecteerd."
59
  "Male","Man"
60
  "Female","Vrouw"
61
  "You have cancelled the order. Please try again","U heeft de betaling geannuleerd, probeer het nogmaals."
62
  "Your payment failed, Please try again later","Deze betaalmethode is niet beschikbaar voor u op het moment. Kies voor andere betaalmethode om de bestelling af te ronden"
63
+ "Bank account holder name","Naam rekeninghouder",
64
+ "IBAN","IBAN"
65
+ "Invalid Iban number.","Ongeldig IBAN nummer"
js/adyen/payment/iban.js ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Validation.add('validate-iban-number', 'Invalid IBAN number', function(v) {
2
+ var remainder = prepareIban(v),
3
+ block;
4
+
5
+ while (remainder.length > 2){
6
+ block = remainder.slice(0, 9);
7
+ remainder = parseInt(block, 10) % 97 + remainder.slice(block.length);
8
+ }
9
+
10
+ return (parseInt(remainder, 10) % 97) == 1
11
+ });
12
+
13
+ var A = 'A'.charCodeAt(0),
14
+ Z = 'Z'.charCodeAt(0);
15
+
16
+ function prepareIban(iban) {
17
+ iban = iban.toUpperCase();
18
+ iban = iban.substr(4) + iban.substr(0,4);
19
+
20
+ return iban.split('').map(function(n){
21
+ var code = n.charCodeAt(0);
22
+ if (code >= A && code <= Z){
23
+ return code - A + 10;
24
+ } else {
25
+ return n;
26
+ }
27
+ }).join('');
28
+ }
package.xml CHANGED
@@ -1,26 +1,21 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Adyen_Payment</name>
4
- <version>2.3.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
- #331 Add full support to partial gift cards payments&#xD;
13
  &#xD;
14
- Hotfixes&#xD;
15
- #325 Refund sends refund request with wrong currency to Adyen if you are using a multicurrency setup&#xD;
16
- #329 Remove validation on Notification for HPP payments&#xD;
17
- #333 Missing closing ) of Javascript function&#xD;
18
- #341 Put back the IP version check for Adyen POS and added it for adyen cash&#xD;
19
- #349 Content-Type headers need to be cleared for use with php-fpm / nginx.</notes>
20
  <authors><author><name>Adyen</name><user>adyen</user><email>magento@adyen.com</email></author></authors>
21
- <date>2015-07-03</date>
22
- <time>14:59:57</time>
23
- <contents><target name="magecommunity"><dir name="Adyen"><dir name="Payment"><dir name="Block"><dir name="Adminhtml"><dir name="Adyen"><dir name="Event"><dir name="Queue"><file name="Grid.php" hash="1565d210471f6b1705484340dcc0618e"/></dir><file name="Queue.php" hash="d9d4d4113656ba4d6c97cf8e4c52b903"/></dir></dir><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="f0428953d0ffb335d0d4a1362500ec2e"/></dir><dir name="Invoice"><file name="Totals.php" hash="40f4258c2e79e25bd38abb8ed7a0a778"/></dir><dir name="Renderer"><file name="Adyen.php" hash="187f435758aaf4d484c7c7a6ed1678b5"/></dir><file name="Totals.php" hash="e56db3fa837b78c3fa79851a82bac575"/></dir></dir><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Payment.php" hash="1976ae2cccf9cbd106ff369625d5120b"/></dir><file name="TestWebserverConfiguration.php" hash="077e2befacb92e0eb9e5344fd3e0c4a5"/></dir></dir><file name="Version.php" hash="8ae6d538b9616499eb898579bef4abaa"/></dir><dir name="Checkout"><file name="Success.php" hash="b9df579840feb9a3579d563daa61425b"/></dir><file name="Failure.php" hash="ead96fee55fba2cbb5044f09566e85e4"/><dir name="Form"><file name="Boleto.php" hash="3aa44470fbf8a17a9a5df616296fb9b6"/><file name="Cash.php" hash="9e002a75111dced6b0faee374676ed85"/><file name="Cc.php" hash="93dd8057e5b5cb045538f9a2e5c362b4"/><file name="Elv.php" hash="4e2bb10687932be2523670ec73e02395"/><file name="Hpp.php" hash="48c854294efcfea8f2d246364b757188"/><file name="Ideal.php" hash="6a7f476ca4f81a71d607a91df9f287a6"/><file name="Oneclick.php" hash="19d96a47a08d30cbeab3f06b497f99b9"/><file name="Openinvoice.php" hash="45e523e0e8c0a5e34f720d739739016d"/><file name="PayByMail.php" hash="251095b5bbe53c4453980afd198e3c10"/><file name="Pos.php" hash="a80c02b4f15a7c54866ca08adcfca82a"/><file name="Sepa.php" hash="6e440966124884cbb9a1b9cf19bb7192"/></dir><file name="Form.php" hash="77d0589a32cb816dcdc6df16c98f2cd6"/><dir name="Info"><file name="Boleto.php" hash="6068acbb3d3dec90a797390871150956"/><file name="Cash.php" hash="41a920940198d51029ad9cad8f6b6b00"/><file name="Cc.php" hash="11dfe3d43bb6a8d89bb1746c8c2f6415"/><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="PayByMail.php" hash="3fa120141efed3f402aacf75f80432b4"/><file name="Pos.php" hash="8a6be4f35d43dc7791b9741cfb05b8a5"/><file name="Sepa.php" hash="2f6fbcfeb770a208abc9c8dd4cd1a613"/></dir><file name="PosExpressCheckout.php" hash="ee5348fb15ead9b2adb7c1ebd8b1b4df"/><file name="Redirect.php" hash="e17239447f47ada37fab15ff71141703"/><dir name="Sales"><dir name="Order"><file name="Totals.php" hash="0a566f422191f5e365cc7a1811c00c20"/></dir></dir><file name="SavedCards.php" hash="3fe47b88678d0c30aa3fc6b2b9592eae"/><file name="ScanProduct.php" hash="31c08b14b9e17a8f065b7d553470d518"/></dir><dir name="Helper"><file name="Data.php" hash="7a6ed6773afa42076929074c8cda653e"/><file name="Installments.php" hash="6bfc01af88a457be9f444aade1fd5e1d"/><dir name="Payment"><file name="Data.php" hash="621d8a9f81f35109da2e879db0285b24"/></dir><file name="Pci.php" hash="1ea63057346675d2cbf337d124fc47b7"/></dir><dir name="Model"><dir name="Adyen"><file name="Abstract.php" hash="c36ff3865235dd989a1f5d84af6d8104"/><file name="Boleto.php" hash="4f43d3ca646794f16b8521cc3863690a"/><file name="Cash.php" hash="0ac9af55b6d62b9dcead5398b2916e44"/><file name="Cc.php" hash="60eb5ccdb0343b45236be522bddc652a"/><dir name="Data"><file name="Abstract.php" hash="90c19c5a7d79c1a53f85b77728ffc318"/><file name="AdditionalData.php" hash="e4d038a60ac548e0938f75a0452d5717"/><file name="AdditionalDataKVPair.php" hash="cc2e0ba6733ef5139f44ba7c9af303dc"/><file name="Address.php" hash="1ebe7211a9ada35e346d50a43e4d1045"/><file name="Amount.php" hash="73540706cac2c2eef0252615d6200511"/><file name="BankAccount.php" hash="89124b1a311269d878e88acd56391afc"/><file name="BillingAddress.php" hash="05d2568acb382d242635b7fbfef26afe"/><file name="BrowserInfo.php" hash="bd1cca3cc27aea7fad85661c7132e2cd"/><file name="Card.php" hash="ea384e9c2032ba7ad5925edfb434625f"/><file name="Classmap.php" hash="38ab9bfbfb1585852380c0551a35b9ec"/><file name="DeliveryAddress.php" hash="8a97c0555842c9f8108a202125e48724"/><file name="Elv.php" hash="6608688d03b047387a2b28be10c47b87"/><file name="Installments.php" hash="ab285677d94614d631b927b427268eff"/><file name="InvoiceLine.php" hash="2013af2bbae2b07df4db34b4d8565796"/><file name="InvoiceRow.php" hash="caa2f530ea8a2100fee55f9d16fa8235"/><file name="ModificationRequest.php" hash="14240a6cbc31ffed7ea7e052e20aed57"/><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="e06538a160005141a4e34be998191780"/><file name="PaymentRequest3d.php" hash="9db425c9bb6cf15498995afeb779a615"/><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="ab624ee949965819bcc629ce39946334"/><file name="Hpp.php" hash="dd6265bfde24693e92bc2c8e4371bf55"/><file name="Ideal.php" hash="ccd1c07806f9c31e0f391242e9cb4949"/><file name="Oneclick.php" hash="b0e39dec35993b775333b250ea66c339"/><file name="Openinvoice.php" hash="0323e497f44454de9d166a8090a68eb2"/><file name="PayByMail.php" hash="e861fa73b1f5f018430352d09e6e98c7"/><file name="Pos.php" hash="84b98b86d5ba76f85217a75dd98afcc4"/><file name="Sepa.php" hash="d37538658867fdd5b34b5cb7f2c647d1"/><file name="Shared.php" hash="7f3fe961a7107b6fb5625a9efe7854fd"/><file name=".DS_Store" hash="d179556f904a5601ccd01a54743c155f"/></dir><file name="Authenticate.php" hash="fdc6bc00989a4aaadfc6f4a64395e278"/><file name="Cronjob.php" hash="3fa8291eb3f98a1ab48879fa467686b0"/><dir name="Event"><file name="Queue.php" hash="3f17b99a54cf5d910c3320e7a38d0ea3"/></dir><file name="Event.php" hash="632bfefbb6c2edab79d2be1b082a69bf"/><file name="GetPosOrderStatus.php" hash="682e47f436377b1f3e41f0092051bfc6"/><file name="Observer.php" hash="e8f1d0438068f1569706c7b13082811a"/><file name="Process.php" hash="fdbbfc7b61222edefcf81af81a12d0f4"/><file name="ProcessNotification.php" hash="63d5f54ce22d0413b5532003dc55d2db"/><file name="ProcessPosResult.php" hash="6630a1ed1d4a81996a7f3714d6ee6990"/><dir name="Resource"><dir name="Adyen"><dir name="Debug"><file name="Collection.php" hash="17ac8dbcf67d0df518ef2d94c3206fd5"/></dir><file name="Debug.php" hash="d1de3e55152ab586971d08950ced8faa"/><dir name="Event"><file name="Collection.php" hash="33b8b85c9c7b3d2428e9b23a9e7e0c72"/></dir><file name="Event.php" hash="4f398e0de5b8a2a9ec5f87480e13da67"/></dir><dir name="Event"><dir name="Queue"><file name="Collection.php" hash="9dffd9015dfa7cd8498e5961f9ab66f3"/></dir><file name="Queue.php" hash="b8a4c3ed5adaaacf8b6192d05937e390"/></dir><file name="Order.php" hash="32950fec5760e2e7f167af451e313129"/><file name="Setup.php" hash="4e2258146a321cad436984ca223a9e5b"/></dir><dir name="Sales"><dir name="Quote"><dir name="Address"><dir name="Total"><file name="PaymentFee.php" hash="a5b1568d998315c1fbfae5c74405e41b"/><file name="PaymentInstallmentFee.php" hash="da284541372973799ea956771799cb72"/></dir></dir></dir></dir><dir name="Source"><file name="BoletoType.php" hash="1a31476c4ebfdb6b16a1dd3a26015fb1"/><file name="CancelModes.php" hash="b18c30b103cdce97af41e63ef0a25a92"/><file name="CancelRedirect.php" hash="f71a598d56641cc5550812abd7f3d9b7"/><file name="CaptureModes.php" hash="d2d138f0a59e1e448531f1fd8f908439"/><file name="CcType.php" hash="a27d98867f6c9d9245c242919a869ed6"/><file name="DemoModes.php" hash="0ce4142166b9f7dc96ee8e1e3bd03286"/><file name="OpeninvoiceType.php" hash="c39389388338dfe0b85b10a1e9b828cb"/><file name="PayPalCaptureModes.php" hash="efdc4f49677ed257af337bb64d06d132"/><file name="PaymentAction.php" hash="23224178cf58e55c308234036f629bf7"/><file name="PaymentRoutines.php" hash="7aa5525e67554ad35226cf1aaa802c49"/><file name="RecurringType.php" hash="2a3c60c4546d9c02c842a9ea0a5ade26"/><file name="Rendermode.php" hash="5d55655d4bd2a49b113446ec10519be6"/><file name="SepaFlow.php" hash="64e6fd9181772db70e3dfc012c117a46"/><dir name="Status"><file name="Complete.php" hash="1580706a7d28010ed5acc678f549df73"/><file name="Pending.php" hash="53e624a2a6b76b4e6dee7f4eece245b1"/><file name="Refund.php" hash="f763d00e989f39dce9daddb7c1bd28f6"/></dir><file name="VisibleType.php" hash="ecc88ad246d8e52316d53f879d615803"/></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="ValidateResultUrl.php" hash="d9518d726eb205183b1779a75e5e6618"/><file name=".DS_Store" hash="286b9ee8ade7883fb60d91c7d0c64900"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Adyen"><dir name="Event"><file name="QueueController.php" hash="4349d643154b8ac0a10e1c36271882c7"/></dir></dir><file name="ExportAdyenSettingsController.php" hash="0e00e37b119d3b5b61d22f93d88046e1"/><file name="ValidateWebserverSettingsController.php" hash="70db09120f59b4933de5b83d5a83e6c0"/></dir><file name="CheckoutCashController.php" hash="33c9f26d8fa0260ec9daccea3638c609"/><file name="CheckoutPosController.php" hash="59a14c7e7e916ab79304551072b574bb"/><file name="GetInstallmentsController.php" hash="e8401d9b5dd01efc8f6ea535087963bd"/><file name="ProcessController.php" hash="39ffd8cabbd0e278372e5a56d9cd1527"/><file name="SavedCardController.php" hash="db57de304ee0cccc9bbec470ec27398a"/><file name="UpdateCartController.php" hash="c7280eb6b5b5f87e2dd9f06cc4370e97"/></dir><dir name="data"><dir name="adyen_setup"><file name="data-upgrade-2.1.2.3-2.1.2.4.php" hash="8262bf4038ba435fe15bd08c36814936"/></dir></dir><dir name="etc"><file name="Notification.wsdl" hash="cbba67067d372790e91225b4049c7e0d"/><file name="Payment.wsdl" hash="4190412f599a3eac827d7ed0931754da"/><file name="adminhtml.xml" hash="77f449af89755295ba515ea52dfda649"/><file name="config.xml" hash="668c7e132aa76fc2136f108589c0b241"/><file name="system.xml" hash="1f7b0e4dbba96e39fda98d0517b44361"/></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="91a318943b2ead4fd5d3dc7cfa04023e"/><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="b185927a102e0cefa08fe155cfa16004"/><file name="mysql4-upgrade-2.0.3-2.1.0.php" hash="fc4fc300116a7e471fd35699979f21f7"/><file name="mysql4-upgrade-2.1.1-2.1.2.1.php" hash="50716af509a51f67eb3535f59206d3c1"/><file name="mysql4-upgrade-2.1.2.1-2.1.2.2.php" hash="42480b5f0081e89faa8da76e53d10a91"/><file name="mysql4-upgrade-2.1.2.2-2.1.2.3.php" hash="3c68f09a8bcd44943587428ee24e0947"/><file name="mysql4-upgrade-2.2.0-2.2.0.1.php" hash="62cba81b54d9d8f09733946093da241a"/><file name="mysql4-upgrade-2.2.2-2.2.2.1.php" hash="c2353636858c03e61e782c7d809bbab5"/><file name="mysql4-upgrade-2.3.0-2.3.0.1.php" hash="292d256967fceedea3250c8084839ec1"/></dir></dir><file name=".DS_Store" hash="282419beef00918e7192da78057ace9d"/></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="adyen.xml" hash="088b576dc010f4a7983837fa13785472"/></dir><dir name="template"><dir name="adyen"><dir name="form"><file name="boleto.phtml" hash="83c7bc35d037f426aa75c0719e8adb86"/><file name="cc.phtml" hash="d54095e88b03dcee8ef3183b24a2468b"/><file name="elv.phtml" hash="4d370d2d737f0a42ebcb33e7151ecee6"/><file name="hpp.phtml" hash="38457f21f239afbed434bdae45bef0e3"/><file name="oneclick.phtml" hash="b02fcaf3400be660b4fcb45c3fbdcd05"/><file name="openinvoice.phtml" hash="33127af4713430e153cccbe8684fab13"/><file name="pos.phtml" hash="c07c11d348fced7d889ded4fc77e3363"/><file name="sepa.phtml" hash="3242268216a2a26cf28b97236cdc92a1"/></dir><dir name="info"><file name="boleto.phtml" hash="78f08b7f59ff049f189d61758b7abced"/><file name="cc.phtml" hash="608567b02456894e5b1dbaa2484a9380"/><file name="elv.phtml" hash="bda2d4870da5a283d9561b66b76e8114"/><file name="hpp.phtml" hash="ee5fd9ccc1b4f7fd1f575d0d53d87c8f"/><file name="openinvoice.phtml" hash="86fecfa81c87af7464f38f43c7db9be6"/><file name="pay_by_mail.phtml" hash="617bf20851918b200a4a980a68908162"/><file name="pos.phtml" hash="dfef416dc70f315bf9904dafce4f19d6"/><file name="sepa.phtml" hash="ca2a1b25f4652e9411ae6ff8b2a0f04e"/></dir><dir name="pdf"><file name="boleto.phtml" hash="50853749a944124f076d129fd5e6cfa9"/><file name="cc.phtml" hash="ecc91b3df7776b2c2a6dc4a52d1892d2"/><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><dir name="system"><dir name="config"><file name="test_webserver_configuration.phtml" hash="e16033f88d5c5bc4a25cbb860f620022"/></dir></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"><dir name="checkout"><file name="success.phtml" hash="4c06b168acd8971e20a7c8d1205c264b"/><file name=".DS_Store" hash="21ecd78ea5715d7392b2d8a533c6630a"/></dir><dir name="form"><file name="boleto.phtml" hash="309a0152cd5219e2c22da4270307222c"/><file name="cc.phtml" hash="8c0ff09b5c12e0a7b6b6389c2c7d2a66"/><file name="elv.phtml" hash="789610e3d1f8973f6aecb4ef119a59c9"/><file name="hpp.phtml" hash="5e2f2ed4fb91dec2d62a0311a21415e0"/><file name="ideal.phtml" hash="d693c356f0e7f8eca20ac086c665a135"/><file name="oneclick.phtml" hash="e5c4ea733ca7235555207e4fa7efd4a6"/><file name="openinvoice.phtml" hash="659c5385af90f70f910d1f3605a0613b"/><file name="pos.phtml" hash="07cbc4b9dbbe63849599dbfd4339cd44"/><file name="sepa.phtml" hash="a479f68dd467d0cb7aa1c6fa2ce2aeb2"/></dir><dir name="info"><file name="boleto.phtml" hash="c526f9c4badab3afaa771872bb4687f1"/><file name="cc.phtml" hash="c540dddb22ca1c9f301c445291d82d16"/><file name="elv.phtml" hash="8b850e97ea84e1de5ead4ec487c4356f"/><file name="hpp.phtml" hash="8999dfee0c638f44b5010779b8bbf711"/><file name="openinvoice.phtml" hash="2bcd711e1255923d53f353819e19529e"/><file name="pay_by_mail.phtml" hash="c09d9f774eeefeb465cc3f425bf7d54e"/><file name="pos.phtml" hash="9b917920aa1cc77c9e8c3a26943b1335"/><file name="sepa.phtml" hash="c886a3d9923c3ade6ca5056f18c1b856"/></dir><dir name="payment"><file name="payment_method_label.phtml" hash="256b943044431874fbaea43760544fcc"/></dir><file name="pos_express_checkout.phtml" hash="9dbbc2237dfda2c735bfb853a5f20efd"/><file name="saved_cards.phtml" hash="b0ff50d615273804c0f6fef55ce31cf9"/><file name="scan_product.phtml" hash="b3b84dc6804f832919406644a0378492"/><file name=".DS_Store" hash="ab6d0ae72b40033c9fed5850d3f5d499"/></dir></dir><dir name="layout"><file name="adyen.xml" hash="36aa974f8fb0e1480925a849309a71c8"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Adyen_Payment.xml" hash="e4d297a9b401c4548acb47aea1ae41d9"/></dir></target><target name="magelocale"><dir><dir name="de_DE"><file name="Adyen_Payment.csv" hash="6512eaeaacdfd84b94dbbae212b3f363"/></dir><dir name="es_ES"><file name="Adyen_Payment.csv" hash="b1b6ec9574d78d34839740daa4f0a6c4"/></dir><dir name="fr_FR"><file name="Adyen_Payment.csv" hash="1d55a9a934535f4366744deff69ab94a"/></dir><dir name="nl_NL"><file name="Adyen_Payment.csv" hash="9ff0d198b047eeca70c9fd87b7c96410"/></dir></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="ae_small.png" hash="6ce7c9a2b330c9c46f0213c40db55683"/><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="creditcard.png" hash="87a9f022a38f3e96981c420d6571381f"/><file name="creditcards.png" hash="cd1a83b970a38307c2899f9949495a00"/><file name="cup.png" hash="068dee300e2c12e58e9a47d3556e977c"/><file name="cup_small.png" hash="45d3b4e758237412b524a5c52418da67"/><file name="dankort.png" hash="aac4acc9e43e896973f36d3e7011a5af"/><file name="dc_small.png" hash="ecf5d635a74460ca9575bb7d6d8550dd"/><file name="di_small.png" hash="8573aebe4938afb288749badb22aa091"/><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="elo.png" hash="d8ed45be5e2a933584a58c78a5ec3568"/><file name="elo_small.png" hash="b0c3bec4e8cccf4339e142365a30fca7"/><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="hipercard.png" hash="9310c18cee9f43c4019a7560d74ffd4c"/><file name="hipercard_small.png" hash="d4d0e1aab233b3ec3f94cbbe985fd8ad"/><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="img_trans.gif" hash="325472601571f31e1bf00674c368d335"/><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="payshop.png" hash="c9c79c76313370d9165e814d3d81e062"/><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="pm_gloss.png" hash="dcfc71b0c819e58a1287cd206cfb9d14"/><file name="poli.png" hash="4e14e9d246fdbc07ae58ed8ae639f7b0"/><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="sm_small.png" hash="7814fbfff53e57643137fd68889ec807"/><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="vi_small.png" hash="cdab39efaf22fcd2ab88f3dc42c32de1"/><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="29f9866a0b5932a9784c063cfee17293"/></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="cc.js" hash="2e7a07ae072be379ae707b14771e5d0d"/><file name="elv.js" hash="db612a634c95727ec9db82c50e9aec8e"/><file name="epos-device-2.6.0.js" hash="94c73689bec45b74a311d76400f05ba6"/><file name="epos-device-3.0.0.js" hash="0056bb4902efed998d1fdcfbb7ab3495"/></dir></dir></dir></target></contents>
24
  <compatible/>
25
  <dependencies><required><php><min>5.3.3</min><max>6.0.0</max></php></required></dependencies>
26
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Adyen_Payment</name>
4
+ <version>2.4.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 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>Adyen Payment 2.4.0&#xD;
 
12
  &#xD;
13
+ See release note: &#xD;
14
+ https://github.com/Adyen/magento/releases/tag/2.4.0</notes>
 
 
 
 
15
  <authors><author><name>Adyen</name><user>adyen</user><email>magento@adyen.com</email></author></authors>
16
+ <date>2015-09-07</date>
17
+ <time>14:41:04</time>
18
+ <contents><target name="magecommunity"><dir name="Adyen"><dir name="Payment"><dir name="Block"><dir name="Adminhtml"><dir name="Adyen"><dir name="Event"><dir name="Queue"><file name="Grid.php" hash="8638667d1d6a85f72341a839d00bcc19"/></dir><file name="Queue.php" hash="d9d4d4113656ba4d6c97cf8e4c52b903"/></dir></dir><dir name="Form"><dir name="Field"><file name="Installments.php" hash="e73b36349ac2ac5f9687cd5ce5958e53"/></dir></dir><dir name="Sales"><dir name="Billing"><dir name="Agreement"><file name="Grid.php" hash="c2e77faf071a3574af94ff68cf3d1504"/></dir></dir><dir name="Order"><dir name="Creditmemo"><file name="Totals.php" hash="1460f2048e15c0d08405c00e68653a47"/></dir><dir name="Filter"><file name="Adyen.php" hash="f0428953d0ffb335d0d4a1362500ec2e"/></dir><dir name="Invoice"><file name="Totals.php" hash="40f4258c2e79e25bd38abb8ed7a0a778"/></dir><dir name="Renderer"><file name="Adyen.php" hash="187f435758aaf4d484c7c7a6ed1678b5"/></dir><file name="Totals.php" hash="e56db3fa837b78c3fa79851a82bac575"/></dir></dir><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Expanded.php" hash="f66a1b3d4e0694536fc218c88119ef9a"/><file name="Fieldset.php" hash="d7c4f30338386632f7a83ae489d45a11"/><file name="Gettingstarted.php" hash="de64d67420b16a2d6b3df211404c64ce"/><file name="Method.php" hash="6fe238b70c25c1f8f4ba6f12a53962b9"/></dir><file name="HppPaymentMethodFee.php" hash="4d27e8d3b7f694c599ec2800f093d326"/><file name="TestWebserverConfiguration.php" hash="077e2befacb92e0eb9e5344fd3e0c4a5"/></dir></dir><file name="Version.php" hash="8ae6d538b9616499eb898579bef4abaa"/></dir><dir name="Checkout"><file name="Success.php" hash="b9df579840feb9a3579d563daa61425b"/></dir><file name="Failure.php" hash="ead96fee55fba2cbb5044f09566e85e4"/><dir name="Form"><file name="Abstract.php" hash="0e0bfa5b88007c733d34aee307e0163d"/><file name="Boleto.php" hash="a38cfc7a4f87f487010ba17e3f56cd6c"/><file name="Cash.php" hash="9e002a75111dced6b0faee374676ed85"/><file name="Cc.php" hash="fbe7f107e5502db3298fbd65658d5cf8"/><file name="Elv.php" hash="17869926d968d14f79b5b8a057332634"/><file name="Hpp.php" hash="c3826522312ceb2c350e3a4dc6bb44f7"/><file name="Ideal.php" hash="1c8eff8a808d286b222788c8a2660683"/><file name="Oneclick.php" hash="5ebb577197b60a530098d626d5db15ae"/><file name="Openinvoice.php" hash="f6a93b41cc84a3c69449850cdcde37c7"/><file name="PayByMail.php" hash="251095b5bbe53c4453980afd198e3c10"/><file name="Pos.php" hash="11dff1727f935f2a4871a59e4a5bf9eb"/><file name="Sepa.php" hash="0588eedb4847894302e04b2425ab86ec"/></dir><file name="Form.php" hash="77d0589a32cb816dcdc6df16c98f2cd6"/><dir name="Info"><file name="Boleto.php" hash="6068acbb3d3dec90a797390871150956"/><file name="Cash.php" hash="41a920940198d51029ad9cad8f6b6b00"/><file name="Cc.php" hash="11dfe3d43bb6a8d89bb1746c8c2f6415"/><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="PayByMail.php" hash="3fa120141efed3f402aacf75f80432b4"/><file name="Pos.php" hash="8a6be4f35d43dc7791b9741cfb05b8a5"/><file name="Sepa.php" hash="6ede5edccfa2ca2619edac446edb0bf2"/></dir><file name="PosExpressCheckout.php" hash="ee5348fb15ead9b2adb7c1ebd8b1b4df"/><file name="Redirect.php" hash="e17239447f47ada37fab15ff71141703"/><dir name="Sales"><dir name="Order"><file name="Totals.php" hash="0a566f422191f5e365cc7a1811c00c20"/></dir></dir><file name="ScanProduct.php" hash="31c08b14b9e17a8f065b7d553470d518"/></dir><file name="Exception.php" hash="30fcde625fda56f7475e815d6603a6d2"/><dir name="Helper"><dir name="Billing"><file name="Agreement.php" hash="4df6f2936380229b80c97c70e4140d24"/></dir><file name="Data.php" hash="2b2d2ad2bd3f7bbaa598b78ccc5abecf"/><file name="Installments.php" hash="6bfc01af88a457be9f444aade1fd5e1d"/><dir name="Payment"><file name="Data.php" hash="a8145365557c486c73100740d6218414"/></dir><file name="Pci.php" hash="36f805e1f222973f48bb68623664e716"/></dir><dir name="Model"><dir name="Adyen"><file name="Abstract.php" hash="50793e7b14fb34b84422403f91ee5c84"/><file name="Boleto.php" hash="3aeb9b3ef94b2dc22b62165fc94411e8"/><file name="Cash.php" hash="0ac9af55b6d62b9dcead5398b2916e44"/><file name="Cc.php" hash="3aee12b4dec11d2139473844988699a7"/><dir name="Data"><file name="Abstract.php" hash="90c19c5a7d79c1a53f85b77728ffc318"/><file name="AdditionalData.php" hash="e4d038a60ac548e0938f75a0452d5717"/><file name="AdditionalDataKVPair.php" hash="cc2e0ba6733ef5139f44ba7c9af303dc"/><file name="Address.php" hash="1ebe7211a9ada35e346d50a43e4d1045"/><file name="Amount.php" hash="73540706cac2c2eef0252615d6200511"/><file name="BankAccount.php" hash="89124b1a311269d878e88acd56391afc"/><file name="BillingAddress.php" hash="05d2568acb382d242635b7fbfef26afe"/><file name="BrowserInfo.php" hash="bd1cca3cc27aea7fad85661c7132e2cd"/><file name="Card.php" hash="ea384e9c2032ba7ad5925edfb434625f"/><file name="Classmap.php" hash="38ab9bfbfb1585852380c0551a35b9ec"/><file name="DeliveryAddress.php" hash="8a97c0555842c9f8108a202125e48724"/><file name="Elv.php" hash="6608688d03b047387a2b28be10c47b87"/><file name="Installments.php" hash="ab285677d94614d631b927b427268eff"/><file name="InvoiceLine.php" hash="2013af2bbae2b07df4db34b4d8565796"/><file name="InvoiceRow.php" hash="caa2f530ea8a2100fee55f9d16fa8235"/><file name="ModificationRequest.php" hash="14240a6cbc31ffed7ea7e052e20aed57"/><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="ab45d534cd1c2aa429d27d6ff2b1f13c"/><file name="PaymentRequest3d.php" hash="9db425c9bb6cf15498995afeb779a615"/><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="4dec774fe32ba88fe0c691f813c2a09e"/><file name="Hpp.php" hash="a723e62f5349d99746f201ab2657c75a"/><file name="Ideal.php" hash="ef84f22f3008da93f9e8b9c1f3ac1648"/><file name="Oneclick.php" hash="97d897a99351a6e8ec832ca58a7c040a"/><file name="Openinvoice.php" hash="0323e497f44454de9d166a8090a68eb2"/><file name="PayByMail.php" hash="e861fa73b1f5f018430352d09e6e98c7"/><file name="Pos.php" hash="84b98b86d5ba76f85217a75dd98afcc4"/><file name="Sepa.php" hash="660d590f152171076194f86ab9e9626a"/><file name="Shared.php" hash="7f3fe961a7107b6fb5625a9efe7854fd"/><file name=".DS_Store" hash="d179556f904a5601ccd01a54743c155f"/></dir><file name="Api.php" hash="f739379a164c1a4e0c0553423ebeb295"/><file name="Authenticate.php" hash="ed5dcfae45132082a875f2ea1089b7bd"/><dir name="Billing"><dir name="Agreement"><file name="Observer.php" hash="f301f1fc3cab902eb16d546022615bdd"/></dir><file name="Agreement.php" hash="ef5f57b680c37f767a21cbb5df4aee5b"/></dir><file name="Cronjob.php" hash="3fa8291eb3f98a1ab48879fa467686b0"/><dir name="Event"><file name="Queue.php" hash="3f17b99a54cf5d910c3320e7a38d0ea3"/></dir><file name="Event.php" hash="632bfefbb6c2edab79d2be1b082a69bf"/><file name="GetPosOrderStatus.php" hash="682e47f436377b1f3e41f0092051bfc6"/><file name="Observer.php" hash="9408e54c65f82d06c4a9c1161f75ecd0"/><file name="Process.php" hash="fdbbfc7b61222edefcf81af81a12d0f4"/><file name="ProcessNotification.php" hash="d2dab6a395f3a388e47c627a38ffaf35"/><file name="ProcessPosResult.php" hash="6630a1ed1d4a81996a7f3714d6ee6990"/><dir name="Resource"><dir name="Adyen"><dir name="Debug"><file name="Collection.php" hash="17ac8dbcf67d0df518ef2d94c3206fd5"/></dir><file name="Debug.php" hash="d1de3e55152ab586971d08950ced8faa"/><dir name="Event"><file name="Collection.php" hash="33b8b85c9c7b3d2428e9b23a9e7e0c72"/></dir><file name="Event.php" hash="4f398e0de5b8a2a9ec5f87480e13da67"/></dir><dir name="Billing"><dir name="Agreement"><file name="Collection.php" hash="d5d31eed3999e2775b3cc861cd3a8e45"/></dir><file name="Agreement.php" hash="5a269b1255f103c7b81621ee3d39fa97"/></dir><dir name="Event"><dir name="Queue"><file name="Collection.php" hash="9dffd9015dfa7cd8498e5961f9ab66f3"/></dir><file name="Queue.php" hash="b8a4c3ed5adaaacf8b6192d05937e390"/></dir><file name="Order.php" hash="32950fec5760e2e7f167af451e313129"/><file name="Setup.php" hash="4e2258146a321cad436984ca223a9e5b"/></dir><dir name="Sales"><dir name="Quote"><dir name="Address"><dir name="Total"><file name="PaymentFee.php" hash="b0d4cb5adbff8e881bb28df7cd486b37"/><file name="PaymentInstallmentFee.php" hash="da284541372973799ea956771799cb72"/></dir></dir></dir></dir><dir name="Source"><file name="BoletoType.php" hash="1a31476c4ebfdb6b16a1dd3a26015fb1"/><file name="CancelModes.php" hash="b18c30b103cdce97af41e63ef0a25a92"/><file name="CancelRedirect.php" hash="f71a598d56641cc5550812abd7f3d9b7"/><file name="CaptureModes.php" hash="1ad7052016b75000de9950d55edb235d"/><file name="CcType.php" hash="a27d98867f6c9d9245c242919a869ed6"/><file name="DemoModes.php" hash="4e3ce8113a9c78f6403861f5661f585e"/><file name="OpeninvoiceType.php" hash="c39389388338dfe0b85b10a1e9b828cb"/><file name="PayPalCaptureModes.php" hash="20da86d8d4fd60abe2b3a307e12ada24"/><file name="PaymentAction.php" hash="23224178cf58e55c308234036f629bf7"/><file name="PaymentRoutines.php" hash="7aa5525e67554ad35226cf1aaa802c49"/><file name="RecurringPaymentType.php" hash="3b137f547356d8336c3e12fb936d1a86"/><file name="RecurringType.php" hash="2a3c60c4546d9c02c842a9ea0a5ade26"/><file name="Rendermode.php" hash="66be793f4d23896dbe194ec205f51718"/><file name="SepaFlow.php" hash="8a3ce7224b1878c7fb674114b688eb03"/><dir name="Status"><file name="Complete.php" hash="1580706a7d28010ed5acc678f549df73"/><file name="Pending.php" hash="53e624a2a6b76b4e6dee7f4eece245b1"/><file name="Refund.php" hash="632e0fc0b625e85716347d21b0f585be"/></dir><file name="VisibleType.php" hash="ecc88ad246d8e52316d53f879d615803"/></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="ValidateResultUrl.php" hash="d9518d726eb205183b1779a75e5e6618"/><file name=".DS_Store" hash="286b9ee8ade7883fb60d91c7d0c64900"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Adyen"><dir name="Event"><file name="QueueController.php" hash="6000a2a39108fc5be4ce3253b495c656"/></dir></dir><file name="ExportAdyenSettingsController.php" hash="dd6a859865967b0b462be96a0a2295fd"/><file name="ValidateWebserverSettingsController.php" hash="d121f82efd3ddb01e9f979e12658cb65"/></dir><file name="CheckoutCashController.php" hash="33c9f26d8fa0260ec9daccea3638c609"/><file name="CheckoutPosController.php" hash="59a14c7e7e916ab79304551072b574bb"/><file name="GetInstallmentsController.php" hash="e8401d9b5dd01efc8f6ea535087963bd"/><file name="ProcessController.php" hash="4cfa4e11ca294886562ff59b68f8c9c5"/><file name="UpdateCartController.php" hash="8c41af95bb64352f7dd4024f9d210e77"/></dir><dir name="data"><dir name="adyen_setup"><file name="data-upgrade-2.1.2.3-2.1.2.4.php" hash="8262bf4038ba435fe15bd08c36814936"/></dir></dir><dir name="etc"><file name="Notification.wsdl" hash="cbba67067d372790e91225b4049c7e0d"/><file name="Payment.wsdl" hash="4190412f599a3eac827d7ed0931754da"/><file name="adminhtml.xml" hash="77f449af89755295ba515ea52dfda649"/><file name="config.xml" hash="ad1f5bdc8cffc2d4ba2009f940f85ab7"/><file name="system.xml" hash="c898e9bf12f646c136abe6235b34eb1c"/></dir><dir name="sql"><dir name="adyen_setup"><file name="mysql4-install-0.0.1.php" hash="668e04511f498a97c29b4386055cb78e"/><file name="mysql4-upgrade-0.0.1-0.0.2.php" hash="ef6d899eac5abc4d359074498168aef7"/><file name="mysql4-upgrade-0.0.7-0.0.8.php" hash="b4bb110ba7f92ae542c39471d3f7198f"/><file name="mysql4-upgrade-0.0.8-0.0.9.php" hash="c72653047e7c2ea03f8b8c4bd095389a"/><file name="mysql4-upgrade-0.1.0.3-0.1.0.4.php" hash="e167964ff1156ff52b48cef5f45c0cd2"/><file name="mysql4-upgrade-0.1.0.8-0.1.0.9.php" hash="5fbf7b5fc6389115c5a3cf33d091227a"/><file name="mysql4-upgrade-0.1.0.9-0.1.0.10.php" hash="4eb123db99f8e42892cc8ea16a4ef54e"/><file name="mysql4-upgrade-1.0.0.3-1.0.0.7.php" hash="5fb0644cd6e55968f8922da5bffb23de"/><file name="mysql4-upgrade-2.0.3-2.1.0.php" hash="7f1f5240dbdd1fb37a23e16e41f5b477"/><file name="mysql4-upgrade-2.1.1-2.1.2.1.php" hash="5eea3604936ce4a041fccc9f0e0d159d"/><file name="mysql4-upgrade-2.1.2.1-2.1.2.2.php" hash="0cb4fa513156161c01b906ad3ad322ba"/><file name="mysql4-upgrade-2.1.2.2-2.1.2.3.php" hash="4c681a679ab8afa8fc145d0ecf242278"/><file name="mysql4-upgrade-2.2.0-2.2.0.1.php" hash="993470ec16fe56b3cd0024f3fb718e9b"/><file name="mysql4-upgrade-2.2.2-2.2.2.1.php" hash="c2353636858c03e61e782c7d809bbab5"/><file name="mysql4-upgrade-2.3.0-2.3.0.1.php" hash="292d256967fceedea3250c8084839ec1"/><file name="mysql4-upgrade-2.3.1.1-2.3.1.2.php" hash="1301a2d3d64855172579eb7375e17eed"/></dir></dir><file name=".DS_Store" hash="282419beef00918e7192da78057ace9d"/></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="adyen.xml" hash="fdc251a23de44368548748d25b86d345"/></dir><dir name="template"><dir name="adyen"><dir name="form"><file name="boleto.phtml" hash="83c7bc35d037f426aa75c0719e8adb86"/><file name="cc.phtml" hash="6dc0219c76cd9849940247bcfce8cd99"/><file name="elv.phtml" hash="4d370d2d737f0a42ebcb33e7151ecee6"/><file name="hpp.phtml" hash="37215ae3782ea83b05afa6fef361e3bf"/><file name="oneclick.phtml" hash="83b4dde8e30b8bcca800b8f9a2995eca"/><file name="openinvoice.phtml" hash="33127af4713430e153cccbe8684fab13"/><file name="pos.phtml" hash="c07c11d348fced7d889ded4fc77e3363"/><file name="sepa.phtml" hash="99386663d876a9bb2a4d71aec1fce74b"/></dir><dir name="info"><file name="boleto.phtml" hash="78f08b7f59ff049f189d61758b7abced"/><file name="cc.phtml" hash="608567b02456894e5b1dbaa2484a9380"/><file name="elv.phtml" hash="bda2d4870da5a283d9561b66b76e8114"/><file name="hpp.phtml" hash="ee5fd9ccc1b4f7fd1f575d0d53d87c8f"/><file name="openinvoice.phtml" hash="86fecfa81c87af7464f38f43c7db9be6"/><file name="pay_by_mail.phtml" hash="617bf20851918b200a4a980a68908162"/><file name="pos.phtml" hash="dfef416dc70f315bf9904dafce4f19d6"/><file name="sepa.phtml" hash="ca2a1b25f4652e9411ae6ff8b2a0f04e"/></dir><dir name="pdf"><file name="boleto.phtml" hash="50853749a944124f076d129fd5e6cfa9"/><file name="cc.phtml" hash="ecc91b3df7776b2c2a6dc4a52d1892d2"/><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><dir name="system"><dir name="config"><file name="test_webserver_configuration.phtml" hash="37a164e5cd04d1acf1788530464c2f0d"/></dir></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"><dir name="checkout"><file name="success.phtml" hash="4c06b168acd8971e20a7c8d1205c264b"/><file name=".DS_Store" hash="21ecd78ea5715d7392b2d8a533c6630a"/></dir><dir name="form"><file name="boleto.phtml" hash="309a0152cd5219e2c22da4270307222c"/><file name="cc.phtml" hash="280e00a99e4f624802b783be55b2f16a"/><file name="elv.phtml" hash="789610e3d1f8973f6aecb4ef119a59c9"/><file name="hpp.phtml" hash="5e2f2ed4fb91dec2d62a0311a21415e0"/><file name="ideal.phtml" hash="d693c356f0e7f8eca20ac086c665a135"/><file name="oneclick.phtml" hash="5a41066b1452fdc7266b0ef6224c0ae3"/><file name="openinvoice.phtml" hash="659c5385af90f70f910d1f3605a0613b"/><file name="pos.phtml" hash="07cbc4b9dbbe63849599dbfd4339cd44"/><file name="sepa.phtml" hash="ff9e6c312e7620d31c6a657f31a16679"/></dir><dir name="info"><file name="boleto.phtml" hash="c526f9c4badab3afaa771872bb4687f1"/><file name="cc.phtml" hash="c540dddb22ca1c9f301c445291d82d16"/><file name="elv.phtml" hash="8b850e97ea84e1de5ead4ec487c4356f"/><file name="hpp.phtml" hash="8999dfee0c638f44b5010779b8bbf711"/><file name="openinvoice.phtml" hash="2bcd711e1255923d53f353819e19529e"/><file name="pay_by_mail.phtml" hash="c09d9f774eeefeb465cc3f425bf7d54e"/><file name="pos.phtml" hash="9b917920aa1cc77c9e8c3a26943b1335"/><file name="sepa.phtml" hash="c886a3d9923c3ade6ca5056f18c1b856"/></dir><dir name="payment"><file name="payment_method_label.phtml" hash="256b943044431874fbaea43760544fcc"/></dir><file name="pos_express_checkout.phtml" hash="9dbbc2237dfda2c735bfb853a5f20efd"/><file name="scan_product.phtml" hash="52debaeda87ba10822de566380c06c56"/><file name=".DS_Store" hash="ab6d0ae72b40033c9fed5850d3f5d499"/></dir></dir><dir name="layout"><file name="adyen.xml" hash="89f26f2f2778d7e73ab597207bc59831"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Adyen_Payment.xml" hash="e4d297a9b401c4548acb47aea1ae41d9"/></dir></target><target name="magelocale"><dir><dir name="de_DE"><file name="Adyen_Payment.csv" hash="088e161df1b131f18fe37f99c84a6a76"/></dir><dir name="es_ES"><file name="Adyen_Payment.csv" hash="e43250c22a32cc8c27256cebb8f04c10"/></dir><dir name="fr_FR"><file name="Adyen_Payment.csv" hash="90f125a87e554a42546ab268b58df265"/></dir><dir name="nl_NL"><file name="Adyen_Payment.csv" hash="f60acbb4dab153dc69eece693db58274"/></dir></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="ae_small.png" hash="6ce7c9a2b330c9c46f0213c40db55683"/><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="alipay_wap.png" hash="e3773ada96577e575c9e1300a89a5875"/><file name="alipay_wap_small.png" hash="f9848d15fc7ee22b6687ccdbe7f36a16"/><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="creditcard.png" hash="87a9f022a38f3e96981c420d6571381f"/><file name="creditcards.png" hash="cd1a83b970a38307c2899f9949495a00"/><file name="cup.png" hash="068dee300e2c12e58e9a47d3556e977c"/><file name="cup_small.png" hash="45d3b4e758237412b524a5c52418da67"/><file name="dankort.png" hash="aac4acc9e43e896973f36d3e7011a5af"/><file name="dc_small.png" hash="ecf5d635a74460ca9575bb7d6d8550dd"/><file name="di_small.png" hash="8573aebe4938afb288749badb22aa091"/><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="elo.png" hash="d8ed45be5e2a933584a58c78a5ec3568"/><file name="elo_small.png" hash="b0c3bec4e8cccf4339e142365a30fca7"/><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="hipercard.png" hash="9310c18cee9f43c4019a7560d74ffd4c"/><file name="hipercard_small.png" hash="d4d0e1aab233b3ec3f94cbbe985fd8ad"/><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="img_trans.gif" hash="325472601571f31e1bf00674c368d335"/><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="payshop.png" hash="c9c79c76313370d9165e814d3d81e062"/><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="pm_gloss.png" hash="dcfc71b0c819e58a1287cd206cfb9d14"/><file name="poli.png" hash="4e14e9d246fdbc07ae58ed8ae639f7b0"/><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="sm_small.png" hash="7814fbfff53e57643137fd68889ec807"/><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="vi_small.png" hash="cdab39efaf22fcd2ab88f3dc42c32de1"/><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="b8ab0272f8e5bc859470a71529831e02"/></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="cc.js" hash="2e7a07ae072be379ae707b14771e5d0d"/><file name="elv.js" hash="db612a634c95727ec9db82c50e9aec8e"/><file name="epos-device-2.6.0.js" hash="94c73689bec45b74a311d76400f05ba6"/><file name="epos-device-3.0.0.js" hash="0056bb4902efed998d1fdcfbb7ab3495"/><file name="iban.js" hash="92cff3bbc297f8aa60acca331e736063"/></dir></dir></dir></target><target name="mage"><dir name="shell"><file name="adyen.php" hash="23173d3362feab3675878eb51cebac02"/></dir></target></contents>
19
  <compatible/>
20
  <dependencies><required><php><min>5.3.3</min><max>6.0.0</max></php></required></dependencies>
21
  </package>
shell/adyen.php ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adyen Payment Module
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-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
+ * @category Adyen
16
+ * @package Adyen_Payment
17
+ * @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ /**
21
+ * @category Payment Gateway
22
+ * @package Adyen_Payment
23
+ * @author Adyen
24
+ * @property Adyen B.V
25
+ * @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
26
+ */
27
+
28
+ // php adyen.php -action loadBillingAgreements
29
+
30
+ require_once 'abstract.php';
31
+
32
+ class Adyen_Payments_Shell extends Mage_Shell_Abstract
33
+ {
34
+
35
+ /**
36
+ * Run script
37
+ *
38
+ * @return void
39
+ */
40
+ public function run() {
41
+ $action = $this->getArg('action');
42
+ if (empty($action)) {
43
+ echo $this->usageHelp();
44
+ } else {
45
+ $actionMethodName = $action.'Action';
46
+ if (method_exists($this, $actionMethodName)) {
47
+ $this->$actionMethodName();
48
+ } else {
49
+ echo "Action $action not found!\n";
50
+ echo $this->usageHelp();
51
+ exit(1);
52
+ }
53
+ }
54
+ }
55
+
56
+ /**
57
+ * Retrieve Usage Help Message
58
+ *
59
+ * @return string
60
+ */
61
+ public function usageHelp() {
62
+ $help = 'Available actions: ' . "\n";
63
+ $methods = get_class_methods($this);
64
+ foreach ($methods as $method) {
65
+ if (substr($method, -6) == 'Action') {
66
+ $help .= ' -action ' . substr($method, 0, -6);
67
+ $helpMethod = $method.'Help';
68
+ if (method_exists($this, $helpMethod)) {
69
+ $help .= $this->$helpMethod();
70
+ }
71
+ $help .= "\n";
72
+ }
73
+ }
74
+ return $help;
75
+ }
76
+
77
+
78
+ /**
79
+ * Method to load all billing agreements into Magento.*
80
+ * @todo move to seperate model so it's easier to call internally
81
+ * @throws Exception
82
+ * @throws Mage_Core_Exception
83
+ */
84
+ public function loadBillingAgreementsAction()
85
+ {
86
+ $api = Mage::getSingleton('adyen/api');
87
+
88
+ foreach (Mage::app()->getStores(true) as $store) {
89
+ /** @var Mage_Core_Model_Store $store */
90
+ echo sprintf("Load for store %s\n", $store->getCode());
91
+
92
+ $customerCollection = Mage::getResourceModel('customer/customer_collection');
93
+ $customerCollection->addFieldToFilter('store_id', $store->getId());
94
+
95
+ $select = $customerCollection->getSelect();
96
+ $select->reset(Varien_Db_Select::COLUMNS);
97
+ $select->columns('e.entity_id');
98
+ $customerCollection->joinAttribute(
99
+ 'adyen_customer_ref',
100
+ 'customer/adyen_customer_ref',
101
+ 'entity_id', null, 'left'
102
+ );
103
+
104
+ $customerReferences = $customerCollection->getConnection()->fetchPairs($select);
105
+ foreach ($customerReferences as $customerId => $adyenCustomerRef) {
106
+ $customerReference = $adyenCustomerRef ?: $customerId;
107
+
108
+ $recurringContracts = $api->listRecurringContracts($customerReference, $store);
109
+ echo sprintf("Found %s recurring contracts for customer %s (ref. %s)\n", count($recurringContracts), $customerId, $customerReference);
110
+
111
+ $billingAgreementCollection = Mage::getResourceModel('adyen/billing_agreement_collection')
112
+ ->addCustomerFilter($customerId)
113
+ ->addStoreFilter($store);
114
+
115
+ //Update the billing agreements
116
+ foreach ($recurringContracts as $recurringContract) {
117
+ /** @var Adyen_Payment_Model_Billing_Agreement $billingAgreement */
118
+ $billingAgreement = $billingAgreementCollection
119
+ ->getItemByColumnValue('reference_id', $recurringContract['recurringDetailReference']);
120
+
121
+ if (! $billingAgreement) {
122
+ $billingAgreement = Mage::getModel('adyen/billing_agreement');
123
+ $billingAgreement->setCustomerId($customerId);
124
+ $billingAgreement->setStoreId($store->getId());
125
+ $billingAgreement->setStatus($billingAgreement::STATUS_ACTIVE);
126
+ } else {
127
+ $billingAgreement->setStatus($billingAgreement::STATUS_ACTIVE);
128
+ $billingAgreementCollection->removeItemByKey($billingAgreement->getId());
129
+ }
130
+
131
+ try {
132
+ $billingAgreement->parseRecurringContractData($recurringContract);
133
+ $billingAgreement->save();
134
+ } catch (Adyen_Payment_Exception $e) {
135
+ echo sprintf("Error while adding recurring contract data to billing agreement: %s\n", $e->getMessage());
136
+ var_dump($recurringContract);
137
+ } catch (Exception $e) {
138
+ throw $e;
139
+ }
140
+ }
141
+
142
+ foreach ($billingAgreementCollection as $billingAgreement) {
143
+ $billingAgreement->setStatus($billingAgreement::STATUS_CANCELED);
144
+ $billingAgreement->save();
145
+ }
146
+ }
147
+ }
148
+ }
149
+
150
+ public function listRecurringContractAction()
151
+ {
152
+ $api = Mage::getSingleton('adyen/api');
153
+ $recurringContracts = $api->listRecurringContracts($this->getArg('ref'), $this->getArg('store'));
154
+ print_r($recurringContracts);
155
+ }
156
+
157
+
158
+ public function pruneBillingAgreementsAction()
159
+ {
160
+ $billingAgreementCollection = Mage::getResourceModel('adyen/billing_agreement_collection')
161
+ ->addFieldToFilter('status', Mage_Sales_Model_Billing_Agreement::STATUS_CANCELED);
162
+ foreach ($billingAgreementCollection as $billingAgreement) {
163
+ $billingAgreement->delete();
164
+ }
165
+ }
166
+
167
+
168
+ /**
169
+ * Display extra help
170
+ * @return string
171
+ */
172
+ public function loadBillingAgreementsActionHelp() {
173
+ return "";
174
+ }
175
+ }
176
+
177
+
178
+ $shell = new Adyen_Payments_Shell();
179
+ $shell->run();
skin/frontend/base/default/css/adyenstyle.css CHANGED
@@ -55,6 +55,11 @@
55
 
56
  /* Credit Cards */
57
  .sp-methods .form-list li.adyen_payment_creditcard_labels { margin-top:15px; }
 
 
 
 
 
58
  .adyen_payment_creditcard_labels img.grey {
59
  -webkit-filter: grayscale(100%);
60
  filter: grayscale(100%);
55
 
56
  /* Credit Cards */
57
  .sp-methods .form-list li.adyen_payment_creditcard_labels { margin-top:15px; }
58
+ .sp-methods .form-list li.adyen_payment_creditcard_labels img {
59
+ display: block;
60
+ float: left;
61
+ margin-right: 10px;
62
+ }
63
  .adyen_payment_creditcard_labels img.grey {
64
  -webkit-filter: grayscale(100%);
65
  filter: grayscale(100%);
skin/frontend/base/default/images/adyen/alipay_wap.png ADDED
Binary file
skin/frontend/base/default/images/adyen/alipay_wap_small.png ADDED
Binary file