HeidelpayCDEdition - Version 15.2.28

Version Notes

- change Package name because of mageno connect character ristrictions

Download this release

Release Info

Developer Heidelberger Payment GmbH
Extension HeidelpayCDEdition
Version 15.2.28
Comparing to
See all releases


Version 15.2.28

Files changed (60) hide show
  1. app/code/community/HeidelpayCD/Edition/Block/Abstract.php +21 -0
  2. app/code/community/HeidelpayCD/Edition/Block/Form/Creditcard.php +9 -0
  3. app/code/community/HeidelpayCD/Edition/Block/Form/Debit.php +9 -0
  4. app/code/community/HeidelpayCD/Edition/Block/Form/Desconly.php +9 -0
  5. app/code/community/HeidelpayCD/Edition/Block/Form/Eps.php +9 -0
  6. app/code/community/HeidelpayCD/Edition/Block/Form/Giropay.php +9 -0
  7. app/code/community/HeidelpayCD/Edition/Block/Form/Ideal.php +9 -0
  8. app/code/community/HeidelpayCD/Edition/Block/Form/Postfinance.php +9 -0
  9. app/code/community/HeidelpayCD/Edition/Block/Index.php +10 -0
  10. app/code/community/HeidelpayCD/Edition/Block/Info/Debit.php +18 -0
  11. app/code/community/HeidelpayCD/Edition/Block/Success.php +24 -0
  12. app/code/community/HeidelpayCD/Edition/Helper/Data.php +7 -0
  13. app/code/community/HeidelpayCD/Edition/Helper/Payment.php +367 -0
  14. app/code/community/HeidelpayCD/Edition/Model/Customer.php +12 -0
  15. app/code/community/HeidelpayCD/Edition/Model/Mysql4/Customer.php +9 -0
  16. app/code/community/HeidelpayCD/Edition/Model/Mysql4/Customer/Collection.php +11 -0
  17. app/code/community/HeidelpayCD/Edition/Model/Mysql4/Transaction.php +9 -0
  18. app/code/community/HeidelpayCD/Edition/Model/Mysql4/Transaction/Collection.php +11 -0
  19. app/code/community/HeidelpayCD/Edition/Model/Order/Pdf/Invoice.php +101 -0
  20. app/code/community/HeidelpayCD/Edition/Model/Payment/Abstract.php +607 -0
  21. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdbs.php +54 -0
  22. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdcc.php +29 -0
  23. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcddc.php +30 -0
  24. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcddd.php +103 -0
  25. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdeps.php +43 -0
  26. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdgp.php +82 -0
  27. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdide.php +43 -0
  28. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdiv.php +18 -0
  29. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdmk.php +25 -0
  30. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdpal.php +49 -0
  31. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdpf.php +44 -0
  32. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdpp.php +41 -0
  33. app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdsu.php +12 -0
  34. app/code/community/HeidelpayCD/Edition/Model/Resource/Encryption.php +20 -0
  35. app/code/community/HeidelpayCD/Edition/Model/Resource/Setup.php +6 -0
  36. app/code/community/HeidelpayCD/Edition/Model/System/Config/Source/Bookingmode.php +12 -0
  37. app/code/community/HeidelpayCD/Edition/Model/System/Config/Source/Recognition.php +15 -0
  38. app/code/community/HeidelpayCD/Edition/Model/System/Config/Source/Returnurl.php +13 -0
  39. app/code/community/HeidelpayCD/Edition/Model/Transaction.php +101 -0
  40. app/code/community/HeidelpayCD/Edition/controllers/IndexController.php +510 -0
  41. app/code/community/HeidelpayCD/Edition/etc/config.xml +307 -0
  42. app/code/community/HeidelpayCD/Edition/etc/system.xml +1302 -0
  43. app/code/community/HeidelpayCD/Edition/sql/hcd_setup/install-15.1.30.php +170 -0
  44. app/design/frontend/base/default/layout/hcd.xml +27 -0
  45. app/design/frontend/base/default/template/hcd/form/creditcard.phtml +101 -0
  46. app/design/frontend/base/default/template/hcd/form/debit.phtml +45 -0
  47. app/design/frontend/base/default/template/hcd/form/desconly.phtml +6 -0
  48. app/design/frontend/base/default/template/hcd/form/eps.phtml +38 -0
  49. app/design/frontend/base/default/template/hcd/form/giropay.phtml +45 -0
  50. app/design/frontend/base/default/template/hcd/form/ideal.phtml +38 -0
  51. app/design/frontend/base/default/template/hcd/form/postfinance.phtml +17 -0
  52. app/design/frontend/base/default/template/hcd/index.phtml +68 -0
  53. app/design/frontend/base/default/template/hcd/success.phtml +23 -0
  54. app/etc/modules/HeidelpayCD_Edition.xml +14 -0
  55. app/locale/de_DE/HeidelpayCD_Edition.csv +148 -0
  56. app/locale/en_US/HeidelpayCD_Edition.csv +155 -0
  57. js/hcd/heidelpaycd.js +120 -0
  58. package.xml +49 -0
  59. skin/frontend/base/default/css/heidelpaycd.css +54 -0
  60. skin/frontend/base/default/images/hcd/loading.gif +0 -0
app/code/community/HeidelpayCD/Edition/Block/Abstract.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Block_Abstract extends Mage_Core_Block_Template
3
+ {
4
+ public function getSession() {
5
+ return Mage::getSingleton('core/session');
6
+ }
7
+
8
+ public function getCheckout()
9
+ {
10
+ return Mage::getSingleton('checkout/session');
11
+ }
12
+
13
+ public function getCurrentOrder() {
14
+ $order = Mage::getModel('sales/order');
15
+ $session = $this->getCheckout();
16
+ $order->loadByIncrementId($session->getLastRealOrderId());
17
+
18
+ return $order ;
19
+ }
20
+
21
+ }
app/code/community/HeidelpayCD/Edition/Block/Form/Creditcard.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Block_Form_Creditcard extends Mage_Payment_Block_Form
3
+ {
4
+ protected function _construct()
5
+ {
6
+ parent::_construct();
7
+ $this->setTemplate('hcd/form/creditcard.phtml');
8
+ }
9
+ }
app/code/community/HeidelpayCD/Edition/Block/Form/Debit.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Block_Form_Debit extends Mage_Payment_Block_Form
3
+ {
4
+ protected function _construct()
5
+ {
6
+ parent::_construct();
7
+ $this->setTemplate('hcd/form/debit.phtml');
8
+ }
9
+ }
app/code/community/HeidelpayCD/Edition/Block/Form/Desconly.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Block_Form_Desconly extends Mage_Payment_Block_Form
3
+ {
4
+ protected function _construct()
5
+ {
6
+ parent::_construct();
7
+ $this->setTemplate('hcd/form/desconly.phtml');
8
+ }
9
+ }
app/code/community/HeidelpayCD/Edition/Block/Form/Eps.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Block_Form_Eps extends Mage_Payment_Block_Form
3
+ {
4
+ protected function _construct()
5
+ {
6
+ parent::_construct();
7
+ $this->setTemplate('hcd/form/eps.phtml');
8
+ }
9
+ }
app/code/community/HeidelpayCD/Edition/Block/Form/Giropay.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Block_Form_Giropay extends Mage_Payment_Block_Form
3
+ {
4
+ protected function _construct()
5
+ {
6
+ parent::_construct();
7
+ $this->setTemplate('hcd/form/giropay.phtml');
8
+ }
9
+ }
app/code/community/HeidelpayCD/Edition/Block/Form/Ideal.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Block_Form_Ideal extends Mage_Payment_Block_Form
3
+ {
4
+ protected function _construct()
5
+ {
6
+ parent::_construct();
7
+ $this->setTemplate('hcd/form/ideal.phtml');
8
+ }
9
+ }
app/code/community/HeidelpayCD/Edition/Block/Form/Postfinance.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Block_Form_Postfinance extends Mage_Payment_Block_Form
3
+ {
4
+ protected function _construct()
5
+ {
6
+ parent::_construct();
7
+ $this->setTemplate('hcd/form/postfinance.phtml');
8
+ }
9
+ }
app/code/community/HeidelpayCD/Edition/Block/Index.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Block_Index extends HeidelpayCD_Edition_Block_Abstract
3
+ {
4
+
5
+ function getHcdHolder() {
6
+ $order = $this->getCurrentOrder();
7
+ return $order->getBillingAddress()->getFirstname().' '.$order->getBillingAddress()->getLastname();
8
+ }
9
+
10
+ }
app/code/community/HeidelpayCD/Edition/Block/Info/Debit.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Block_Info_Debit extends Mage_Payment_Block_Info
3
+ {
4
+ protected function _prepareSpecificInformation($transport = null)
5
+ {
6
+ /*
7
+ $session = $this->getSession();
8
+ $transport = new Varien_Object();
9
+ $transport = parent::_prepareSpecificInformation($transport);
10
+ $transport->addData(array(
11
+ Mage::helper('hcd')->__('IBAN') => print_r($session,1)."48534958",
12
+ Mage::helper('hcd')->__('BIC') => "48534958",
13
+ Mage::helper('hcd')->__('Owner') => "123456"
14
+ ));
15
+ return $transport;
16
+ */
17
+ }
18
+ }
app/code/community/HeidelpayCD/Edition/Block/Success.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Block_Success extends HeidelpayCD_Edition_Block_Abstract
3
+ {
4
+ function showPaymentInfo() {
5
+ $return = array();
6
+ $order = $this->getCurrentOrder();
7
+ $session = $this->getCheckout();
8
+
9
+ $info = ($session->getHcdPaymentInfo() !== false) ? $session->getHcdPaymentInfo() : false;
10
+
11
+ if(!empty($info)) {
12
+
13
+ $return['Title'] = $order->getPayment()->getMethodInstance()->getTitle();
14
+ $return['Message'] = $session->getHcdPaymentInfo();
15
+
16
+ $session->unsHcdPaymentInfo();
17
+
18
+ return $return;
19
+ }
20
+
21
+ return false;
22
+
23
+ }
24
+ }
app/code/community/HeidelpayCD/Edition/Helper/Data.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ */
4
+ class HeidelpayCD_Edition_Helper_Data extends Mage_Core_Helper_Data
5
+ {
6
+ }
7
+ ?>
app/code/community/HeidelpayCD/Edition/Helper/Payment.php ADDED
@@ -0,0 +1,367 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ */
4
+ class HeidelpayCD_Edition_Helper_Payment extends Mage_Core_Helper_Abstract
5
+ {
6
+ protected $_invoiceOrderEmail = true ;
7
+
8
+ protected function _getHelper()
9
+ {
10
+ return Mage::helper('hcd');
11
+ }
12
+
13
+ public function splitPaymentCode($PAYMENT_CODE) {
14
+ return preg_split('/\./' , $PAYMENT_CODE);
15
+
16
+ }
17
+
18
+ public function doRequest($url, $params=array())
19
+ {
20
+ $client = new Zend_Http_Client(trim($url), array(
21
+
22
+ ));
23
+ $client->setParameterPost($params);
24
+ if (extension_loaded('curl')) {
25
+ $adapter = new Zend_Http_Client_Adapter_Curl();
26
+ $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, true);
27
+ $adapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, 2);
28
+ $client->setAdapter($adapter);
29
+ }
30
+ $respone = $client->request('POST');
31
+ $res = $respone->getBody();
32
+
33
+ $result = null;
34
+ parse_str($res, $result);
35
+ return $result;
36
+ }
37
+
38
+ public function preparePostData ( $config = array(),
39
+ $frontend = array(),
40
+ $userData = array(),
41
+ $basketData = array(),
42
+ $criterion = array()) {
43
+ $params = array();
44
+ /*
45
+ * configurtation part of this function
46
+ */
47
+ $params['SECURITY.SENDER'] = $config['SECURITY.SENDER'];
48
+ $params['USER.LOGIN'] = $config['USER.LOGIN'];
49
+ $params['USER.PWD'] = $config['USER.PWD'];
50
+
51
+ switch ($config['TRANSACTION.MODE']) {
52
+ case 'INTEGRATOR_TEST':
53
+ $params['TRANSACTION.MODE'] = 'INTEGRATOR_TEST';
54
+ break;
55
+ case 'CONNECTOR_TEST':
56
+ $params['TRANSACTION.MODE'] = 'CONNECTOR_TEST';
57
+ break;
58
+ default:
59
+ $params['TRANSACTION.MODE'] = 'LIVE';
60
+ }
61
+ $params['TRANSACTION.CHANNEL'] = $config['TRANSACTION.CHANNEL'];
62
+
63
+ //$config['PAYMENT.TYPE'] = (array_key_exists('PAYMENT.TYPE',$config)) ? $config['PAYMENT.TYPE'] : 'DB' ;
64
+
65
+ /* Set payment methode */
66
+ switch ($config['PAYMENT.METHOD']) {
67
+ /* sofortbanking */
68
+ case 'su':
69
+ /* griopay */
70
+ case 'gp':
71
+ /* ideal */
72
+ case 'ide':
73
+ /* eps */
74
+ case 'eps':
75
+ $type = (!array_key_exists('PAYMENT.TYPE',$config)) ? 'PA' : $config['PAYMENT.TYPE'] ;
76
+ $params['PAYMENT.CODE'] = "OT.".$type ;
77
+ break;
78
+ /* postfinace */
79
+ case 'pf':
80
+ $type = (!array_key_exists('PAYMENT.TYPE',$config)) ? 'PA' : $config['PAYMENT.TYPE'] ;
81
+ $params['PAYMENT.CODE'] = "OT.".$type ;
82
+ break;
83
+ /* paypal */
84
+ case 'pal';
85
+ $type = (!array_key_exists('PAYMENT.TYPE',$config)) ? 'DB' : $config['PAYMENT.TYPE'] ;
86
+ $params['PAYMENT.CODE'] = "VA.".$type ;
87
+ $params['ACCOUNT.BRAND'] = "PAYPAL" ;
88
+ $params['FRONTEND.PM.DEFAULT_DISABLE_ALL'] = "true";
89
+ $params['FRONTEND.PM.0.ENABLED'] = "true";
90
+ $params['FRONTEND.PM.0.METHOD'] = "VA";
91
+ $params['FRONTEND.PM.0.SUBTYPES'] = "PAYPAL" ;
92
+ break;
93
+ /* prepayment */
94
+ case 'pp' :
95
+ $type = (!array_key_exists('PAYMENT.TYPE',$config)) ? 'PA' : $config['PAYMENT.TYPE'] ;
96
+ $params['PAYMENT.CODE'] = "PP.".$type ;
97
+ break;
98
+ /* invoce */
99
+ case 'iv' :
100
+ $type = (!array_key_exists('PAYMENT.TYPE',$config)) ? 'PA' : $config['PAYMENT.TYPE'] ;
101
+ $params['PAYMENT.CODE'] = "IV.".$type ;
102
+ break;
103
+ /* BillSafe */
104
+ case 'bs' ;
105
+ $type = (!array_key_exists('PAYMENT.TYPE',$config)) ? 'PA' : $config['PAYMENT.TYPE'] ;
106
+ $params['PAYMENT.CODE'] = "IV.".$type ;
107
+ $params['ACCOUNT.BRAND'] = "BILLSAFE";
108
+ $params['FRONTEND.ENABLED'] = "false";
109
+ break;
110
+ /* BarPay */
111
+ case 'bp' ;
112
+ $type = (!array_key_exists('PAYMENT.TYPE',$config)) ? 'PA' : $config['PAYMENT.TYPE'] ;
113
+ $params['PAYMENT.CODE'] = "PP.".$type ;
114
+ $params['ACCOUNT.BRAND'] = "BARPAY";
115
+ $params['FRONTEND.ENABLED'] = "false";
116
+ break;
117
+ /* MangirKart */
118
+ case 'mk' ;
119
+ $type = (!array_key_exists('PAYMENT.TYPE',$config)) ? 'PA' : $config['PAYMENT.TYPE'] ;
120
+ $params['PAYMENT.CODE'] = "PC.".$type ;
121
+ $params['ACCOUNT.BRAND'] = "MANGIRKART";
122
+ $params['FRONTEND.ENABLED'] = "false";
123
+ break;
124
+ /* default */
125
+ default:
126
+ $params['PAYMENT.CODE'] = strtoupper($config['PAYMENT.METHOD']).'.'.$config['PAYMENT.TYPE'];
127
+ break;
128
+ }
129
+
130
+ /* Debit on registration */
131
+ if(array_key_exists('ACCOUNT.REGISTRATION',$config)) {
132
+ $params['ACCOUNT.REGISTRATION'] = $config['ACCOUNT.REGISTRATION'];
133
+ $params['FRONTEND.ENABLED'] = "false";
134
+ }
135
+
136
+ if (array_key_exists('SHOP.TYPE',$config)) $params['SHOP.TYPE'] = $config['SHOP.TYPE'] ;
137
+ if (array_key_exists('SHOPMODUL.VERSION',$config)) $params['SHOPMODUL.VERSION'] = $config['SHOPMODUL.VERSION'] ;
138
+
139
+ /* frontend configuration */
140
+
141
+ /* override FRONTEND.ENABLED if nessessary */
142
+ if (array_key_exists('FRONTEND.ENABLED',$frontend)) {
143
+ $params['FRONTEND.ENABLED'] = $frontend['FRONTEND.ENABLED'];
144
+ unset($frontend['FRONTEND.ENABLED']);
145
+ }
146
+
147
+ if (array_key_exists('FRONTEND.MODE',$frontend)) {
148
+ $params['FRONTEND.MODE'] = $frontend['FRONTEND.MODE'];
149
+ unset($frontend['FRONTEND.MODE']);
150
+ } else {
151
+ $params['FRONTEND.MODE'] = "WHITELABEL";
152
+ $params['TRANSACTION.RESPONSE'] = "SYNC";
153
+ $params['FRONTEND.ENABLED'] = 'true';
154
+ };
155
+
156
+
157
+ $params = array_merge($params, $frontend);
158
+
159
+ /* costumer data configuration */
160
+ $params = array_merge($params, $userData);
161
+
162
+ /* basket data configuration */
163
+ $params = array_merge($params, $basketData);
164
+
165
+ /* criterion data configuration */
166
+ $params = array_merge($params, $criterion);
167
+
168
+ $params['REQUEST.VERSION'] = "1.0";
169
+
170
+ return $params ;
171
+ }
172
+
173
+
174
+ public function mapStatus ($data ,$order, $message=false) {
175
+
176
+ $PaymentCode = $this->splitPaymentCode($data['PAYMENT_CODE']);
177
+ $totalypaid = false ;
178
+ $invoiceMailComment = '';
179
+
180
+ if (strtoupper($data['CRITERION_LANGUAGE']) == 'DE') {
181
+ $locale = 'de_DE';
182
+ Mage::app()->getLocale()->setLocaleCode($locale);
183
+ Mage::getSingleton('core/translate')->setLocale($locale)->init('frontend', true);
184
+ };
185
+
186
+
187
+ $message = (!empty($message)) ? $message : $data['PROCESSING_RETURN'];
188
+
189
+ $quoteID = ($order->getLastQuoteId() === false) ? $order->getQuoteId() : $order->getLastQuoteId() ; // last_quote_id workaround for trusted shop buyerprotection
190
+
191
+ if ($data['PROCESSING_RESULT'] == 'NOK'){
192
+ if ($order->canCancel()) {
193
+ $order->cancel();
194
+
195
+ $order->setState( $order->getPayment()->getMethodInstance()->getStatusError(false),
196
+ $order->getPayment()->getMethodInstance()->getStatusError(true),
197
+ $message );
198
+ }
199
+
200
+ } elseif ( ( $PaymentCode[1] == 'CP' or $PaymentCode[1] == 'DB' or $PaymentCode[1] == 'FI' or $PaymentCode[1] == 'RC')
201
+ and ( $data['PROCESSING_RESULT'] == 'ACK' and $data['PROCESSING_STATUS_CODE'] != 80 )) {
202
+
203
+ /**
204
+ * Do nothing if status is allready successfull
205
+ */
206
+ if ($order->getStatus() == $order->getPayment()->getMethodInstance()->getStatusSuccess() ) return ;
207
+
208
+
209
+ $message = (isset($data['ACCOUNT_BRAND']) and $data['ACCOUNT_BRAND'] == 'BILLSAFE') ? 'BillSafe Id: '.$data['CRITERION_BILLSAFE_REFERENCE'] : 'Heidelpay ShortID: '.$data['IDENTIFICATION_SHORTID'];
210
+
211
+ if ($PaymentCode[0] == "IV" or $PaymentCode[0] == "PP") $message = Mage::helper('hcd')->__('recived amount ').$data['PRESENTATION_AMOUNT'].' '.$data['PRESENTATION_CURRENCY'].' '.$message;
212
+
213
+ $order->getPayment()->setTransactionId($data['IDENTIFICATION_UNIQUEID'])
214
+ ->setParentTransactionId( $order->getPayment()->getLastTransId());
215
+ $order->getPayment()->setIsTransactionClosed(true);
216
+
217
+ if ( $this->format($order->getGrandTotal()) == $data['PRESENTATION_AMOUNT'] and $order->getOrderCurrencyCode() == $data['PRESENTATION_CURRENCY']) {
218
+ $order->setState( $order->getPayment()->getMethodInstance()->getStatusSuccess(false),
219
+ $order->getPayment()->getMethodInstance()->getStatusSuccess(true),
220
+ $message );
221
+ $totalypaid = true ;
222
+
223
+ } else {
224
+ /*
225
+ * in case rc is ack and amount is to low or curreny missmatch
226
+ */
227
+ $order->setState( $order->getPayment()->getMethodInstance()->getStatusPartlyPaid(false),
228
+ $order->getPayment()->getMethodInstance()->getStatusPartlyPaid(true),
229
+ $message );
230
+ }
231
+
232
+ $path = "payment/".$order->getPayment()->getMethodInstance()->getCode()."/";
233
+
234
+ $this->log($path.' Auto invoiced :'.Mage::getStoreConfig($path."invioce", $data['CRITERION_STOREID']).$data['CRITERION_STOREID']);
235
+
236
+ if ($order->canInvoice() and Mage::getStoreConfig($path."invioce", $data['CRITERION_STOREID']) == 1 and $totalypaid === true ) {
237
+ $this->log('Can Invoice ? '.($order->canInvoice()) ? 'YES': 'NO');
238
+ $invoice = $order->prepareInvoice();
239
+ $invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);
240
+ $invoice->setState(Mage_Sales_Model_Order_Invoice::STATE_PAID);
241
+ $invoice->setIsPaid(true);
242
+ $invoice->register();
243
+ $order->setIsInProcess(true);
244
+ $order->addStatusHistoryComment(
245
+ Mage::helper('hcd')->__('Automatically invoiced by Heidelpay.'),
246
+ false
247
+ );
248
+ if ($this->_invoiceOrderEmail) $invoice->sendEmail(true, $invoiceMailComment); // Rechnung versenden
249
+ $invoice->save();
250
+
251
+
252
+ $transactionSave = Mage::getModel('core/resource_transaction')
253
+ ->addObject($invoice)
254
+ ->addObject($invoice->getOrder());
255
+ $transactionSave->save();
256
+ };
257
+
258
+ $order->getPayment()->addTransaction(
259
+ Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE,
260
+ null,
261
+ true,
262
+ $message
263
+ );
264
+ $order->setIsInProcess(true);
265
+ }else {
266
+ $message = (isset($data['ACCOUNT_BRAND']) and $data['ACCOUNT_BRAND'] == 'BILLSAFE') ? 'BillSafe Id: '.$data['CRITERION_BILLSAFE_REFERENCE'] : 'Heidelpay ShortID: '.$data['IDENTIFICATION_SHORTID'];
267
+ $order->getPayment()->setTransactionId($data['IDENTIFICATION_UNIQUEID']);
268
+ $order->getPayment()->setIsTransactionClosed(0);
269
+ $order->getPayment()->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS, null);
270
+ $this->log('Set Transaction to Pending : '.$order->getPayment()->getMethodInstance()->getStatusPendig());
271
+ $order->setState( $order->getPayment()->getMethodInstance()->getStatusPendig(false),
272
+ $order->getPayment()->getMethodInstance()->getStatusPendig(true),
273
+ $message );
274
+ $order->getPayment()->addTransaction(
275
+ Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH,
276
+ null,
277
+ true,
278
+ $message
279
+ );
280
+ }
281
+ $order->save();
282
+
283
+ }
284
+
285
+ /**
286
+ * function to format amount
287
+ */
288
+ public function format($number)
289
+ {
290
+ return number_format($number, 2, '.', '');
291
+ }
292
+
293
+
294
+ public function getLang($default='en')
295
+ {
296
+ $locale = explode('_', Mage::app()->getLocale()->getLocaleCode());
297
+ if (!empty($locale) ) {
298
+ return strtoupper($locale[0]);
299
+ }
300
+ return strtoupper($default); //TOBO falses Module
301
+ }
302
+
303
+
304
+ /**
305
+ * helper to generate customer payment error messages
306
+ */
307
+ public function handleError($errorMsg, $errorCode=null, $ordernr=null) {
308
+ // default is return generic error message
309
+
310
+ $this->log('Ordernumber '.$ordernr.' -> '.$errorMsg.' ['.$errorCode.']','NOTICE');
311
+
312
+ if ($errorCode) {
313
+ if (!preg_match('/HPError-[0-9]{3}\.[0-9]{3}\.[0-9]{3}/', $this->_getHelper()->__('HPError-'.$errorCode), $matches)) //JUST return when snipet exists
314
+ return $this->_getHelper()->__('HPError-'.$errorCode);
315
+ }
316
+
317
+ return $this->_getHelper()->__('An unexpected error occurred. Please contact us to get further information.');
318
+ }
319
+
320
+ /**
321
+ * anstracted log function because of backtrace
322
+ */
323
+
324
+ public function log($message, $level="DEBUG", $file=false) {
325
+ $callers=debug_backtrace();
326
+ return $this->realLog( $callers[1]['function'].' '.$message , $level , $file);
327
+ }
328
+
329
+ /**
330
+ * real log function which will becalled from all controllers and models
331
+ */
332
+
333
+ public function realLog($message, $level="DEBUG", $file=false) {
334
+ $storeId = Mage::app()->getStore()->getId();
335
+ $path = "hcd/settings/";
336
+ $config = array();
337
+
338
+
339
+ switch($level) {
340
+ case "CRIT":
341
+ $lev = Zend_Log::CRIT;
342
+ break;
343
+ case "ERR":
344
+ case "ERROR":
345
+ $lev = Zend_Log::ERR ;
346
+ break;
347
+ case "WARN";
348
+ $lev = Zend_Log::WARN;
349
+ break;
350
+ case "NOTICE":
351
+ $lev = Zend_Log::NOTICE;
352
+ break;
353
+ case "INFO":
354
+ $lev = Zend_Log::INFO;
355
+ break;
356
+ default:
357
+ $lev = Zend_Log::DEBUG;
358
+ if (Mage::getStoreConfig($path."log", $storeId) == 0) return true;
359
+ break;
360
+ }
361
+ $file = ($file === false) ? "Heidelpay.log" : $file;
362
+
363
+ Mage::log($message, $lev, $file);
364
+ return true;
365
+ }
366
+ }
367
+ ?>
app/code/community/HeidelpayCD/Edition/Model/Customer.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class HeidelpayCD_Edition_Model_Customer extends Mage_Core_Model_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ $this->_init('hcd/customer');
8
+ parent::_construct();
9
+ }
10
+
11
+
12
+ }
app/code/community/HeidelpayCD/Edition/Model/Mysql4/Customer.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class HeidelpayCD_Edition_Model_Mysql4_Customer extends Mage_Core_Model_Mysql4_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ $this->_init('hcd/customer', 'id');
8
+ }
9
+ }
app/code/community/HeidelpayCD/Edition/Model/Mysql4/Customer/Collection.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class HeidelpayCD_Edition_Model_Mysql4_Customer_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ $this->_init('hcd/customer');
8
+ parent::_construct();
9
+ }
10
+ }
11
+
app/code/community/HeidelpayCD/Edition/Model/Mysql4/Transaction.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class HeidelpayCD_Edition_Model_Mysql4_Transaction extends Mage_Core_Model_Mysql4_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ $this->_init('hcd/transaction', 'id');
8
+ }
9
+ }
app/code/community/HeidelpayCD/Edition/Model/Mysql4/Transaction/Collection.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class HeidelpayCD_Edition_Model_Mysql4_Transaction_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ $this->_init('hcd/transaction');
8
+ parent::_construct();
9
+ }
10
+ }
11
+
app/code/community/HeidelpayCD/Edition/Model/Order/Pdf/Invoice.php ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Order_Pdf_Invoice extends Mage_Sales_Model_Order_Pdf_Invoice
3
+ {
4
+
5
+ public function getPdf($invoices = array())
6
+ {
7
+ Mage::log('Invoice'.print_r($invoices,1));
8
+
9
+ // return $this->myPdf($invoices);
10
+ }
11
+
12
+ public function myPdf($invoices = array())
13
+ {
14
+ $debug = false;
15
+ if ($debug){
16
+ $this->_beforeGetPdf();
17
+ $this->_initRenderer('invoice');
18
+
19
+ $pdf = new Zend_Pdf();
20
+ $this->_setPdf($pdf);
21
+ $style = new Zend_Pdf_Style();
22
+ $this->_setFontBold($style, 10);
23
+
24
+ $page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
25
+ $pdf->pages[] = $page;
26
+ //$page->setFillColor(new Zend_Pdf_Color_RGB(1, 0, 0));
27
+ $this->_setFontRegular($page);
28
+ //$page->drawText('Dies ist ein Test', 35, 780, 'UTF-8');
29
+
30
+ $x = 50;
31
+ $y = 800;
32
+ }
33
+ foreach ($invoices as $invoice) {
34
+ $order = $invoice->getOrder();
35
+ $billing = $order->getBillingAddress();
36
+ $payment = $order->getPayment()->getMethodInstance();
37
+
38
+ // Immer in der Basisw�hrung des Shops abrechnen
39
+ //$amount = number_format($this->getOrder()->getBaseGrandTotal(), 2, '.', '');
40
+ //$currency = $this->getOrder()->getBaseCurrencyCode();
41
+ // in der aktuell ausgew�hlten W�hrung abrechnen
42
+ $amount = number_format($order->getGrandTotal(), 2, '.', '');
43
+ $currency = $order->getOrderCurrencyCode();
44
+
45
+ $street = $billing->getStreet();
46
+ $locale = explode('_', Mage::app()->getLocale()->getLocaleCode());
47
+ if (is_array($locale) && ! empty($locale))
48
+ $language = $locale[0];
49
+ else
50
+ $language = $this->getDefaultLocale();
51
+
52
+ $userId = $order->getCustomerId();
53
+ $orderId = $payment->getTransactionId();
54
+ $insertId = $orderId;
55
+ $orderId .= '-'.$userId;
56
+ $payCode = 'IV';
57
+ $payMethod = 'FI';
58
+
59
+ $userData = array(
60
+ 'firstname' => $billing->getFirstname(),
61
+ 'lastname' => $billing->getLastname(),
62
+ 'salutation'=> 'MR',#($order->customer['gender']=='f' ? 'MRS' : 'MR'),
63
+ 'street' => $street[0],
64
+ 'zip' => $billing->getPostcode(),
65
+ 'city' => $billing->getCity(),
66
+ 'country' => $billing->getCountry(),
67
+ 'email' => $order->getCustomerEmail(),
68
+ 'ip' => $order->getRemoteIp(),
69
+ );
70
+ if (empty($userData['ip'])) $userData['ip'] = $_SERVER['REMOTE_ADDR']; // Falls IP Leer, dann aus dem Server holen
71
+ // Payment Request zusammenschrauben
72
+ $data = $payment->prepareData($orderId, $amount, $currency, $payCode, $userData, $language, $payMethod, true);
73
+ $bsParams = $payment->getBillsafeBasket($order);
74
+ $data = array_merge($data, $bsParams);
75
+ $data['IDENTIFICATION.REFERENCEID'] = $order->getPayment()->getLastTransId();
76
+ if ($debug){
77
+ foreach ($data AS $k => $v){
78
+ $page->drawText($k.': '.$v, $x, $y, 'UTF-8');
79
+ $y-= 10;
80
+ }
81
+ }
82
+ // Mit Payment kommunizieren
83
+ $res = $payment->doRequest($data);
84
+ //if ($debug) echo '<pre>resp('.print_r($this->response, 1).')</pre>';
85
+ //if ($debug) echo '<pre>'.print_r($res, 1).'</pre>';
86
+ // Payment Antwort auswerten
87
+ $res = $payment->parseResult($res);
88
+ //if ($debug) echo '<pre>'.print_r($res, 1).'</pre>';
89
+ if ($debug) $page->drawText(print_r($res,1), $x, $y, 'UTF-8');
90
+ }
91
+ if ($debug){
92
+ $this->_afterGetPdf();
93
+ return $pdf;
94
+ }
95
+ return parent::getPdf($invoices);
96
+ }
97
+ public function log($message, $level="DEBUG", $file=false) {
98
+ $callers=debug_backtrace();
99
+ return Mage::helper('hcd/payment')->realLog( $callers[1]['function'].' '. $message , $level , $file);
100
+ }
101
+ };
app/code/community/HeidelpayCD/Edition/Model/Payment/Abstract.php ADDED
@@ -0,0 +1,607 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Abstract extends Mage_Payment_Model_Method_Abstract
3
+ {
4
+ /*{{{Vars*/
5
+ /**
6
+ * unique internal payment method identifier
7
+ *
8
+ * @var string [a-z0-9_]
9
+ */
10
+ protected $_code = 'abstract';
11
+ protected $_order;
12
+ // protected $version = '14.01.08';
13
+ protected $_isGateway = true;
14
+ protected $_canAuthorize = false;
15
+ protected $_canCapture = true;
16
+ protected $_canCapturePartial = true;
17
+ protected $_canRefund = true;
18
+ protected $_canRefundInvoicePartial = true;
19
+ protected $_canVoid = false;
20
+ protected $_canUseInternal = false;
21
+ protected $_canUseCheckout = true;
22
+ protected $_canUseForMultishipping = false;
23
+ protected $_isInitializeNeeded = true;
24
+
25
+
26
+ protected $_live_url = 'https://heidelpay.hpcgw.net/ngw/post';
27
+ protected $_sandbox_url = 'https://test-heidelpay.hpcgw.net/ngw/post';
28
+
29
+ /**
30
+ *
31
+ */
32
+ public function activRedirct() {
33
+ return true ;
34
+ }
35
+
36
+ public function getCode() {
37
+ return $this->_code ;
38
+ }
39
+
40
+ protected $_formBlockType = 'hcd/form_desconly';
41
+
42
+ public function getFormBlockType(){
43
+ return $this->_formBlockType;
44
+ }
45
+
46
+ public function getCheckout()
47
+ {
48
+ return Mage::getSingleton('checkout/session');
49
+ }
50
+ /** Get Status Pending*/
51
+ public function getStatusPendig($param=false) {
52
+
53
+ if ($param == false) return Mage_Sales_Model_Order::STATE_PENDING_PAYMENT; // status
54
+
55
+ return Mage_Sales_Model_Order::STATE_PENDING_PAYMENT; //state
56
+
57
+ }
58
+ /** Get Status Error/Cancel*/
59
+ public function getStatusError($param=false) {
60
+
61
+ if ($param == false) return Mage_Sales_Model_Order::STATE_CANCELED; // status
62
+
63
+ return Mage_Sales_Model_Order::STATE_CANCELED; //state
64
+
65
+ }
66
+ /** Get Status Success*/
67
+ public function getStatusSuccess($param=false) {
68
+
69
+ if ($param == false) return Mage_Sales_Model_Order::STATE_PROCESSING; // status
70
+
71
+ return Mage_Sales_Model_Order::STATE_PROCESSING; //state
72
+ }
73
+ /** Get Status PartlyPaid*/
74
+ public function getStatusPartlyPaid($param=false) {
75
+
76
+ if ($param == false) return Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW; // status
77
+
78
+ return Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW; //state
79
+
80
+ }
81
+
82
+ /**
83
+ * Get current quote
84
+ *
85
+ * @return Mage_Sales_Model_Quote
86
+ */
87
+ public function getQuote()
88
+ {
89
+ return $this->getCheckout()->getQuote();
90
+ }
91
+
92
+ /**
93
+ * Get heidelpay session namespace
94
+ *
95
+ * @return Mage_Heidelpay_Model_Session
96
+ */
97
+ public function getSession()
98
+ {
99
+ return Mage::getSingleton('core/session');
100
+ }
101
+
102
+ public function validate()/*{{{*/
103
+ {
104
+ parent::validate();
105
+ return $this;
106
+ }/*}}}*/
107
+
108
+ public function initialize($paymentAction, $stateObject)
109
+ {
110
+ /*
111
+ $state = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
112
+ $stateObject->setState($state);
113
+ $stateObject->setStatus(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT);
114
+ $stateObject->setIsNotified(false);
115
+ */
116
+ }
117
+
118
+ /**
119
+ * Retirve block type for display method information
120
+ *
121
+ * @return string
122
+ */
123
+ public function getInfoBlockType()/*{{{*/
124
+ {
125
+ return $this->_infoBlockType;
126
+ }/*}}}*/
127
+
128
+ /**
129
+ * Return true if the method can be used at this time
130
+ *
131
+ * @return bool
132
+ */
133
+ public function isAvailable($quote=null)
134
+ {
135
+ # Minimum and maximum amount
136
+ $totals = $this->getQuote()->getTotals();
137
+ if(!isset($totals['grand_total']) ) return false;
138
+ $storeId = Mage::app()->getStore()->getId();
139
+
140
+ /*
141
+ if(Mage::getStoreConfig("hcd/settings/transactionmode", $storeId) != 0)
142
+ Mage::getSingleton('core/session')->addNotice('"'.$this->getTitle().'"'.$this->_getHelper()->__(' is in sandbox mode.'));
143
+ */
144
+
145
+ $amount = sprintf('%1.2f', $totals['grand_total']->getData('value'));
146
+ $amount = $amount * 100;
147
+ $path = "payment/".$this->_code."/";
148
+
149
+ $minamount = Mage::getStoreConfig($path.'min_amount', $storeId );
150
+ $maxamount = Mage::getStoreConfig($path.'max_amount', $storeId );
151
+ if (is_numeric($minamount) && $minamount > 0 && $minamount > $amount) return false;
152
+ if (is_numeric($maxamount) && $maxamount > 0 && $maxamount < $amount) return false;
153
+ return parent::isAvailable($quote);
154
+ }
155
+ public function canCapture() {
156
+ $storeId = Mage::app()->getStore()->getId();
157
+ $path = "payment/".$this->_code."/";
158
+ if (Mage::getStoreConfig($path."bookingmode", $storeId) != 'PA') {
159
+ return false;
160
+ }
161
+ return parent::canCapture();
162
+ }
163
+
164
+ public function getOrderPlaceRedirectUrl()
165
+ {
166
+
167
+ return Mage::getUrl('hcd/', array('_secure' => true));
168
+ }
169
+
170
+
171
+
172
+ public function getHeidelpayUrl($isRegistration=false)
173
+ {
174
+ $config = $frontend = $user = $basketData = array();
175
+
176
+ if ($isRegistration === false) {
177
+ $order = Mage::getModel('sales/order');
178
+ $session = $this->getCheckout();
179
+ $order->loadByIncrementId($session->getLastRealOrderId());
180
+ $ordernr = $order->getRealOrderId();
181
+ }else {
182
+ $order = $this->getQuote() ;
183
+ $ordernr = $this->getQuote()->getBillingAddress()->getCustomerId();
184
+ };
185
+ $this->log("Heidelpay Payment Code : ".$this->_code);
186
+ $config = $this->getMainConfig($this->_code);
187
+ if ($isRegistration === true)$config['PAYMENT.TYPE'] = 'RG';
188
+ $frontend = $this->getFrontend($ordernr);
189
+ if ($isRegistration === true) $frontend['FRONTEND.SUCCESS_URL'] = Mage::getUrl('hcd/', array('_secure' => true));
190
+ if ($isRegistration === true) $frontend['CRITERION.SHIPPPING_HASH'] = $this->getShippingHash();
191
+ $user = $this->getUser($order, $isRegistration);
192
+
193
+ if ($isRegistration === false) {
194
+ $completeBasket = ($config['INVOICEING'] == 1 or $this->_code == "hcdbs") ? true : false;
195
+ $basketData = $this->getBasketData($order, $completeBasket);
196
+ } else {
197
+
198
+ };
199
+ $params = Mage::helper('hcd/payment')->preparePostData( $config, $frontend, $user, $basketData,
200
+ $criterion = array());
201
+ $this->log("doRequest url : ".$config['URL'], 'DEBUG');
202
+ $this->log("doRequest params : ".print_r($params,1), 'DEBUG');
203
+ $src = Mage::helper('hcd/payment')->doRequest($config['URL'], $params);
204
+ $this->log("doRequest response : ".print_r($src,1), 'DEBUG');
205
+
206
+ return $src;
207
+ }
208
+
209
+ public function getBasketData($order , $completeBasket = false, $amount=false) {
210
+ $data = array (
211
+ 'PRESENTATION.AMOUNT' => ($amount) ? $amount : Mage::helper('hcd/payment')->format($order->getGrandTotal()),
212
+ 'PRESENTATION.CURRENCY' => $order->getOrderCurrencyCode(),
213
+ 'IDENTIFICATION.TRANSACTIONID' => $order->getRealOrderId()
214
+ );
215
+ // Add basket details in case of BillSafe or invoicing over heidelpay
216
+ $basket = array();
217
+ if ($completeBasket) {
218
+ $basket = $this->getBasket($order);
219
+ }
220
+
221
+ return array_merge($basket, $data);
222
+ }
223
+
224
+
225
+
226
+ public function getFrontend($ordernr, $storeId=false) {
227
+
228
+ return array(
229
+ 'FRONTEND.LANGUAGE' => Mage::helper('hcd/payment')->getLang(),
230
+ 'FRONTEND.RESPONSE_URL' => Mage::getUrl('hcd/index/response', array('_forced_secure' => true, '_store_to_url' => true, '_nosid' => true)),
231
+ 'FRONTEND.SUCCESS_URL' => Mage::getUrl('hcd/index/success', array('_forced_secure' => true, '_store_to_url' => true, '_nosid' => true)),
232
+ 'FRONTEND.FAILURE_URL' => Mage::getUrl('hcd/index/error', array('_forced_secure' => true, '_store_to_url' => true, '_nosid' => true)),
233
+ 'CRITERION.SECRET' => Mage::getModel('hcd/resource_encryption')->getHash((string)$ordernr),
234
+ 'CRITERION.LANGUAGE' => strtolower(Mage::helper('hcd/payment')->getLang()),
235
+ 'CRITERION.STOREID' => ($storeId) ? $storeId : Mage::app()->getStore()->getId(),
236
+ 'SHOP.TYPE' => 'Magento '. Mage::getVersion(),
237
+ 'SHOPMODULE.VERSION' => 'HeidelpayCD Edition - '. (string) Mage::getConfig()->getNode()->modules->HeidelpayCD_Edition->version
238
+ );
239
+ }
240
+
241
+ public function getUser($order, $isReg=false) {
242
+
243
+ $user = array();
244
+ $billing = $order->getBillingAddress();
245
+ $email = ($order->getBillingAddress()->getEmail()) ? $order->getBillingAddress()->getEmail() : $order->getCustomerEmail();
246
+
247
+
248
+ $user['IDENTIFICATION.SHOPPERID'] = $billing->getCustomerId();
249
+ if ($billing->getCompany() == true) $user['NAME.COMPANY'] = trim($billing->getCompany());
250
+ $user['NAME.GIVEN'] = trim($billing->getFirstname());
251
+ $user['NAME.FAMILY'] = trim($billing->getLastname());
252
+ $user['ADDRESS.STREET'] = trim($billing->getStreet1()." ".$billing->getStreet2());
253
+ $user['ADDRESS.ZIP'] = trim($billing->getPostcode());
254
+ $user['ADDRESS.CITY'] = trim($billing->getCity());
255
+ $user['ADDRESS.COUNTRY'] = trim($billing->getCountry());
256
+ $user['CONTACT.EMAIL'] = trim($email);
257
+ $user['CONTACT.IP'] = (filter_var(trim(Mage::app()->getRequest()->getClientIp()), FILTER_VALIDATE_IP)) ? trim(Mage::app()->getRequest()->getClientIp()) : '127.0.0.1' ;
258
+
259
+
260
+ //load reconized data
261
+
262
+ if ($isReg === false and $order->getPayment()->getMethodInstance()->activRedirct() === true) {
263
+ if($this->getCustomerData($this->_code, $billing->getCustomerId())) {
264
+ $paymentData = $this->getCustomerData($this->_code, $billing->getCustomerId());
265
+
266
+ $this->log('getUser Customer: '. print_r($paymentData,1), 'DEBUG');
267
+
268
+ // remove SHIPPPING_HASH from parameters
269
+ if (isset($paymentData['payment_data']['SHIPPPING_HASH']))
270
+ unset($paymentData['payment_data']['SHIPPPING_HASH']);
271
+
272
+ // remove cc or dc reference data
273
+ if ($this->_code == 'hcdcc' or $this->_code == 'hcddc') {
274
+ if (isset($paymentData['payment_data']['ACCOUNT_BRAND']))
275
+ unset($paymentData['payment_data']['ACCOUNT_BRAND']);
276
+ if (isset($paymentData['payment_data']['ACCOUNT_NUMBER']))
277
+ unset($paymentData['payment_data']['ACCOUNT_NUMBER']);
278
+ if (isset($paymentData['payment_data']['ACCOUNT_HOLDER']))
279
+ unset($paymentData['payment_data']['ACCOUNT_HOLDER']);
280
+ if (isset($paymentData['payment_data']['ACCOUNT_EXPIRY_MONTH']))
281
+ unset($paymentData['payment_data']['ACCOUNT_EXPIRY_MONTH']);
282
+ if (isset($paymentData['payment_data']['ACCOUNT_EXPIRY_YEAR']))
283
+ unset($paymentData['payment_data']['ACCOUNT_EXPIRY_YEAR']);
284
+
285
+ }
286
+ foreach($paymentData['payment_data'] AS $k => $v )
287
+ $user[$k] = $v;
288
+ }
289
+
290
+ }
291
+ return $user;
292
+ }
293
+
294
+ public function getBasket($order)
295
+ {
296
+ $items = $order->getAllVisibleItems();
297
+
298
+ if ($items) {
299
+ $i = 0;
300
+ foreach($items as $item) {
301
+ $i++;
302
+ $prefix = 'CRITERION.POS_'.sprintf('%02d', $i);
303
+ $quantity = (int)$item->getQtyOrdered();
304
+ $parameters[$prefix.'.POSITION'] = $i;
305
+ $parameters[$prefix.'.QUANTITY'] = $quantity;
306
+ $parameters[$prefix.'.UNIT'] = 'Stk.'; // Liter oder so
307
+ $parameters[$prefix.'.AMOUNT_UNIT_GROSS'] = floor(bcmul($item->getPriceInclTax(), 100, 10));
308
+ $parameters[$prefix.'.AMOUNT_GROSS'] = floor(bcmul($item->getPriceInclTax() * $quantity, 100, 10));
309
+
310
+
311
+ $parameters[$prefix.'.TEXT'] = $item->getName();
312
+ $parameters[$prefix.'.COL1'] = 'SKU:'.$item->getSku();
313
+ $parameters[$prefix.'.ARTICLE_NUMBER'] = $item->getProductId();
314
+ $parameters[$prefix.'.PERCENT_VAT'] = sprintf('%1.2f', $item->getTaxPercent());
315
+ $parameters[$prefix.'.ARTICLE_TYPE'] = 'goods';
316
+ }
317
+ }
318
+
319
+ if ($this->getShippingNetPrice($order) > 0){
320
+ $i++;
321
+ $prefix = 'CRITERION.POS_'.sprintf('%02d', $i);
322
+ $parameters[$prefix.'.POSITION'] = $i;
323
+ $parameters[$prefix.'.QUANTITY'] = '1';
324
+ $parameters[$prefix.'.UNIT'] = 'Stk.'; // Liter oder so
325
+ $parameters[$prefix.'.AMOUNT_UNIT_GROSS'] = floor(bcmul((($order->getShippingAmount() - $order->getShippingRefunded()) * (1 + $this->getShippingTaxPercent($order)/100)), 100, 10));
326
+ $parameters[$prefix.'.AMOUNT_GROSS'] = floor(bcmul((($order->getShippingAmount() - $order->getShippingRefunded()) * (1 + $this->getShippingTaxPercent($order)/100)), 100, 10));
327
+
328
+ $parameters[$prefix.'.TEXT'] = 'Shipping';
329
+ $parameters[$prefix.'.ARTICLE_NUMBER'] = '0';
330
+ $parameters[$prefix.'.PERCENT_VAT'] = $this->getShippingTaxPercent($order);
331
+ $parameters[$prefix.'.ARTICLE_TYPE'] = 'shipment';
332
+ }
333
+
334
+ if ($order->getDiscountAmount() < 0){
335
+ $i++;
336
+ $prefix = 'CRITERION.POS_'.sprintf('%02d', $i);
337
+ $parameters[$prefix.'.POSITION'] = $i;
338
+ $parameters[$prefix.'.QUANTITY'] = '1';
339
+ $parameters[$prefix.'.UNIT'] = 'Stk.'; // Liter oder so
340
+ $parameters[$prefix.'.AMOUNT_UNIT_GROSS'] = floor(bcmul($order->getDiscountAmount(), 100, 10));
341
+ $parameters[$prefix.'.AMOUNT_GROSS'] = floor(bcmul($order->getDiscountAmount(), 100, 10));
342
+
343
+ $parameters[$prefix.'.TEXT'] = 'Voucher';
344
+ $parameters[$prefix.'.ARTICLE_NUMBER'] = '0';
345
+ $parameters[$prefix.'.PERCENT_VAT'] = '0.00';
346
+ $parameters[$prefix.'.ARTICLE_TYPE'] = 'voucher';
347
+ }
348
+
349
+ return $parameters;
350
+ }
351
+
352
+ protected function getShippingTaxPercent($order)
353
+ {
354
+ $tax = ($order->getShippingTaxAmount() * 100) / $order->getShippingAmount();
355
+ return Mage::helper('hcd/payment')->format(round($tax));
356
+ }
357
+
358
+ protected function getShippingNetPrice($order)
359
+ {
360
+ $shippingTax = $order->getShippingTaxAmount();
361
+ $price = $order->getShippingInclTax() - $shippingTax;
362
+ $price -= $order->getShippingRefunded();
363
+ $price -= $order->getShippingCanceled();
364
+ return $price;
365
+ }
366
+
367
+
368
+ /**
369
+ * Retrieve information from payment configuration
370
+ *
371
+ * @param string $field
372
+ * @return mixed
373
+ */
374
+ public function getMainConfig($code, $storeId=false)
375
+ {
376
+ $storeId = ($storeId) ? $storeId : $this->getStore();
377
+ $path = "hcd/settings/";
378
+ $config = array();
379
+ $config['PAYMENT.METHOD'] = preg_replace('/^hcd/','',$code);
380
+ $config['SECURITY.SENDER'] = Mage::getStoreConfig($path."security_sender", $storeId);
381
+ if(Mage::getStoreConfig($path."transactionmode", $storeId) == 0) {
382
+ $config['TRANSACTION.MODE'] = 'LIVE';
383
+ $config['URL'] = $this->_live_url ;
384
+
385
+ } else {
386
+ $config['TRANSACTION.MODE'] = 'CONNECTOR_TEST';
387
+ $config['URL'] = $this->_sandbox_url ;
388
+ }
389
+ $config['USER.LOGIN'] = trim(Mage::getStoreConfig($path."user_id", $storeId));
390
+ $config['USER.PWD'] = trim(Mage::getStoreConfig($path."user_pwd", $storeId));
391
+ $config['INVOICEING'] = (Mage::getStoreConfig($path."invoicing", $storeId) == 1) ? 1 : 0 ;
392
+ $config['USER.PWD'] = trim(Mage::getStoreConfig($path."user_pwd", $storeId));
393
+
394
+ $path = "payment/".$code."/";
395
+ $config['TRANSACTION.CHANNEL'] = trim(Mage::getStoreConfig($path."channel", $storeId));
396
+ (Mage::getStoreConfig($path."bookingmode", $storeId) == true) ? $config['PAYMENT.TYPE'] = Mage::getStoreConfig($path."bookingmode", $storeId) : false ;
397
+
398
+ return $config;
399
+ }
400
+
401
+
402
+ public function getTitle(){
403
+ $storeId = $this->getStore();
404
+ $path = "payment/".$this->_code."/";
405
+ return $this->_getHelper()->__(Mage::getStoreConfig($path."title", $storeId));
406
+ }
407
+
408
+ public function getAdminTitle(){
409
+ $storeId = $this->getStore();
410
+ $path = "payment/".$this->_code."/";
411
+ return $this->_getHelper()->__(Mage::getStoreConfig($path."title", $storeId));
412
+ }
413
+
414
+
415
+ public function capture(Varien_Object $payment, $amount)
416
+ {
417
+ $this->log('Can capture ? '.($this->canCapture()) ? 'YES': 'NO');
418
+ if ($this->canCapture()) {
419
+ $order = $payment->getOrder();
420
+ $Autorisation = Mage::getModel('hcd/transaction')->getOneTransactionByMethode($order->getRealOrderId() , 'PA');
421
+
422
+ $config = $this->getMainConfig($this->_code, $Autorisation['CRITERION_STOREID']);
423
+ $config['PAYMENT.TYPE'] = ($this->_code == 'hcdbs') ? 'FI' : 'CP'; // If billsafe set to fin
424
+
425
+ /*
426
+ if($this->_code == 'hcdbs') {
427
+ foreach ($Autorisation AS $k => $v){
428
+
429
+ }
430
+
431
+ }
432
+ */
433
+ $frontend = $this->getFrontend($order->getRealOrderId(), $Autorisation['CRITERION_STOREID']);
434
+ $frontend['FRONTEND.MODE'] = 'DEFAULT';
435
+ $frontend['FRONTEND.ENABLED'] = 'false';
436
+
437
+ $user = $this->getUser($order, true);
438
+ $basketdetails = ($this->_code == 'hcdbs') ? true : false; // If billsafe set to fin
439
+ $basketData = $this->getBasketData($order, $basketdetails , $amount);
440
+
441
+ $basketData['IDENTIFICATION.REFERENCEID'] = $Autorisation['IDENTIFICATION_UNIQUEID'];
442
+
443
+ $params = Mage::helper('hcd/payment')->preparePostData( $config, $frontend, $user, $basketData,
444
+ $criterion=array());
445
+
446
+ $this->log("doRequest url : ".$config['URL']);
447
+ $this->log("doRequest params : ".print_r($params,1));
448
+
449
+ $src = Mage::helper('hcd/payment')->doRequest($config['URL'], $params);
450
+
451
+ $this->log("doRequest response : ".print_r($src,1));
452
+ Mage::throwException('Heidelpay Error: '.'<pre>'.print_r($src,1).'</pre>');
453
+
454
+ if($src['PROCESSING_RESULT'] == "NOK") {
455
+ Mage::throwException('Heidelpay Error: '.$src['PROCESSING_RETURN']);
456
+ return $this;;
457
+ }
458
+
459
+ $payment->setTransactionId($src['IDENTIFICATION_UNIQUEID']);
460
+ Mage::getModel('hcd/transaction')->saveTransactionData($src);
461
+ }
462
+ return $this;
463
+ }
464
+
465
+ public function refund(Varien_Object $payment, $amount)
466
+ {
467
+ $order = $payment->getOrder();
468
+
469
+ $CaptureData = Mage::getModel('hcd/transaction')->loadLastTransactionDataByUniqeId((string)$payment->getRefundTransactionId());
470
+
471
+ $config = $this->getMainConfig($this->_code, $CaptureData['CRITERION_STOREID']);
472
+ $config['PAYMENT.TYPE'] = 'RF';
473
+ $frontend = $this->getFrontend($order->getRealOrderId(), $CaptureData['CRITERION_STOREID']);
474
+ $frontend['FRONTEND.MODE'] = 'DEFAULT';
475
+ $frontend['FRONTEND.ENABLED'] = 'false';
476
+ $user = $this->getUser($order, true);
477
+ $basketData = $this->getBasketData($order, false , $amount);
478
+ $basketData['IDENTIFICATION.REFERENCEID'] = (string)$payment->getRefundTransactionId();
479
+ $params = Mage::helper('hcd/payment')->preparePostData( $config, $frontend, $user, $basketData,
480
+ $criterion=array());
481
+ $this->log("doRequest url : ".$config['URL']);
482
+ $this->log("doRequest params : ".print_r($params,1));
483
+
484
+ $src = Mage::helper('hcd/payment')->doRequest($config['URL'], $params);
485
+ $this->log("doRequest response : ".print_r($src,1));
486
+ if($src['PROCESSING_RESULT'] == "NOK") {
487
+ Mage::throwException('Heidelpay Error: '.$src['PROCESSING_RETURN']);
488
+ return $this;;
489
+ }
490
+ $payment->setTransactionId($src['IDENTIFICATION_UNIQUEID']);
491
+ Mage::getModel('hcd/transaction')->saveTransactionData($src);
492
+ return $this;;
493
+ }
494
+
495
+
496
+ private function restock($order){
497
+ $session = $this->getSession();
498
+ if(floatval(substr(Mage::getVersion(),0,-4)) <= floatval('1.7')){
499
+
500
+ if ($session->getStockUpdated() != $session->getLastRealOrderId()){
501
+ $items = $order->getAllItems();
502
+ if ($items){
503
+ foreach($items as $item){
504
+ $quantity = $item->getQtyOrdered();
505
+ $product_id = $item->getProductId();
506
+ // load stock for product
507
+ $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product_id);
508
+ // set to old qty
509
+ $stock->setQty($stock->getQty() + $quantity)->setIsInStock(true);
510
+ $stock->save();
511
+ }
512
+ }
513
+ $session->setStockUpdated($session->getLastRealOrderId());
514
+ }
515
+ }
516
+ }
517
+ public function log($message, $level="DEBUG", $file=false) {
518
+ $callers=debug_backtrace();
519
+ return Mage::helper('hcd/payment')->realLog( $callers[1]['function'].' '. $message , $level , $file);
520
+ }
521
+
522
+ function getCustomerName($session=false)
523
+ {
524
+ if ( $session === true ) {
525
+ $session = $this->getCheckout();
526
+ return $session->getQuote()->getBillingAddress()->getFirstname().' '.$session->getQuote()->getBillingAddress()->getLastname();
527
+ }
528
+
529
+ return $this->getQuote()->getBillingAddress()->getFirstname().' '.$this->getQuote()->getBillingAddress()->getLastname();
530
+ }
531
+
532
+ public function saveCustomerData($data, $uniqeID=NULL) {
533
+ $custumerData = Mage::getModel('hcd/customer');
534
+
535
+ if ($this->getCustomerData() !== false) {
536
+ $lastdata = $this->getCustomerData();
537
+ $custumerData->load($lastdata['id']);
538
+ }
539
+
540
+ $this->log('StoreID :'.Mage::app()->getStore()->getId());
541
+
542
+ $custumerData->setPaymentmethode($this->_code);
543
+ $custumerData->setUniqeid($uniqeID);
544
+ $custumerData->setCustomerid($this->getQuote()->getBillingAddress()->getCustomerId());
545
+ $custumerData->setStoreid(Mage::app()->getStore()->getId());
546
+ $data['SHIPPPING_HASH'] = $this->getShippingHash();
547
+ $custumerData->setPaymentData(Mage::getModel('hcd/resource_encryption')->encrypt(json_encode($data)));
548
+
549
+ $custumerData->save();
550
+
551
+ }
552
+
553
+ function getCustomerData($code=false, $customerId=false, $storeId=false ) {
554
+
555
+ $PaymentCode = ($code)? $code : $this->_code ;
556
+ $CustomerId = ($customerId) ? $customerId : $this->getQuote()->getBillingAddress()->getCustomerId() ;
557
+ $StoreId = ($storeId) ? $storeId : Mage::app()->getStore()->getId();
558
+
559
+ $this->log('StoreID :'.Mage::app()->getStore()->getId());
560
+
561
+ $custumerData = Mage::getModel('hcd/customer')
562
+ ->getCollection()
563
+ ->addFieldToFilter('Customerid', $CustomerId)
564
+ ->addFieldToFilter('Storeid', $StoreId)
565
+ ->addFieldToFilter('Paymentmethode', $PaymentCode );
566
+
567
+ $custumerData->load();
568
+ $data = $custumerData->getData();
569
+
570
+ /* retun false if not */
571
+ if (empty($data[0]['id'])) return false;
572
+
573
+ $return = array();
574
+
575
+ $return['id'] = $data[0]['id'];
576
+
577
+ if (!empty($data[0]['uniqeid'])) $return['uniqeid'] = $data[0]['uniqeid'];
578
+ if (!empty($data[0]['payment_data'])) $return['payment_data'] = json_decode(Mage::getModel('hcd/resource_encryption')->decrypt($data[0]['payment_data']), true);
579
+ return $return ;
580
+
581
+ }
582
+
583
+ function getShippingHash() {
584
+ $shipping = $this->getQuote()->getShippingAddress();
585
+ return md5( $shipping->getFirstname().
586
+ $shipping->getLastname().
587
+ $shipping->getStreet1()." ".$shipping->getStreet2().
588
+ $shipping->getPostcode().
589
+ $shipping->getCity().
590
+ $shipping->getCountry()
591
+ );
592
+
593
+
594
+ }
595
+
596
+ public function showPaymentInfo($payment_data) {
597
+ /*
598
+ * This function should not be modified please overright this function
599
+ * in the class of the used payment methode !!!
600
+ *
601
+ * your function should set $this->getCheckout()->setHcdPaymentInfo($userMessage)
602
+ */
603
+
604
+ return;
605
+ }
606
+ }
607
+
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdbs.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcdbs extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ protected $_code = 'hcdbs';
5
+ protected $_isGateway = true;
6
+ protected $_canAuthorize = false;
7
+ protected $_canRefund = false;
8
+ protected $_canRefundInvoicePartial = false;
9
+ protected $_canVoid = false;
10
+ protected $_canUseInternal = false;
11
+ protected $_canUseCheckout = true;
12
+ protected $_canUseForMultishipping = false;
13
+ protected $_isInitializeNeeded = false;
14
+
15
+
16
+ public function isAvailable($quote=null) {
17
+ $billing = $this->getQuote()->getBillingAddress();
18
+ $shipping = $this->getQuote()->getShippingAddress();
19
+
20
+ if (($billing->getFirstname() != $shipping->getFirstname()) or
21
+ ($billing->getLastname() != $shipping->getLastname()) or
22
+ ($billing->getStreet() != $shipping->getStreet()) or
23
+ ($billing->getPostcode() != $shipping->getPostcode()) or
24
+ ($billing->getCity() != $shipping->getCity()) or
25
+ ($billing->getCountry() != $shipping->getCountry())) {
26
+
27
+ return false;
28
+ }
29
+ return parent::isAvailable($quote);
30
+ }
31
+
32
+ public function showPaymentInfo($payment_data) {
33
+
34
+ $load_snippet = $this->_getHelper()->__("BillSafe Info Text");
35
+
36
+ $repl = array(
37
+ '{LEGALNOTE}' => $payment_data['CRITERION_BILLSAFE_LEGALNOTE'],
38
+ '{AMOUNT}' => $payment_data['CRITERION_BILLSAFE_AMOUNT'],
39
+ '{CURRENCY}' => $payment_data['CRITERION_BILLSAFE_CURRENCY'],
40
+ '{CONNECTOR_ACCOUNT_HOLDER}' => $payment_data['CRITERION_BILLSAFE_RECIPIENT'],
41
+ '{CONNECTOR_ACCOUNT_IBAN}' => $payment_data['CRITERION_BILLSAFE_IBAN'],
42
+ '{CONNECTOR_ACCOUNT_BIC}' => $payment_data['CRITERION_BILLSAFE_BIC'],
43
+ '{IDENTIFICATION_SHORTID}' => $payment_data['CRITERION_BILLSAFE_REFERENCE'],
44
+ '{PERIOD}' => $payment_data['CRITERION_BILLSAFE_PERIOD']
45
+ );
46
+
47
+ $load_snippet= strtr( $load_snippet , $repl);
48
+
49
+ $this->getCheckout()->setHcdPaymentInfo($load_snippet);
50
+
51
+ return ;
52
+
53
+ }
54
+ }
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdcc.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcdcc extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ /**
5
+ * unique internal payment method identifier
6
+ *
7
+ * @var string [a-z0-9_]
8
+ **/
9
+ protected $_code = 'hcdcc';
10
+
11
+ public function isRecognation() {
12
+ $path = "payment/".$this->_code."/";
13
+ $storeId = Mage::app()->getStore()->getId();
14
+ return Mage::getStoreConfig($path.'recognition', $storeId);
15
+
16
+ }
17
+
18
+ public function activRedirct() {
19
+ $recognation = $this->isRecognation();
20
+ if ($recognation > 0) return true;
21
+ return false ;
22
+ }
23
+ protected $_formBlockType = 'hcd/form_creditcard';
24
+
25
+ public function getFormBlockType(){
26
+ return $this->_formBlockType;
27
+ }
28
+
29
+ }
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcddc.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcddc extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ /**
5
+ * unique internal payment method identifier
6
+ *
7
+ * @var string [a-z0-9_]
8
+ **/
9
+ protected $_code = 'hcddc';
10
+
11
+ public function isRecognation() {
12
+ $path = "payment/".$this->_code."/";
13
+ $storeId = Mage::app()->getStore()->getId();
14
+ return Mage::getStoreConfig($path.'recognition', $storeId);
15
+
16
+ }
17
+
18
+ public function activRedirct() {
19
+ $recognation = $this->isRecognation();
20
+ if ($recognation > 0) return true;
21
+ return false ;
22
+ }
23
+
24
+ protected $_formBlockType = 'hcd/form_creditcard';
25
+
26
+ public function getFormBlockType(){
27
+ return $this->_formBlockType;
28
+ }
29
+
30
+ }
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcddd.php ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcddd extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ protected $_code = 'hcddd';
5
+ // protected $_infoBlockType = 'hcd/info_debit';
6
+ protected $_formBlockType = 'hcd/form_debit';
7
+
8
+ public function getFormBlockType(){
9
+ return $this->_formBlockType;
10
+ }
11
+
12
+ public function validate(){
13
+ parent::validate();
14
+ $payment = array();
15
+ $params = array();
16
+ $payment = Mage::app()->getRequest()->getPOST('payment');
17
+
18
+ if(isset($payment['method']) and $payment['method'] == $this->_code) {
19
+
20
+ if(empty($payment[$this->_code.'_holder']))
21
+ Mage::throwException($this->_getHelper()->__('Please specify a account holder'));
22
+ if(empty($payment[$this->_code.'_iban']))
23
+ Mage::throwException($this->_getHelper()->__('Please specify a iban or account'));
24
+ if(empty($payment[$this->_code.'_bic']))
25
+ Mage::throwException($this->_getHelper()->__('Please specify a bic or bank code'));
26
+
27
+ $params['ACCOUNT.HOLDER'] = $payment[$this->_code.'_holder'];
28
+
29
+ if (preg_match('#^[\d]#',$payment[$this->_code.'_iban'])) {
30
+ $params['ACCOUNT.NUMBER'] = $payment[$this->_code.'_iban'];
31
+ } else {
32
+ $params['ACCOUNT.IBAN'] = $payment[$this->_code.'_iban'];
33
+ };
34
+
35
+ if (preg_match('#^[\d]#',$payment[$this->_code.'_bic'])) {
36
+ $params['ACCOUNT.BANK'] = $payment[$this->_code.'_bic'];
37
+ $params['ACCOUNT.COUNTRY'] = $this->getQuote()->getBillingAddress()->getCountry();
38
+ } else {
39
+ $params['ACCOUNT.BIC'] = $payment[$this->_code.'_bic'];
40
+ };
41
+
42
+
43
+ $this->saveCustomerData($params);
44
+
45
+ return $this;
46
+ }
47
+
48
+ return $this;
49
+ }
50
+
51
+ public function showPaymentInfo($payment_data) {
52
+
53
+ $load_snippet = $this->_getHelper()->__("Direct Debit Info Text");
54
+
55
+ $repl = array(
56
+ '{AMOUNT}' => $payment_data['CLEARING_AMOUNT'],
57
+ '{CURRENCY}' => $payment_data['CLEARING_CURRENCY'],
58
+ '{Iban}' => $payment_data['ACCOUNT_IBAN'],
59
+ '{Bic}' => $payment_data['ACCOUNT_BIC'],
60
+ '{Ident}' => $payment_data['ACCOUNT_IDENTIFICATION'],
61
+ '{CreditorId}' => $payment_data['IDENTIFICATION_CREDITOR_ID'],
62
+ );
63
+
64
+ $load_snippet= strtr( $load_snippet , $repl);
65
+
66
+ $this->getCheckout()->setHcdPaymentInfo($load_snippet);
67
+
68
+ return;
69
+
70
+ }
71
+
72
+ /*
73
+ public function getUser($order) {
74
+ $account = array();
75
+ $params = array();
76
+ $params = parent::getUser($order);
77
+
78
+
79
+ $usersession = $this->getCheckout();
80
+
81
+ $account = $usersession->getHcddata();
82
+
83
+ $params['ACCOUNT.HOLDER'] = $account['hgwdd_holder'];
84
+
85
+ if (is_int($account['hgwdd_iban'])) {
86
+ $params['ACCOUNT.NUMBER'] = $account['hgwdd_iban'];
87
+ } else {
88
+ $params['ACCOUNT.IBAN'] = $account['hgwdd_iban'];
89
+ };
90
+
91
+ if (is_int($account['hgwdd_bic'])) {
92
+ $params['ACCOUNT.BANK'] = $account['hgwdd_iban'];
93
+ } else {
94
+ $params['ACCOUNT.BIC'] = $account['hgwdd_iban'];
95
+ };
96
+
97
+ parent::log('Account data : '. print_r($account,1), 'DEBUG');
98
+
99
+ return $params ;
100
+
101
+ }
102
+ */
103
+ }
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdeps.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcdeps extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ /**
5
+ * unique internal payment method identifier
6
+ *
7
+ * @var string [a-z0-9_]
8
+ **/
9
+ protected $_code = 'hcdeps';
10
+
11
+ protected $_formBlockType = 'hcd/form_eps';
12
+
13
+
14
+ public function getFormBlockType(){
15
+ return $this->_formBlockType;
16
+ }
17
+
18
+ public function validate(){
19
+ parent::validate();
20
+ $payment = array();
21
+ $params = array();
22
+ $payment = Mage::app()->getRequest()->getPOST('payment');
23
+
24
+ if($payment['method'] == $this->_code) {
25
+
26
+ if(empty($payment[$this->_code.'_holder']))
27
+ Mage::throwException($this->_getHelper()->__('Please specify a account holder'));
28
+
29
+ $params['ACCOUNT.HOLDER'] = $payment[$this->_code.'_holder'];
30
+
31
+ $params['ACCOUNT.BANKNAME'] = $payment[$this->_code.'_bank'];
32
+ $params['ACCOUNT.COUNTRY'] = $this->getQuote()->getBillingAddress()->getCountry();
33
+
34
+
35
+ $this->saveCustomerData($params);
36
+
37
+ return $this;
38
+ }
39
+
40
+ return $this;
41
+ }
42
+ }
43
+
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdgp.php ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcdgp extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ protected $_code = 'hcdgp';
5
+ // protected $_infoBlockType = 'hcd/info_debit';
6
+ protected $_formBlockType = 'hcd/form_giropay';
7
+
8
+ public function getFormBlockType(){
9
+ return $this->_formBlockType;
10
+ }
11
+
12
+ public function validate(){
13
+ parent::validate();
14
+ $payment = array();
15
+ $params = array();
16
+ $payment = Mage::app()->getRequest()->getPOST('payment');
17
+
18
+ if($payment['method'] == $this->_code) {
19
+
20
+ if(empty($payment[$this->_code.'_holder']))
21
+ Mage::throwException($this->_getHelper()->__('Please specify a account holder'));
22
+ if(empty($payment[$this->_code.'_iban']))
23
+ Mage::throwException($this->_getHelper()->__('Please specify a iban or account'));
24
+ if(empty($payment[$this->_code.'_bic']))
25
+ Mage::throwException($this->_getHelper()->__('Please specify a bic or bank code'));
26
+
27
+ $params['ACCOUNT.HOLDER'] = $payment[$this->_code.'_holder'];
28
+
29
+ if (preg_match('#^[\d]#',$payment[$this->_code.'_iban'])) {
30
+ $params['ACCOUNT.NUMBER'] = $payment[$this->_code.'_iban'];
31
+ } else {
32
+ $params['ACCOUNT.IBAN'] = $payment[$this->_code.'_iban'];
33
+ };
34
+
35
+ if (preg_match('#^[\d]#',$payment[$this->_code.'_bic'])) {
36
+ $params['ACCOUNT.BANK'] = $payment[$this->_code.'_bic'];
37
+ $params['ACCOUNT.COUNTRY'] = $this->getQuote()->getBillingAddress()->getCountry();
38
+ } else {
39
+ $params['ACCOUNT.BIC'] = $payment[$this->_code.'_bic'];
40
+ };
41
+
42
+
43
+ $this->saveCustomerData($params);
44
+
45
+ return $this;
46
+ }
47
+
48
+ return $this;
49
+ }
50
+
51
+ /*
52
+ public function getUser($order) {
53
+ $account = array();
54
+ $params = array();
55
+ $params = parent::getUser($order);
56
+
57
+
58
+ $usersession = $this->getCheckout();
59
+
60
+ $account = $usersession->getHcddata();
61
+
62
+ $params['ACCOUNT.HOLDER'] = $account['hgwdd_holder'];
63
+
64
+ if (is_int($account['hgwdd_iban'])) {
65
+ $params['ACCOUNT.NUMBER'] = $account['hgwdd_iban'];
66
+ } else {
67
+ $params['ACCOUNT.IBAN'] = $account['hgwdd_iban'];
68
+ };
69
+
70
+ if (is_int($account['hgwdd_bic'])) {
71
+ $params['ACCOUNT.BANK'] = $account['hgwdd_iban'];
72
+ } else {
73
+ $params['ACCOUNT.BIC'] = $account['hgwdd_iban'];
74
+ };
75
+
76
+ parent::log('Account data : '. print_r($account,1), 'DEBUG');
77
+
78
+ return $params ;
79
+
80
+ }
81
+ */
82
+ }
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdide.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcdide extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ /**
5
+ * unique internal payment method identifier
6
+ *
7
+ * @var string [a-z0-9_]
8
+ **/
9
+ protected $_code = 'hcdide';
10
+
11
+ protected $_formBlockType = 'hcd/form_ideal';
12
+
13
+ public function getFormBlockType(){
14
+ return $this->_formBlockType;
15
+ }
16
+
17
+ public function validate(){
18
+ parent::validate();
19
+ $payment = array();
20
+ $params = array();
21
+ $payment = Mage::app()->getRequest()->getPOST('payment');
22
+
23
+ if($payment['method'] == $this->_code) {
24
+
25
+ if(empty($payment[$this->_code.'_holder']))
26
+ Mage::throwException($this->_getHelper()->__('Please specify a account holder'));
27
+
28
+ $params['ACCOUNT.HOLDER'] = $payment[$this->_code.'_holder'];
29
+
30
+ $params['ACCOUNT.BANKNAME'] = $payment[$this->_code.'_bank'];
31
+ $params['ACCOUNT.COUNTRY'] = $this->getQuote()->getBillingAddress()->getCountry();
32
+
33
+
34
+ $this->saveCustomerData($params);
35
+
36
+ return $this;
37
+ }
38
+
39
+ return $this;
40
+ }
41
+
42
+ }
43
+
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdiv.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcdiv extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ protected $_code = 'hcdiv';
5
+ protected $_isGateway = true;
6
+ protected $_canAuthorize = false;
7
+ protected $_canCapture = false;
8
+ protected $_canCapturePartial = false;
9
+ protected $_canRefund = true;
10
+ protected $_canRefundInvoicePartial = true;
11
+ protected $_canVoid = false;
12
+ protected $_canUseInternal = false;
13
+ protected $_canUseCheckout = true;
14
+ protected $_canUseForMultishipping = false;
15
+ protected $_isInitializeNeeded = false;
16
+
17
+ }
18
+
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdmk.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcdmk extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ protected $_code = 'hcdmk';
5
+ protected $_isGateway = true;
6
+ protected $_canAuthorize = false;
7
+ protected $_canCapture = false;
8
+ protected $_canCapturePartial = false;
9
+ protected $_canRefund = false;
10
+ protected $_canRefundInvoicePartial = false;
11
+ protected $_canVoid = false;
12
+ protected $_canUseInternal = false;
13
+ protected $_canUseCheckout = true;
14
+ protected $_canUseForMultishipping = false;
15
+ protected $_isInitializeNeeded = false;
16
+
17
+ public function isAvailable($quote=null) {
18
+ $currency_code=$this->getQuote()->getQuoteCurrencyCode();
19
+ if (!empty($currency_code) && $currency_code != 'TRY') return false;
20
+ return parent::isAvailable($quote);
21
+ }
22
+
23
+
24
+ }
25
+
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdpal.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcdpal extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ /**
5
+ * unique internal payment method identifier
6
+ *
7
+ * @var string [a-z0-9_]
8
+ **/
9
+ protected $_code = 'hcdpal';
10
+ protected $_isGateway = true;
11
+ protected $_canAuthorize = true;
12
+ protected $_canCapture = true;
13
+ protected $_canCapturePartial = true;
14
+ protected $_canRefund = false;
15
+ protected $_canRefundInvoicePartial = false;
16
+ protected $_canVoid = false;
17
+ protected $_canUseInternal = false;
18
+ protected $_canUseCheckout = true;
19
+ protected $_canUseForMultishipping = false;
20
+ protected $_isInitializeNeeded = false;
21
+
22
+
23
+ /*
24
+ * PayPal seller protection, need shipping adress instead of billing (PAYPAL REV 20141215)
25
+ */
26
+ public function getUser($order, $isReg=false) {
27
+
28
+ $user = array();
29
+
30
+ $user = parent::getUser($order, $isReg);
31
+ $shipping = $order->getShippingAddress();
32
+ $email = ($order->getShippingAddress()->getEmail()) ? $order->getShippingAddress()->getEmail() : $order->getCustomerEmail();
33
+
34
+
35
+ $user['IDENTIFICATION.SHOPPERID'] = $shipping->getCustomerId();
36
+ if ($shipping->getCompany() == true) $user['NAME.COMPANY'] = trim($shipping->getCompany());
37
+ $user['NAME.GIVEN'] = trim($shipping->getFirstname());
38
+ $user['NAME.FAMILY'] = trim($shipping->getLastname());
39
+ $user['ADDRESS.STREET'] = $shipping->getStreet1()." ".$shipping->getStreet2();
40
+ $user['ADDRESS.ZIP'] = $shipping->getPostcode();
41
+ $user['ADDRESS.CITY'] = $shipping->getCity();
42
+ $user['ADDRESS.COUNTRY'] = $shipping->getCountry();
43
+ $user['CONTACT.EMAIL'] = $email;
44
+
45
+ return $user;
46
+ }
47
+
48
+ }
49
+
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdpf.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcdpf extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ protected $_code = 'hcdpf';
5
+ protected $_isGateway = true;
6
+ protected $_canAuthorize = false;
7
+ protected $_canCapture = false;
8
+ protected $_canCapturePartial = false;
9
+ protected $_canRefund = false;
10
+ protected $_canRefundInvoicePartial = false;
11
+ protected $_canVoid = false;
12
+ protected $_canUseInternal = false;
13
+ protected $_canUseCheckout = true;
14
+ protected $_canUseForMultishipping = false;
15
+ protected $_isInitializeNeeded = false;
16
+ protected $_formBlockType = 'hcd/form_postfinance';
17
+
18
+ public function getFormBlockType(){
19
+ return $this->_formBlockType;
20
+ }
21
+
22
+ public function isAvailable($quote=null) {
23
+ $currency_code=$this->getQuote()->getQuoteCurrencyCode();
24
+ if (!empty($currency_code) && $currency_code != 'CHF') return false;
25
+ return parent::isAvailable($quote);
26
+ }
27
+
28
+ public function validate(){
29
+ parent::validate();
30
+ $payment = Mage::app()->getRequest()->getPOST('payment');
31
+
32
+
33
+ if(empty($payment[$this->_code.'_pf'])) {
34
+ $errorCode = 'invalid_data';
35
+ $errorMsg = $this->_getHelper()->__('No Postfinance method selected');
36
+ Mage::throwException($errorMsg);
37
+ return $this;
38
+ }
39
+
40
+ $this->saveCustomerData(array('ACCOUNT.BRAND' => $payment[$this->_code.'_pf']));
41
+
42
+ return $this;
43
+ }
44
+ }
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdpp.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcdpp extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ protected $_code = 'hcdpp';
5
+ protected $_isGateway = true;
6
+ protected $_canAuthorize = false;
7
+ protected $_canCapture = false;
8
+ protected $_canCapturePartial = false;
9
+ protected $_canRefund = true;
10
+ protected $_canRefundInvoicePartial = true;
11
+ protected $_canVoid = false;
12
+ protected $_canUseInternal = true;
13
+ protected $_canUseCheckout = true;
14
+ protected $_canUseForMultishipping = false;
15
+ protected $_isInitializeNeeded = true;
16
+ protected $_debug = true;
17
+
18
+
19
+ public function showPaymentInfo($payment_data) {
20
+
21
+ $load_snippet = $this->_getHelper()->__("Prepayment Info Text");
22
+
23
+ $repl = array(
24
+ '{AMOUNT}' => $payment_data['CLEARING_AMOUNT'],
25
+ '{CURRENCY}' => $payment_data['CLEARING_CURRENCY'],
26
+ '{CONNECTOR_ACCOUNT_HOLDER}' => $payment_data['CONNECTOR_ACCOUNT_HOLDER'],
27
+ '{CONNECTOR_ACCOUNT_IBAN}' => $payment_data['CONNECTOR_ACCOUNT_IBAN'],
28
+ '{CONNECTOR_ACCOUNT_BIC}' => $payment_data['CONNECTOR_ACCOUNT_BIC'],
29
+ '{IDENTIFICATION_SHORTID}' => $payment_data['IDENTIFICATION_SHORTID'],
30
+ );
31
+
32
+ $load_snippet= strtr( $load_snippet , $repl);
33
+
34
+ $this->getCheckout()->setHcdPaymentInfo($load_snippet);
35
+
36
+ return ;
37
+
38
+ }
39
+
40
+ }
41
+
app/code/community/HeidelpayCD/Edition/Model/Payment/Hcdsu.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_Model_Payment_Hcdsu extends HeidelpayCD_Edition_Model_Payment_Abstract
3
+ {
4
+ /**
5
+ * unique internal payment method identifier
6
+ *
7
+ * @var string [a-z0-9_]
8
+ **/
9
+ protected $_code = 'hcdsu';
10
+
11
+ }
12
+
app/code/community/HeidelpayCD/Edition/Model/Resource/Encryption.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class HeidelpayCD_Edition_Model_Resource_Encryption extends Mage_Core_Model_Encryption {
4
+
5
+ public function hash($data) {
6
+ return hash('sha256', $data);
7
+ }
8
+
9
+ public function getHash($string, $salt = false) {
10
+
11
+ if ($salt === false) {
12
+ $salt = (string)Mage::getConfig()->getNode('global/crypt/key');
13
+ }
14
+ return $this->hash( $salt.(string)$string ) ;
15
+ }
16
+
17
+ public function validateHash($string, $hash) {
18
+ return $this->getHash((string)$string) === $hash;
19
+ }
20
+ }
app/code/community/HeidelpayCD/Edition/Model/Resource/Setup.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class HeidelpayCD_Edition_Modul_Resource_Setup extends Mage_Core_Model_Resource_Setup
4
+ {
5
+
6
+ }
app/code/community/HeidelpayCD/Edition/Model/System/Config/Source/Bookingmode.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class HeidelpayCD_Edition_Model_System_Config_Source_Bookingmode
4
+ {
5
+ public function toOptionArray()
6
+ {
7
+ return array(
8
+ array('value'=>'DB', 'label'=>Mage::helper('hcd')->__('Direct Booking')),
9
+ array('value'=>'PA', 'label'=>Mage::helper('hcd')->__('Preauthorisation'))
10
+ );
11
+ }
12
+ }
app/code/community/HeidelpayCD/Edition/Model/System/Config/Source/Recognition.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ <?php
4
+
5
+ class HeidelpayCD_Edition_Model_System_Config_Source_Recognition
6
+ {
7
+ public function toOptionArray()
8
+ {
9
+ return array(
10
+ array('value'=>'0', 'label'=>Mage::helper('hcd')->__('no recognition')),
11
+ array('value'=>'1', 'label'=>Mage::helper('hcd')->__('only if shippping adress is unchanged')),
12
+ array('value'=>'2', 'label'=>Mage::helper('hcd')->__('always'))
13
+ );
14
+ }
15
+ }
app/code/community/HeidelpayCD/Edition/Model/System/Config/Source/Returnurl.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class HeidelpayCD_Edition_Model_System_Config_Source_Returnurl
4
+ {
5
+ public function toOptionArray()
6
+ {
7
+ return array(
8
+ array('value'=>'basket', 'label'=>Mage::helper('hcd')->__('Basket')),
9
+ array('value'=>'onepage', 'label'=>Mage::helper('hcd')->__('Onepage Checkout')),
10
+ // array('value'=>'onestepcheckout', 'label'=>Mage::helper('hcd')->__('Onestep Checkout'))
11
+ );
12
+ }
13
+ }
app/code/community/HeidelpayCD/Edition/Model/Transaction.php ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class HeidelpayCD_Edition_Model_Transaction extends Mage_Core_Model_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ $this->_init('hcd/transaction');
8
+ parent::_construct();
9
+ }
10
+
11
+ public function saveTransactionData($data, $source='shop') {
12
+
13
+ $PaymentCode = Mage::helper('hcd/payment')->splitPaymentCode($data['PAYMENT_CODE']);
14
+
15
+ $this->setPaymentMethode($PaymentCode[0]);
16
+ $this->setPaymentType($PaymentCode[1]);
17
+ $this->setTransactionid($data['IDENTIFICATION_TRANSACTIONID']);
18
+ $this->setUniqeid($data['IDENTIFICATION_UNIQUEID']);
19
+ $this->setResult($data['PROCESSING_RESULT']);
20
+ $this->setShortid($data['IDENTIFICATION_SHORTID']);
21
+ $this->setStatuscode($data['PROCESSING_STATUS_CODE']);
22
+ $this->setReturn($data['PROCESSING_RETURN']);
23
+ $this->setReturncode($data['PROCESSING_RETURN_CODE']);
24
+ $this->setJsonresponse(Mage::getModel('hcd/resource_encryption')->encrypt(json_encode($data)));
25
+ $this->setDatetime(date('Y-m-d H:i:s'));
26
+ $this->setSource($source);
27
+ return $this->save();
28
+
29
+ }
30
+
31
+ public function loadTransactionDataByX($filter=array(),$sortby=false) {
32
+
33
+ $data = array();
34
+ $trans = $this->getCollection();
35
+
36
+ foreach($filter AS $k => $v)
37
+ $trans->addFieldToFilter($k,$v);
38
+
39
+ if ($sortby) {
40
+ $trans->getSelect()->order($sortby);
41
+ }
42
+
43
+ $trans->load();
44
+
45
+
46
+
47
+ $data = $trans->getData();
48
+ $temp = array();
49
+ foreach($data AS $k => $v) {
50
+ $temp[] = json_decode(Mage::getModel('hcd/resource_encryption')->decrypt($data[$k]['jsonresponse']),true);
51
+ }
52
+
53
+ return $temp;
54
+ }
55
+
56
+ public function loadLastTransactionDataByTransactionnr($transid) {
57
+
58
+ $data = array();
59
+ $trans = $this->getCollection();
60
+ $trans->addFieldToFilter('transactionid',$transid);
61
+ $trans->getSelect()->order('id DESC');
62
+ $trans->getSelect()->limit(1);
63
+ $trans->load();
64
+
65
+
66
+ $data = $trans->getData();
67
+ return json_decode(Mage::getModel('hcd/resource_encryption')->decrypt($data[0]['jsonresponse']),true);
68
+
69
+ }
70
+
71
+ public function loadLastTransactionDataByUniqeId($id) {
72
+
73
+ $data = array();
74
+ $trans = $this->getCollection();
75
+ $trans->addFieldToFilter('uniqeid',$id);
76
+ $trans->getSelect()->limit(1);
77
+ $trans->load();
78
+
79
+
80
+ $data = $trans->getData();
81
+ return json_decode(Mage::getModel('hcd/resource_encryption')->decrypt($data[0]['jsonresponse']),true);
82
+
83
+ }
84
+
85
+ public function getOneTransactionByMethode($transid , $methode) {
86
+
87
+ $data = array();
88
+ $trans = $this->getCollection();
89
+ $trans->addFieldToFilter('transactionid',$transid)
90
+ ->addFieldToFilter('Payment_Type', $methode );;
91
+ $trans->getSelect()->order('id DESC');
92
+ $trans->getSelect()->limit(1);
93
+ $trans->load();
94
+
95
+
96
+ $data = $trans->getData();
97
+ return json_decode(Mage::getModel('hcd/resource_encryption')->decrypt($data[0]['jsonresponse']),true);
98
+
99
+ }
100
+
101
+ }
app/code/community/HeidelpayCD/Edition/controllers/IndexController.php ADDED
@@ -0,0 +1,510 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class HeidelpayCD_Edition_IndexController extends Mage_Core_Controller_Front_Action
3
+ {
4
+ protected $_sendNewOrderEmail = TRUE;
5
+ protected $_invoiceOrderEmail = TRUE;
6
+ protected $_order = NULL;
7
+ protected $_paymentInst = NULL;
8
+ protected $_debug = TRUE;
9
+
10
+ public $importantPPFields = array(
11
+ 'PRESENTATION_AMOUNT',
12
+ 'PRESENTATION_CURRENCY',
13
+ 'CONNECTOR_ACCOUNT_COUNTRY',
14
+ 'CONNECTOR_ACCOUNT_HOLDER',
15
+ 'CONNECTOR_ACCOUNT_NUMBER',
16
+ 'CONNECTOR_ACCOUNT_BANK',
17
+ 'CONNECTOR_ACCOUNT_BIC',
18
+ 'CONNECTOR_ACCOUNT_IBAN',
19
+ 'IDENTIFICATION_SHORTID',
20
+ );
21
+
22
+ public function preDispatch()
23
+ {
24
+ parent::preDispatch();
25
+
26
+ /* Review because of fail behavior in case of gueste buyer TODO
27
+ $action = $this->getRequest()->getActionName();
28
+ if ($action != 'response')
29
+ {
30
+ if (!Mage::getSingleton('customer/session')->authenticate($this))
31
+ {
32
+ $this->getResponse()->setRedirect(Mage::helper('customer')->getLoginUrl());
33
+ $this->setFlag('', self::FLAG_NO_DISPATCH, true);
34
+ return $this;
35
+ }
36
+ }
37
+ */
38
+
39
+ }
40
+
41
+ protected function _getHelper()
42
+ {
43
+ return Mage::helper('hcd');
44
+ }
45
+
46
+ private function log($message, $level="DEBUG", $file=false) {
47
+ $callers=debug_backtrace();
48
+ return Mage::helper('hcd/payment')->realLog( $callers[1]['function'].' '.$message , $level , $file);
49
+ }
50
+
51
+ protected function _expireAjax()
52
+ {
53
+ if (!$this->getCheckout()->getQuote()->hasItems()) {
54
+ $this->getResponse()->setHeader('HTTP/1.1','403 Session Expired');
55
+ exit;
56
+ }
57
+ }
58
+
59
+
60
+ /**
61
+ * Get order model
62
+ *
63
+ * @return Mage_Sales_Model_Order
64
+ */
65
+ public function getOrder()
66
+ {
67
+ return Mage::getModel('sales/order');
68
+ }
69
+
70
+ /**
71
+ * Get checkout session namespace
72
+ *
73
+ * @return Mage_Checkout_Model_Session
74
+ */
75
+ public function getCheckout()
76
+ {
77
+ return Mage::getSingleton('checkout/session');
78
+ }
79
+
80
+ /**
81
+ * Get current quote
82
+ *
83
+ * @return Mage_Sales_Model_Quote
84
+ */
85
+ public function getQuote()
86
+ {
87
+ return $this->getCheckout()->getQuote();
88
+ }
89
+
90
+ /**
91
+ * Get hp session namespace
92
+ *
93
+ * @return Mage_Heidelpay_Model_Session
94
+ */
95
+ public function getSession()
96
+ {
97
+ return Mage::getSingleton('core/session');
98
+ }
99
+
100
+ protected function _getCheckout()
101
+ {
102
+ return Mage::getSingleton('checkout/session');
103
+ }
104
+
105
+ /**
106
+ * successful return from Heidelpay payment
107
+ */
108
+ public function successAction()
109
+ {
110
+ $session = $this->getCheckout();
111
+ $order = Mage::getModel('sales/order');
112
+ $order->loadByIncrementId($session->getLastRealOrderId());
113
+ if($order->getPayment() === false) {
114
+ $this->_redirect('', array('_forced_secure' => true, '_store_to_url' => true, '_nosid' => true));
115
+ return $this;
116
+ }
117
+
118
+ $this->getCheckout()->getQuote()->setIsActive(false)->save();
119
+ $this->getCheckout()->clear();
120
+
121
+ $message = "";
122
+
123
+ $data = Mage::getModel('hcd/transaction')->loadLastTransactionDataByTransactionnr($session->getLastRealOrderId());
124
+
125
+ /*
126
+ * validate Hash to prevent manipulation
127
+ */
128
+ if (Mage::getModel('hcd/resource_encryption')->validateHash($data['IDENTIFICATION_TRANSACTIONID'],$data['CRITERION_SECRET']) === false) {
129
+ $this->log("Get response form server " . Mage::app()->getRequest()->getServer('REMOTE_ADDR') . " with an invalid hash. This could be some kind of manipulation.", 'WARN');
130
+ $this->_redirect('', array('_forced_secure' => true, '_store_to_url' => true, '_nosid' => true));
131
+ };
132
+
133
+ $session->unsHcdPaymentInfo();
134
+ $order->getPayment()->getMethodInstance()->showPaymentInfo($data);
135
+ if($session->getHcdPaymentInfo() !== false) $order->setCustomerNote($session->getHcdPaymentInfo());
136
+
137
+ $quoteID = ($session->getLastQuoteId() === false) ? $session->getQuoteId() : $session->getLastQuoteId() ; // last_quote_id workaround for trusted shop buyerprotection
138
+ $this->getCheckout()->setLastSuccessQuoteId($quoteID);
139
+ $this->log('LastQuteID :'. $quoteID );
140
+
141
+ Mage::helper('hcd/payment')->mapStatus (
142
+ $data,
143
+ $order
144
+ );
145
+
146
+ if($order->getId()) {
147
+ $order->sendNewOrderEmail();
148
+ $this->log('sendOrderMail');
149
+ }
150
+ $order->save();
151
+ $this->_redirect('checkout/onepage/success', array('_secure' => true));
152
+ return;
153
+ }
154
+
155
+ public function errorAction()
156
+ {
157
+ $session = $this->getCheckout();
158
+ $errorCode = null;
159
+ $order = Mage::getModel('sales/order');
160
+ $order->loadByIncrementId($session->getLastRealOrderId());
161
+ $this->log(' LastRealOrderId '.print_r($session->getLastRealOrderId(),1));
162
+
163
+ $Request = Mage::app()->getRequest();
164
+ $GET_ERROR = $Request->getParam('HPError');
165
+
166
+
167
+
168
+
169
+ // in case of an error in the server to server request
170
+ $usersession = $this->getSession();
171
+ // var_dump($usersession->getHcdError());
172
+ // exit;
173
+ $data = Mage::getModel('hcd/transaction')->loadLastTransactionDataByTransactionnr($session->getLastRealOrderId());
174
+ $this->log(' data '.print_r($data,1));
175
+
176
+ if($usersession->getHcdError() !== NULL ) {
177
+ $message = Mage::helper('hcd/payment')->handleError($usersession->getHcdError(),$errorCode,(string)$order->getRealOrderId());
178
+ $intMessage = $usersession->getHcdError();
179
+ $usersession->unsHcdError();
180
+ } else {
181
+ if (isset($data['PROCESSING_RETURN_CODE'])) $errorCode = $data['PROCESSING_RETURN_CODE'];
182
+ if (isset($GET_ERROR)) {
183
+ $errorCode = $GET_ERROR;
184
+ $data['PROCESSING_RESULT'] = 'NOK';
185
+ }
186
+ $message = Mage::helper('hcd/payment')->handleError($data['PROCESSING_RETURN'],$errorCode,(string)$order->getRealOrderId());
187
+ $intMessage = (!empty($data['PROCESSING_RETURN'])) ? $data['PROCESSING_RETURN'] : $message ;
188
+ }
189
+
190
+ $quoteId = ($session->getLastQuoteId() === false) ? $session->getQuoteId() : $session->getLastQuoteId() ; // last_quote_id workaround for trusted shop buyerprotection
191
+ if ($quoteId) {
192
+ $quote = Mage::getModel('sales/quote')->load($quoteId);
193
+ if ($quote->getId()) {
194
+ $quote->setIsActive(true)->save();
195
+ $session->setQuoteId($quoteId);
196
+ }
197
+ }
198
+
199
+ Mage::helper('hcd/payment')->mapStatus (
200
+ $data,
201
+ $order,
202
+ $intMessage
203
+ );
204
+
205
+ $storeId = Mage::app()->getStore()->getId();
206
+ $redirectController = Mage::getStoreConfig("hcd/settings/returnurl", $storeId);
207
+
208
+ switch ($redirectController){
209
+ case "basket":
210
+ $session->addError($message);
211
+ $this->_redirect('checkout/cart', array('_secure' => true));
212
+ break;
213
+ /*
214
+ case "onestepcheckout":
215
+ $session->addError($message);
216
+ $this->_redirect('onestepcheckout/', array('_secure' => true));
217
+ break;
218
+ */
219
+ default:
220
+ $usersession->addError($message);
221
+ $this->_redirect('checkout/onepage', array('_secure' => true));
222
+ }
223
+
224
+ }
225
+ /**
226
+ * redirect return from Heidelpay payment (iframe)
227
+ */
228
+ public function indexAction()
229
+ {
230
+ $data = array();
231
+ $order = $this->getOrder();
232
+
233
+ $session = $this->getCheckout();
234
+ $order->loadByIncrementId($session->getLastRealOrderId());
235
+ if ($order->getPayment() === false ) {
236
+ $this->getResponse()->setRedirect(Mage::helper('customer')->getLoginUrl());
237
+ $this->setFlag('', self::FLAG_NO_DISPATCH, true);
238
+ return $this;
239
+ }
240
+ $payment = $order->getPayment()->getMethodInstance();
241
+ $data = $payment->getHeidelpayUrl();
242
+
243
+ if($data['POST_VALIDATION'] == 'ACK' and $data['PROCESSING_RESULT'] == 'ACK' )
244
+ {
245
+ if($data['PAYMENT_CODE'] == "OT.PA" ) {
246
+ $quoteID = ($session->getLastQuoteId() === false) ? $session->getQuoteId() : $session->getLastQuoteId() ; // last_quote_id workaround for trusted shop buyerprotection
247
+ $order->getPayment()->setTransactionId($quoteID);
248
+ $order->getPayment()->setIsTransactionClosed(true);
249
+ }
250
+ $order->setState( $order->getPayment()->getMethodInstance()->getStatusPendig(false),
251
+ $order->getPayment()->getMethodInstance()->getStatusPendig(true),
252
+ Mage::helper('hcd')->__('Get payment url from Heidelpay -> ').$data['FRONTEND_REDIRECT_URL'] );
253
+ $order->getPayment()->addTransaction(
254
+ Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH,
255
+ null,
256
+ true
257
+ );
258
+ $order->save();
259
+
260
+ $session->getQuote()->setIsActive(true)->save();
261
+ $session->clear();
262
+
263
+
264
+ if ( $payment->activRedirct() === true ) {
265
+ $this->_redirectUrl($data['FRONTEND_REDIRECT_URL']);
266
+ }
267
+ $this->loadLayout();
268
+ $this->log('RedirectUrl ' .$data['FRONTEND_REDIRECT_URL'] );
269
+ $this->log('CCHolder ' .$payment->getCustomerName() );
270
+ $this->getLayout()->getBlock('hcd_index')->setHcdUrl($data['FRONTEND_REDIRECT_URL']);
271
+ $this->getLayout()->getBlock('hcd_index')->setHcdCode($payment->getCode());
272
+ $this->getLayout()->getBlock('hcd_index')->setHcdBrands($data['CONFIG_BRANDS']);
273
+ $this->getLayout()->getBlock('hcd_index')->setHcdHolder($payment->getCustomerName(true));
274
+ } else {
275
+ Mage::getModel('hcd/transaction')->saveTransactionData($data);
276
+ Mage::getSingleton('core/session')->setHcdError($data['PROCESSING_RETURN']);
277
+ $this->_redirect('hcd/index/error', array('_forced_secure' => true, '_store_to_url' => true, '_nosid' => true));
278
+ }
279
+
280
+
281
+
282
+ $this->renderLayout();
283
+ return $this ;
284
+ }
285
+
286
+ /**
287
+ * response from Heidelpay payment
288
+ */
289
+ public function responseAction()/*{{{*/
290
+ {
291
+ /*
292
+ * collect variables
293
+ */
294
+ $Request = Mage::app()->getRequest();
295
+ $Request->setParamSources(array('_POST'));
296
+ $FRONTEND_SESSIONID = $Request->getPost('CRITERION_SECRET');
297
+ $data = array();
298
+ $IDENTIFICATION_TRANSACTIONID = $Request->getPOST('IDENTIFICATION_TRANSACTIONID');
299
+ $data['IDENTIFICATION_TRANSACTIONID'] = (!empty($IDENTIFICATION_TRANSACTIONID)) ? $Request->getPOST('IDENTIFICATION_TRANSACTIONID') : $Request->getPOST('IDENTIFICATION_SHOPPERID') ;
300
+
301
+ /*
302
+ * validate Hash to prevent manipulation
303
+ */
304
+ if (Mage::getModel('hcd/resource_encryption')->validateHash($data['IDENTIFICATION_TRANSACTIONID'],$FRONTEND_SESSIONID) === false) {
305
+ echo Mage::getUrl('hcd/index/error', array('_forced_secure' => true, '_store_to_url' => true, '_nosid' => true));
306
+ $this->log("Get response form server " . $Request->getServer('REMOTE_ADDR') . " with an invalid hash. This could be some kind of manipulation.", 'WARN');
307
+ exit();
308
+ };
309
+
310
+ $data= $Request->getParams();
311
+
312
+
313
+ $data['PROCESSING_RESULT'] = $Request->getPOST('PROCESSING_RESULT');
314
+ $data['IDENTIFICATION_TRANSACTIONID'] = $Request->getPOST('IDENTIFICATION_TRANSACTIONID');
315
+ $data['PROCESSING_STATUS_CODE'] = $Request->getPOST('PROCESSING_STATUS_CODE');
316
+ $data['PROCESSING_RETURN'] = $Request->getPOST('PROCESSING_RETURN');
317
+ $data['PROCESSING_RETURN_CODE'] = $Request->getPOST('PROCESSING_RETURN_CODE');
318
+ $data['PAYMENT_CODE'] = $Request->getPOST('PAYMENT_CODE');
319
+ $data['IDENTIFICATION_UNIQUEID'] = $Request->getPOST('IDENTIFICATION_UNIQUEID');
320
+ $data['FRONTEND_SUCCESS_URL'] = $Request->getPOST('FRONTEND_SUCCESS_URL');
321
+ $data['FRONTEND_FAILURE_URL'] = $Request->getPOST('FRONTEND_FAILURE_URL');
322
+ $data['IDENTIFICATION_SHORTID'] = $Request->getPOST('IDENTIFICATION_SHORTID');
323
+
324
+ $PaymentCode = Mage::helper('hcd/payment')->splitPaymentCode ($data['PAYMENT_CODE']);
325
+
326
+ $this->log("Post params: " . print_r($data,1));
327
+
328
+ if ($PaymentCode[1] == 'RG') {
329
+ if ($data['PROCESSING_RESULT'] == 'NOK'){
330
+ $url = Mage::getUrl('hcd/index/error', array('_forced_secure' => true, '_store_to_url' => true, '_nosid' => true, 'HPError' => $data['PROCESSING_RETURN_CODE']));
331
+ }else {
332
+
333
+ // save cc and dc registration data
334
+ $custumerData = Mage::getModel('hcd/customer');
335
+ $currentPaymnet = 'hcd'.strtolower($PaymentCode[0]);
336
+ $RgData = Mage::getModel('hcd/customer')
337
+ ->getCollection()
338
+ ->addFieldToFilter('Customerid', trim($data['IDENTIFICATION_SHOPPERID']))
339
+ ->addFieldToFilter('Storeid', trim($data['CRITERION_STOREID']))
340
+ ->addFieldToFilter('Paymentmethode', trim($currentPaymnet));
341
+ $RgData->load();
342
+ $returnData = $RgData->getData();
343
+ if (!empty($returnData[0]['id'])) $custumerData->setId((int)$returnData[0]['id']);
344
+
345
+ $custumerData->setPaymentmethode($currentPaymnet);
346
+ $custumerData->setUniqeid($data['IDENTIFICATION_UNIQUEID']);
347
+ $custumerData->setCustomerid($data['IDENTIFICATION_SHOPPERID']);
348
+ $custumerData->setStoreid($data['CRITERION_STOREID']);
349
+ $custumerData->setPaymentData(
350
+ Mage::getModel('hcd/resource_encryption')
351
+ ->encrypt(json_encode(
352
+ array(
353
+ 'ACCOUNT.REGISTRATION' => $data['IDENTIFICATION_UNIQUEID'],
354
+ 'SHIPPPING_HASH' => $data['CRITERION_SHIPPPING_HASH'],
355
+ 'ACCOUNT_BRAND' => $data['ACCOUNT_BRAND'],
356
+ 'ACCOUNT_NUMBER' => $data['ACCOUNT_NUMBER'],
357
+ 'ACCOUNT_HOLDER' => $data['ACCOUNT_HOLDER'],
358
+ 'ACCOUNT_EXPIRY_MONTH' => $data['ACCOUNT_EXPIRY_MONTH'],
359
+ 'ACCOUNT_EXPIRY_YEAR' => $data['ACCOUNT_EXPIRY_YEAR']
360
+ ))));
361
+
362
+ $this->log('$custumerData '.print_r($custumerData,1));
363
+ $custumerData->save();
364
+
365
+ $url = Mage::getUrl('hcd/', array('_secure' => true));
366
+
367
+ }
368
+ } else {
369
+
370
+
371
+ /* load order */
372
+ $order = $this->getOrder();
373
+ $order->loadByIncrementId($data['IDENTIFICATION_TRANSACTIONID']);
374
+ if ($order->getPayment() !== false){
375
+ $payment = $order->getPayment()->getMethodInstance();
376
+ }
377
+ $this->log('UniqeID: '.$data['IDENTIFICATION_UNIQUEID']);
378
+
379
+
380
+
381
+ if ($data['PROCESSING_RESULT'] == 'NOK'){
382
+ if (isset($data['FRONTEND_REQUEST_CANCELLED'])){
383
+ $url = $data['FRONTEND_FAILURE_URL'];
384
+ }else {
385
+ $url = $data['FRONTEND_FAILURE_URL'];
386
+ }
387
+
388
+ } elseif ( ( $PaymentCode[1] == 'CP' or $PaymentCode[1] == 'DB' or $PaymentCode[1] == 'FI' or $PaymentCode[1] == 'RC')
389
+ and ( $data['PROCESSING_RESULT'] == 'ACK' and $data['PROCESSING_STATUS_CODE'] != 80 )) {
390
+ $url = $data['FRONTEND_SUCCESS_URL'];
391
+ }else {
392
+ $url = $data['FRONTEND_SUCCESS_URL'];
393
+ }
394
+
395
+ Mage::getModel('hcd/transaction')->saveTransactionData($data);
396
+
397
+ }
398
+
399
+ $this->log('Url: '.$url);
400
+
401
+
402
+ echo $url;
403
+ }
404
+
405
+ /**
406
+ * Controller for push notification
407
+ */
408
+ public function pushAction() {
409
+
410
+
411
+ $rawPost = false;
412
+ $lastdata = null;
413
+ $Request = Mage::app()->getRequest();
414
+ $rawPost = $Request->getRawBody();
415
+
416
+ if ($rawPost === false) {
417
+ $this->_redirect('', array('_secure' => true));
418
+ }
419
+
420
+ /** Hack to remove a structur problem in criterion node */
421
+ $rawPost = preg_replace('/<Criterion(\s+)name="(\w+)">(\w+)<\/Criterion>/', '<$2>$3</$2>',$rawPost);
422
+
423
+ $xml = simplexml_load_string($rawPost);
424
+
425
+ $this->log('XML Object from Push : '.$rawPost);
426
+
427
+ list($type , $methode) = Mage::helper('hcd/payment')->splitPaymentCode((string)$xml->Transaction->Payment['code']);
428
+ if ( $methode == 'RG') return;
429
+
430
+ $hash = (string)$xml->Transaction->Analysis->SECRET ;
431
+ $orderID =(string)$xml->Transaction->Identification->TransactionID;
432
+
433
+
434
+
435
+ if (Mage::getModel('hcd/resource_encryption')->validateHash($orderID,$hash) === false) {
436
+ $this->log("Get response form server " . Mage::app()->getRequest()->getServer('REMOTE_ADDR') . " with an invalid hash. This could be some kind of manipulation.", 'WARN');
437
+ $this->_redirect('', array('_forced_secure' => true, '_store_to_url' => true, '_nosid' => true));
438
+ };
439
+
440
+
441
+
442
+
443
+ $xmlData = array(
444
+ 'PAYMENT_CODE' => (string)$xml->Transaction->Payment['code'],
445
+ 'IDENTIFICATION_TRANSACTIONID' => (string)$orderID,
446
+ 'IDENTIFICATION_UNIQUEID' => (string)$xml->Transaction->Identification->UniqueID,
447
+ 'PROCESSING_RESULT' => (string)$xml->Transaction->Processing->Result,
448
+ 'IDENTIFICATION_SHORTID' => (string)$xml->Transaction->Identification->ShortID,
449
+ 'PROCESSING_STATUS_CODE' => (string)$xml->Transaction->Processing->Status['code'],
450
+ 'PROCESSING_RETURN' => (string)$xml->Transaction->Processing->Return,
451
+ 'PROCESSING_RETURN_CODE' => (string)$xml->Transaction->Processing->Return['code'],
452
+ 'PRESENTATION_AMOUNT' => (string)$xml->Transaction->Payment->Presentation->Amount,
453
+ 'PRESENTATION_CURRENCY' => (string)$xml->Transaction->Payment->Presentation->Currency,
454
+ 'IDENTIFICATION_REFERENCEID' => (string)$xml->Transaction->Identification->ReferenceID,
455
+ 'CRITERION_STOREID' => (int)$xml->Transaction->Analysis->STOREID,
456
+ 'ACCOUNT_BRAND' => false,
457
+ 'CRITERION_LANGUAGE' => strtoupper((string)$xml->Transaction->Analysis->LANGUAGE)
458
+ );
459
+
460
+
461
+
462
+
463
+ $order = $this->getOrder();
464
+ $order->loadByIncrementId($orderID);
465
+ if (!empty($xml->Transaction->Identification->UniqueID))
466
+ $lastdata = Mage::getModel('hcd/transaction')->loadLastTransactionDataByUniqeId($xmlData['IDENTIFICATION_UNIQUEID']);
467
+
468
+ if($lastdata == null) {
469
+ Mage::getModel('hcd/transaction')->saveTransactionData($xmlData, 'push');
470
+ }
471
+
472
+
473
+
474
+ $this->log('Load Transaction '.print_r($lastdata,1));
475
+
476
+
477
+
478
+ $this->log($type ." ". $methode);
479
+ if ($methode == 'RC' or $methode == 'CP' or $methode == 'DB' or $methode == 'FI') {
480
+
481
+ Mage::helper('hcd/payment')->mapStatus (
482
+ $xmlData,
483
+ $order
484
+ );
485
+
486
+ }
487
+
488
+ }
489
+
490
+ /*
491
+
492
+ public function testAction() {
493
+ $data = Mage::getModel('hcd/transaction')->loadLastTransactionDataByTransactionnr('302000092');//->loadTransactionDataByX( );
494
+ var_dump($data);
495
+ foreach($data AS $k) echo "<pre>".print_r($k,1)."</pre>";
496
+ }
497
+
498
+ public function postAction() {
499
+ $Request = Mage::app()->getRequest();
500
+ $Request->setParamSources(array('_POST'));
501
+ $data = array();
502
+ $data= $Request->getParams();
503
+
504
+ $this->log('Postdata :'.print_r($data,1));
505
+
506
+ }
507
+ */
508
+
509
+
510
+ }
app/code/community/HeidelpayCD/Edition/etc/config.xml ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <HeidelpayCD_Edition>
5
+ <version>15.2.28</version>
6
+ </HeidelpayCD_Edition>
7
+ </modules>
8
+ <global>
9
+ <helpers>
10
+ <hcd>
11
+ <class>HeidelpayCD_Edition_Helper</class>
12
+ </hcd>
13
+ </helpers>
14
+ <models>
15
+ <hcd>
16
+ <class>HeidelpayCD_Edition_Model</class>
17
+ <resourceModel>hcd_resource</resourceModel>
18
+ </hcd>
19
+ <hcd_resource>
20
+ <class>HeidelpayCD_Edition_Model_Mysql4</class>
21
+ <entities>
22
+ <transaction>
23
+ <table>heidelpay_transaction</table>
24
+ </transaction>
25
+ <customer>
26
+ <table>heidelpay_customer</table>
27
+ </customer>
28
+ </entities>
29
+ </hcd_resource>
30
+ <!--
31
+ <sales>
32
+ <rewrite>
33
+ <order_pdf_invoice>HeidelpayCD_Edition_Model_Order_Pdf_Invoice</order_pdf_invoice>
34
+ </rewrite>
35
+ </sales>
36
+ -->
37
+ </models>
38
+ <blocks>
39
+ <hcd>
40
+ <class>HeidelpayCD_Edition_Block</class>
41
+ </hcd>
42
+ </blocks>
43
+ <resources>
44
+ <hcd_setup>
45
+ <setup>
46
+ <module>HeidelpayCD_Edition</module>
47
+ </setup>
48
+ </hcd_setup>
49
+ <hcd_write>
50
+ <connection>
51
+ <use>core_write</use>
52
+ </connection>
53
+ </hcd_write>
54
+ <hcd_read>
55
+ <connection>
56
+ <use>core_read</use>
57
+ </connection>
58
+ </hcd_read>
59
+ </resources>
60
+ <payment>
61
+ <groups>
62
+ <hcd>Heidelpay CD-Edition</hcd>
63
+ </groups>
64
+ </payment>
65
+ </global>
66
+ <frontend>
67
+ <secure_url>
68
+ <hcd_payment>hcd/</hcd_payment>
69
+ </secure_url>
70
+ <routers>
71
+ <hcd>
72
+ <use>standard</use>
73
+ <args>
74
+ <module>HeidelpayCD_Edition</module>
75
+ <frontName>hcd</frontName>
76
+ </args>
77
+ </hcd>
78
+ </routers>
79
+ <translate>
80
+ <modules>
81
+ <HeidelpayCD_Edition>
82
+ <files>
83
+ <default>HeidelpayCD_Edition.csv</default>
84
+ </files>
85
+ </HeidelpayCD_Edition>
86
+ </modules>
87
+ </translate>
88
+ <layout>
89
+ <updates>
90
+ <hcd>
91
+ <file>hcd.xml</file>
92
+ </hcd>
93
+ </updates>
94
+ </layout>
95
+ </frontend>
96
+ <adminhtml>
97
+ <translate>
98
+ <modules>
99
+ <HeidelpayCD_Edition>
100
+ <files>
101
+ <default>HeidelpayCD_Edition.csv</default>
102
+ </files>
103
+ </HeidelpayCD_Edition>
104
+ </modules>
105
+ </translate>
106
+ <acl>
107
+ <resources>
108
+ <admin>
109
+ <children>
110
+ <system>
111
+ <children>
112
+ <config>
113
+ <children>
114
+ <hcd>
115
+ <title>HeidelpayCD Edition</title>
116
+ </hcd>
117
+ </children>
118
+ </config>
119
+ </children>
120
+ </system>
121
+ </children>
122
+ </admin>
123
+ </resources>
124
+ </acl>
125
+ </adminhtml>
126
+ <default>
127
+ <hcd>
128
+ <settings>
129
+ <transactionmode>1</transactionmode>
130
+ <security_sender>31HA07BC8142C5A171745D00AD63D182</security_sender>
131
+ <user_id>31ha07bc8142c5a171744e5aef11ffd3</user_id>
132
+ <user_pwd>93167DE7</user_pwd>
133
+ <log>0</log>
134
+ <invoicing>0</invoicing>
135
+ <returnurl>onepage</returnurl>
136
+ </settings>
137
+ </hcd>
138
+ <payment>
139
+ <hcdcc>
140
+ <group>hcd</group>
141
+ <title>Credit Card</title>
142
+ <active>0</active>
143
+ <channel>31HA07BC8142C5A171749A60D979B6E4</channel>
144
+ <bookingmode>DB</bookingmode>
145
+ <invioce>1</invioce>
146
+ <model>hcd/payment_hcdcc</model>
147
+ <sort_order>1</sort_order>
148
+ <min_amount>0</min_amount>
149
+ <max_amount>0</max_amount>
150
+ <allowspecific>0</allowspecific>
151
+ </hcdcc>
152
+ <hcddc>
153
+ <group>hcd</group>
154
+ <title>Debit Card</title>
155
+ <active>0</active>
156
+ <channel>31HA07BC8142C5A171749A60D979B6E4</channel>
157
+ <bookingmode>DB</bookingmode>
158
+ <invioce>1</invioce>
159
+ <model>hcd/payment_hcddc</model>
160
+ <sort_order>1</sort_order>
161
+ <min_amount>0</min_amount>
162
+ <max_amount>0</max_amount>
163
+ <allowspecific>0</allowspecific>
164
+ </hcddc>
165
+ <hcddd>
166
+ <group>hcd</group>
167
+ <title>Direct Debit - Lastschrift</title>
168
+ <active>0</active>
169
+ <channel>31HA07BC8142C5A171749A60D979B6E4</channel>
170
+ <bookingmode>DB</bookingmode>
171
+ <invioce>1</invioce>
172
+ <model>hcd/payment_hcddd</model>
173
+ <sort_order>1</sort_order>
174
+ <min_amount>0</min_amount>
175
+ <max_amount>0</max_amount>
176
+ <allowspecific>0</allowspecific>
177
+ </hcddd>
178
+ <hcdsu>
179
+ <group>hcd</group>
180
+ <title>SOFORT Überweisung</title>
181
+ <active>0</active>
182
+ <channel>31HA07BC8142C5A171749CDAA43365D2</channel>
183
+ <invioce>1</invioce>
184
+ <model>hcd/payment_hcdsu</model>
185
+ <sort_order>1</sort_order>
186
+ <min_amount>0</min_amount>
187
+ <max_amount>0</max_amount>
188
+ <allowspecific>0</allowspecific>
189
+ </hcdsu>
190
+ <hcdgp>
191
+ <group>hcd</group>
192
+ <title>Giropay</title>
193
+ <active>0</active>
194
+ <channel>31HA07BC8142C5A171740166AF277E03</channel>
195
+ <invioce>1</invioce>
196
+ <model>hcd/payment_hcdgp</model>
197
+ <sort_order>1</sort_order>
198
+ <min_amount>0</min_amount>
199
+ <max_amount>0</max_amount>
200
+ <allowspecific>0</allowspecific>
201
+ </hcdgp>
202
+ <hcdbs>
203
+ <group>hcd</group>
204
+ <title>Kauf auf Rechnung</title>
205
+ <active>0</active>
206
+ <channel>31HA07BC8142EE6D02715F4CA97DDD8B</channel>
207
+ <model>hcd/payment_hcdbs</model>
208
+ <invioce>0</invioce>
209
+ <sort_order>1</sort_order>
210
+ <min_amount>0</min_amount>
211
+ <max_amount>0</max_amount>
212
+ <allowspecific>1</allowspecific>
213
+ <specificcountry>DE</specificcountry>
214
+ </hcdbs>
215
+ <hcdmk>
216
+ <group>hcd</group>
217
+ <title>MangirKart</title>
218
+ <active>0</active>
219
+ <channel>31HA07BC8142EE6D0271011E4508C3F2</channel>
220
+ <invioce>1</invioce>
221
+ <model>hcd/payment_hcdmk</model>
222
+ <sort_order>1</sort_order>
223
+ <min_amount>10</min_amount>
224
+ <max_amount>0</max_amount>
225
+ <allowspecific>1</allowspecific>
226
+ <specificcountry>TR</specificcountry>
227
+ </hcdmk>
228
+ <hcdpal>
229
+ <group>hcd</group>
230
+ <title>Pay Pal</title>
231
+ <active>0</active>
232
+ <channel>31HA07BC8142C5A171749A60D979B6E4</channel>
233
+ <bookingmode>DB</bookingmode>
234
+ <invioce>1</invioce>
235
+ <model>hcd/payment_hcdpal</model>
236
+ <payment_action>Authorization</payment_action>
237
+ <sort_order>1</sort_order>
238
+ <min_amount>0</min_amount>
239
+ <max_amount>0</max_amount>
240
+ <allowspecific>0</allowspecific>
241
+ </hcdpal>
242
+ <hcdpp>
243
+ <group>hcd</group>
244
+ <title>Prepayment</title>
245
+ <active>0</active>
246
+ <channel>31HA07BC8142C5A171749A60D979B6E4</channel>
247
+ <invioce>1</invioce>
248
+ <model>hcd/payment_hcdpp</model>
249
+ <sort_order>1</sort_order>
250
+ <min_amount>0</min_amount>
251
+ <max_amount>0</max_amount>
252
+ <allowspecific>0</allowspecific>
253
+ </hcdpp>
254
+ <hcdiv>
255
+ <group>hcd</group>
256
+ <title>Invoice</title>
257
+ <active>0</active>
258
+ <channel>31HA07BC8142C5A171749A60D979B6E4</channel>
259
+ <invioce>0</invioce>
260
+ <model>hcd/payment_hcdiv</model>
261
+ <sort_order>1</sort_order>
262
+ <min_amount>0</min_amount>
263
+ <max_amount>0</max_amount>
264
+ <allowspecific>0</allowspecific>
265
+ </hcdiv>
266
+ <hcdpf>
267
+ <group>hcd</group>
268
+ <title>Postfinance</title>
269
+ <active>0</active>
270
+ <channel>31HA07BC811E8AEF9AB2733D80C21DA8</channel>
271
+ <invioce>1</invioce>
272
+ <model>hcd/payment_hcdpf</model>
273
+ <sort_order>1</sort_order>
274
+ <min_amount>0</min_amount>
275
+ <max_amount>0</max_amount>
276
+ <allowspecific>1</allowspecific>
277
+ <specificcountry>CH</specificcountry>
278
+ </hcdpf>
279
+ <hcdeps>
280
+ <group>hcd</group>
281
+ <title>EPS</title>
282
+ <active>0</active>
283
+ <channel></channel>
284
+ <invioce>1</invioce>
285
+ <model>hcd/payment_hcdeps</model>
286
+ <sort_order>1</sort_order>
287
+ <min_amount>0</min_amount>
288
+ <max_amount>0</max_amount>
289
+ <allowspecific>1</allowspecific>
290
+ <specificcountry>AT</specificcountry>
291
+ </hcdeps>
292
+ <hcdide>
293
+ <group>hcd</group>
294
+ <title>Ideal</title>
295
+ <active>0</active>
296
+ <channel>31HA07BC8142C5A171744B56E61281E5</channel>
297
+ <invioce>1</invioce>
298
+ <model>hcd/payment_hcdide</model>
299
+ <sort_order>1</sort_order>
300
+ <min_amount>0</min_amount>
301
+ <max_amount>0</max_amount>
302
+ <allowspecific>1</allowspecific>
303
+ <specificcountry>NL</specificcountry>
304
+ </hcdide>
305
+ </payment>
306
+ </default>
307
+ </config>
app/code/community/HeidelpayCD/Edition/etc/system.xml ADDED
@@ -0,0 +1,1302 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <sections>
4
+ <!--{{{ Global Settings-->
5
+ <hcd translate="label" module="hcd">
6
+ <label><![CDATA[<img alt="Heidelpay" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==" /> Heidelpay CD-Edition ]]></label>
7
+ <tab>sales</tab>
8
+ <frontend_type>text</frontend_type>
9
+ <sort_order>405</sort_order>
10
+ <show_in_default>1</show_in_default>
11
+ <show_in_website>1</show_in_website>
12
+ <show_in_store>1</show_in_store>
13
+ <groups>
14
+ <about_us>
15
+ <label>about Heidelpay</label>
16
+ <frontend_type>text</frontend_type>
17
+ <sort_order>1</sort_order>
18
+ <show_in_default>1</show_in_default>
19
+ <show_in_website>1</show_in_website>
20
+ <show_in_store>1</show_in_store>
21
+ <comment><![CDATA[<br />
22
+ <div class="box">
23
+ <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFwAAAA7BAMAAAAEMPCJAAAAAXNSR0IArs4c6QAAABhQTFRFPT09u7u7////k5OTDw8Pa2tr2dnZ7u7uGx/afwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kKFggjGov/KAYAAAJ5SURBVEjH7dW7l6IwFAfgOKK247s1l0PS+rYNy2NbRVxbZUZtncyq//7eCD6QeGYo9pwtlgb55TPkARcCuQ6SB7OXXJz++M//Mt/l4sz+N/npJHV83SWEzHdpzutT1xXz9iNnXZcsBgvDnd1zGrqktCCYyhRnoddSybFuFG6cGl4Lb8e3TbcoE67OPCxeBkjDwoVToxgl6ee5F8XV+dW5Tgdv1E/48C79MJYxdwBM75bjlZBnfvCiu/QgogtX/d0dq4ri3Einw3LCzYc9YUQi3zsPeyRkzIe1h01avSAPH9NG5czZQze4UA6zaSalzpl3gswz0Nja79k0XCveiDINVrkQZtPfBcWLmRyYQ5xsSj3kopJtgND9mQ25gdwNNLyhTYeKR5qGvVvTpO+KS02DJXRpB7mnyfG50aXWM071ncSPmIbr0/x8rGvgv7RpkKtGqk/ZKB3El6z8jE/TQXxJ7S85m+Tilp2v93Yu/s2xv2FZpIsJ8Daw0WQKvDlTPFq3cKWr7dMRbh8T5AQLypBgWfChgUUY9sLoU5vNZ80AXnujgSWBL688rFkVLAargPrck/goTiNqU5tj1Rzg5rIi7QPt342d+lblRH3qm/jGEe5wWcLecaMOn8gG2LUZ3XHmd4Rr2PivF4AudQ0hkOP9zTq+U3XowQZSvXcK1eou5lPqVKvbFD/IXpqj4zUcjK8Gg4WklQzmQw0GzHaQ5szbrSo4VbLbCBhOPp3LVGc4VWCDPqTGjisoIlqGlSgRrOTxQs5HS9jgQuJ85I0fgUf4haslJ9yUtzHwHVsm28TV8G/8ycGWt9/jXJwFubhZ+wafXH8e5Ndcf/wBKDObGG4GKXIAAAAASUVORK5CYII=" alt="Heidelpay" />
24
+ <p style="font-size:12px; font-weight: bold;">Heidelberger Payment GmbH - Ihr Full Service Payment Provider - alles aus einer Hand </p>
25
+ <p></p> <p style="font-size:12px">Die Heidelberger Payment GmbH kurz: heidelpay bietet als BaFin-zertifizierter Payment Service Provider alles was zum Online-Payment gehört.<br /><br />
26
+ <a href="http://testshops.heidelpay.de/contactform/?campaign=MagentoWL&amp;shop=Magento" target="_blank" style="font-size: 12px; color: #000; font-weight: bold;">&gt;&gt;&gt; Informationen anfordern &lt;&lt;&lt;</a>
27
+ <br /></p><p><br /> </p><p style="font-size:12px">Das Leistungsspektrum des PCI DSS zertifizierten Unternehmens reicht von weltweiten e-Payment Lösungen, inklusive eines vollständigen Debitorenmanagement-, Risk- und Fraud- Systems
28
+ bis hin zu einem breiten Angebot alternativer Bezahlverfahren - schnell, sicher, einfach und umfassend - alles aus einer Hand.</p><br />
29
+ <a href="http://www.heidelpay.de" target="_blank" style="font-size: 12px; color: #000; font-weight: bold;">www.heidelpay.de</a>
30
+ <br /><br /><p style="font-size:12px;"> Die Plugin wird bei der Installation mit Testdaten aktiviert.</p>
31
+ </div>
32
+ ]]>
33
+ </comment>
34
+ </about_us>
35
+ <settings translate="label">
36
+ <label>General Settings Heidelpay</label>
37
+ <frontend_type>text</frontend_type>
38
+ <sort_order>10</sort_order>
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
+ <fields>
43
+ <transactionmode translate="label">
44
+ <label>Use Testsystem</label>
45
+ <frontend_type>select</frontend_type>
46
+ <source_model>adminhtml/system_config_source_yesno</source_model>
47
+ <comment>If is set to yes, transactionis use the sandbox system and the TRANSACTION.MODE=CONNECTOR_TEST, otherwise real payment will be used with mode LIVE. For details see integration basisc documentation.</comment>
48
+ <sort_order>5</sort_order>
49
+ <show_in_default>1</show_in_default>
50
+ <show_in_website>1</show_in_website>
51
+ <show_in_store>1</show_in_store>
52
+ </transactionmode>
53
+ <security_sender translate="label">
54
+ <label>Security Sender</label>
55
+ <frontend_type>text</frontend_type>
56
+ <sort_order>10</sort_order>
57
+ <show_in_default>1</show_in_default>
58
+ <show_in_website>1</show_in_website>
59
+ <show_in_store>1</show_in_store>
60
+ </security_sender>
61
+ <user_id translate="label">
62
+ <label>User Login</label>
63
+ <frontend_type>text</frontend_type>
64
+ <sort_order>20</sort_order>
65
+ <show_in_default>1</show_in_default>
66
+ <show_in_website>1</show_in_website>
67
+ <show_in_store>1</show_in_store>
68
+ </user_id>
69
+ <user_pwd translate="label">
70
+ <label>User Password</label>
71
+ <frontend_type>text</frontend_type>
72
+ <sort_order>30</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
+ </user_pwd>
77
+ <returnurl translate="label">
78
+ <label>Return in Errorcase</label>
79
+ <frontend_type>select</frontend_type>
80
+ <source_model>hcd/system_config_source_returnurl</source_model>
81
+ <comment>Please configurate where your costumer should be redirected to in case of an payment error</comment>
82
+ <sort_order>50</sort_order>
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
+ </returnurl>
87
+ <log translate="label">
88
+ <label>Debug Log</label>
89
+ <frontend_type>select</frontend_type>
90
+ <source_model>adminhtml/system_config_source_yesno</source_model>
91
+ <comment>If is set to yes, you can controll all neccessary conntetion Data in /var/log/Heidelpay.log</comment>
92
+ <sort_order>60</sort_order>
93
+ <show_in_default>1</show_in_default>
94
+ <show_in_website>1</show_in_website>
95
+ <show_in_store>1</show_in_store>
96
+ </log>
97
+ <invoicing translate="label">
98
+ <label>Invoicing over heidelpay</label>
99
+ <frontend_type>select</frontend_type>
100
+ <source_model>adminhtml/system_config_source_yesno</source_model>
101
+ <comment>Invoicing over heidelpay requires an extra contract. For more information, please contact your key account manager.</comment>
102
+ <sort_order>70</sort_order>
103
+ <show_in_default>1</show_in_default>
104
+ <show_in_website>1</show_in_website>
105
+ <show_in_store>1</show_in_store>
106
+ </invoicing>
107
+ </fields>
108
+ </settings>
109
+ </groups>
110
+ </hcd>
111
+ </sections>
112
+ <sections>
113
+ <payment>
114
+ <groups id="hcd" translate="label" type="text" sortOrder="50" showInDefault="1" showInWebsite="1" showInStore="1">
115
+ <label>Heidelpay</label>
116
+ <hcdcc translate="label">
117
+ <label>Heidelpay Credit Card (hcd)</label>
118
+ <frontend_type>text</frontend_type>
119
+ <sort_order>50</sort_order>
120
+ <show_in_default>1</show_in_default>
121
+ <show_in_website>1</show_in_website>
122
+ <show_in_store>1</show_in_store>
123
+ <fields>
124
+ <title translate="label">
125
+ <label>Title</label>
126
+ <frontend_type>text</frontend_type>
127
+ <sort_order>10</sort_order>
128
+ <show_in_default>1</show_in_default>
129
+ <show_in_website>1</show_in_website>
130
+ <show_in_store>1</show_in_store>
131
+ </title>
132
+ <active translate="label">
133
+ <label>Enabled</label>
134
+ <frontend_type>select</frontend_type>
135
+ <source_model>adminhtml/system_config_source_yesno</source_model>
136
+ <sort_order>20</sort_order>
137
+ <show_in_default>1</show_in_default>
138
+ <show_in_website>1</show_in_website>
139
+ <show_in_store>1</show_in_store>
140
+ </active>
141
+ <channel translate="label">
142
+ <label>Channel ID</label>
143
+ <frontend_type>text</frontend_type>
144
+ <sort_order>40</sort_order>
145
+ <show_in_default>1</show_in_default>
146
+ <show_in_website>1</show_in_website>
147
+ <show_in_store>1</show_in_store>
148
+ </channel>
149
+ <bookingmode translate="label">
150
+ <label>Bookinnmode</label>
151
+ <frontend_type>select</frontend_type>
152
+ <source_model>hcd/system_config_source_bookingmode</source_model>
153
+ <sort_order>50</sort_order>
154
+ <show_in_default>1</show_in_default>
155
+ <show_in_website>1</show_in_website>
156
+ <show_in_store>1</show_in_store>
157
+ </bookingmode>
158
+ <recognition translate="label">
159
+ <label>Recognition</label>
160
+ <frontend_type>select</frontend_type>
161
+ <source_model>hcd/system_config_source_recognition</source_model>
162
+ <sort_order>60</sort_order>
163
+ <show_in_default>1</show_in_default>
164
+ <show_in_website>1</show_in_website>
165
+ <show_in_store>1</show_in_store>
166
+ </recognition>
167
+ <invioce translate="label">
168
+ <label>Automatically invoiced</label>
169
+ <frontend_type>select</frontend_type>
170
+ <source_model>adminhtml/system_config_source_yesno</source_model>
171
+ <sort_order>70</sort_order>
172
+ <show_in_default>1</show_in_default>
173
+ <show_in_website>1</show_in_website>
174
+ <show_in_store>1</show_in_store>
175
+ </invioce>
176
+ <sort_order translate="label">
177
+ <label>Sort order</label>
178
+ <frontend_type>text</frontend_type>
179
+ <sort_order>110</sort_order>
180
+ <show_in_default>1</show_in_default>
181
+ <show_in_website>1</show_in_website>
182
+ <show_in_store>1</show_in_store>
183
+ </sort_order>
184
+ <min_amount translate="label">
185
+ <label>Minimum Amount (CENT)</label>
186
+ <frontend_type>text</frontend_type>
187
+ <sort_order>120</sort_order>
188
+ <show_in_default>1</show_in_default>
189
+ <show_in_website>1</show_in_website>
190
+ <show_in_store>1</show_in_store>
191
+ </min_amount>
192
+ <max_amount translate="label">
193
+ <label>Maximum Amount (CENT)</label>
194
+ <frontend_type>text</frontend_type>
195
+ <sort_order>130</sort_order>
196
+ <show_in_default>1</show_in_default>
197
+ <show_in_website>1</show_in_website>
198
+ <show_in_store>1</show_in_store>
199
+ </max_amount>
200
+ <allowspecific translate="label">
201
+ <label>allow specific countries</label>
202
+ <frontend_type>allowspecific</frontend_type>
203
+ <sort_order>140</sort_order>
204
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
205
+ <show_in_default>1</show_in_default>
206
+ <show_in_website>1</show_in_website>
207
+ <show_in_store>1</show_in_store>
208
+ </allowspecific>
209
+ <specificcountry translate="label">
210
+ <label>specific countries</label>
211
+ <frontend_type>multiselect</frontend_type>
212
+ <sort_order>150</sort_order>
213
+ <source_model>adminhtml/system_config_source_country</source_model>
214
+ <show_in_default>1</show_in_default>
215
+ <show_in_website>1</show_in_website>
216
+ <show_in_store>1</show_in_store>
217
+ </specificcountry>
218
+ </fields>
219
+ </hcdcc>
220
+ <hcddc translate="label">
221
+ <label>Heidelpay Debit Card (hcd)</label>
222
+ <frontend_type>text</frontend_type>
223
+ <sort_order>130</sort_order>
224
+ <show_in_default>1</show_in_default>
225
+ <show_in_website>1</show_in_website>
226
+ <show_in_store>1</show_in_store>
227
+ <fields>
228
+ <title translate="label">
229
+ <label>Title</label>
230
+ <frontend_type>text</frontend_type>
231
+ <sort_order>10</sort_order>
232
+ <show_in_default>1</show_in_default>
233
+ <show_in_website>1</show_in_website>
234
+ <show_in_store>1</show_in_store>
235
+ </title>
236
+ <active translate="label">
237
+ <label>Enabled</label>
238
+ <frontend_type>select</frontend_type>
239
+ <source_model>adminhtml/system_config_source_yesno</source_model>
240
+ <sort_order>20</sort_order>
241
+ <show_in_default>1</show_in_default>
242
+ <show_in_website>1</show_in_website>
243
+ <show_in_store>1</show_in_store>
244
+ </active>
245
+ <channel translate="label">
246
+ <label>Channel ID</label>
247
+ <frontend_type>text</frontend_type>
248
+ <sort_order>40</sort_order>
249
+ <show_in_default>1</show_in_default>
250
+ <show_in_website>1</show_in_website>
251
+ <show_in_store>1</show_in_store>
252
+ </channel>
253
+ <bookingmode translate="label">
254
+ <label>Bookinnmode</label>
255
+ <frontend_type>select</frontend_type>
256
+ <source_model>hcd/system_config_source_bookingmode</source_model>
257
+ <sort_order>50</sort_order>
258
+ <show_in_default>1</show_in_default>
259
+ <show_in_website>1</show_in_website>
260
+ <show_in_store>1</show_in_store>
261
+ </bookingmode>
262
+ <recognition translate="label">
263
+ <label>Recognition</label>
264
+ <frontend_type>select</frontend_type>
265
+ <source_model>hcd/system_config_source_recognition</source_model>
266
+ <sort_order>60</sort_order>
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
+ </recognition>
271
+ <invioce translate="label">
272
+ <label>Automatically invoiced</label>
273
+ <frontend_type>select</frontend_type>
274
+ <source_model>adminhtml/system_config_source_yesno</source_model>
275
+ <sort_order>70</sort_order>
276
+ <show_in_default>1</show_in_default>
277
+ <show_in_website>1</show_in_website>
278
+ <show_in_store>1</show_in_store>
279
+ </invioce>
280
+ <sort_order translate="label">
281
+ <label>Sort order</label>
282
+ <frontend_type>text</frontend_type>
283
+ <sort_order>110</sort_order>
284
+ <show_in_default>1</show_in_default>
285
+ <show_in_website>1</show_in_website>
286
+ <show_in_store>1</show_in_store>
287
+ </sort_order>
288
+ <min_amount translate="label">
289
+ <label>Minimum Amount (CENT)</label>
290
+ <frontend_type>text</frontend_type>
291
+ <sort_order>120</sort_order>
292
+ <show_in_default>1</show_in_default>
293
+ <show_in_website>1</show_in_website>
294
+ <show_in_store>1</show_in_store>
295
+ </min_amount>
296
+ <max_amount translate="label">
297
+ <label>Maximum Amount (CENT)</label>
298
+ <frontend_type>text</frontend_type>
299
+ <sort_order>130</sort_order>
300
+ <show_in_default>1</show_in_default>
301
+ <show_in_website>1</show_in_website>
302
+ <show_in_store>1</show_in_store>
303
+ </max_amount>
304
+ <allowspecific translate="label">
305
+ <label>allow specific countries</label>
306
+ <frontend_type>allowspecific</frontend_type>
307
+ <sort_order>140</sort_order>
308
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
309
+ <show_in_default>1</show_in_default>
310
+ <show_in_website>1</show_in_website>
311
+ <show_in_store>1</show_in_store>
312
+ </allowspecific>
313
+ <specificcountry translate="label">
314
+ <label>specific countries</label>
315
+ <frontend_type>multiselect</frontend_type>
316
+ <sort_order>150</sort_order>
317
+ <source_model>adminhtml/system_config_source_country</source_model>
318
+ <show_in_default>1</show_in_default>
319
+ <show_in_website>1</show_in_website>
320
+ <show_in_store>1</show_in_store>
321
+ </specificcountry>
322
+ </fields>
323
+ </hcddc>
324
+ <hcddd translate="label">
325
+ <label>Heidelpay Direct Debit (hcd)</label>
326
+ <frontend_type>text</frontend_type>
327
+ <sort_order>60</sort_order>
328
+ <show_in_default>1</show_in_default>
329
+ <show_in_website>1</show_in_website>
330
+ <show_in_store>1</show_in_store>
331
+ <fields>
332
+ <title translate="label">
333
+ <label>Title</label>
334
+ <frontend_type>text</frontend_type>
335
+ <sort_order>10</sort_order>
336
+ <show_in_default>1</show_in_default>
337
+ <show_in_website>1</show_in_website>
338
+ <show_in_store>1</show_in_store>
339
+ </title>
340
+ <active translate="label">
341
+ <label>Enabled</label>
342
+ <frontend_type>select</frontend_type>
343
+ <source_model>adminhtml/system_config_source_yesno</source_model>
344
+ <sort_order>20</sort_order>
345
+ <show_in_default>1</show_in_default>
346
+ <show_in_website>1</show_in_website>
347
+ <show_in_store>1</show_in_store>
348
+ </active>
349
+ <channel translate="label">
350
+ <label>Channel ID</label>
351
+ <frontend_type>text</frontend_type>
352
+ <sort_order>40</sort_order>
353
+ <show_in_default>1</show_in_default>
354
+ <show_in_website>1</show_in_website>
355
+ <show_in_store>1</show_in_store>
356
+ </channel>
357
+ <bookingmode translate="label">
358
+ <label>Bookinnmode</label>
359
+ <frontend_type>select</frontend_type>
360
+ <source_model>hcd/system_config_source_bookingmode</source_model>
361
+ <sort_order>50</sort_order>
362
+ <show_in_default>1</show_in_default>
363
+ <show_in_website>1</show_in_website>
364
+ <show_in_store>1</show_in_store>
365
+ </bookingmode>
366
+ <recognition translate="label">
367
+ <label>Recognition</label>
368
+ <frontend_type>select</frontend_type>
369
+ <source_model>hcd/system_config_source_recognition</source_model>
370
+ <sort_order>60</sort_order>
371
+ <show_in_default>1</show_in_default>
372
+ <show_in_website>1</show_in_website>
373
+ <show_in_store>1</show_in_store>
374
+ </recognition>
375
+ <invioce translate="label">
376
+ <label>Automatically invoiced</label>
377
+ <frontend_type>select</frontend_type>
378
+ <source_model>adminhtml/system_config_source_yesno</source_model>
379
+ <sort_order>70</sort_order>
380
+ <show_in_default>1</show_in_default>
381
+ <show_in_website>1</show_in_website>
382
+ <show_in_store>1</show_in_store>
383
+ </invioce>
384
+ <sort_order translate="label">
385
+ <label>Sort order</label>
386
+ <frontend_type>text</frontend_type>
387
+ <sort_order>110</sort_order>
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>
392
+ <min_amount translate="label">
393
+ <label>Minimum Amount (CENT)</label>
394
+ <frontend_type>text</frontend_type>
395
+ <sort_order>120</sort_order>
396
+ <show_in_default>1</show_in_default>
397
+ <show_in_website>1</show_in_website>
398
+ <show_in_store>1</show_in_store>
399
+ </min_amount>
400
+ <max_amount translate="label">
401
+ <label>Maximum Amount (CENT)</label>
402
+ <frontend_type>text</frontend_type>
403
+ <sort_order>130</sort_order>
404
+ <show_in_default>1</show_in_default>
405
+ <show_in_website>1</show_in_website>
406
+ <show_in_store>1</show_in_store>
407
+ </max_amount>
408
+ <allowspecific translate="label">
409
+ <label>allow specific countries</label>
410
+ <frontend_type>allowspecific</frontend_type>
411
+ <sort_order>140</sort_order>
412
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
413
+ <show_in_default>1</show_in_default>
414
+ <show_in_website>1</show_in_website>
415
+ <show_in_store>1</show_in_store>
416
+ </allowspecific>
417
+ <specificcountry translate="label">
418
+ <label>specific countries</label>
419
+ <frontend_type>multiselect</frontend_type>
420
+ <sort_order>150</sort_order>
421
+ <source_model>adminhtml/system_config_source_country</source_model>
422
+ <show_in_default>1</show_in_default>
423
+ <show_in_website>1</show_in_website>
424
+ <show_in_store>1</show_in_store>
425
+ </specificcountry>
426
+ </fields>
427
+ </hcddd>
428
+ <hcdsu translate="label">
429
+ <label><![CDATA[Heidelpay SOFORT &Uuml;berweisung (hcd)]]></label>
430
+ <frontend_type>text</frontend_type>
431
+ <sort_order>80</sort_order>
432
+ <show_in_default>1</show_in_default>
433
+ <show_in_website>1</show_in_website>
434
+ <show_in_store>1</show_in_store>
435
+ <fields>
436
+ <title translate="label">
437
+ <label>Title</label>
438
+ <frontend_type>text</frontend_type>
439
+ <sort_order>10</sort_order>
440
+ <show_in_default>1</show_in_default>
441
+ <show_in_website>1</show_in_website>
442
+ <show_in_store>1</show_in_store>
443
+ </title>
444
+ <active translate="label">
445
+ <label>Enabled</label>
446
+ <frontend_type>select</frontend_type>
447
+ <source_model>adminhtml/system_config_source_yesno</source_model>
448
+ <sort_order>20</sort_order>
449
+ <show_in_default>1</show_in_default>
450
+ <show_in_website>1</show_in_website>
451
+ <show_in_store>1</show_in_store>
452
+ </active>
453
+ <channel translate="label">
454
+ <label>Channel ID</label>
455
+ <frontend_type>text</frontend_type>
456
+ <sort_order>40</sort_order>
457
+ <show_in_default>1</show_in_default>
458
+ <show_in_website>1</show_in_website>
459
+ <show_in_store>1</show_in_store>
460
+ </channel>
461
+ <invioce translate="label">
462
+ <label>Automatically invoiced</label>
463
+ <frontend_type>select</frontend_type>
464
+ <source_model>adminhtml/system_config_source_yesno</source_model>
465
+ <sort_order>70</sort_order>
466
+ <show_in_default>1</show_in_default>
467
+ <show_in_website>1</show_in_website>
468
+ <show_in_store>1</show_in_store>
469
+ </invioce>
470
+ <sort_order translate="label">
471
+ <label>Sort order</label>
472
+ <frontend_type>text</frontend_type>
473
+ <sort_order>110</sort_order>
474
+ <show_in_default>1</show_in_default>
475
+ <show_in_website>1</show_in_website>
476
+ <show_in_store>1</show_in_store>
477
+ </sort_order>
478
+ <min_amount translate="label">
479
+ <label>Minimum Amount (CENT)</label>
480
+ <frontend_type>text</frontend_type>
481
+ <sort_order>120</sort_order>
482
+ <show_in_default>1</show_in_default>
483
+ <show_in_website>1</show_in_website>
484
+ <show_in_store>1</show_in_store>
485
+ </min_amount>
486
+ <max_amount translate="label">
487
+ <label>Maximum Amount (CENT)</label>
488
+ <frontend_type>text</frontend_type>
489
+ <sort_order>130</sort_order>
490
+ <show_in_default>1</show_in_default>
491
+ <show_in_website>1</show_in_website>
492
+ <show_in_store>1</show_in_store>
493
+ </max_amount>
494
+ <allowspecific translate="label">
495
+ <label>allow specific countries</label>
496
+ <frontend_type>allowspecific</frontend_type>
497
+ <sort_order>140</sort_order>
498
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
499
+ <show_in_default>1</show_in_default>
500
+ <show_in_website>1</show_in_website>
501
+ <show_in_store>1</show_in_store>
502
+ </allowspecific>
503
+ <specificcountry translate="label">
504
+ <label>specific countries</label>
505
+ <frontend_type>multiselect</frontend_type>
506
+ <sort_order>150</sort_order>
507
+ <source_model>adminhtml/system_config_source_country</source_model>
508
+ <show_in_default>1</show_in_default>
509
+ <show_in_website>1</show_in_website>
510
+ <show_in_store>1</show_in_store>
511
+ </specificcountry>
512
+ </fields>
513
+ </hcdsu>
514
+ <hcdgp translate="label">
515
+ <label>Heidelpay Giropay (hcd)</label>
516
+ <frontend_type>text</frontend_type>
517
+ <sort_order>90</sort_order>
518
+ <show_in_default>1</show_in_default>
519
+ <show_in_website>1</show_in_website>
520
+ <show_in_store>1</show_in_store>
521
+ <fields>
522
+ <title translate="label">
523
+ <label>Title</label>
524
+ <frontend_type>text</frontend_type>
525
+ <sort_order>10</sort_order>
526
+ <show_in_default>1</show_in_default>
527
+ <show_in_website>1</show_in_website>
528
+ <show_in_store>1</show_in_store>
529
+ </title>
530
+ <active translate="label">
531
+ <label>Enabled</label>
532
+ <frontend_type>select</frontend_type>
533
+ <source_model>adminhtml/system_config_source_yesno</source_model>
534
+ <sort_order>20</sort_order>
535
+ <show_in_default>1</show_in_default>
536
+ <show_in_website>1</show_in_website>
537
+ <show_in_store>1</show_in_store>
538
+ </active>
539
+ <channel translate="label">
540
+ <label>Channel ID</label>
541
+ <frontend_type>text</frontend_type>
542
+ <sort_order>40</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
+ </channel>
547
+ <recognition translate="label">
548
+ <label>Recognition</label>
549
+ <frontend_type>select</frontend_type>
550
+ <source_model>hcd/system_config_source_recognition</source_model>
551
+ <sort_order>60</sort_order>
552
+ <show_in_default>1</show_in_default>
553
+ <show_in_website>1</show_in_website>
554
+ <show_in_store>1</show_in_store>
555
+ </recognition>
556
+ <invioce translate="label">
557
+ <label>Automatically invoiced</label>
558
+ <frontend_type>select</frontend_type>
559
+ <source_model>adminhtml/system_config_source_yesno</source_model>
560
+ <sort_order>70</sort_order>
561
+ <show_in_default>1</show_in_default>
562
+ <show_in_website>1</show_in_website>
563
+ <show_in_store>1</show_in_store>
564
+ </invioce>
565
+ <sort_order translate="label">
566
+ <label>Sort order</label>
567
+ <frontend_type>text</frontend_type>
568
+ <sort_order>110</sort_order>
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
+ </sort_order>
573
+ <min_amount translate="label">
574
+ <label>Minimum Amount (CENT)</label>
575
+ <frontend_type>text</frontend_type>
576
+ <sort_order>120</sort_order>
577
+ <show_in_default>1</show_in_default>
578
+ <show_in_website>1</show_in_website>
579
+ <show_in_store>1</show_in_store>
580
+ </min_amount>
581
+ <max_amount translate="label">
582
+ <label>Maximum Amount (CENT)</label>
583
+ <frontend_type>text</frontend_type>
584
+ <sort_order>130</sort_order>
585
+ <show_in_default>1</show_in_default>
586
+ <show_in_website>1</show_in_website>
587
+ <show_in_store>1</show_in_store>
588
+ </max_amount>
589
+ <allowspecific translate="label">
590
+ <label>allow specific countries</label>
591
+ <frontend_type>allowspecific</frontend_type>
592
+ <sort_order>140</sort_order>
593
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
594
+ <show_in_default>1</show_in_default>
595
+ <show_in_website>1</show_in_website>
596
+ <show_in_store>1</show_in_store>
597
+ </allowspecific>
598
+ <specificcountry translate="label">
599
+ <label>specific countries</label>
600
+ <frontend_type>multiselect</frontend_type>
601
+ <sort_order>150</sort_order>
602
+ <source_model>adminhtml/system_config_source_country</source_model>
603
+ <show_in_default>1</show_in_default>
604
+ <show_in_website>1</show_in_website>
605
+ <show_in_store>1</show_in_store>
606
+ </specificcountry>
607
+ </fields>
608
+ </hcdgp>
609
+ <hcdbs translate="label">
610
+ <label>Heidelpay Billsafe (hcd)</label>
611
+ <frontend_type>text</frontend_type>
612
+ <sort_order>100</sort_order>
613
+ <show_in_default>1</show_in_default>
614
+ <show_in_website>1</show_in_website>
615
+ <show_in_store>1</show_in_store>
616
+ <fields>
617
+ <title translate="label">
618
+ <label>Title</label>
619
+ <frontend_type>text</frontend_type>
620
+ <sort_order>10</sort_order>
621
+ <show_in_default>1</show_in_default>
622
+ <show_in_website>1</show_in_website>
623
+ <show_in_store>1</show_in_store>
624
+ </title>
625
+ <active translate="label">
626
+ <label>Enabled</label>
627
+ <frontend_type>select</frontend_type>
628
+ <source_model>adminhtml/system_config_source_yesno</source_model>
629
+ <sort_order>20</sort_order>
630
+ <show_in_default>1</show_in_default>
631
+ <show_in_website>1</show_in_website>
632
+ <show_in_store>1</show_in_store>
633
+ </active>
634
+ <channel translate="label">
635
+ <label>Channel ID</label>
636
+ <frontend_type>text</frontend_type>
637
+ <sort_order>40</sort_order>
638
+ <show_in_default>1</show_in_default>
639
+ <show_in_website>1</show_in_website>
640
+ <show_in_store>1</show_in_store>
641
+ </channel>
642
+ <sort_order translate="label">
643
+ <label>Sort order</label>
644
+ <frontend_type>text</frontend_type>
645
+ <sort_order>110</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
+ </sort_order>
650
+ <min_amount translate="label">
651
+ <label>Minimum Amount (CENT)</label>
652
+ <frontend_type>text</frontend_type>
653
+ <sort_order>120</sort_order>
654
+ <show_in_default>1</show_in_default>
655
+ <show_in_website>1</show_in_website>
656
+ <show_in_store>1</show_in_store>
657
+ </min_amount>
658
+ <max_amount translate="label">
659
+ <label>Maximum Amount (CENT)</label>
660
+ <frontend_type>text</frontend_type>
661
+ <sort_order>130</sort_order>
662
+ <show_in_default>1</show_in_default>
663
+ <show_in_website>1</show_in_website>
664
+ <show_in_store>1</show_in_store>
665
+ </max_amount>
666
+ <allowspecific translate="label">
667
+ <label>allow specific countries</label>
668
+ <frontend_type>allowspecific</frontend_type>
669
+ <sort_order>140</sort_order>
670
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
671
+ <show_in_default>1</show_in_default>
672
+ <show_in_website>1</show_in_website>
673
+ <show_in_store>1</show_in_store>
674
+ </allowspecific>
675
+ <specificcountry translate="label">
676
+ <label>specific countries</label>
677
+ <frontend_type>multiselect</frontend_type>
678
+ <sort_order>150</sort_order>
679
+ <source_model>adminhtml/system_config_source_country</source_model>
680
+ <show_in_default>1</show_in_default>
681
+ <show_in_website>1</show_in_website>
682
+ <show_in_store>1</show_in_store>
683
+ </specificcountry>
684
+ </fields>
685
+ </hcdbs>
686
+ <hcdmk translate="label">
687
+ <label>Heidelpay MangirKart (hcd)</label>
688
+ <frontend_type>text</frontend_type>
689
+ <sort_order>170</sort_order>
690
+ <show_in_default>1</show_in_default>
691
+ <show_in_website>1</show_in_website>
692
+ <show_in_store>1</show_in_store>
693
+ <fields>
694
+ <title translate="label">
695
+ <label>Title</label>
696
+ <frontend_type>text</frontend_type>
697
+ <sort_order>10</sort_order>
698
+ <show_in_default>1</show_in_default>
699
+ <show_in_website>1</show_in_website>
700
+ <show_in_store>1</show_in_store>
701
+ </title>
702
+ <active translate="label">
703
+ <label>Enabled</label>
704
+ <frontend_type>select</frontend_type>
705
+ <source_model>adminhtml/system_config_source_yesno</source_model>
706
+ <sort_order>20</sort_order>
707
+ <show_in_default>1</show_in_default>
708
+ <show_in_website>1</show_in_website>
709
+ <show_in_store>1</show_in_store>
710
+ </active>
711
+ <channel translate="label">
712
+ <label>Channel ID</label>
713
+ <frontend_type>text</frontend_type>
714
+ <sort_order>40</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
+ </channel>
719
+ <invioce translate="label">
720
+ <label>Automatically invoiced</label>
721
+ <frontend_type>select</frontend_type>
722
+ <source_model>adminhtml/system_config_source_yesno</source_model>
723
+ <sort_order>70</sort_order>
724
+ <show_in_default>1</show_in_default>
725
+ <show_in_website>1</show_in_website>
726
+ <show_in_store>1</show_in_store>
727
+ </invioce>
728
+ <sort_order translate="label">
729
+ <label>Sort order</label>
730
+ <frontend_type>text</frontend_type>
731
+ <sort_order>110</sort_order>
732
+ <show_in_default>1</show_in_default>
733
+ <show_in_website>1</show_in_website>
734
+ <show_in_store>1</show_in_store>
735
+ </sort_order>
736
+ <min_amount translate="label">
737
+ <label>Minimum Amount (CENT)</label>
738
+ <frontend_type>text</frontend_type>
739
+ <sort_order>120</sort_order>
740
+ <show_in_default>1</show_in_default>
741
+ <show_in_website>1</show_in_website>
742
+ <show_in_store>1</show_in_store>
743
+ </min_amount>
744
+ <max_amount translate="label">
745
+ <label>Maximum Amount (CENT)</label>
746
+ <frontend_type>text</frontend_type>
747
+ <sort_order>130</sort_order>
748
+ <show_in_default>1</show_in_default>
749
+ <show_in_website>1</show_in_website>
750
+ <show_in_store>1</show_in_store>
751
+ </max_amount>
752
+ <allowspecific translate="label">
753
+ <label>allow specific countries</label>
754
+ <frontend_type>allowspecific</frontend_type>
755
+ <sort_order>140</sort_order>
756
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
757
+ <show_in_default>1</show_in_default>
758
+ <show_in_website>1</show_in_website>
759
+ <show_in_store>1</show_in_store>
760
+ </allowspecific>
761
+ <specificcountry translate="label">
762
+ <label>specific countries</label>
763
+ <frontend_type>multiselect</frontend_type>
764
+ <sort_order>150</sort_order>
765
+ <source_model>adminhtml/system_config_source_country</source_model>
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
+ </specificcountry>
770
+ </fields>
771
+ </hcdmk>
772
+ <hcdpal translate="label">
773
+ <label>Heidelpay Pay Pal (hcd)</label>
774
+ <frontend_type>text</frontend_type>
775
+ <sort_order>70</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
+ <fields>
780
+ <title translate="label">
781
+ <label>Title</label>
782
+ <frontend_type>text</frontend_type>
783
+ <sort_order>10</sort_order>
784
+ <show_in_default>1</show_in_default>
785
+ <show_in_website>1</show_in_website>
786
+ <show_in_store>1</show_in_store>
787
+ </title>
788
+ <active translate="label">
789
+ <label>Enabled</label>
790
+ <frontend_type>select</frontend_type>
791
+ <source_model>adminhtml/system_config_source_yesno</source_model>
792
+ <sort_order>20</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
+ </active>
797
+ <channel translate="label">
798
+ <label>Channel ID</label>
799
+ <frontend_type>text</frontend_type>
800
+ <sort_order>40</sort_order>
801
+ <show_in_default>1</show_in_default>
802
+ <show_in_website>1</show_in_website>
803
+ <show_in_store>1</show_in_store>
804
+ </channel>
805
+ <bookingmode translate="label">
806
+ <label>Bookinnmode</label>
807
+ <frontend_type>select</frontend_type>
808
+ <source_model>hcd/system_config_source_bookingmode</source_model>
809
+ <sort_order>50</sort_order>
810
+ <show_in_default>1</show_in_default>
811
+ <show_in_website>1</show_in_website>
812
+ <show_in_store>1</show_in_store>
813
+ </bookingmode>
814
+ <invioce translate="label">
815
+ <label>Automatically invoiced</label>
816
+ <frontend_type>select</frontend_type>
817
+ <source_model>adminhtml/system_config_source_yesno</source_model>
818
+ <sort_order>70</sort_order>
819
+ <show_in_default>1</show_in_default>
820
+ <show_in_website>1</show_in_website>
821
+ <show_in_store>1</show_in_store>
822
+ </invioce>
823
+ <sort_order translate="label">
824
+ <label>Sort order</label>
825
+ <frontend_type>text</frontend_type>
826
+ <sort_order>110</sort_order>
827
+ <show_in_default>1</show_in_default>
828
+ <show_in_website>1</show_in_website>
829
+ <show_in_store>1</show_in_store>
830
+ </sort_order>
831
+ <min_amount translate="label">
832
+ <label>Minimum Amount (CENT)</label>
833
+ <frontend_type>text</frontend_type>
834
+ <sort_order>120</sort_order>
835
+ <show_in_default>1</show_in_default>
836
+ <show_in_website>1</show_in_website>
837
+ <show_in_store>1</show_in_store>
838
+ </min_amount>
839
+ <max_amount translate="label">
840
+ <label>Maximum Amount (CENT)</label>
841
+ <frontend_type>text</frontend_type>
842
+ <sort_order>130</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
+ </max_amount>
847
+ <allowspecific translate="label">
848
+ <label>allow specific countries</label>
849
+ <frontend_type>allowspecific</frontend_type>
850
+ <sort_order>140</sort_order>
851
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
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
+ </allowspecific>
856
+ <specificcountry translate="label">
857
+ <label>specific countries</label>
858
+ <frontend_type>multiselect</frontend_type>
859
+ <sort_order>150</sort_order>
860
+ <source_model>adminhtml/system_config_source_country</source_model>
861
+ <show_in_default>1</show_in_default>
862
+ <show_in_website>1</show_in_website>
863
+ <show_in_store>1</show_in_store>
864
+ </specificcountry>
865
+ </fields>
866
+ </hcdpal>
867
+ <!--
868
+ <hcdeps translate="label">
869
+ <label>Heidelpay EPS (hcd)</label>
870
+ <frontend_type>text</frontend_type>
871
+ <sort_order>150</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
+ <fields>
876
+ <title translate="label">
877
+ <label>Title</label>
878
+ <frontend_type>text</frontend_type>
879
+ <sort_order>10</sort_order>
880
+ <show_in_default>1</show_in_default>
881
+ <show_in_website>1</show_in_website>
882
+ <show_in_store>1</show_in_store>
883
+ </title>
884
+ <active translate="label">
885
+ <label>Enabled</label>
886
+ <frontend_type>select</frontend_type>
887
+ <source_model>adminhtml/system_config_source_yesno</source_model>
888
+ <sort_order>20</sort_order>
889
+ <show_in_default>1</show_in_default>
890
+ <show_in_website>1</show_in_website>
891
+ <show_in_store>1</show_in_store>
892
+ </active>
893
+ <channel translate="label">
894
+ <label>Channel ID</label>
895
+ <frontend_type>text</frontend_type>
896
+ <sort_order>40</sort_order>
897
+ <show_in_default>1</show_in_default>
898
+ <show_in_website>1</show_in_website>
899
+ <show_in_store>1</show_in_store>
900
+ </channel>
901
+ <invioce translate="label">
902
+ <label>Automatically invoiced</label>
903
+ <frontend_type>select</frontend_type>
904
+ <source_model>adminhtml/system_config_source_yesno</source_model>
905
+ <sort_order>70</sort_order>
906
+ <show_in_default>1</show_in_default>
907
+ <show_in_website>1</show_in_website>
908
+ <show_in_store>1</show_in_store>
909
+ </invioce>
910
+ <sort_order translate="label">
911
+ <label>Sort order</label>
912
+ <frontend_type>text</frontend_type>
913
+ <sort_order>110</sort_order>
914
+ <show_in_default>1</show_in_default>
915
+ <show_in_website>1</show_in_website>
916
+ <show_in_store>1</show_in_store>
917
+ </sort_order>
918
+ <min_amount translate="label">
919
+ <label>Minimum Amount (CENT)</label>
920
+ <frontend_type>text</frontend_type>
921
+ <sort_order>120</sort_order>
922
+ <show_in_default>1</show_in_default>
923
+ <show_in_website>1</show_in_website>
924
+ <show_in_store>1</show_in_store>
925
+ </min_amount>
926
+ <max_amount translate="label">
927
+ <label>Maximum Amount (CENT)</label>
928
+ <frontend_type>text</frontend_type>
929
+ <sort_order>130</sort_order>
930
+ <show_in_default>1</show_in_default>
931
+ <show_in_website>1</show_in_website>
932
+ <show_in_store>1</show_in_store>
933
+ </max_amount>
934
+ <allowspecific translate="label">
935
+ <label>allow specific countries</label>
936
+ <frontend_type>allowspecific</frontend_type>
937
+ <sort_order>140</sort_order>
938
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
939
+ <show_in_default>1</show_in_default>
940
+ <show_in_website>1</show_in_website>
941
+ <show_in_store>1</show_in_store>
942
+ </allowspecific>
943
+ <specificcountry translate="label">
944
+ <label>specific countries</label>
945
+ <frontend_type>multiselect</frontend_type>
946
+ <sort_order>150</sort_order>
947
+ <source_model>adminhtml/system_config_source_country</source_model>
948
+ <show_in_default>1</show_in_default>
949
+ <show_in_website>1</show_in_website>
950
+ <show_in_store>1</show_in_store>
951
+ </specificcountry>
952
+ </fields>
953
+ </hcdeps>
954
+ -->
955
+ <hcdide translate="label">
956
+ <label>Heidelpay iDeal (hcd)</label>
957
+ <frontend_type>text</frontend_type>
958
+ <sort_order>160</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
+ <fields>
963
+ <title translate="label">
964
+ <label>Title</label>
965
+ <frontend_type>text</frontend_type>
966
+ <sort_order>10</sort_order>
967
+ <show_in_default>1</show_in_default>
968
+ <show_in_website>1</show_in_website>
969
+ <show_in_store>1</show_in_store>
970
+ </title>
971
+ <active translate="label">
972
+ <label>Enabled</label>
973
+ <frontend_type>select</frontend_type>
974
+ <source_model>adminhtml/system_config_source_yesno</source_model>
975
+ <sort_order>20</sort_order>
976
+ <show_in_default>1</show_in_default>
977
+ <show_in_website>1</show_in_website>
978
+ <show_in_store>1</show_in_store>
979
+ </active>
980
+ <channel translate="label">
981
+ <label>Channel ID</label>
982
+ <frontend_type>text</frontend_type>
983
+ <sort_order>40</sort_order>
984
+ <show_in_default>1</show_in_default>
985
+ <show_in_website>1</show_in_website>
986
+ <show_in_store>1</show_in_store>
987
+ </channel>
988
+ <invioce translate="label">
989
+ <label>Automatically invoiced</label>
990
+ <frontend_type>select</frontend_type>
991
+ <source_model>adminhtml/system_config_source_yesno</source_model>
992
+ <sort_order>70</sort_order>
993
+ <show_in_default>1</show_in_default>
994
+ <show_in_website>1</show_in_website>
995
+ <show_in_store>1</show_in_store>
996
+ </invioce>
997
+ <sort_order translate="label">
998
+ <label>Sort order</label>
999
+ <frontend_type>text</frontend_type>
1000
+ <sort_order>110</sort_order>
1001
+ <show_in_default>1</show_in_default>
1002
+ <show_in_website>1</show_in_website>
1003
+ <show_in_store>1</show_in_store>
1004
+ </sort_order>
1005
+ <min_amount translate="label">
1006
+ <label>Minimum Amount (CENT)</label>
1007
+ <frontend_type>text</frontend_type>
1008
+ <sort_order>120</sort_order>
1009
+ <show_in_default>1</show_in_default>
1010
+ <show_in_website>1</show_in_website>
1011
+ <show_in_store>1</show_in_store>
1012
+ </min_amount>
1013
+ <max_amount translate="label">
1014
+ <label>Maximum Amount (CENT)</label>
1015
+ <frontend_type>text</frontend_type>
1016
+ <sort_order>130</sort_order>
1017
+ <show_in_default>1</show_in_default>
1018
+ <show_in_website>1</show_in_website>
1019
+ <show_in_store>1</show_in_store>
1020
+ </max_amount>
1021
+ <allowspecific translate="label">
1022
+ <label>allow specific countries</label>
1023
+ <frontend_type>allowspecific</frontend_type>
1024
+ <sort_order>140</sort_order>
1025
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1026
+ <show_in_default>1</show_in_default>
1027
+ <show_in_website>1</show_in_website>
1028
+ <show_in_store>1</show_in_store>
1029
+ </allowspecific>
1030
+ <specificcountry translate="label">
1031
+ <label>specific countries</label>
1032
+ <frontend_type>multiselect</frontend_type>
1033
+ <sort_order>150</sort_order>
1034
+ <source_model>adminhtml/system_config_source_country</source_model>
1035
+ <show_in_default>1</show_in_default>
1036
+ <show_in_website>1</show_in_website>
1037
+ <show_in_store>1</show_in_store>
1038
+ </specificcountry>
1039
+ </fields>
1040
+ </hcdide>
1041
+ <hcdpp translate="label">
1042
+ <label>Heidelpay Prepayment (hcd)</label>
1043
+ <frontend_type>text</frontend_type>
1044
+ <sort_order>100</sort_order>
1045
+ <show_in_default>1</show_in_default>
1046
+ <show_in_website>1</show_in_website>
1047
+ <show_in_store>1</show_in_store>
1048
+ <fields>
1049
+ <title translate="label">
1050
+ <label>Title</label>
1051
+ <frontend_type>text</frontend_type>
1052
+ <sort_order>10</sort_order>
1053
+ <show_in_default>1</show_in_default>
1054
+ <show_in_website>1</show_in_website>
1055
+ <show_in_store>1</show_in_store>
1056
+ </title>
1057
+ <active translate="label">
1058
+ <label>Enabled</label>
1059
+ <frontend_type>select</frontend_type>
1060
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1061
+ <sort_order>20</sort_order>
1062
+ <show_in_default>1</show_in_default>
1063
+ <show_in_website>1</show_in_website>
1064
+ <show_in_store>1</show_in_store>
1065
+ </active>
1066
+ <channel translate="label">
1067
+ <label>Channel ID</label>
1068
+ <frontend_type>text</frontend_type>
1069
+ <sort_order>40</sort_order>
1070
+ <show_in_default>1</show_in_default>
1071
+ <show_in_website>1</show_in_website>
1072
+ <show_in_store>1</show_in_store>
1073
+ </channel>
1074
+ <invioce translate="label">
1075
+ <label>Automatically invoiced</label>
1076
+ <frontend_type>select</frontend_type>
1077
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1078
+ <sort_order>70</sort_order>
1079
+ <show_in_default>1</show_in_default>
1080
+ <show_in_website>1</show_in_website>
1081
+ <show_in_store>1</show_in_store>
1082
+ </invioce>
1083
+ <sort_order translate="label">
1084
+ <label>Sort order</label>
1085
+ <frontend_type>text</frontend_type>
1086
+ <sort_order>110</sort_order>
1087
+ <show_in_default>1</show_in_default>
1088
+ <show_in_website>1</show_in_website>
1089
+ <show_in_store>1</show_in_store>
1090
+ </sort_order>
1091
+ <min_amount translate="label">
1092
+ <label>Minimum Amount (CENT)</label>
1093
+ <frontend_type>text</frontend_type>
1094
+ <sort_order>120</sort_order>
1095
+ <show_in_default>1</show_in_default>
1096
+ <show_in_website>1</show_in_website>
1097
+ <show_in_store>1</show_in_store>
1098
+ </min_amount>
1099
+ <max_amount translate="label">
1100
+ <label>Maximum Amount (CENT)</label>
1101
+ <frontend_type>text</frontend_type>
1102
+ <sort_order>130</sort_order>
1103
+ <show_in_default>1</show_in_default>
1104
+ <show_in_website>1</show_in_website>
1105
+ <show_in_store>1</show_in_store>
1106
+ </max_amount>
1107
+ <allowspecific translate="label">
1108
+ <label>allow specific countries</label>
1109
+ <frontend_type>allowspecific</frontend_type>
1110
+ <sort_order>140</sort_order>
1111
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1112
+ <show_in_default>1</show_in_default>
1113
+ <show_in_website>1</show_in_website>
1114
+ <show_in_store>1</show_in_store>
1115
+ </allowspecific>
1116
+ <specificcountry translate="label">
1117
+ <label>specific countries</label>
1118
+ <frontend_type>multiselect</frontend_type>
1119
+ <sort_order>150</sort_order>
1120
+ <source_model>adminhtml/system_config_source_country</source_model>
1121
+ <show_in_default>1</show_in_default>
1122
+ <show_in_website>1</show_in_website>
1123
+ <show_in_store>1</show_in_store>
1124
+ </specificcountry>
1125
+ </fields>
1126
+ </hcdpp>
1127
+ <hcdiv translate="label">
1128
+ <label>Heidelpay Invoice (hcd)</label>
1129
+ <frontend_type>text</frontend_type>
1130
+ <sort_order>110</sort_order>
1131
+ <show_in_default>1</show_in_default>
1132
+ <show_in_website>1</show_in_website>
1133
+ <show_in_store>1</show_in_store>
1134
+ <fields>
1135
+ <title translate="label">
1136
+ <label>Title</label>
1137
+ <frontend_type>text</frontend_type>
1138
+ <sort_order>10</sort_order>
1139
+ <show_in_default>1</show_in_default>
1140
+ <show_in_website>1</show_in_website>
1141
+ <show_in_store>1</show_in_store>
1142
+ </title>
1143
+ <active translate="label">
1144
+ <label>Enabled</label>
1145
+ <frontend_type>select</frontend_type>
1146
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1147
+ <sort_order>20</sort_order>
1148
+ <show_in_default>1</show_in_default>
1149
+ <show_in_website>1</show_in_website>
1150
+ <show_in_store>1</show_in_store>
1151
+ </active>
1152
+ <channel translate="label">
1153
+ <label>Channel ID</label>
1154
+ <frontend_type>text</frontend_type>
1155
+ <sort_order>40</sort_order>
1156
+ <show_in_default>1</show_in_default>
1157
+ <show_in_website>1</show_in_website>
1158
+ <show_in_store>1</show_in_store>
1159
+ </channel>
1160
+ <invioce translate="label">
1161
+ <label>Automatically invoiced</label>
1162
+ <frontend_type>select</frontend_type>
1163
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1164
+ <sort_order>70</sort_order>
1165
+ <show_in_default>1</show_in_default>
1166
+ <show_in_website>1</show_in_website>
1167
+ <show_in_store>1</show_in_store>
1168
+ </invioce>
1169
+ <sort_order translate="label">
1170
+ <label>Sort order</label>
1171
+ <frontend_type>text</frontend_type>
1172
+ <sort_order>110</sort_order>
1173
+ <show_in_default>1</show_in_default>
1174
+ <show_in_website>1</show_in_website>
1175
+ <show_in_store>1</show_in_store>
1176
+ </sort_order>
1177
+ <min_amount translate="label">
1178
+ <label>Minimum Amount (CENT)</label>
1179
+ <frontend_type>text</frontend_type>
1180
+ <sort_order>120</sort_order>
1181
+ <show_in_default>1</show_in_default>
1182
+ <show_in_website>1</show_in_website>
1183
+ <show_in_store>1</show_in_store>
1184
+ </min_amount>
1185
+ <max_amount translate="label">
1186
+ <label>Maximum Amount (CENT)</label>
1187
+ <frontend_type>text</frontend_type>
1188
+ <sort_order>130</sort_order>
1189
+ <show_in_default>1</show_in_default>
1190
+ <show_in_website>1</show_in_website>
1191
+ <show_in_store>1</show_in_store>
1192
+ </max_amount>
1193
+ <allowspecific translate="label">
1194
+ <label>allow specific countries</label>
1195
+ <frontend_type>allowspecific</frontend_type>
1196
+ <sort_order>140</sort_order>
1197
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1198
+ <show_in_default>1</show_in_default>
1199
+ <show_in_website>1</show_in_website>
1200
+ <show_in_store>1</show_in_store>
1201
+ </allowspecific>
1202
+ <specificcountry translate="label">
1203
+ <label>specific countries</label>
1204
+ <frontend_type>multiselect</frontend_type>
1205
+ <sort_order>150</sort_order>
1206
+ <source_model>adminhtml/system_config_source_country</source_model>
1207
+ <show_in_default>1</show_in_default>
1208
+ <show_in_website>1</show_in_website>
1209
+ <show_in_store>1</show_in_store>
1210
+ </specificcountry>
1211
+ </fields>
1212
+ </hcdiv>
1213
+ <hcdpf translate="label">
1214
+ <label>Heidelpay Postfinance (hcd)</label>
1215
+ <frontend_type>text</frontend_type>
1216
+ <sort_order>140</sort_order>
1217
+ <show_in_default>1</show_in_default>
1218
+ <show_in_website>1</show_in_website>
1219
+ <show_in_store>1</show_in_store>
1220
+ <fields>
1221
+ <title translate="label">
1222
+ <label>Title</label>
1223
+ <frontend_type>text</frontend_type>
1224
+ <sort_order>10</sort_order>
1225
+ <show_in_default>1</show_in_default>
1226
+ <show_in_website>1</show_in_website>
1227
+ <show_in_store>1</show_in_store>
1228
+ </title>
1229
+ <active translate="label">
1230
+ <label>Enabled</label>
1231
+ <frontend_type>select</frontend_type>
1232
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1233
+ <sort_order>20</sort_order>
1234
+ <show_in_default>1</show_in_default>
1235
+ <show_in_website>1</show_in_website>
1236
+ <show_in_store>1</show_in_store>
1237
+ </active>
1238
+ <channel translate="label">
1239
+ <label>Channel ID</label>
1240
+ <frontend_type>text</frontend_type>
1241
+ <sort_order>40</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
+ </channel>
1246
+ <invioce translate="label">
1247
+ <label>Automatically invoiced</label>
1248
+ <frontend_type>select</frontend_type>
1249
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1250
+ <sort_order>70</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
+ </invioce>
1255
+ <sort_order translate="label">
1256
+ <label>Sort order</label>
1257
+ <frontend_type>text</frontend_type>
1258
+ <sort_order>110</sort_order>
1259
+ <show_in_default>1</show_in_default>
1260
+ <show_in_website>1</show_in_website>
1261
+ <show_in_store>1</show_in_store>
1262
+ </sort_order>
1263
+ <min_amount translate="label">
1264
+ <label>Minimum Amount (CENT)</label>
1265
+ <frontend_type>text</frontend_type>
1266
+ <sort_order>120</sort_order>
1267
+ <show_in_default>1</show_in_default>
1268
+ <show_in_website>1</show_in_website>
1269
+ <show_in_store>1</show_in_store>
1270
+ </min_amount>
1271
+ <max_amount translate="label">
1272
+ <label>Maximum Amount (CENT)</label>
1273
+ <frontend_type>text</frontend_type>
1274
+ <sort_order>130</sort_order>
1275
+ <show_in_default>1</show_in_default>
1276
+ <show_in_website>1</show_in_website>
1277
+ <show_in_store>1</show_in_store>
1278
+ </max_amount>
1279
+ <allowspecific translate="label">
1280
+ <label>allow specific countries</label>
1281
+ <frontend_type>allowspecific</frontend_type>
1282
+ <sort_order>140</sort_order>
1283
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1284
+ <show_in_default>1</show_in_default>
1285
+ <show_in_website>1</show_in_website>
1286
+ <show_in_store>1</show_in_store>
1287
+ </allowspecific>
1288
+ <specificcountry translate="label">
1289
+ <label>specific countries</label>
1290
+ <frontend_type>multiselect</frontend_type>
1291
+ <sort_order>150</sort_order>
1292
+ <source_model>adminhtml/system_config_source_country</source_model>
1293
+ <show_in_default>1</show_in_default>
1294
+ <show_in_website>1</show_in_website>
1295
+ <show_in_store>1</show_in_store>
1296
+ </specificcountry>
1297
+ </fields>
1298
+ </hcdpf>
1299
+ </groups>
1300
+ </payment>
1301
+ </sections>
1302
+ </config>
app/code/community/HeidelpayCD/Edition/sql/hcd_setup/install-15.1.30.php ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Heidelpay
4
+ * @package Heidelpay CD-Editon
5
+ * @author Jens Richter
6
+ * @copyright Copyright (c) 2014 Heidelberger Payment GmbH
7
+ */
8
+
9
+ $installer = $this;
10
+ $installer->startSetup();
11
+
12
+
13
+
14
+
15
+
16
+ /**
17
+ * create transactions table
18
+ */
19
+ $tablerealname = 'hcd/transaction';
20
+ $tablename = $installer->getTable($tablerealname);
21
+ if ($installer->getConnection()->isTableExists($tablename) != true) {
22
+
23
+ $table = $installer->getConnection()
24
+ ->newTable($tablename)
25
+ ->addColumn('id', Varien_Db_Ddl_Table::TYPE_INTEGER, NULL,
26
+ array(
27
+ 'unsigned' => true,
28
+ 'nullable' => false,
29
+ 'primary' => true,
30
+ 'identity' => true,
31
+ 'auto_increment' => true
32
+ )
33
+ )
34
+ ->addColumn('payment_methode', Varien_Db_Ddl_Table::TYPE_VARCHAR, 2,
35
+ array(
36
+ 'nullable' => false)
37
+ )
38
+ ->addColumn('payment_type', Varien_Db_Ddl_Table::TYPE_VARCHAR, 2,
39
+ array(
40
+ 'nullable' => false
41
+ )
42
+ )
43
+ ->addColumn('transactionid', Varien_Db_Ddl_Table::TYPE_VARCHAR, 50,
44
+ array(
45
+ 'nullable' => false,
46
+ 'COMMENT' => "normaly the order or basketId"
47
+ )
48
+ )
49
+ ->addColumn('uniqeid', Varien_Db_Ddl_Table::TYPE_VARCHAR, 32,
50
+ array(
51
+ 'nullable' => false,
52
+ 'COMMENT' => "heidelpay uniqe identification number"
53
+ )
54
+ )
55
+ ->addColumn('shortid', Varien_Db_Ddl_Table::TYPE_VARCHAR, 14,
56
+ array(
57
+ 'nullable' => false,
58
+ 'COMMENT' => "heidelpay sort identification number"
59
+ )
60
+ )
61
+ ->addColumn('result', Varien_Db_Ddl_Table::TYPE_VARCHAR, 3,
62
+ array(
63
+ 'nullable' => false,
64
+ 'COMMENT' => "heidelpay processing result"
65
+ )
66
+ )
67
+ ->addColumn('statuscode', Varien_Db_Ddl_Table::TYPE_SMALLINT, NULL,
68
+ array(
69
+ 'unsigned' => true,
70
+ 'nullable' => false,
71
+ 'COMMENT' => "heidelpay processing status code"
72
+ )
73
+ )
74
+ ->addColumn('return', Varien_Db_Ddl_Table::TYPE_VARCHAR, 100,
75
+ array(
76
+ 'nullable' => false,
77
+ 'COMMENT' => "heidelpay processing return message"
78
+ )
79
+ )
80
+ ->addColumn('returncode', Varien_Db_Ddl_Table::TYPE_VARCHAR, 12,
81
+ array(
82
+ 'nullable' => false,
83
+ 'COMMENT' => "heidelpay processing return code"
84
+ )
85
+ )
86
+ ->addColumn('jsonresponse', Varien_Db_Ddl_Table::TYPE_BLOB, NULL,
87
+ array(
88
+ 'nullable' => false,
89
+ 'COMMENT' => "heidelpay response as json"
90
+ )
91
+ )
92
+ ->addColumn('datetime', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, NULL,
93
+ array(
94
+ 'nullable' => false,
95
+ 'COMMENT' => "create date"
96
+ )
97
+ )
98
+ ->addColumn('source', Varien_Db_Ddl_Table::TYPE_VARCHAR, 100,
99
+ array(
100
+ 'nullable' => false,
101
+ 'COMMENT' => "heidelpay processing return message"
102
+ )
103
+ )
104
+ ->addIndex($installer->getIdxName($tablerealname, array('uniqeid')), array('uniqeid'))
105
+ ->addIndex($installer->getIdxName($tablerealname, array('transactionid')), array('transactionid'))
106
+ ->addIndex($installer->getIdxName($tablerealname, array('returncode')), array('returncode'))
107
+ ->addIndex($installer->getIdxName($tablerealname, array('source')), array('source'))
108
+ ;
109
+ $installer->getConnection()->createTable($table);
110
+ }
111
+
112
+ /**
113
+ * create customer data table
114
+ */
115
+ $tablerealname = 'hcd/customer';
116
+ $tablename = $installer->getTable($tablerealname);
117
+ if ($installer->getConnection()->isTableExists($tablename) != true) {
118
+
119
+ $table = $installer->getConnection()
120
+ ->newTable($tablename)
121
+ ->addColumn('id', Varien_Db_Ddl_Table::TYPE_INTEGER, NULL,
122
+ array(
123
+ 'unsigned' => true,
124
+ 'nullable' => false,
125
+ 'primary' => true,
126
+ 'identity' => true,
127
+ 'auto_increment' => true
128
+ )
129
+ )
130
+ ->addColumn('paymentmethode', Varien_Db_Ddl_Table::TYPE_VARCHAR, 10,
131
+ array(
132
+ 'nullable' => false)
133
+ )
134
+ ->addColumn('uniqeid', Varien_Db_Ddl_Table::TYPE_VARCHAR, 50,
135
+ array(
136
+ 'nullable' => false,
137
+ 'COMMENT' => "Heidelpay transaction identifier"
138
+ )
139
+ )
140
+ ->addColumn('customerid', Varien_Db_Ddl_Table::TYPE_INTEGER, NULL,
141
+ array(
142
+ 'unsigned' => true,
143
+ 'nullable' => false,
144
+ 'COMMENT' => "magento customer id"
145
+ )
146
+ )
147
+ ->addColumn('storeid', Varien_Db_Ddl_Table::TYPE_INTEGER, NULL,
148
+ array(
149
+ 'unsigned' => true,
150
+ 'nullable' => false,
151
+ 'COMMENT' => "magento store id"
152
+ )
153
+ )
154
+ ->addColumn('payment_data', Varien_Db_Ddl_Table::TYPE_BLOB, NULL,
155
+ array(
156
+ 'nullable' => false,
157
+ 'COMMENT' => "custumer payment data"
158
+ )
159
+ )
160
+ ->addIndex($installer->getIdxName($tablerealname, array('uniqeid')), array('uniqeid'))
161
+ ->addIndex($installer->getIdxName($tablerealname, array('customerid')), array('customerid'))
162
+ ->addIndex($installer->getIdxName($tablerealname, array('storeid')), array('storeid'))
163
+ ->addIndex($installer->getIdxName($tablerealname, array('paymentmethode')), array('paymentmethode'))
164
+ ;
165
+ $installer->getConnection()->createTable($table);
166
+ }
167
+
168
+
169
+
170
+ $installer->endSetup();
app/design/frontend/base/default/layout/hcd.xml ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout>
3
+ <checkout_onepage_index>
4
+ <reference name="head">
5
+ <action method="addCss"><name>css/heidelpaycd.css</name></action>
6
+ <action method="addJS"><name>hcd/heidelpaycd.js</name></action>
7
+ </reference>
8
+ </checkout_onepage_index>
9
+ <checkout_onepage_success>
10
+ <reference name="head">
11
+ <action method="addCss"><name>css/heidelpaycd.css</name></action>
12
+ </reference>
13
+ <reference name="content">
14
+
15
+ <block type="hcd/success" name="hcd_success" template="hcd/success.phtml" after="checkout.success" />
16
+ </reference>
17
+ </checkout_onepage_success>
18
+ <hcd_index_index>
19
+ <remove name="right"/>
20
+ <remove name="left"/>
21
+
22
+ <reference name="content">
23
+ <block type="hcd/index" name="hcd_index" template="hcd/index.phtml"/>
24
+ </reference>
25
+
26
+ </hcd_index_index>
27
+ </layout>
app/design/frontend/base/default/template/hcd/form/creditcard.phtml ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $data = array();
3
+ $userData = array();
4
+ $payment = '';
5
+
6
+ $_code=$this->getMethodCode();
7
+ $payment = $this->getMethod() ;
8
+
9
+ $path = "payment/".$_code."/";
10
+ $storeId = Mage::app()->getStore()->getId();
11
+ $recognation = Mage::getStoreConfig($path.'recognition', $storeId);
12
+ ?>
13
+ <div class="form-list hcd-payment-info" id="payment_form_<?php echo $_code ?>" style="display: none;">
14
+
15
+ <?php
16
+
17
+ if ( $recognation == 1 ) { // only if shipping address is unchanged
18
+ $hash = $this->getMethod()->getShippingHash();
19
+ $userData = $this->getMethod()->getCustomerData();
20
+ if (isset($userData['payment_data'])) {
21
+ if ( $userData['payment_data']['SHIPPPING_HASH'] != $hash)
22
+ $userData = array();
23
+ }
24
+ } elseif ($recognation == 2 ) // allways
25
+ $userData = $this->getMethod()->getCustomerData();
26
+
27
+
28
+ if ($recognation != 0) { $data = $payment->getHeidelpayUrl(true);
29
+ if ($data['PROCESSING_RESULT'] == 'NOK') $userData = array();
30
+ }
31
+
32
+ ?>
33
+ <label class="hcd-singleline-label" <?php echo (isset($userData['payment_data'])) ? '': 'style="display: none"'; ?>><?php if (isset($userData['payment_data'])) echo str_replace('%CARD%',$userData['payment_data']['ACCOUNT_NUMBER'],$this->__('You have used the card %CARD% befor, would you like to use this again?')) ?></label>
34
+ <div class="input-box" <?php echo (isset($userData['payment_data'])) ? '': 'style="display: none"'; ?>>
35
+ <input type="radio" onClick="Heidelpay.toggle.getInstance().hpform('<?php echo $_code ?>','false')" class="radio hcd-use_again" id="<?php echo $_code ?>_use_again" name="<?php echo $_code ?>_use_again" value="0" <?php echo (isset($userData['payment_data']) or $recognation == 0) ? 'checked' : ''; ?>><?php echo $this->__('Yes') ?>
36
+ <input type="radio" onClick="Heidelpay.toggle.getInstance().hpform('<?php echo $_code ?>','true')" class="radio hcd-use_again" id="<?php echo $_code ?>_use_again" name="<?php echo $_code ?>_use_again" value="1" <?php echo (empty($userData['payment_data']) and $recognation > 0) ? 'checked' : ''; ?>><?php echo $this->__('No') ?>
37
+ </div>
38
+
39
+ <?php
40
+ if ($recognation != 0 and $data['PROCESSING_RESULT'] == 'NOK') {
41
+ echo '<div class="hcd-payment-desc hcd-payment-error">'.Mage::helper('hcd/payment')->handleError($data['PROCESSING_RETURN']).'</div>';
42
+ } else {
43
+
44
+ if ($recognation != 0) {
45
+
46
+ ?>
47
+ <div id="<?php echo $_code ?>_hpform" <?php echo (isset($userData['payment_data']['ACCOUNT_NUMBER'])) ? 'style="display: none"': ''; ?>>
48
+ <input type="hidden" name="<?php echo $_code ?>_URL" id="<?php echo $_code ?>_URL" value="<?php echo $data['FRONTEND_REDIRECT_URL'] ?>"/>
49
+ <label class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Card brand') ?></label>
50
+ <div class="input-box">
51
+ <select class="input-text <?php echo $_code ?>_ACCOUNT_BRAND" id="cardBrand" style="width: 250px">
52
+ <?php
53
+ foreach (json_decode($data['CONFIG_BRANDS'], true) AS $value => $brand) {
54
+ echo '<option value='.$value.' >'.$brand.'</option>' ;
55
+ }
56
+ ?>
57
+ </select>
58
+ </div>
59
+
60
+
61
+
62
+ <label class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Card number') ?></label>
63
+ <div class="input-box">
64
+ <input type="text" class="input-text <?php echo $_code ?>_ACCOUNT_NUMBER required-entry" value="<?php echo (isset($userData['payment_data']['ACCOUNT_NUMBER'])) ? '*****' : ''; ?>" id="cardNumber" />
65
+ </div>
66
+ <label class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Card holder') ?></label>
67
+ <div class="input-box">
68
+ <input type="text" class="input-text <?php echo $_code ?>_ACCOUNT_HOLDER required-entry" id="cardHolder" value="<?php echo $data['NAME_GIVEN'].' '.$data['NAME_FAMILY'] ;?>" /><br />
69
+ </div>
70
+ <label class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Card expiry') ?></label>
71
+ <div class="input-box">
72
+
73
+ <select class="input-text <?php echo $_code ?>_ACCOUNT_EXPIRY_MONTH" id="accountExpiryMonth" style="width: 150px" >
74
+ <option><?php echo $this->__('month') ?></option>
75
+ <?php for ($i = 1; $i <=12 ; $i++ ) {
76
+ echo '<option value="'.$i.'">'.$i.'</option>';
77
+ }
78
+ ?>
79
+ </select>
80
+ <select class="input-text <?php echo $_code ?>_ACCOUNT_EXPIRY_YEAR" id="accountExpiryYear" style="width: 150px">
81
+ <option><?php echo $this->__('year') ?></option>
82
+ <?php $year = date('Y');
83
+ $to = $year + 10;
84
+ for ($k = $year; $k <=$to; $k++ ) {
85
+ echo '<option value="'.$k.'">'.$k.'</option>';
86
+ }
87
+ ?>
88
+ </select>
89
+ </div>
90
+ <label class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Verification number') ?></label>
91
+ <div class="input-box">
92
+ <input type="text" class="input-text <?php echo $_code ?>_ACCOUNT_VERIFICATION required-entry" id="verification" value="<?php echo (isset($userData['payment_data']['ACCOUNT_NUMBER'])) ? '*****' : ''; ?>"/>
93
+ </div>
94
+ </div>
95
+
96
+ <?php } ?>
97
+ <div class="hcd-payment-desc">
98
+ <?php echo $this->__('Desc'.$_code);?>
99
+ </div>
100
+ <?php } ?>
101
+ </div>
app/design/frontend/base/default/template/hcd/form/debit.phtml ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $_code=$this->getMethodCode();
2
+
3
+ $path = "payment/".$_code."/";
4
+ $storeId = Mage::app()->getStore()->getId();
5
+ $recognation = Mage::getStoreConfig($path.'recognition', $storeId);
6
+ /*
7
+ * Look for customer recognation
8
+ */
9
+
10
+ $hash = $this->getMethod()->getShippingHash();
11
+ $userData = array();
12
+
13
+
14
+ if ( $recognation == 1 ) { // only if shipping address is unchanged
15
+ $hash = $this->getMethod()->getShippingHash();
16
+ $userData = $this->getMethod()->getCustomerData();
17
+ if (array_key_exists('payment_data', $userData)) {
18
+ if ( $userData['payment_data']['SHIPPPING_HASH'] != $hash)
19
+ $userData = array();
20
+ }
21
+ } elseif ($recognation == 2 ) // allways
22
+ $userData = $this->getMethod()->getCustomerData();
23
+
24
+ ?>
25
+
26
+ <div class="form-list hcd-payment-info" id="payment_form_<?php echo $_code ?>" style="display: none;">
27
+ <div class="input-box">
28
+ <label for="<?php echo $_code ?>_holder" class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Owner') ?></label>
29
+
30
+ <input type="text" title="<?php echo $this->__('Owner:') ?>" class="input-text required-entry" id="<?php echo $_code ?>_holder" name="payment[<?php echo $_code ?>_holder]" value="<?php echo $this->htmlEscape((isset( $userData['payment_data']['ACCOUNT.HOLDER'])) ? $userData['payment_data']['ACCOUNT.HOLDER'] :$this->getMethod()->getCustomerName()) ?>" />
31
+ </div>
32
+ <div class="input-box" >
33
+ <label for="<?php echo $_code ?>_iban" class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Account number or iban') ?></label>
34
+
35
+ <input type="text" title="<?php echo $this->__('Account number or iban') ?>" class="input-text required-entry validate-alphanum" id="<?php echo $_code ?>_iban" name="payment[<?php echo $_code ?>_iban]" value="<?php if (isset($userData['payment_data']['ACCOUNT.IBAN'])) echo $this->htmlEscape($userData['payment_data']['ACCOUNT.IBAN']) ; if (isset($userData['payment_data']['ACCOUNT.NUMBER'])) echo $this->htmlEscape($userData['payment_data']['ACCOUNT.NUMBER']) ; ?>" size="25">
36
+ </div>
37
+ <div class="input-box">
38
+ <label for="<?php echo $_code ?>_bic" class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Bank code or bic') ?></label>
39
+ <input type="text" title="<?php echo $this->__('Bank code or bic:') ?>" class="input-text required-entry validate-alphanum" id="<?php echo $_code ?>_bic" name="payment[<?php echo $_code ?>_bic]" value="<?php if (isset($userData['payment_data']['ACCOUNT.BIC'])) echo $this->htmlEscape($userData['payment_data']['ACCOUNT.BIC']) ; if (isset($userData['payment_data']['ACCOUNT.BANK'])) echo $this->htmlEscape($userData['payment_data']['ACCOUNT.BANK']) ; ?>" size="25"/>
40
+ </div>
41
+ <div class="hcd-payment-desc">
42
+ <?php echo $this->__('Desc'.$_code);?>
43
+ </div>
44
+
45
+ </div>
app/design/frontend/base/default/template/hcd/form/desconly.phtml ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php $_code=$this->getMethodCode() ?>
2
+ <div class="form-list hcd-payment-info" id="payment_form_<?php echo $_code ?>" style="display: none;">
3
+ <div class="hcd-payment-desc">
4
+ <?php echo $this->__('Desc'.$_code); ?>
5
+ </div>
6
+ </div>
app/design/frontend/base/default/template/hcd/form/eps.phtml ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $payment = '';
3
+
4
+ $_code=$this->getMethodCode();
5
+ $payment = $this->getMethod() ;
6
+
7
+ $data = $payment->getHeidelpayUrl(true);
8
+ if ($data['PROCESSING_RESULT'] == 'NOK') $userData = array();
9
+
10
+ ?>
11
+
12
+ <div class="form-list hcd-payment-info" id="payment_form_<?php echo $_code ?>" style="display: none;">
13
+ <?php //echo '<pre>Data'.print_r($data,1).'</pre>';
14
+ if ($data['PROCESSING_RESULT'] == 'NOK') {
15
+ echo '<div class="hcd-payment-desc hcd-payment-error">'.Mage::helper('hcd/payment')->handleError($data['PROCESSING_RETURN']).'</div>';
16
+ } else {
17
+
18
+ ?>
19
+ <label class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Bank') ?></label>
20
+ <div class="input-box">
21
+ <select class="input-text required-entry" name="payment[<?php echo $_code ?>_bank]">
22
+ <?php
23
+ foreach (json_decode($data['CONFIG_BRANDS'], true) AS $value => $brand) {
24
+ echo '<option value='.$value.' >'.$brand.'</option>' ;
25
+ }
26
+ ?>
27
+ </select>
28
+ </div>
29
+ <div class="input-box">
30
+ <label for="<?php echo $_code ?>_holder" class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Owner') ?></label>
31
+
32
+ <input type="text" title="<?php echo $this->__('Owner:') ?>" class="input-text required-entry" id="<?php echo $_code ?>_holder" name="payment[<?php echo $_code ?>_holder]" value="<?php echo $this->htmlEscape($this->getMethod()->getCustomerName()) ?>" />
33
+ </div>
34
+ <div class="hcd-payment-desc">
35
+ <?php echo $this->__('Desc'.$_code);?>
36
+ </div>
37
+ <?php } ?>
38
+ </div>
app/design/frontend/base/default/template/hcd/form/giropay.phtml ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $_code=$this->getMethodCode();
2
+
3
+ $path = "payment/".$_code."/";
4
+ $storeId = Mage::app()->getStore()->getId();
5
+ $recognation = Mage::getStoreConfig($path.'recognition', $storeId);
6
+ /*
7
+ * Look for customer recognation
8
+ */
9
+
10
+ $hash = $this->getMethod()->getShippingHash();
11
+ $userData = array();
12
+
13
+
14
+ if ( $recognation == 1 ) { // only if shipping address is unchanged
15
+ $hash = $this->getMethod()->getShippingHash();
16
+ $userData = $this->getMethod()->getCustomerData();
17
+ if (array_key_exists('payment_data', $userData)) {
18
+ if ( $userData['payment_data']['SHIPPPING_HASH'] != $hash)
19
+ $userData = array();
20
+ }
21
+ } elseif ($recognation == 2 ) // allways
22
+ $userData = $this->getMethod()->getCustomerData();
23
+
24
+ ?>
25
+
26
+ <div class="form-list hcd-payment-info" id="payment_form_<?php echo $_code ?>" style="display: none;">
27
+ <div class="input-box">
28
+ <label for="<?php echo $_code ?>_holder" class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Owner') ?></label>
29
+
30
+ <input type="text" title="<?php echo $this->__('Owner:') ?>" class="input-text required-entry" id="<?php echo $_code ?>_holder" name="payment[<?php echo $_code ?>_holder]" value="<?php echo $this->htmlEscape((isset( $userData['payment_data']['ACCOUNT.HOLDER'])) ? $userData['payment_data']['ACCOUNT.HOLDER'] :$this->getMethod()->getCustomerName()) ?>" />
31
+ </div>
32
+ <div class="input-box" >
33
+ <label for="<?php echo $_code ?>_iban" class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Account number or iban') ?></label>
34
+
35
+ <input type="text" title="<?php echo $this->__('Account number or iban') ?>" class="input-text required-entry validate-alphanum" id="<?php echo $_code ?>_iban" name="payment[<?php echo $_code ?>_iban]" value="<?php if (isset($userData['payment_data']['ACCOUNT.IBAN'])) echo $this->htmlEscape($userData['payment_data']['ACCOUNT.IBAN']) ; if (isset($userData['payment_data']['ACCOUNT.NUMBER'])) echo $this->htmlEscape($userData['payment_data']['ACCOUNT.NUMBER']) ; ?>" size="25">
36
+ </div>
37
+ <div class="input-box">
38
+ <label for="<?php echo $_code ?>_bic" class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Bank code or bic') ?></label>
39
+ <input type="text" title="<?php echo $this->__('Bank code or bic:') ?>" class="input-text required-entry validate-alphanum" id="<?php echo $_code ?>_bic" name="payment[<?php echo $_code ?>_bic]" value="<?php if (isset($userData['payment_data']['ACCOUNT.BIC'])) echo $this->htmlEscape($userData['payment_data']['ACCOUNT.BIC']) ; if (isset($userData['payment_data']['ACCOUNT.BANK'])) echo $this->htmlEscape($userData['payment_data']['ACCOUNT.BANK']) ; ?>" size="25"/>
40
+ </div>
41
+ <div class="hcd-payment-desc">
42
+ <?php echo $this->__('Desc'.$_code);?>
43
+ </div>
44
+
45
+ </div>
app/design/frontend/base/default/template/hcd/form/ideal.phtml ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $payment = '';
3
+
4
+ $_code=$this->getMethodCode();
5
+ $payment = $this->getMethod() ;
6
+
7
+ $data = $payment->getHeidelpayUrl(true);
8
+ if ($data['PROCESSING_RESULT'] == 'NOK') $userData = array();
9
+
10
+ ?>
11
+
12
+ <div class="form-list hcd-payment-info" id="payment_form_<?php echo $_code ?>" style="display: none;">
13
+ <?php //echo '<pre>Data'.print_r($data,1).'</pre>';
14
+ if ($data['PROCESSING_RESULT'] == 'NOK') {
15
+ echo '<div class="hcd-payment-desc hcd-payment-error">'.Mage::helper('hcd/payment')->handleError($data['PROCESSING_RETURN']).'</div>';
16
+ } else {
17
+
18
+ ?>
19
+ <label class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Bank') ?></label>
20
+ <div class="input-box">
21
+ <select class="input-text required-entry" name="payment[<?php echo $_code ?>_bank]">
22
+ <?php
23
+ foreach (json_decode($data['CONFIG_BRANDS'], true) AS $value => $brand) {
24
+ echo '<option value='.$value.' >'.$brand.'</option>' ;
25
+ }
26
+ ?>
27
+ </select>
28
+ </div>
29
+ <div class="input-box">
30
+ <label for="<?php echo $_code ?>_holder" class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Owner') ?></label>
31
+
32
+ <input type="text" title="<?php echo $this->__('Owner:') ?>" class="input-text required-entry" id="<?php echo $_code ?>_holder" name="payment[<?php echo $_code ?>_holder]" value="<?php echo $this->htmlEscape($this->getMethod()->getCustomerName()) ?>" />
33
+ </div>
34
+ <div class="hcd-payment-desc">
35
+ <?php echo $this->__('Desc'.$_code);?>
36
+ </div>
37
+ <?php } ?>
38
+ </div>
app/design/frontend/base/default/template/hcd/form/postfinance.phtml ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $_code=$this->getMethodCode() ?>
2
+ <div class="form-list hcd-payment-info" id="payment_form_<?php echo $_code ?>" style="display: none;">
3
+ <div class="input-box">
4
+ <input id="<?php echo $_code ?>_pf" class="radio" name="payment[<?php echo $_code ?>_pf]" value="PFEFINANCE" autocomplete="off" type="radio"></input>
5
+ <label class="hco-inline-label">Post Finance E-Finance</label>
6
+ </div>
7
+ <div class="input-box">
8
+ <input id="<?php echo $_code ?>_pf" class="radio" name="payment[<?php echo $_code ?>_pf]" value="PFCARD" autocomplete="off" type="radio"></input>
9
+ <label class="hco-inline-label">Post Finance Card</label>
10
+ <br style="clean:both;">
11
+ </div>
12
+ <div>
13
+ <div class="hcd-payment-desc">
14
+ <?php echo $this->__('Deschcdpf');?>
15
+ </div>
16
+
17
+ </div>
app/design/frontend/base/default/template/hcd/index.phtml ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="block block-list block-compare">
2
+ <div class="block-title"><strong><span><?php echo $this->__('Please confirm your payment:')?></span></strong></div>
3
+ <div style="margin: 10px" class="block-hcd-payment ">
4
+ <?php if ($this->getHcdUrl() !== false) { ?>
5
+ <form method="post" action="<?php echo trim($this->getHcdUrl()) ?>" id="hcd" autocomplete="off">
6
+ <p>
7
+ <?php /* Only for creditcard and debitcard */
8
+
9
+ if ($this->getHcdCode() == "hcdcc" or
10
+ $this->getHcdCode() == "hcddc") {
11
+ ?>
12
+ <span class="input-box">
13
+ <label class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Card brand') ?></label><br />
14
+ <select id="cardBrand" class="input-text validate-select" name="ACCOUNT.BRAND">
15
+ <?php
16
+ foreach (json_decode($this->getHcdBrands(), true) AS $value => $brand)
17
+ echo '<option value='.$value.' >'.$brand.'</option>' ;
18
+ ?>
19
+ </select><br />
20
+ </span>
21
+ <span class="input-box">
22
+
23
+ <label class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Card number') ?></label><br />
24
+ <input type="text" class="input-text required-entry" value="" id="cardNumber" name="ACCOUNT.NUMBER"><br />
25
+ </span>
26
+ <span class="input-box">
27
+ <label class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Card holder') ?></label><br />
28
+ <input type="input" class="input-text required-entry" value="<?php echo $this->htmlEscape($this->getHcdHolder()) ?>" id="cardHolder" name="ACCOUNT.HOLDER"><br />
29
+ </span>
30
+ <span class="input-box">
31
+ <label class="required hcd-singleline-label"><em>*</em><?php echo $this->__('Card expiry') ?></label><br />
32
+ <select class="input-text validate-select" name="ACCOUNT.EXPIRY_MONTH">
33
+ <option><?php echo $this->__('month') ?></option>
34
+ <?php for ($i = 1; $i <=12 ; $i++ )
35
+ echo '<option>'.$i.'</option>';
36
+ ?>
37
+ </select>
38
+ <select class="input-text validate-select" name="ACCOUNT.EXPIRY_YEAR">
39
+ <option><?php echo $this->__('year') ?></option>
40
+ <?php $year = date('Y');
41
+ $to = $year + 10 ;
42
+ echo $year . ' ' .$to ;
43
+ for ($k = $year; $k <=$to; $k++ )
44
+ echo '<option>'.$k.'</option>';
45
+ ?>
46
+ </select><br />
47
+ </span>
48
+ <span class="input-box">
49
+ <label><?php echo $this->__('Verification number') ?></label><br />
50
+ <input type="text" class="input-text validate-cc-cvn" value="" id="verification" name="ACCOUNT.VERIFICATION" style="width: 150px"><br />
51
+ </span>
52
+ <?php }; /* end creditcard and debitcard */ ?>
53
+ <br /><br />
54
+ <button id="button_hcd" class="button" title="<?php echo $this->__('pay now') ?>" type="submit">
55
+ <span>
56
+ <span><?php echo $this->__('pay now') ?></span>
57
+ </span>
58
+ </button>
59
+ </p>
60
+ </form>
61
+ <script type="text/javascript">
62
+ //< ![CDATA[
63
+ var customForm = new VarienForm('hcd');
64
+ //]]>
65
+ </script>
66
+ <?php }; ?>
67
+ </div>
68
+ </div>
app/design/frontend/base/default/template/hcd/success.phtml ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $paymentInfo = false;
3
+ $paymentInfo = $this->showPaymentInfo();
4
+ if ($paymentInfo !== false) {
5
+ ?>
6
+ <!-- Heidelpay success payment informations -->
7
+ <div class="block block-list block-compare">
8
+ <div class="block-title">
9
+ <strong>
10
+ <span>
11
+ <?php
12
+ echo $this->__('payment informations');
13
+ echo $paymentInfo['Title'];
14
+ ?>
15
+ </span>
16
+ </strong>
17
+ </div>
18
+ <div class="block-hcd-payment-info">
19
+ <?php echo $paymentInfo['Message'] ?>
20
+ </div>
21
+ </div>
22
+ <!-- End Heidelpay success payment informations -->
23
+ <?php } ?>
app/etc/modules/HeidelpayCD_Edition.xml ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <HeidelpayCD_Edition>
5
+ <active>true</active>
6
+ <codePool>community</codePool>
7
+ <depends>
8
+ <Mage_Payment />
9
+ <Mage_Sales />
10
+ <Mage_Core />
11
+ </depends>
12
+ </HeidelpayCD_Edition>
13
+ </modules>
14
+ </config>
app/locale/de_DE/HeidelpayCD_Edition.csv ADDED
@@ -0,0 +1,148 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "Redirect to payment process","Weiterleitung zum Bezahlsystem"
2
+ "Please confirm your payment:","Bitte f&uuml;hren Sie nun die Zahlung durch:"
3
+ "Card brand","Kartentyp"
4
+ "Card number","Kartennr."
5
+ "Card holder","Karteninhaber"
6
+ "Card expiry","Ablaufdatum"
7
+ "month","Monat"
8
+ "year","Jahr"
9
+ "Verification number","Pr&uuml;fnummer"
10
+ "pay now","Jetzt Bezahlen"
11
+ "payment informations","Zahlungsinformationen - "
12
+ "Automatically invoiced by Heidelpay.","Automatische Rechnungserstellung durch Heidelpay."
13
+ "Automatically invoiced","Automatische Rechnungserstellung und Versand"
14
+ "Bookinnmode","Buchungsmodus"
15
+ "Recognition","Wiederkennung"
16
+ "Sort order","Reihenfolge"
17
+ "Minimum Amount (CENT)","Minimal Betrag in Cent"
18
+ "Maximum Amount (CENT)","Maximal Betrag in Cent"
19
+ "allow specific countries","Erlaubte L&auml;nder"
20
+ "specific countries","L&auml;nderauswahl"
21
+ "always","Immer"
22
+ "no recognition","keine Wiedererkennung"
23
+ "only if shippping adress is unchanged","nur bei gleichbleibender Lieferaddresse"
24
+ "Prepayment Info Text","Bitte &uuml;berweisen Sie uns den Betrag von <strong>{AMOUNT} {CURRENCY}</strong> auf folgendes Konto:<br/><br/>
25
+ Kontoinhaber: {CONNECTOR_ACCOUNT_HOLDER}<br/>
26
+ IBAN: {CONNECTOR_ACCOUNT_IBAN}<br/>
27
+ BIC: {CONNECTOR_ACCOUNT_BIC}<br/><br/>
28
+ <i>Geben Sie als Verwendungszweck bitte ausschlie&szlig;lich diese Identifikationsnummer an:</i><br/>
29
+ <strong>{IDENTIFICATION_SHORTID}</strong>"
30
+ "Direct Debit Info Text","Der Betrag von <strong>{AMOUNT} {CURRENCY}</strong> wird in den n&auml;chsten Tagen von folgendem Konto abgebucht:<br /><br />
31
+ IBAN: {Iban}<br />
32
+ BIC: {Bic}<br /><br />
33
+ <i>Die Abbuchung enth&auml;lt die Mandatsreferenz-ID: {Ident}<br />
34
+ und die Gl&auml;ubiger ID: {CreditorId}</i><br />
35
+ <br />
36
+ Bitte sorgen Sie f&uuml;r ausreichende Deckung auf dem entsprechenden Konto."
37
+ "An unexpected error occurred. Please contact us to get further information.","Es ist ein Fehler aufgetrehten. Bitte kontaktieren Sie uns f&uumlr weitere Informationen."
38
+ "continue","Weiter"
39
+ "Please enter additional payment information.","Geben Sie weitere Zahlungsinformationen ein."
40
+ "recived amount ","eingegangener Betrag "
41
+ "Push information from Heidelpay","Push Information von Heidelpay"
42
+ "Direct Booking","Sofortbuchung"
43
+ "Preauthorisation","Reservierung"
44
+
45
+ "Credit Card","Kreditkarte"
46
+ "Debit Card","Debitkarte"
47
+ "Debitcard","Debitkarte"
48
+ "Direct Debit","Lastschrift"
49
+ "SOFORT &Üuml;berweisung","SOFORT &Üuml;berweisung"
50
+ "Giropay","Giropay"
51
+ "Pay Pal","Pay Pal"
52
+ "EPS","EPS"
53
+ "iDeal","iDeal"
54
+ "Prepayment","Vorkasse"
55
+ "Invoice","Rechnung"
56
+ "Mangirkart","MangirKart"
57
+ "BillSafe","Kauf auf Rechnung"
58
+
59
+ "Deschcdcc","Sicher zahlen mit Kreditkarte"
60
+ "Deschcddc","Sicher zahlen mit Debitkarte"
61
+ "Deschcddd","Sicher zahlen mit Lastschrift"
62
+ "Deschcdeps","Sicher zahlen mit EPS"
63
+ "Deschcdgp","Sicher zahlen mit Giropay"
64
+ "Deschcdide","Sicher zahlen mit iDeal"
65
+ "Deschcdpal","Sicher zahlen mit PayPal"
66
+ "Deschcdpp","Sicher zahlen mit Vorkasse"
67
+ "Deschcdpf","Sicher zahlen mit Postfinance"
68
+ "Deschcdsu","Sicher zahlen mit Sofort&uuml;berweisung"
69
+ "Deschcdiv","Sicher zahlen mit Rechnung"
70
+ "Deschcdmk","Sicher zahlen mit MangirKart"
71
+ "Deschcdbs","Kaufen Sie jetzt auf Rechnung und begutachten Sie Ihre Eink&auml;ufe in Ruhe bevor Sie bezahlen. <br/><a title='Ihre Vorteile' href='http://www.billsafe.de/special/payment-info' target='_blank'><img src='https://images.billsafe.de/image/image/id/191997712fbe' style='border:0'/></a>"
72
+
73
+ "Return in Errorcase","R&uuml;ckleitung bei Bezahlfehler"
74
+ "Please configurate where your costumer should be redirected to in case of an payment error","Hier k&ouml;nnen Sie einstellen, wo der Kunde in Fehlerfall hingeleitet werden soll."
75
+ "Basket","Warenkorb"
76
+ "Use Testsystem","Testsystem Betrieb"
77
+ "If is set to yes, transactionis use the sandbox system and the TRANSACTION.MODE=CONNECTOR_TEST, otherwise real payment will be used with mode LIVE. For details see integration basisc documentation.","Wenn ja eingestellt ist, werden alle Transaktionen auf dem Testsystem durchgef&uuml;hrt. Ansonsten wird das Live System benutzt."
78
+ "Security Sender","Security Sender"
79
+ "User Login","User Login"
80
+ "User Password","User Password"
81
+ "Debug Log","Debug Log"
82
+ "If is set to yes, you can controll all neccessary conntetion Data in /var/log/Heidelpay.log","Wenn ja eingestellt wurde, k&ouml;nnen Sie in var/log/Heidelpay.log alle Debug Informationen einsehen."
83
+ "Invoicing over heidelpay","Heidelpay Rechnungsversand"
84
+ "Invoicing over heidelpay requires an extra contract. For more information, please contact your key account manager.","F&uuml;r Heidelpay Rechnungsversand ben&ouml;tigen Sie einen extra Vertag. Kontaktieren Sie Ihren Vertriebsansprechpartner f&uuml;r ein Angebot."
85
+ "General Settings Heidelpay","Heidelpay Einstellungen"
86
+ "about Heidelpay","&Uuml;ber Heidelpay"
87
+
88
+ "Heidelpay Credit Card (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Kreditkarte"
89
+ "Heidelpay Direct Debit (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Lastschrift"
90
+ "Heidelpay Debit Card (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Debitkarte"
91
+ "Heidelpay SOFORT &Uuml;berweisung (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition SOFORT &Uuml;berweisung"
92
+ "Heidelpay Giropay (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Giropay"
93
+ "Heidelpay MangirKart (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition MangirKart"
94
+ "Heidelpay Postfinance (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Postfinance"
95
+ "Heidelpay Invoice (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Rechnung"
96
+ "Heidelpay Pay Pal (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition PayPal"
97
+ "Heidelpay Prepayment (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Vorkasse"
98
+ "Heidelpay Billsafe (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition BillSafe"
99
+ "Heidelpay EPS (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition EPS"
100
+ "Heidelpay iDeal (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition iDeal"
101
+
102
+ "No.","Nr."
103
+ "Valid until:","G&uuml;ltig bis:"
104
+ "close","schliessen"
105
+ "Cardtype:","Kartentyp:"
106
+ "Account No","Konto"
107
+ "Bankcode","BLZ"
108
+ "IBAN","IBAN"
109
+ "BIC","BIC"
110
+ "Owner","Inhaber"
111
+ "Please enter account no.","Bitte Konto angeben."
112
+ "Please enter bankcode.","Bitte BLZ angeben."
113
+ "Please enter owner.","Bitte Inhaber angeben."
114
+ "Enter additional information for the payment.","Geben Sie weitere Zahlungsinformationen ein."
115
+ "BillSafe Info Text","{LEGALNOTE}<br/><br/>
116
+ Bitte &uuml;berweisen Sie den Betrag von <strong>{AMOUNT} {CURRENCY}</strong>, innerhalb von <strong>{PERIOD} Tage</strong> nach dem Sie &uuml;ber den Versand informiert wurden, auf folgendes Konto:<br/><br/>
117
+ <strong>Kontoinhaber: {CONNECTOR_ACCOUNT_HOLDER}<br/>
118
+ IBAN: {CONNECTOR_ACCOUNT_IBAN}<br/>
119
+ BIC: {CONNECTOR_ACCOUNT_BIC}</strong><br/><br/>
120
+ <i>Geben Sie als Verwendungszweck bitte ausschlie&szlig;lich diese Identifikationsnummer an:</i><br/>
121
+ <strong>{IDENTIFICATION_SHORTID}</strong>"
122
+
123
+ "Bank code or bic","Bankleitzahl oder Bic"
124
+ "Account number or iban","Kontonummer oder Iban"
125
+ "IBAN & BIC","IBAN & BIC"
126
+
127
+ "Account information","Kontoinformationen"
128
+ "Account no. & Bank no.","Kontonummer & Bankleitzahl"
129
+ "IBAN & BIC","IBAN & BIC"
130
+
131
+ "Canceled by user","Bezahlprozess vom Benutzer abgebrochen."
132
+
133
+ "You have used the card %CARD% befor, would you like to use this again?","Sie haben beim letzten Einkauf die Karte %CARD% verwendet, wollen Sie diese erneut benutzen?"
134
+ "HPError-100.100.101","Bitte &uuml;berpr&uuml;fen Sie Ihre Eingaben"
135
+ "HPError-100.100.303","Die Karte ist abgelaufen"
136
+ "HPError-100.100.500","Bitte &uuml;berpr&uuml;fen Sie Ihre Eingaben"
137
+ "HPError-100.396.101","Abbruch durch Benutzer"
138
+ "HPError-100.400.110","Bitte w&auml;hlen Sie eine andere Zahlart"
139
+ "HPError-800.100.151","Bitte w&auml;hlen Sie eine andere Zahlart"
140
+ "HPError-800.100.152","Bitte w&auml;hlen Sie eine andere Zahlart"
141
+ "HPError-800.100.153","Bitte &uuml;berpr&uuml;fen Sie Ihre Eingaben"
142
+ "HPError-800.100.157","Bitte &uuml;berpr&uuml;fen Sie Ihre Eingaben"
143
+ "HPError-800.100.159","Bitte w&auml;hlen Sie eine andere Zahlart"
144
+ "HPError-800.100.160","Bitte w&auml;hlen Sie eine andere Zahlart"
145
+ "HPError-800.100.168","Bitte w&auml;hlen Sie eine andere Zahlart"
146
+ "HPError-800.100.171","Bitte w&auml;hlen Sie eine andere Zahlart"
147
+ "HPError-800.300.101","Bitte w&auml;hlen Sie eine andere Zahlart"
148
+
app/locale/en_US/HeidelpayCD_Edition.csv ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "Redirect to payment process","Umleitung zu Bezahlsystem"
2
+ "Please confirm your payment:","Please confirm your payment:"
3
+ "Card brand","Card Brand"
4
+ "Card number","Card Number"
5
+ "Card holder","Card Holder"
6
+ "Card expiry","Expiry Date"
7
+ "month","month"
8
+ "year","year"
9
+ "Verification number","Verification Number"
10
+ "pay now","Pay now"
11
+ "payment informations","payment informations -"
12
+ "Automatically invoiced by Heidelpay.","Automatically invoiced by Heidelpay."
13
+ "Automatically invoiced","Automatically invoiced"
14
+ "Bookinnmode","Bookinnmode"
15
+ "Recognition","Recognition"
16
+ "Sort order","Sort order"
17
+ "Minimum Amount (CENT)","Minimum Amount (CENT)"
18
+ "Maximum Amount (CENT)","Maximum Amount (CENT)"
19
+ "allow specific countries","allow specific countries"
20
+ "specific countries","specific countries"
21
+ "always","always"
22
+ "no recognition","no recognition"
23
+ "only if shippping adress is unchanged","only if shippping adress is unchanged"
24
+ "Prepayment Info Text","Please transfer the amount of <strong>{AMOUNT} {CURRENCY}</strong> to the following account<br /><br />
25
+ Holder: {CONNECTOR_ACCOUNT_HOLDER}<br/>
26
+ IBAN: {CONNECTOR_ACCOUNT_IBAN}<br/>
27
+ BIC: {CONNECTOR_ACCOUNT_BIC}<br/><br/>
28
+ <i>Please use only this identification number as the descriptor :</i><br/>
29
+ <strong>{IDENTIFICATION_SHORTID}</strong>"
30
+ "Direct Debit Info Text","The amount of <strong>{AMOUNT} {CURRENCY}</strong> will be debited from this account within the next days:<br /><br />
31
+ IBAN: {Iban}<br />
32
+ BIC: {Bic}<br /><br />
33
+ <i>The booking contains the mandate reference ID: {Ident}<br >
34
+ and the creditor identifier: {CreditorId}</i><br />
35
+ <br />
36
+ Please ensure that there will be sufficient funds on the corresponding account."
37
+ "An unexpected error occurred. Please contact us to get further information.","An unexpected error occurred. Please contact us to get further information."
38
+ "continue","continue"
39
+ "Please enter additional payment information.","Please enter additional payment information."
40
+ "recived amount ","recived amount "
41
+ "Push information from Heidelpay","Push information from Heidelpay"
42
+ "Direct Booking","Direct Booking"
43
+ "Preauthorisation","Preauthorisation"
44
+
45
+ "Credit Card","Credit Card"
46
+ "Debit Card","Debit Card"
47
+ "Debitcard","Debitcard"
48
+ "Direct Debit","Direct Debit"
49
+ "SOFORT &Üuml;berweisung","SOFORT &Üuml;berweisung"
50
+ "Giropay","Giropay"
51
+ "Pay Pal","Pay Pal"
52
+ "EPS","EPS"
53
+ "iDeal","iDeal"
54
+ "Prepayment","Prepayment"
55
+ "Invoice","Invoice"
56
+ "Mangirkart","MangirKart"
57
+ "BillSafe","BillSafe"
58
+
59
+ "Deschcdcc","Pay safe and secure with Creditcard<br>"
60
+ "Deschcddc","Pay safe and secure with Debitcard<br>"
61
+ "Deschcddd","Pay safe and secure with Direct Debit"
62
+ "Deschcdeps","Pay safe and secure with EPS"
63
+ "Deschcdgp","Pay safe and secure with Giropay"
64
+ "Deschcdide","Pay safe and secure with iDeal"
65
+ "Deschcdpal","Pay safe and secure with PayPal"
66
+ "Deschcdpp","Pay safe and secure with Prepayment"
67
+ "Deschcdpf","Pay safe and secure with Postfinace"
68
+ "Deschcdsu","Pay safe and secure with Sofort&Uuml;berweisung"
69
+ "Deschcdiv","Pay comfortable with Invoice"
70
+ "Deschcdmk","Pay comfortable with MangirKart"
71
+ "Deschcdbs","Buy with invoice and check your order calmly before payment.<br/>"
72
+
73
+ "Return in Errorcase","Return in Errorcase"
74
+ "Please configurate where your costumer should be redirected to in case of an payment error","Please configurate where your costumer should be redirected to in case of an payment error"
75
+ "Basket","Basket"
76
+ "Use Testsystem","Use Sandbox"
77
+ "If is set to yes, transactionis use the sandbox system and the TRANSACTION.MODE=CONNECTOR_TEST, otherwise real payment will be used with mode LIVE. For details see integration basisc documentation.","If is set to yes, transactionis use the sandbox system and the TRANSACTION.MODE=CONNECTOR_TEST, otherwise real payment will be used with mode LIVE. For details see integration basisc documentation."
78
+ "Security Sender","Security Sender"
79
+ "User Login","User Login"
80
+ "User Password","User Password"
81
+ "Debug Log","Debug Log"
82
+ "If is set to yes, you can controll all neccessary conntetion Data in /var/log/Heidelpay.log","If is set to yes, you can controll all neccessary conntetion Data in /var/log/Heidelpay.log"
83
+ "Invoicing over heidelpay","Invoicing over heidelpay"
84
+ "Invoicing over heidelpay requires an extra contract. For more information, please contact your key account manager.","Invoicing over heidelpay requires an extra contract. For more information, please contact your key account manager."
85
+ "General Settings Heidelpay","General Settings Heidelpay"
86
+ "about Heidelpay","about Heidelpay"
87
+
88
+ "Heidelpay Credit Card (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Credit Card"
89
+ "Heidelpay Direct Debit (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Direct Debit"
90
+ "Heidelpay Debit Card (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Debit Card"
91
+ "Heidelpay SOFORT &Uuml;berweisung (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition SOFORT &Uuml;berweisung"
92
+ "Heidelpay Giropay (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Giropay"
93
+ "Heidelpay MangirKart (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition MangirKart"
94
+ "Heidelpay Postfinance (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Postfinance"
95
+ "Heidelpay Invoice (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Invoice"
96
+ "Heidelpay Pay Pal (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition PayPal"
97
+ "Heidelpay Prepayment (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition Prepayment"
98
+ "Heidelpay Billsafe (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition BillSafe"
99
+ "Heidelpay EPS (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition EPS"
100
+ "Heidelpay iDeal (hcd)","<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAADBQTFRFODg43d3dt7e3KCgoREREU1NTAQEBEhIS////scfeeXl57OzsqKioXV1dk5OTnZ2dfmcBJgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDgsIBJoD8v4AAABKSURBVAjXY5gJBQwzOsCgE53RCmM0AxknQIwGIMOiOyxBA8TgcFson9YCZIRzdHT0JQAZZSA1y4CMIhCjDaQGxOjtxGkFkAFzBgC9LkKOoh4LJgAAAABJRU5ErkJggg==' style='margin-right: 5px'/> Heidelpay CD-Edition iDeal"
101
+
102
+ "No.","No."
103
+ "Valid until:","Valid until:"
104
+ "close","close"
105
+ "Cardtype:","Cardtype"
106
+ "Account No","Account No"
107
+ "Bankcode","Bankcode"
108
+ "IBAN","IBAN"
109
+ "BIC","BIC"
110
+ "Owner","Owner"
111
+ "Please enter account no.","Please enter account no."
112
+ "Please enter bankcode.","Please enter bankcode."
113
+ "Please enter owner.","Please enter owner."
114
+ "Enter additional information for the payment.","Enter additional information for the payment."
115
+ "HP_SUCCESS_BILLSAFE","Ihre Transaktion war erfolgreich!
116
+
117
+ Ueberweisen Sie uns den Betrag von {CURRENCY} {AMOUNT} auf folgendes Konto
118
+ Bankname: {ACC_BANKNAME}
119
+ Kontoinhaber : {ACC_OWNER}
120
+ Konto-Nr. : {ACC_NUMBER}
121
+ Bankleitzahl: {ACC_BANKCODE}
122
+ IBAN: {ACC_IBAN}
123
+ BIC: {ACC_BIC}
124
+ Geben sie bitte im Verwendungszweck UNBEDINGT die Identifikationsnummer
125
+ {SHORTID}
126
+ und NICHTS ANDERES an."
127
+ "HP_LEGALNOTE_BILLSAFE","Bitte überweisen Sie den ausstehenden Betrag {DAYS} Tage nach dem Sie über den Versand informiert wurden."
128
+
129
+
130
+
131
+ "Bank code or bic","Bank code or bic"
132
+ "Account number or iban","Account number or iban"
133
+ "IBAN & BIC","IBAN & BIC"
134
+
135
+ "Account information","Account information"
136
+ "Account no. & Bank no.","Account no. & Bank no."
137
+ "IBAN & BIC","IBAN & BIC"
138
+
139
+ "Canceled by user","Canceled by user"
140
+
141
+ "You have used the card %CARD% befor, would you like to use this again?","You have used the card %CARD% befor, would you like to use this again?"
142
+ "HPError-100.100.101","Please verify your payment data"
143
+ "HPError-100.100.303","card expired"
144
+ "HPError-100.100.500","Please verify your payment data"
145
+ "HPError-100.396.101","Canceled by user"
146
+ "HPError-100.400.110","Please choose another payment method"
147
+ "HPError-800.100.151","Please choose another payment method"
148
+ "HPError-800.100.152","Please choose another payment method"
149
+ "HPError-800.100.153","Please verify your payment data"
150
+ "HPError-800.100.157","Please verify your payment data"
151
+ "HPError-800.100.159","Please choose another payment method"
152
+ "HPError-800.100.160","Please choose another payment method"
153
+ "HPError-800.100.168","Please choose another payment method"
154
+ "HPError-800.100.171","Please choose another payment method"
155
+ "HPError-800.300.101","Please choose another payment method"
js/hcd/heidelpaycd.js ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Released under the GNU General Public License (Version 2)
3
+ [http://www.gnu.org/licenses/gpl-2.0.html]
4
+ */
5
+
6
+ //<![CDATA[
7
+ var Heidelpay = {} ;
8
+
9
+ console.log('Heidelpay CD-Edition');
10
+
11
+ Heidelpay.Registration = Class.create({
12
+
13
+
14
+ initialize: function() {
15
+ document.observe('dom:loaded', this.register.bind(this));
16
+ Ajax.Responders.register(this);
17
+ },
18
+ register: function () {
19
+ if (!window.review || review.overriddenOnSave || review.overriddenOnComplete) {
20
+ return this;
21
+ }
22
+
23
+ var actPayment = $$('input:checked[type=radio][name=\'payment[method]\']')[0].id.replace(/p_method_/,"");
24
+
25
+ review.overriddenOnComplete = function (transport) {
26
+ return true;
27
+ }
28
+
29
+ review.overriddenOnSave = function (transport) {
30
+
31
+ //checkout.setLoadWaiting('payment');
32
+
33
+ var url = $(actPayment+'_URL').value;
34
+
35
+ //console.log('Heidelpay URL '+url);
36
+
37
+ var form = new Element('form', {
38
+ style:'display:none',
39
+ action: url ,
40
+ method: "POST"
41
+ });
42
+ $(document.body).insert(form);
43
+
44
+ var data = {
45
+ ACCOUNT_BRAND: $$("." + actPayment + "_ACCOUNT_BRAND")[0].value ,
46
+ ACCOUNT_NUMBER: $$("." + actPayment +"_ACCOUNT_NUMBER")[0].value,
47
+ ACCOUNT_HOLDER: $$("." + actPayment + "_ACCOUNT_HOLDER")[0].value,
48
+ ACCOUNT_EXPIRY_MONTH: $$("." + actPayment + "_ACCOUNT_EXPIRY_MONTH")[0].value,
49
+ ACCOUNT_EXPIRY_YEAR: $$("." + actPayment + "_ACCOUNT_EXPIRY_YEAR")[0].value,
50
+ ACCOUNT_VERIFICATION: $$("." + actPayment + "_ACCOUNT_VERIFICATION")[0].value
51
+ };
52
+
53
+ for ( var key in data ) {
54
+ form.insert(
55
+ {bottom: new Element(
56
+ 'input',
57
+ {type: 'text', name: key.replace(/_/,"."), value: data[key] }
58
+ )}
59
+ );
60
+
61
+ };
62
+
63
+ /*form.insert(
64
+ {bottom: new Element(
65
+ 'input',
66
+ {type: 'submit', name: 'submit', value: 'submit' }
67
+ )}
68
+ );
69
+ */
70
+ //checkout.setLoadWaiting('payment');
71
+ form.submit();
72
+
73
+ return true;
74
+
75
+ }
76
+
77
+ if ( actPayment == 'hcdcc' || actPayment == 'hcddc' ) {
78
+ var newreg = $$('input:checked[type=radio][name=\''+actPayment+'_use_again\']')[0].value ;
79
+ if ( newreg == 1) {
80
+ review.onSave = review.overriddenOnSave.bind(review);
81
+ review.onComplete = review.overriddenOnComplete.bind(review);
82
+
83
+ }
84
+ }
85
+ },
86
+ onComplete: function () {
87
+ this.register.defer();
88
+ },
89
+
90
+
91
+ });
92
+
93
+ new Heidelpay.Registration();
94
+
95
+
96
+ Heidelpay.toggle = Class.create({
97
+ hpform: function ( actPayment, change ) {
98
+
99
+ var replace = '';
100
+
101
+ $(actPayment + "_hpform").toggle() ;
102
+
103
+ if (change == 'false') replace = '***';
104
+
105
+ $$("." + actPayment +"_ACCOUNT_NUMBER")[0].value = replace;
106
+ $$("." + actPayment + "_ACCOUNT_VERIFICATION")[0].value = replace;
107
+
108
+ }
109
+ });
110
+
111
+
112
+ Heidelpay.toggle.getInstance = function () {
113
+ if (!this.instance) {
114
+ this.instance = new this();
115
+ }
116
+ return this.instance;
117
+ };
118
+
119
+
120
+ //]]>
package.xml ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>HeidelpayCDEdition</name>
4
+ <version>15.2.28</version>
5
+ <stability>stable</stability>
6
+ <license>GPL</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Heidelpay CD-Edition Payment Plugin</summary>
10
+ <description>&lt;b&gt;Heidelberger Payment GmbH&lt;/b&gt;&lt;br /&gt;&#xD;
11
+ &lt;br /&gt;&#xD;
12
+ Future-oriented ePayment-Solutions for successful E-Commerce&lt;br /&gt;&#xD;
13
+ Heidelpay is offering the full range of services for electronic payment from one single source. Heidelberger Payment GmbH has received the status of a payment institution for the purpose of the Payment Service Directive (PSD) via the certification of the Federal Financial Supervisory Authority. As a payment institution, heidelpay complies with all demand on modern payment management. Being in contact with only one business partner you get access to all recent national and international payment methods and benefit from our highly individual service.&lt;br /&gt;&#xD;
14
+ We go much further! Heidelpay offers a wide range of risk management functions and fraud protection. Furthermore you can optimize your payment process. For example use the complete debtor management solution to automatically generate invoices or transfer unsettled claims to a debt collection agency.&lt;br /&gt;&#xD;
15
+ Extensive benefits, personal consultation and top-quality service &#x2013; our strategy to make your business successful.&#xD;
16
+ &lt;br /&gt;&lt;br /&gt;&#xD;
17
+ List of payment methods and services:&lt;br /&gt;&#xD;
18
+ &#x2022; Credit Cards: MasterCard, Visa, AMEX Credit Card: MasterCard, Visa, AMEX&lt;br /&gt;&#xD;
19
+ &#x2022; Debit Cards (national &amp; international): VISA Electron, MAESTRO (INT), Postepay (IT), Carte Bleue (FR), 4b(ES), ServiRed(ES),EURO6000(ES), Dankort(DK)&lt;br /&gt;&#xD;
20
+ &#x2022; Prepayment world-wide&lt;br /&gt;&#xD;
21
+ &#x2022; Direct Debit&lt;br /&gt;&#xD;
22
+ &#x2022; Direct Debit with payment security&lt;br /&gt;&#xD;
23
+ &#x2022; Purchase on account (as well secured available if requested)&lt;br /&gt;&#xD;
24
+ &#x2022; Installment payment / financing&lt;br /&gt;&#xD;
25
+ &#x2022; sofort&#xFC;berweisung.de, giropay, iDeal, EPS, u.a.&lt;br /&gt;&#xD;
26
+ &#x2022; Barpay&lt;br /&gt;&#xD;
27
+ &#x2022; BillSAFE&lt;br /&gt;&#xD;
28
+ &#x2022; MangirKart (TR)&lt;br /&gt;&#xD;
29
+ &#x2022; Paypal&lt;br /&gt;&#xD;
30
+ &#x2022; BaFin-licensed partner for Third-Party-Payment&lt;br /&gt;&#xD;
31
+ &#x2022; Payment Management functions: subscription processing, costumer care systems, debtor management, various payment industry sulotions (i.e. Dating, Travel, apparel)&#xD;
32
+ &lt;br /&gt;&lt;br /&gt;&#xD;
33
+ &lt;b&gt;Contact&lt;/b&gt;&lt;br /&gt;&#xD;
34
+ Heidelberger Payment GmbH&lt;br /&gt;&#xD;
35
+ Vangerowstra&#xDF;e 18&lt;br /&gt;&#xD;
36
+ 69115 Heidelberg&lt;br /&gt;&#xD;
37
+ &lt;br /&gt;&#xD;
38
+ Telefon: +49 (0) 6221 / 65 170-20&lt;br /&gt;&#xD;
39
+ E-Mail: sales@heidelpay.de&lt;br /&gt;&#xD;
40
+ Internet: www.heidelpay.de&lt;br /&gt;&#xD;
41
+ </description>
42
+ <notes>- change Package name because of mageno connect character ristrictions</notes>
43
+ <authors><author><name>Heidelberger Payment GmbH</name><user>Heidelpay</user><email>magento@heidelpay.de</email></author></authors>
44
+ <date>2015-03-03</date>
45
+ <time>08:36:35</time>
46
+ <contents><target name="magecommunity"><dir name="HeidelpayCD"><dir name="Edition"><dir name="Block"><file name="Abstract.php" hash="e589f421bf86a643921b11d75fcbb8fb"/><dir name="Form"><file name="Creditcard.php" hash="eca2833e42df4e57485afb8aeb0d6a0f"/><file name="Debit.php" hash="fb2ecd8695d813e34e4ab6b6501d359e"/><file name="Desconly.php" hash="912dd8ab02ccc24b7121d6f05255c15d"/><file name="Eps.php" hash="8698a923d04580654cacecfff64268c8"/><file name="Giropay.php" hash="aba0b69429706944ae1ac4466ab9ce3b"/><file name="Ideal.php" hash="a31bd92c30af0718e6f4347f14eba963"/><file name="Postfinance.php" hash="b3a91389b3fb235eb113a919161d2476"/></dir><file name="Index.php" hash="e13d55a3c5aa1ed0ab680ae378131eee"/><dir name="Info"><file name="Debit.php" hash="888f8a1c1aaaf6974131970969caa5f2"/></dir><file name="Success.php" hash="97b586c0d2c5b16c53608b3e41f35b79"/></dir><dir name="Helper"><file name="Data.php" hash="5e5781fd10c60a1aaaf434e632959249"/><file name="Payment.php" hash="5ef22e5df048db089883f6aacb575314"/></dir><dir name="Model"><file name="Customer.php" hash="4e65287a3d6a171444614ed580635147"/><dir name="Mysql4"><dir name="Customer"><file name="Collection.php" hash="9fa63b33278570af246ca8cb1cfc706e"/></dir><file name="Customer.php" hash="952d0c21f063e34b0c767968c85184d7"/><dir name="Transaction"><file name="Collection.php" hash="aade54e4bced143dc773a256f27418cd"/></dir><file name="Transaction.php" hash="d3c544e838b9b8f39efaad4caa5d83c2"/></dir><dir name="Order"><dir name="Pdf"><file name="Invoice.php" hash="f8222c1be3bfa9d20d52c33cfccf9a67"/></dir></dir><dir name="Payment"><file name="Abstract.php" hash="968270ec5be8d115973c7f0a14556761"/><file name="Hcdbs.php" hash="d2fcb58da6ed86478ff89a81822480cb"/><file name="Hcdcc.php" hash="3bcb26cf280966d2d5925834bf4f1034"/><file name="Hcddc.php" hash="ec9dffb5d0d70316b22dd26000abea55"/><file name="Hcddd.php" hash="1ba1f5818596dce9fbf80626008d83a8"/><file name="Hcdeps.php" hash="113007c46e7d5095c4339739f57bdb61"/><file name="Hcdgp.php" hash="3fb1d66a07d70d744de2539758ab5197"/><file name="Hcdide.php" hash="63e28dd1877cdda6bde10c98d78ba42a"/><file name="Hcdiv.php" hash="f1a694d1f0899813d5d3febc6568f0ce"/><file name="Hcdmk.php" hash="4295a604e1ef78e4456121610fd04576"/><file name="Hcdpal.php" hash="62fe6142b3883a42bc062f5ef8229dfa"/><file name="Hcdpf.php" hash="8abbcdb531d72ba57d36edd234311c51"/><file name="Hcdpp.php" hash="11d8dc717886d30074ee089b558bf38d"/><file name="Hcdsu.php" hash="30c4c20bcade7de5ec4e678d3f4ce2ad"/></dir><dir name="Resource"><file name="Encryption.php" hash="edbc116ce3c9dc815a658beb4ac7705a"/><file name="Setup.php" hash="74d6669d6d2273dd241a5064c85c1e78"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Bookingmode.php" hash="a83d2adbb54a69c0afd7ef87857672ee"/><file name="Recognition.php" hash="bec39a1786cca41140c590b86b864850"/><file name="Returnurl.php" hash="626518f91f8b0632211ac85fb658fdd7"/></dir></dir></dir><file name="Transaction.php" hash="7d3b2af934c03de7f7a9d9d1348e1c7e"/></dir><dir name="controllers"><file name="IndexController.php" hash="6f96019f9b9f47de0dc655cebbbe17e5"/></dir><dir name="etc"><file name="config.xml" hash="c3f1724502a55f9222ee1a4bfe0725ae"/><file name="system.xml" hash="7f543c7ca7d5a72b31d339ba5e0ffa30"/></dir><dir name="sql"><dir name="hcd_setup"><file name="install-15.1.30.php" hash="f7f87111e5401feb60b2aa3090c40740"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="hcd.xml" hash="4af5b464a17cba9b9eaa000262abeffa"/></dir><dir name="template"><dir name="hcd"><dir name="form"><file name="creditcard.phtml" hash="81dd2b7b3dd40c02ab1541b178075bba"/><file name="debit.phtml" hash="bf9017e8ddd725edc0694e8892bbf500"/><file name="desconly.phtml" hash="0df2f305be1337de2db69ecb93ce48b7"/><file name="eps.phtml" hash="23895dad6e135ca58473a181bf2f7388"/><file name="giropay.phtml" hash="bf9017e8ddd725edc0694e8892bbf500"/><file name="ideal.phtml" hash="23895dad6e135ca58473a181bf2f7388"/><file name="postfinance.phtml" hash="0db7c2d0404efa2feb98748204bf72d4"/></dir><file name="index.phtml" hash="03a0dccd4448c6a3d9745a2cea7fa327"/><file name="success.phtml" hash="9cac258cb96b057b3de00ab971bf7855"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="HeidelpayCD_Edition.xml" hash="277ef825780ed2df1f5de2cf949f842b"/></dir></target><target name="magelocale"><dir name="de_DE"><file name="HeidelpayCD_Edition.csv" hash="3695c12acf56ae8756bfbd08b7ea19b5"/></dir><dir name="en_US"><file name="HeidelpayCD_Edition.csv" hash="452d18db5863362715563c6d782c0ae3"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="images"><dir name="hcd"><file name="loading.gif" hash="29868a3a7094b078733caba6b192b080"/></dir></dir><dir name="css"><file name="heidelpaycd.css" hash="fb5022c109928b0f28fd660012dcce76"/></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="hcd"><file name="heidelpaycd.js" hash="1d37a437235520a71cd20847d569411c"/></dir></dir></target></contents>
47
+ <compatible/>
48
+ <dependencies><required><php><min>5.0.0</min><max>5.5.99</max></php></required></dependencies>
49
+ </package>
skin/frontend/base/default/css/heidelpaycd.css ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ .hcd-input-fields-small {
3
+ float: left ;
4
+ padding-right: 5px ;
5
+ }
6
+ .hcd-payment-info input {
7
+ border-radius: 3px ;
8
+ background-color: #F4F4F4 ;
9
+ }
10
+
11
+ .block-hcd-payment-info {
12
+ text-align: left;
13
+ margin: auto;
14
+ width: 50%;
15
+ padding: 20px;
16
+ border-left: 2px dashed #CCC;
17
+ border-right: 2px dashed #CCC;
18
+ }
19
+
20
+ .hcd-singleline-label {
21
+ display: block ;
22
+ }
23
+
24
+ .hcd-payment-info {
25
+ border: 2px solid #E7E7E7 ;
26
+ padding: 10px;
27
+ /* border-radius: 8px ; */
28
+ }
29
+
30
+ .hcd-payment-desc {
31
+ border-left: 1px dashed #000;
32
+ margin-right: 10px;
33
+ margin-top: 10px;
34
+ margin-bottom: 10px;
35
+ padding: 5px;
36
+ font-style: italic;
37
+ font-size: 11px;
38
+ }
39
+
40
+ .hcd-payment-error {
41
+ color: #f00;
42
+ font-weight:bold
43
+
44
+ }
45
+
46
+
47
+ .hco-inline-label {
48
+ display: inline-block;
49
+ }
50
+
51
+ .hcd-use_again {
52
+ margin-right: 5px;
53
+
54
+ }
skin/frontend/base/default/images/hcd/loading.gif ADDED
Binary file