Paymill_Paymill - Version 3.4.0

Version Notes

* Customer friendly error messages
* Better owner validation
* Global css and js loading

Download this release

Release Info

Developer PayIntelligent
Extension Paymill_Paymill
Version 3.4.0
Comparing to
See all releases


Code changes from version 3.3.0 to 3.4.0

app/code/community/Paymill/Paymill/Helper/CustomerHelper.php CHANGED
@@ -45,7 +45,13 @@ class Paymill_Paymill_Helper_CustomerHelper extends Mage_Core_Helper_Abstract
45
  */
46
  public function getCustomerEmail($object)
47
  {
48
- return $object->getCustomerEmail();
 
 
 
 
 
 
49
  }
50
 
51
  /**
45
  */
46
  public function getCustomerEmail($object)
47
  {
48
+ $email = $object->getCustomerEmail();
49
+
50
+ if (empty($email)) {
51
+ $email = $object->getBillingAddress()->getEmail();
52
+ }
53
+
54
+ return $email;
55
  }
56
 
57
  /**
app/code/community/Paymill/Paymill/Helper/OptionHelper.php CHANGED
@@ -114,18 +114,4 @@ class Paymill_Paymill_Helper_OptionHelper extends Mage_Core_Helper_Abstract
114
  return $this->_getBackendOption("paymill_creditcard", "preAuth_active");
115
  }
116
 
117
- /**
118
- * Returns the Token Tolerance Value for the given payment
119
- * @param String $paymentType Paymentcode
120
- * @return int Token Tolerance Value (in multiplied format eg 10.00 to 1000)
121
- */
122
- public function getTokenTolerance($paymentType)
123
- {
124
- $optionValue = $this->_getBackendOption($paymentType, 'tokenTolerance');
125
- $formattedValue = str_replace(',', '.', $optionValue);
126
- $value = (string) (number_format((float) $formattedValue, 2) * 100);
127
-
128
- return $value;
129
- }
130
-
131
  }
114
  return $this->_getBackendOption("paymill_creditcard", "preAuth_active");
115
  }
116
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  }
app/code/community/Paymill/Paymill/Helper/PaymentHelper.php CHANGED
@@ -26,6 +26,63 @@
26
  class Paymill_Paymill_Helper_PaymentHelper extends Mage_Core_Helper_Abstract
27
  {
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  /**
30
  * Returns the order amount in the smallest possible unit (f.Ex. cent for the EUR currency)
31
  * <p align = "center" color = "red">At the moment, only currencies with a 1:100 conversion are supported. Special cases need to be added if necessary</p>
@@ -42,17 +99,6 @@ class Paymill_Paymill_Helper_PaymentHelper extends Mage_Core_Helper_Abstract
42
  return round($amountTotal);
43
  }
44
 
45
- /**
46
- * Returns the PreAuthAmount and sets a session var for later use
47
- * @param String $_code
48
- */
49
- public function getPreAuthAmount($_code)
50
- {
51
- $amount = $this->getAmount() + Mage::helper('paymill/optionHelper')->getTokenTolerance($_code);
52
- Mage::getSingleton('core/session')->setPreAuthAmount($amount);
53
- return $amount;
54
- }
55
-
56
  /**
57
  * Returns the currency compliant to ISO 4217 (3 char code)
58
  * @return string 3 Character long currency code
@@ -141,7 +187,7 @@ class Paymill_Paymill_Helper_PaymentHelper extends Mage_Core_Helper_Abstract
141
  $params['email'] = Mage::helper("paymill/customerHelper")->getCustomerEmail($quote);
142
  $params['description'] = $this->getDescription($quote);
143
  $params['source'] = Mage::helper('paymill')->getSourceString();
144
-
145
  return new Services_Paymill_PaymentProcessor($privateKey, $apiUrl, $libBase, $params, Mage::helper('paymill/loggingHelper'));
146
  }
147
 
26
  class Paymill_Paymill_Helper_PaymentHelper extends Mage_Core_Helper_Abstract
27
  {
28
 
29
+ protected $_responseCodes = array(
30
+ '10001' => 'General undefined response.',
31
+ '10002' => 'Still waiting on something.',
32
+ '20000' => 'General success response.',
33
+ '40000' => 'General problem with data.',
34
+ '40001' => 'General problem with payment data.',
35
+ '40100' => 'Problem with credit card data.',
36
+ '40101' => 'Problem with cvv.',
37
+ '40102' => 'Card expired or not yet valid.',
38
+ '40103' => 'Limit exceeded.',
39
+ '40104' => 'Card invalid.',
40
+ '40105' => 'Expiry date not valid.',
41
+ '40106' => 'Credit card brand required.',
42
+ '40200' => 'Problem with bank account data.',
43
+ '40201' => 'Bank account data combination mismatch.',
44
+ '40202' => 'User authentication failed.',
45
+ '40300' => 'Problem with 3d secure data.',
46
+ '40301' => 'Currency / amount mismatch',
47
+ '40400' => 'Problem with input data.',
48
+ '40401' => 'Amount too low or zero.',
49
+ '40402' => 'Usage field too long.',
50
+ '40403' => 'Currency not allowed.',
51
+ '50000' => 'General problem with backend.',
52
+ '50001' => 'Country blacklisted.',
53
+ '50100' => 'Technical error with credit card.',
54
+ '50101' => 'Error limit exceeded.',
55
+ '50102' => 'Card declined by authorization system.',
56
+ '50103' => 'Manipulation or stolen card.',
57
+ '50104' => 'Card restricted.',
58
+ '50105' => 'Invalid card configuration data.',
59
+ '50200' => 'Technical error with bank account.',
60
+ '50201' => 'Card blacklisted.',
61
+ '50300' => 'Technical error with 3D secure.',
62
+ '50400' => 'Decline because of risk issues.',
63
+ '50500' => 'General timeout.',
64
+ '50501' => 'Timeout on side of the acquirer.',
65
+ '50502' => 'Risk management transaction timeout.',
66
+ '50600' => 'Duplicate transaction.'
67
+ );
68
+
69
+ /**
70
+ * Return message for the given error code
71
+ *
72
+ * @param string $code
73
+ * @return string
74
+ */
75
+ public function getErrorMessage($code)
76
+ {
77
+ Mage::log($code, null, 'paymill.log');
78
+ $message = 'General undefined response.';
79
+ if (array_key_exists($code, $this->_responseCodes)) {
80
+ $message = $this->_responseCodes[$code];
81
+ }
82
+
83
+ return $message;
84
+ }
85
+
86
  /**
87
  * Returns the order amount in the smallest possible unit (f.Ex. cent for the EUR currency)
88
  * <p align = "center" color = "red">At the moment, only currencies with a 1:100 conversion are supported. Special cases need to be added if necessary</p>
99
  return round($amountTotal);
100
  }
101
 
 
 
 
 
 
 
 
 
 
 
 
102
  /**
103
  * Returns the currency compliant to ISO 4217 (3 char code)
104
  * @return string 3 Character long currency code
187
  $params['email'] = Mage::helper("paymill/customerHelper")->getCustomerEmail($quote);
188
  $params['description'] = $this->getDescription($quote);
189
  $params['source'] = Mage::helper('paymill')->getSourceString();
190
+
191
  return new Services_Paymill_PaymentProcessor($privateKey, $apiUrl, $libBase, $params, Mage::helper('paymill/loggingHelper'));
192
  }
193
 
app/code/community/Paymill/Paymill/Model/Method/MethodModelAbstract.php CHANGED
@@ -90,6 +90,8 @@ abstract class Paymill_Paymill_Model_Method_MethodModelAbstract extends Mage_Pay
90
  * @var string
91
  */
92
  protected $_code = 'paymill_abstract';
 
 
93
 
94
  /**
95
  * Check if currency is avaible for this payment
@@ -190,9 +192,9 @@ abstract class Paymill_Paymill_Model_Method_MethodModelAbstract extends Mage_Pay
190
  }
191
 
192
  if (!$success) {
193
- Mage::helper('paymill/loggingHelper')->log("There was an error processing the payment.");
194
  Mage::getSingleton('checkout/session')->setGotoSection('payment');
195
- Mage::throwException("There was an error processing your payment.");
196
  }
197
 
198
  //Finish as usual
@@ -212,10 +214,6 @@ abstract class Paymill_Paymill_Model_Method_MethodModelAbstract extends Mage_Pay
212
  $fcHelper = Mage::helper("paymill/fastCheckoutHelper");
213
  $paymentProcessor = $paymentHelper->createPaymentProcessor($this->getCode(), $token);
214
 
215
- if ($this->getCode() === 'paymill_creditcard') {
216
- $paymentProcessor->setPreAuthAmount(Mage::getSingleton('core/session')->getPreAuthAmount());
217
- }
218
-
219
  //Always load client if email doesn't change
220
  $clientId = $fcHelper->getClientId();
221
  if (isset($clientId)) {
@@ -250,6 +248,8 @@ abstract class Paymill_Paymill_Model_Method_MethodModelAbstract extends Mage_Pay
250
 
251
  return true;
252
  }
 
 
253
 
254
  return false;
255
  }
90
  * @var string
91
  */
92
  protected $_code = 'paymill_abstract';
93
+
94
+ protected $_errorCode;
95
 
96
  /**
97
  * Check if currency is avaible for this payment
192
  }
193
 
194
  if (!$success) {
195
+ Mage::helper('paymill/loggingHelper')->log(Mage::helper("paymill/paymentHelper")->getErrorMessage($this->_errorCode));
196
  Mage::getSingleton('checkout/session')->setGotoSection('payment');
197
+ Mage::throwException(Mage::helper("paymill/paymentHelper")->getErrorMessage($this->_errorCode));
198
  }
199
 
200
  //Finish as usual
214
  $fcHelper = Mage::helper("paymill/fastCheckoutHelper");
215
  $paymentProcessor = $paymentHelper->createPaymentProcessor($this->getCode(), $token);
216
 
 
 
 
 
217
  //Always load client if email doesn't change
218
  $clientId = $fcHelper->getClientId();
219
  if (isset($clientId)) {
248
 
249
  return true;
250
  }
251
+
252
+ $this->_errorCode = $paymentProcessor->getErrorCode();
253
 
254
  return false;
255
  }
app/code/community/Paymill/Paymill/Model/Method/MethodModelCreditcard.php CHANGED
@@ -54,7 +54,6 @@ class Paymill_Paymill_Model_Method_MethodModelCreditcard extends Paymill_Paymill
54
  $paymentHelper = Mage::helper("paymill/paymentHelper");
55
  $fcHelper = Mage::helper("paymill/fastCheckoutHelper");
56
  $paymentProcessor = $paymentHelper->createPaymentProcessor($this->getCode(), $token);
57
- $paymentProcessor->setPreAuthAmount(Mage::getSingleton('core/session')->getPreAuthAmount());
58
 
59
  //Always load client if email doesn't change
60
  $clientId = $fcHelper->getClientId();
@@ -93,6 +92,8 @@ class Paymill_Paymill_Model_Method_MethodModelCreditcard extends Paymill_Paymill
93
  return true;
94
  }
95
 
 
 
96
  return false;
97
  }
98
 
@@ -124,7 +125,7 @@ class Paymill_Paymill_Model_Method_MethodModelCreditcard extends Paymill_Paymill
124
  $paymentProcessor->setPreauthId($preAuthorization);
125
 
126
  if (!$paymentProcessor->capture()) {
127
- Mage::throwException("There was an error processing your capture.");
128
  }
129
 
130
  Mage::helper('paymill/loggingHelper')->log("Capture created", var_export($paymentProcessor->getLastResponse(), true));
54
  $paymentHelper = Mage::helper("paymill/paymentHelper");
55
  $fcHelper = Mage::helper("paymill/fastCheckoutHelper");
56
  $paymentProcessor = $paymentHelper->createPaymentProcessor($this->getCode(), $token);
 
57
 
58
  //Always load client if email doesn't change
59
  $clientId = $fcHelper->getClientId();
92
  return true;
93
  }
94
 
95
+ $this->_errorCode = $paymentProcessor->getErrorCode();
96
+
97
  return false;
98
  }
99
 
125
  $paymentProcessor->setPreauthId($preAuthorization);
126
 
127
  if (!$paymentProcessor->capture()) {
128
+ Mage::throwException(Mage::helper("paymill/paymentHelper")->getErrorMessage($paymentProcessor->getErrorCode()));
129
  }
130
 
131
  Mage::helper('paymill/loggingHelper')->log("Capture created", var_export($paymentProcessor->getLastResponse(), true));
app/code/community/Paymill/Paymill/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Paymill_Paymill>
5
- <version>3.3.0</version>
6
  </Paymill_Paymill>
7
  </modules>
8
 
2
  <config>
3
  <modules>
4
  <Paymill_Paymill>
5
+ <version>3.4.0</version>
6
  </Paymill_Paymill>
7
  </modules>
8
 
app/code/community/Paymill/Paymill/etc/system.xml CHANGED
@@ -11,7 +11,7 @@
11
  <sort_order>700</sort_order>
12
  <fields>
13
  <version>
14
- <label>v3.3.0</label>
15
  <sort_order>1</sort_order>
16
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
17
  <frontend_type>label</frontend_type>
@@ -86,7 +86,7 @@
86
  <sort_order>800</sort_order>
87
  <fields>
88
  <version>
89
- <label>v3.3.0</label>
90
  <sort_order>100</sort_order>
91
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
92
  <frontend_type>label</frontend_type>
@@ -94,7 +94,6 @@
94
  <show_in_website>1</show_in_website>
95
  <show_in_store>1</show_in_store>
96
  </version>
97
-
98
  <active translate="label">
99
  <label>paymill_opt_Enabled</label>
100
  <sort_order>200</sort_order>
@@ -104,17 +103,6 @@
104
  <show_in_website>1</show_in_website>
105
  <show_in_store>1</show_in_store>
106
  </active>
107
-
108
- <tokenTolerance translate="label, tooltip, comment">
109
- <label>paymill_token_tolerace</label>
110
- <sort_order>210</sort_order>
111
- <tooltip>paymill_token_tolerace_tooltip</tooltip>
112
- <comment>paymill_token_tolerace_comment</comment>
113
- <frontend_type>text</frontend_type>
114
- <show_in_default>1</show_in_default>
115
- <show_in_website>1</show_in_website>
116
- <show_in_store>1</show_in_store>
117
- </tokenTolerance>
118
  <allowspecific translate="label">
119
  <label>Payment from Applicable Countries</label>
120
  <sort_order>220</sort_order>
@@ -171,7 +159,7 @@
171
  <sort_order>800</sort_order>
172
  <fields>
173
  <version>
174
- <label>v3.3.0</label>
175
  <sort_order>100</sort_order>
176
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
177
  <frontend_type>label</frontend_type>
11
  <sort_order>700</sort_order>
12
  <fields>
13
  <version>
14
+ <label>v3.4.0</label>
15
  <sort_order>1</sort_order>
16
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
17
  <frontend_type>label</frontend_type>
86
  <sort_order>800</sort_order>
87
  <fields>
88
  <version>
89
+ <label>v3.4.0</label>
90
  <sort_order>100</sort_order>
91
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
92
  <frontend_type>label</frontend_type>
94
  <show_in_website>1</show_in_website>
95
  <show_in_store>1</show_in_store>
96
  </version>
 
97
  <active translate="label">
98
  <label>paymill_opt_Enabled</label>
99
  <sort_order>200</sort_order>
103
  <show_in_website>1</show_in_website>
104
  <show_in_store>1</show_in_store>
105
  </active>
 
 
 
 
 
 
 
 
 
 
 
106
  <allowspecific translate="label">
107
  <label>Payment from Applicable Countries</label>
108
  <sort_order>220</sort_order>
159
  <sort_order>800</sort_order>
160
  <fields>
161
  <version>
162
+ <label>v3.4.0</label>
163
  <sort_order>100</sort_order>
164
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
165
  <frontend_type>label</frontend_type>
app/design/frontend/base/default/layout/paymill.xml CHANGED
@@ -4,7 +4,7 @@ To change this template, choose Tools | Templates
4
  and open the template in the editor.
5
  -->
6
  <layout version="0.1.0">
7
- <checkout_onepage_index>
8
  <reference name="head">
9
  <action method="addCss">
10
  <stylesheet>css/paymill/logo.css</stylesheet>
@@ -24,26 +24,5 @@ and open the template in the editor.
24
  <script>paymill/paymentForm.js</script>
25
  </action>
26
  </reference>
27
- </checkout_onepage_index>
28
- <onestepcheckout_index_index>
29
- <reference name="head">
30
- <action method="addCss">
31
- <stylesheet>css/paymill/logo.css</stylesheet>
32
- </action>
33
- <block type="core/text" name="google.cdn.jquery">
34
- <action method="setText">
35
- <text>
36
- <![CDATA[
37
- <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
38
- <script type="text/javascript" src="https://bridge.paymill.com/"></script></script>
39
- <script type="text/javascript">pmQuery = jQuery.noConflict();</script>
40
- ]]>
41
- </text>
42
- </action>
43
- </block>
44
- <action method="addJs">
45
- <script>paymill/paymentForm.js</script>
46
- </action>
47
- </reference>
48
- </onestepcheckout_index_index>
49
  </layout>
4
  and open the template in the editor.
5
  -->
6
  <layout version="0.1.0">
7
+ <default>
8
  <reference name="head">
9
  <action method="addCss">
10
  <stylesheet>css/paymill/logo.css</stylesheet>
24
  <script>paymill/paymentForm.js</script>
25
  </action>
26
  </reference>
27
+ </default>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  </layout>
app/design/frontend/base/default/template/paymill/payment/form/creditcard.phtml CHANGED
@@ -49,7 +49,7 @@
49
  <li>
50
  <input class="paymill-payment-token-cc" name="payment[paymill-payment-token-cc]" id="payment[paymill-payment-token-cc]" type="hidden" />
51
  <input class="paymill_3ds_cancel" name="payment[paymill_3ds_cancel]" id="payment[paymill_3ds_cancel]" type="hidden" value="<?php echo $this->__("paymill_3ds_cancel") ?>"/>
52
- <input class="paymill-payment-amount-cc" name="payment[paymill-payment-amount-cc]" id="payment[paymill-payment-amount-cc]" type="hidden" value="<?php echo Mage::helper('paymill/paymentHelper')->getPreAuthAmount($_code) ?>"/>
53
  <input class="paymill-payment-currency-cc" name="payment[paymill-payment-currency-cc]" id="payment[paymill-payment-currency-cc]" type="hidden" value="<?php echo Mage::helper('paymill/paymentHelper')->getCurrency() ?>"/>
54
  <input class="paymill-option-debug-cc" name="payment[paymill-option-debug]" id="payment[paymill-option-debug]" type="hidden" value="<?php echo Mage::helper('paymill/optionHelper')->isInDebugMode() ?>"/>
55
  <input class="paymill-info-public_key-cc" name="payment[paymill-info-public_key-cc]" id="payment[paymill-info-public_key-cc]" type="hidden" value="<?php echo Mage::helper('paymill/optionHelper')->getPublicKey() ?>"/>
49
  <li>
50
  <input class="paymill-payment-token-cc" name="payment[paymill-payment-token-cc]" id="payment[paymill-payment-token-cc]" type="hidden" />
51
  <input class="paymill_3ds_cancel" name="payment[paymill_3ds_cancel]" id="payment[paymill_3ds_cancel]" type="hidden" value="<?php echo $this->__("paymill_3ds_cancel") ?>"/>
52
+ <input class="paymill-payment-amount-cc" name="payment[paymill-payment-amount-cc]" id="payment[paymill-payment-amount-cc]" type="hidden" value="<?php echo Mage::helper('paymill/paymentHelper')->getAmount() ?>"/>
53
  <input class="paymill-payment-currency-cc" name="payment[paymill-payment-currency-cc]" id="payment[paymill-payment-currency-cc]" type="hidden" value="<?php echo Mage::helper('paymill/paymentHelper')->getCurrency() ?>"/>
54
  <input class="paymill-option-debug-cc" name="payment[paymill-option-debug]" id="payment[paymill-option-debug]" type="hidden" value="<?php echo Mage::helper('paymill/optionHelper')->isInDebugMode() ?>"/>
55
  <input class="paymill-info-public_key-cc" name="payment[paymill-info-public_key-cc]" id="payment[paymill-info-public_key-cc]" type="hidden" value="<?php echo Mage::helper('paymill/optionHelper')->getPublicKey() ?>"/>
app/locale/de_DE/Paymill_Paymill.csv CHANGED
@@ -54,4 +54,41 @@
54
  "paymill_slogan_elv","Elektronisches Lastschriftverfahren powered by "
55
  "paymill_error_text_invalid_cvc", "Ungültige CVC"
56
  "paymill_3ds_cancel", "Abbrechen"
57
- "paymill_cvc_tooltip", "Hinter dem CVV-Code bzw. CVC verbirgt sich ein Sicherheitsmerkmal von Kreditkarten, üblicherweise handelt es sich dabei um eine drei- bis vierstelligen Nummer. Der CVV-Code befindet sich auf VISA-Kreditkarten. Der gleiche Code ist auch auf MasterCard-Kreditkarten zu finden, hier allerdings unter dem Namen CVC. Die Abkürzung CVC steht dabei für Card Validation Code. Bei VISA wird der Code als Card Verification Value-Code bezeichnet. Ähnlich wie bei Mastercard und VISA gibt es auch bei Diners Club, Discover und JCB eine dreistellige Nummer, die meist auf der Rückseite der Karte zu finden ist. Bei Maestro-Karten gibt es mit und ohne dreistelligen CVV. Wird eine Maestro-Karte ohne CVV verwendet kann einfach 000 eingetragen werden. American Express verwendet die CID (Card Identification Number). Dabei handelt es sich um eine vierstellige Nummer, die meist auf der Vorderseite der Karte, rechts oberhalb der Kartennummer zu finden ist."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  "paymill_slogan_elv","Elektronisches Lastschriftverfahren powered by "
55
  "paymill_error_text_invalid_cvc", "Ungültige CVC"
56
  "paymill_3ds_cancel", "Abbrechen"
57
+ "paymill_cvc_tooltip", "Hinter dem CVV-Code bzw. CVC verbirgt sich ein Sicherheitsmerkmal von Kreditkarten, üblicherweise handelt es sich dabei um eine drei- bis vierstelligen Nummer. Der CVV-Code befindet sich auf VISA-Kreditkarten. Der gleiche Code ist auch auf MasterCard-Kreditkarten zu finden, hier allerdings unter dem Namen CVC. Die Abkürzung CVC steht dabei für Card Validation Code. Bei VISA wird der Code als Card Verification Value-Code bezeichnet. Ähnlich wie bei Mastercard und VISA gibt es auch bei Diners Club, Discover und JCB eine dreistellige Nummer, die meist auf der Rückseite der Karte zu finden ist. Bei Maestro-Karten gibt es mit und ohne dreistelligen CVV. Wird eine Maestro-Karte ohne CVV verwendet kann einfach 000 eingetragen werden. American Express verwendet die CID (Card Identification Number). Dabei handelt es sich um eine vierstellige Nummer, die meist auf der Vorderseite der Karte, rechts oberhalb der Kartennummer zu finden ist."
58
+ "General undefined response.", "Genereller Fehler, bitte wenden Sie sich an den Support"
59
+ "Still waiting on something.", "Wir warten noch immer auf etwas."
60
+ "General success response.", "General success response."
61
+ "General problem with data.", "Generelles Problem mit den Daten."
62
+ "General problem with payment data.", "Es gibt ein Problem mit den Payment Daten"
63
+ "Problem with credit card data.", "Es existieren Probleme mit der Kreditkarte. Nähere Details können nicht übergeben werden."
64
+ "Problem with cvv.", "Der CVV ist nicht korrekt."
65
+ "Card expired or not yet valid.", "Die Kreditkarte ist abgelaufen oder noch gültig."
66
+ "Limit exceeded.", "Das Umsatzimit der Kreditkarte wurde mit dieser Transaktion überschritten oder ist bereits überschritten."
67
+ "Card invalid.", "Die Kreditkarte ist ungültig."
68
+ "Expiry date not valid.", "Das Kreditkartenablaufdatum ist nicht korrekt."
69
+ "Credit card brand required.", "Kreditkarten-Anbieter ist erforderlich."
70
+ "Problem with bank account data.", "Probleme mit den Konto Daten."
71
+ "Bank account data combination mismatch.", "Daten stimmen nicht mit dem Bank-Account überein."
72
+ "User authentication failed.", "Die Benutzer-Authentifizierung ist fehlgeschlagen"
73
+ "Problem with 3d secure data.", "Es gibt es Problem mit den 3DSecure Daten."
74
+ "Currency / amount mismatch", "Währung oder Betrag stimmen nicht überein."
75
+ "Problem with input data.", "Es gibt ein Problem mit den Eingabe Daten."
76
+ "Amount too low or zero.", "Der Betrag ist zu niedrig oder null."
77
+ "Usage field too long.", "Der Verwendungszweck ist zu lang."
78
+ "Currency not allowed.", "Die Währung ist nicht für den Kunden konfigurierten."
79
+ "General problem with backend.", "Generelles Problem mit dem Backend."
80
+ "Country blacklisted.", "Die Kreditkarte ist auf einer Schwarzen Liste."
81
+ "Technical error with credit card.", "Technisches Problem mit der Kreditkarte."
82
+ "Error limit exceeded.", "Limit überschritten."
83
+ "Card declined by authorization system.", "Diese Karte wurde ohne weitere Gründe abgelehnt."
84
+ "Manipulation or stolen card.", "Diese Karte wurde wegen Kartenmanipulationen abgelehnt."
85
+ "Card restricted.", "Die Transaktion wurde vom Authorisierungs-System abgelehnt (Karte durch Bank eingeschränkt)."
86
+ "Invalid card configuration data.", "Die Konfiguration ist ungültig."
87
+ "Technical error with bank account.", "Technischer Fehler mit dem Bankkonto."
88
+ "Card blacklisted.", "Dieser Kundenaccount ist auf einer Schwarzen Liste."
89
+ "Technical error with 3D secure.", "Es gibt einen teschnischen Fehler mit 3-D Secure."
90
+ "Decline because of risk issues.", "Ablehnung aufgrund von Risiko Problemen."
91
+ "General timeout.", "Generelle Zeitüberschreitung."
92
+ "Timeout on side of the acquirer.", "Die Schnittstelle zum Acquirer reagiert nicht, daher bekommen wir keine Antwort ob die Transaktion erfolgreich durchgelaufen ist."
93
+ "Risk management transaction timeout.", "Es gibt eine Zeitüberschreitung bei der Risiko-Management Transaktion."
94
+ "Duplicate transaction.", "Doppelte Transaktion."
app/locale/en_GB/Paymill_Paymill.csv CHANGED
@@ -54,4 +54,41 @@
54
  "paymill_slogan_elv","Direct debit payments powered by "
55
  "paymill_error_text_invalid_cvc", "Invalid cvc"
56
  "paymill_3ds_cancel", "cancel"
57
- "paymill_cvc_tooltip", "What is a CVV/CVC number? Prospective credit cards will have a 3 to 4-digit number, usually on the back of the card. It ascertains that the payment is carried out by the credit card holder and the card account is legitimate. On Visa the CVV (Card Verification Value) appears after and to the right of your card number. Same goes for Mastercard’s CVC (Card Verfication Code), which also appears after and to the right of your card number, and has 3-digits. Diners Club, Discover, and JCB credit and debit cards have a three-digit card security code which also appears after and to the right of your card number. The American Express CID (Card Identification Number) is a 4-digit number printed on the front of your card. It appears above and to the right of your card number. On Maestro the CVV appears after and to the right of your number. If you don’t have a CVV for your Maestro card you can use 000."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  "paymill_slogan_elv","Direct debit payments powered by "
55
  "paymill_error_text_invalid_cvc", "Invalid cvc"
56
  "paymill_3ds_cancel", "cancel"
57
+ "paymill_cvc_tooltip", "What is a CVV/CVC number? Prospective credit cards will have a 3 to 4-digit number, usually on the back of the card. It ascertains that the payment is carried out by the credit card holder and the card account is legitimate. On Visa the CVV (Card Verification Value) appears after and to the right of your card number. Same goes for Mastercard’s CVC (Card Verfication Code), which also appears after and to the right of your card number, and has 3-digits. Diners Club, Discover, and JCB credit and debit cards have a three-digit card security code which also appears after and to the right of your card number. The American Express CID (Card Identification Number) is a 4-digit number printed on the front of your card. It appears above and to the right of your card number. On Maestro the CVV appears after and to the right of your number. If you don’t have a CVV for your Maestro card you can use 000."
58
+ "General undefined response.", "General undefined response."
59
+ "Still waiting on something.", "Still waiting on something."
60
+ "General success response.", "General success response."
61
+ "General problem with data.", "General problem with data."
62
+ "General problem with payment data.", "General problem with payment data."
63
+ "Problem with credit card data.", "Problem with credit card data."
64
+ "Problem with cvv.", "Problem with cvv."
65
+ "Card expired or not yet valid.", "Card expired or not yet valid."
66
+ "Limit exceeded.", "Limit exceeded."
67
+ "Card invalid.", "Card invalid."
68
+ "Expiry date not valid.", "Expiry date not valid."
69
+ "Credit card brand required.", "Credit card brand required."
70
+ "Problem with bank account data.", "Problem with bank account data."
71
+ "Bank account data combination mismatch.", "Bank account data combination mismatch."
72
+ "User authentication failed.", "User authentication failed."
73
+ "Problem with 3d secure data.", "Problem with 3d secure data."
74
+ "Currency / amount mismatch", "Currency / amount mismatch"
75
+ "Problem with input data.", "Problem with input data."
76
+ "Amount too low or zero.", "Amount too low or zero."
77
+ "Usage field too long.", "Usage field too long."
78
+ "Currency not allowed.", "Currency not allowed."
79
+ "General problem with backend.", "General problem with backend."
80
+ "Country blacklisted.", "Country blacklisted."
81
+ "Technical error with credit card.", "Technical error with credit card."
82
+ "Error limit exceeded.", "Error limit exceeded."
83
+ "Card declined by authorization system.", "Card declined by authorization system."
84
+ "Manipulation or stolen card.", "Manipulation or stolen card."
85
+ "Card restricted.", "Card restricted."
86
+ "Invalid card configuration data.", "Invalid card configuration data."
87
+ "Technical error with bank account.", "Technical error with bank account."
88
+ "Card blacklisted.", "Card blacklisted."
89
+ "Technical error with 3D secure.", "Technical error with 3D secure."
90
+ "Decline because of risk issues.", "Decline because of risk issues."
91
+ "General timeout.", "General timeout."
92
+ "Timeout on side of the acquirer.", "Timeout on side of the acquirer."
93
+ "Risk management transaction timeout.", "Risk management transaction timeout."
94
+ "Duplicate transaction.", "Duplicate transaction."
js/paymill/paymentForm.js CHANGED
@@ -176,7 +176,7 @@ function paymillSubmitForm()
176
  'paymill-validate-cc-holder',
177
  PAYMILL_ERROR_TEXT_IVALID_HOLDER_CC,
178
  function(v) {
179
- return (v !== '');
180
  },
181
  ''
182
  ),
176
  'paymill-validate-cc-holder',
177
  PAYMILL_ERROR_TEXT_IVALID_HOLDER_CC,
178
  function(v) {
179
+ return (paymill.validateHolder(v));
180
  },
181
  ''
182
  ),
lib/Services/Paymill/Apiclient/Curl.php CHANGED
@@ -24,7 +24,6 @@ class Services_Paymill_Apiclient_Curl implements Services_Paymill_Apiclient_Inte
24
  * @var string
25
  */
26
  private $_apiKey = null;
27
-
28
  private $_responseArray = null;
29
 
30
  /**
@@ -78,6 +77,9 @@ class Services_Paymill_Apiclient_Curl implements Services_Paymill_Apiclient_Inte
78
  if (isset($this->_responseArray['body']['response_code'])) {
79
  $responseCode = $this->_responseArray['body']['response_code'];
80
  }
 
 
 
81
 
82
  return array("data" => array(
83
  "error" => $errorMessage,
@@ -147,13 +149,15 @@ class Services_Paymill_Apiclient_Curl implements Services_Paymill_Apiclient_Inte
147
  'body' => $responseBody
148
  );
149
  }
150
-
151
  /**
152
  * Returns the response of the request as an array.
153
  * @return mixed Response
154
  * @todo Create Unit Test
155
  */
156
- public function getResponse(){
 
157
  return $this->_responseArray;
158
  }
 
159
  }
24
  * @var string
25
  */
26
  private $_apiKey = null;
 
27
  private $_responseArray = null;
28
 
29
  /**
77
  if (isset($this->_responseArray['body']['response_code'])) {
78
  $responseCode = $this->_responseArray['body']['response_code'];
79
  }
80
+ if ($responseCode === '' && isset($this->_responseArray['body']['data']['response_code'])) {
81
+ $responseCode = $this->_responseArray['body']['data']['response_code'];
82
+ }
83
 
84
  return array("data" => array(
85
  "error" => $errorMessage,
149
  'body' => $responseBody
150
  );
151
  }
152
+
153
  /**
154
  * Returns the response of the request as an array.
155
  * @return mixed Response
156
  * @todo Create Unit Test
157
  */
158
+ public function getResponse()
159
+ {
160
  return $this->_responseArray;
161
  }
162
+
163
  }
lib/Services/Paymill/Apiclient/paymill.crt CHANGED
@@ -1,25 +1,25 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
3
- MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
4
- IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
5
- MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
6
- FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
7
- bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
8
- dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
9
- H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
10
- uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
11
- mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
12
- a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
13
- E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
14
- WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
15
- VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
16
- Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
17
- cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
18
- IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
19
- AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
20
- YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
21
- 6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
22
- Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
23
- c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
24
- mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
25
- -----END CERTIFICATE-----
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
3
+ MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
4
+ IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
5
+ MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
6
+ FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
7
+ bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
8
+ dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
9
+ H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
10
+ uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
11
+ mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
12
+ a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
13
+ E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
14
+ WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
15
+ VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
16
+ Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
17
+ cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
18
+ IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
19
+ AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
20
+ YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
21
+ 6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
22
+ Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
23
+ c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
24
+ mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
25
+ -----END CERTIFICATE-----
lib/Services/Paymill/PaymentProcessor.php CHANGED
@@ -35,6 +35,7 @@ class Services_Paymill_PaymentProcessor
35
  private $_paymentId = null;
36
  //Source
37
  private $_source;
 
38
 
39
  /**
40
  * Creates an object of the PaymentProcessor class.
@@ -257,7 +258,12 @@ class Services_Paymill_PaymentProcessor
257
  $this->_lastResponse = $transaction;
258
  if (isset($transaction['data']['response_code']) && $transaction['data']['response_code'] !== 20000) {
259
  $this->_log("An Error occured: " . $transaction['data']['response_code'], var_export($transaction, true));
260
- throw new Exception("Invalid Result Exception: Invalid ResponseCode");
 
 
 
 
 
261
  }
262
 
263
  if (!isset($transaction['id']) && !isset($transaction['data']['id'])) {
@@ -333,8 +339,9 @@ class Services_Paymill_PaymentProcessor
333
 
334
  return true;
335
  } catch (Exception $ex) {
 
336
  // paymill wrapper threw an exception
337
- $this->_log("Exception thrown from paymill wrapper.", $ex->getMessage());
338
  return false;
339
  }
340
  }
@@ -423,6 +430,11 @@ class Services_Paymill_PaymentProcessor
423
  {
424
  return $this->_lastResponse;
425
  }
 
 
 
 
 
426
 
427
  /* * **************************************************************************************************************
428
  * *********************************************** Setter **************************************************
35
  private $_paymentId = null;
36
  //Source
37
  private $_source;
38
+ private $_errorCode;
39
 
40
  /**
41
  * Creates an object of the PaymentProcessor class.
258
  $this->_lastResponse = $transaction;
259
  if (isset($transaction['data']['response_code']) && $transaction['data']['response_code'] !== 20000) {
260
  $this->_log("An Error occured: " . $transaction['data']['response_code'], var_export($transaction, true));
261
+ throw new Exception("Invalid Result Exception: Invalid ResponseCode", $transaction['data']['response_code']);
262
+ }
263
+
264
+ if (isset($transaction['response_code']) && $transaction['response_code'] !== 20000) {
265
+ $this->_log("An Error occured: " . $transaction['response_code'], var_export($transaction, true));
266
+ throw new Exception("Invalid Result Exception: Invalid ResponseCode", $transaction['response_code']);
267
  }
268
 
269
  if (!isset($transaction['id']) && !isset($transaction['data']['id'])) {
339
 
340
  return true;
341
  } catch (Exception $ex) {
342
+ $this->_errorCode = $ex->getCode();
343
  // paymill wrapper threw an exception
344
+ $this->_log("Exception thrown from paymill wrapper. Code: " . $ex->getCode() . " Message: " . $ex->getMessage(), print_r($this->_transactionsObject->getResponse(), true));
345
  return false;
346
  }
347
  }
430
  {
431
  return $this->_lastResponse;
432
  }
433
+
434
+ public function getErrorCode()
435
+ {
436
+ return $this->_errorCode;
437
+ }
438
 
439
  /* * **************************************************************************************************************
440
  * *********************************************** Setter **************************************************
lib/Services/Paymill/Preauthorizations.php CHANGED
@@ -1,27 +1,27 @@
1
- <?php
2
-
3
- require_once ('Base.php');
4
-
5
- /**
6
- * Paymill API wrapper for transactions resource
7
- */
8
- class Services_Paymill_Preauthorizations extends Services_Paymill_Base
9
- {
10
- /**
11
- * {@inheritDoc}
12
- */
13
- protected $_serviceResource = 'preauthorizations/';
14
-
15
- /**
16
- * General REST PUT verb
17
- * Update resource item
18
- *
19
- * @param array $itemData
20
- *
21
- * @return array item updated or null
22
- */
23
- public function update(array $itemData = array())
24
- {
25
- throw new Services_Paymill_Exception( __CLASS__ . " does not support " . __METHOD__, "404");
26
- }
27
  }
1
+ <?php
2
+
3
+ require_once ('Base.php');
4
+
5
+ /**
6
+ * Paymill API wrapper for transactions resource
7
+ */
8
+ class Services_Paymill_Preauthorizations extends Services_Paymill_Base
9
+ {
10
+ /**
11
+ * {@inheritDoc}
12
+ */
13
+ protected $_serviceResource = 'preauthorizations/';
14
+
15
+ /**
16
+ * General REST PUT verb
17
+ * Update resource item
18
+ *
19
+ * @param array $itemData
20
+ *
21
+ * @return array item updated or null
22
+ */
23
+ public function update(array $itemData = array())
24
+ {
25
+ throw new Services_Paymill_Exception( __CLASS__ . " does not support " . __METHOD__, "404");
26
+ }
27
  }
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Paymill_Paymill</name>
4
- <version>3.3.0</version>
5
  <stability>stable</stability>
6
  <license>Open Software License</license>
7
  <channel>community</channel>
@@ -13,14 +13,13 @@ The Paymill Magento extension provides a credit card form and a direct debit for
13
  &lt;br /&gt;&lt;br /&gt;&#xD;
14
  IMPORTANT: Only use the latest version.&#xD;
15
  </description>
16
- <notes>* fix OneStepCheckout bug&#xD;
17
- * log search using the global record search&#xD;
18
- * 1.8 compatibility&#xD;
19
- * make input id's and names in the payment templates unique</notes>
20
  <authors><author><name>PayIntelligent</name><user>Paymill</user><email>community@paymill.de</email></author></authors>
21
- <date>2013-10-16</date>
22
- <time>13:05:55</time>
23
- <contents><target name="magecommunity"><dir name="Paymill"><dir><dir name="Paymill"><dir name="Block"><dir name="Adminhtml"><dir name="Log"><file name="Grid.php" hash="7d74f94403297eeb551272ad5c94513f"/><dir name="View"><file name="Plane.php" hash="87b7707dba28fa4357ab7fb2d12b19e4"/><file name="Tabs.php" hash="d16d9748921a34067242eaf92d6f299e"/></dir><file name="View.php" hash="af850dd16c3e7505a69a6cb3ca3fbc27"/></dir><file name="Log.php" hash="02930fb46a2a4569176ceb29c45037e8"/></dir><dir name="Payment"><dir name="Form"><file name="PaymentFormAbstract.php" hash="3b7c3c02a50d24def79485a7d2d47dd5"/><file name="PaymentFormCreditcard.php" hash="5351fa41246fb107bd3e62fdd274f715"/><file name="PaymentFormDirectdebit.php" hash="526991e3ed3c25b6c242fdd21e7aba25"/></dir><dir name="Info"><file name="PaymentFormCreditcard.php" hash="3e7a3d2b84878bc22f6ac9e2a0ac5c76"/><file name="PaymentFormDirectdebit.php" hash="bbc8f0cae5dff57df9ec1975650fe5e0"/></dir></dir></dir><dir name="Helper"><file name="CustomerHelper.php" hash="2970725a233e835e8c24d47d6a650c6a"/><file name="Data.php" hash="65371da937bd0aa1ba57aa4b9d27d989"/><file name="FastCheckoutHelper.php" hash="48058398d9af8d92f69e0a0566b0b040"/><file name="LoggingHelper.php" hash="53ea7f4d5c3af8de149a06dbe37ac061"/><file name="OptionHelper.php" hash="f0fae6bb8f67fc2e27f6957925e8168e"/><file name="PaymentHelper.php" hash="192be10925ef842da606bcad3f652375"/><file name="RefundHelper.php" hash="b936d48e6f9022acb0370ec755cf5850"/><file name="TransactionHelper.php" hash="7cce355230eee2f1c617df1bd18f8752"/></dir><dir name="Model"><file name="Fastcheckout.php" hash="94565a600a12f880edeabc941bd35ded"/><dir name="Log"><file name="Search.php" hash="4338b3876e745405bfcc5a32cfe42527"/></dir><file name="Log.php" hash="476c497495b92c3cf49e0c7b470854d4"/><dir name="Method"><file name="MethodModelAbstract.php" hash="055ce0ef74200646cfaaff5b6a15bc30"/><file name="MethodModelCreditcard.php" hash="972c52004e7f8f9be24a9037bd93be29"/><file name="MethodModelDirectdebit.php" hash="bc7bc9b40760ca488e48a257dccc768d"/></dir><dir name="Mysql4"><dir name="Fastcheckout"><file name="Collection.php" hash="14d4aa413ec952fd2452f08ab2a208f6"/></dir><file name="Fastcheckout.php" hash="56b09daa390ba1f4f5116f1d701833e4"/><dir name="Log"><file name="Collection.php" hash="cf4d8fec68a4cc44b2e47bf69e014cf3"/></dir><file name="Log.php" hash="9bd80dc9300cc189b6b3ebd921b4e3e6"/></dir><file name="Observer.php" hash="1f4a97d901810157228fd9224f319827"/><file name="TransactionData.php" hash="6f2bfd7a7ecde8dc4f21e03d33fdd7e4"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="LogController.php" hash="fe634fc07d161f160ae060600561a0b1"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="402c36431d690ffa9b7eae074cadfb4e"/><file name="config.xml" hash="9dbae26f56c55920323c20c879183635"/><file name="system.xml" hash="8a821f12386481d62899fd8159c8ea4e"/></dir><dir name="sql"><dir name="paymill_setup"><file name="mysql4-install-3.0.0.php" hash="46a31a1699b06185dea919edf6e07c74"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="template"><dir name="paymill"><dir><dir name="log"><file name="view.phtml" hash="2d4df28de6e1cb4701963db3d0c0545c"/></dir><dir name="payment"><dir name="info"><file name="creditcard.phtml" hash="1c604ec666d9a3028a04c0d9a4257e4a"/><file name="directdebit.phtml" hash="1c604ec666d9a3028a04c0d9a4257e4a"/></dir></dir></dir></dir></dir><dir name="layout"><file name="paymill.xml" hash="fcc95f6e7c375fee779178a0f9f1a1d8"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="paymill"><dir><dir name="payment"><dir name="form"><file name="creditcard.phtml" hash="108686f598b1944108c7ba101768a9c1"/><file name="directdebit.phtml" hash="fb82ffcdc17e0d2c0a4415e0c34a5807"/></dir><dir name="info"><file name="creditcard.phtml" hash="42f875eb1b6e3e6151ddf152ef0bf13a"/><file name="directdebit.phtml" hash="42f875eb1b6e3e6151ddf152ef0bf13a"/></dir></dir></dir></dir></dir><dir name="layout"><file name="paymill.xml" hash="693c79248b355e3d35218f6a71e46f43"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Paymill_Paymill.xml" hash="d36d3af5f5752dcf87517272ddb9af53"/></dir></target><target name="magelocale"><dir name="de_DE"><file name="Paymill_Paymill.csv" hash="39f32cc2babac62a1796971aca3a97b8"/></dir><dir name="en_GB"><file name="Paymill_Paymill.csv" hash="3945f929635b1e2e556915b1017f6634"/></dir></target><target name="magelocal"><dir name="en_US"><file name="Paymill_Paymill.csv" hash=""/></dir><dir name="es_ES"><file name="Paymill_Paymill.csv" hash=""/></dir></target><target name="mage"><dir name="js"><dir name="paymill"><file name="paymentForm.js" hash="3029815f95863ac11e0ebbf7fa0c77e6"/></dir></dir></target><target name="magelib"><dir name="Services"><dir><dir name="Paymill"><dir name="Apiclient"><file name="Curl.php" hash="62457ead798a8bf62ccddb0bc7e8f449"/><file name="Interface.php" hash="349309458455e550c562fb17cf23f4a6"/><file name="paymill.crt" hash="51e14b4c734e450402ea2cf73f2aee0f"/></dir><file name="Base.php" hash="9f583d1613257b20a7d325131d545fae"/><file name="Clients.php" hash="f9bc9034a6f3b88a842f35efd6524ab6"/><file name="Exception.php" hash="9beffb75d92c0de3c1c7ea5b33930fff"/><file name="LoggingInterface.php" hash="46ebeede1da14b761c54a18aff6c3b79"/><file name="Offers.php" hash="28b2d420c87531ffa1f193ec3934fc5b"/><file name="PaymentProcessor.php" hash="e16fb85db7fa34a17f98f3e1ecac5f91"/><file name="Payments.php" hash="dd8e18548fb149956fff93fd55f68029"/><file name="Preauthorizations.php" hash="af4c8ab19444eee76951e9fe9f0e8fdd"/><file name="Refunds.php" hash="e15a2dfb3df362cb9cd45c8e5382b77b"/><file name="Subscriptions.php" hash="e8f55fcfd1065439d49bc5f734294be6"/><file name="Transactions.php" hash="fb6d248c88285105a426bf4491cbfc6b"/><file name="Webhooks.php" hash="06be5e57b81b3052a56371933e0674e9"/></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="paymill"><file name="logo.css" hash="6c09811ecd11d36b9e41b4a616481769"/></dir></dir><dir name="images"><dir name="paymill"><file name="icon_32x20_amex.png" hash="42c5fb43b4b603804b50da9761927d40"/><file name="icon_32x20_dinersclub.png" hash="0a7a8fc8f679ccf05d91298c9968629c"/><file name="icon_32x20_discover.png" hash="4fe8ef419087bed97cddbdeb251b847c"/><file name="icon_32x20_jcb.png" hash="774a040f938c5566fa3fddfa840d4743"/><file name="icon_32x20_maestro.png" hash="a6ffd22c9bbedb603449e2aa6136dbd1"/><file name="icon_32x20_mastercard.png" hash="09aef6dcbc50038605b7c0e5a38eb76e"/><file name="icon_32x20_visa.png" hash="e6d54e5c0120202eb5757bcfe499d73b"/><file name="icon_paymill.png" hash="303983a288b45cc7ddc5b88ad2eedd51"/></dir></dir></dir></dir></dir></target></contents>
24
  <compatible/>
25
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
26
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Paymill_Paymill</name>
4
+ <version>3.4.0</version>
5
  <stability>stable</stability>
6
  <license>Open Software License</license>
7
  <channel>community</channel>
13
  &lt;br /&gt;&lt;br /&gt;&#xD;
14
  IMPORTANT: Only use the latest version.&#xD;
15
  </description>
16
+ <notes> * Customer friendly error messages&#xD;
17
+ * Better owner validation&#xD;
18
+ * Global css and js loading</notes>
 
19
  <authors><author><name>PayIntelligent</name><user>Paymill</user><email>community@paymill.de</email></author></authors>
20
+ <date>2013-10-24</date>
21
+ <time>08:30:09</time>
22
+ <contents><target name="magecommunity"><dir name="Paymill"><dir><dir name="Paymill"><dir name="Block"><dir name="Adminhtml"><dir name="Log"><file name="Grid.php" hash="7d74f94403297eeb551272ad5c94513f"/><dir name="View"><file name="Plane.php" hash="87b7707dba28fa4357ab7fb2d12b19e4"/><file name="Tabs.php" hash="d16d9748921a34067242eaf92d6f299e"/></dir><file name="View.php" hash="af850dd16c3e7505a69a6cb3ca3fbc27"/></dir><file name="Log.php" hash="02930fb46a2a4569176ceb29c45037e8"/></dir><dir name="Payment"><dir name="Form"><file name="PaymentFormAbstract.php" hash="3b7c3c02a50d24def79485a7d2d47dd5"/><file name="PaymentFormCreditcard.php" hash="5351fa41246fb107bd3e62fdd274f715"/><file name="PaymentFormDirectdebit.php" hash="526991e3ed3c25b6c242fdd21e7aba25"/></dir><dir name="Info"><file name="PaymentFormCreditcard.php" hash="3e7a3d2b84878bc22f6ac9e2a0ac5c76"/><file name="PaymentFormDirectdebit.php" hash="bbc8f0cae5dff57df9ec1975650fe5e0"/></dir></dir></dir><dir name="Helper"><file name="CustomerHelper.php" hash="f077f41331778bd63518644b0ca3fec3"/><file name="Data.php" hash="65371da937bd0aa1ba57aa4b9d27d989"/><file name="FastCheckoutHelper.php" hash="48058398d9af8d92f69e0a0566b0b040"/><file name="LoggingHelper.php" hash="53ea7f4d5c3af8de149a06dbe37ac061"/><file name="OptionHelper.php" hash="cbf3daa334bce07b7eb62a5a43dd18dc"/><file name="PaymentHelper.php" hash="1753eb12f7c7c0d30dbe181bb87655b0"/><file name="RefundHelper.php" hash="b936d48e6f9022acb0370ec755cf5850"/><file name="TransactionHelper.php" hash="7cce355230eee2f1c617df1bd18f8752"/></dir><dir name="Model"><file name="Fastcheckout.php" hash="94565a600a12f880edeabc941bd35ded"/><dir name="Log"><file name="Search.php" hash="4338b3876e745405bfcc5a32cfe42527"/></dir><file name="Log.php" hash="476c497495b92c3cf49e0c7b470854d4"/><dir name="Method"><file name="MethodModelAbstract.php" hash="7b7ebba9af21bc887e53e6b53685800f"/><file name="MethodModelCreditcard.php" hash="beba2b1d5de002322c16f5e772c5fe99"/><file name="MethodModelDirectdebit.php" hash="bc7bc9b40760ca488e48a257dccc768d"/></dir><dir name="Mysql4"><dir name="Fastcheckout"><file name="Collection.php" hash="14d4aa413ec952fd2452f08ab2a208f6"/></dir><file name="Fastcheckout.php" hash="56b09daa390ba1f4f5116f1d701833e4"/><dir name="Log"><file name="Collection.php" hash="cf4d8fec68a4cc44b2e47bf69e014cf3"/></dir><file name="Log.php" hash="9bd80dc9300cc189b6b3ebd921b4e3e6"/></dir><file name="Observer.php" hash="1f4a97d901810157228fd9224f319827"/><file name="TransactionData.php" hash="6f2bfd7a7ecde8dc4f21e03d33fdd7e4"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="LogController.php" hash="fe634fc07d161f160ae060600561a0b1"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="402c36431d690ffa9b7eae074cadfb4e"/><file name="config.xml" hash="c3b5b3a8993e394cc1e6c760ac0b4b1f"/><file name="system.xml" hash="bea033302955cfe735b28d17b71ff3a2"/></dir><dir name="sql"><dir name="paymill_setup"><file name="mysql4-install-3.0.0.php" hash="46a31a1699b06185dea919edf6e07c74"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="template"><dir name="paymill"><dir><dir name="log"><file name="view.phtml" hash="2d4df28de6e1cb4701963db3d0c0545c"/></dir><dir name="payment"><dir name="info"><file name="creditcard.phtml" hash="1c604ec666d9a3028a04c0d9a4257e4a"/><file name="directdebit.phtml" hash="1c604ec666d9a3028a04c0d9a4257e4a"/></dir></dir></dir></dir></dir><dir name="layout"><file name="paymill.xml" hash="fcc95f6e7c375fee779178a0f9f1a1d8"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="paymill"><dir><dir name="payment"><dir name="form"><file name="creditcard.phtml" hash="f33517865bf2d24bed822e320fe77121"/><file name="directdebit.phtml" hash="fb82ffcdc17e0d2c0a4415e0c34a5807"/></dir><dir name="info"><file name="creditcard.phtml" hash="42f875eb1b6e3e6151ddf152ef0bf13a"/><file name="directdebit.phtml" hash="42f875eb1b6e3e6151ddf152ef0bf13a"/></dir></dir></dir></dir></dir><dir name="layout"><file name="paymill.xml" hash="41c2621dabecc999923e0d2491185d22"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Paymill_Paymill.xml" hash="d36d3af5f5752dcf87517272ddb9af53"/></dir></target><target name="magelocale"><dir name="de_DE"><file name="Paymill_Paymill.csv" hash="ffde50d271ff35b4c9890fb9f5ba10c7"/></dir><dir name="en_GB"><file name="Paymill_Paymill.csv" hash="8d17d41a96420fad84ca277cc1e08169"/></dir></target><target name="magelocal"><dir name="en_US"><file name="Paymill_Paymill.csv" hash=""/></dir><dir name="es_ES"><file name="Paymill_Paymill.csv" hash=""/></dir></target><target name="mage"><dir name="js"><dir name="paymill"><file name="paymentForm.js" hash="e29b3dd732c0e02d4ae41789e12929c7"/></dir></dir></target><target name="magelib"><dir name="Services"><dir><dir name="Paymill"><dir name="Apiclient"><file name="Curl.php" hash="47867c39a8674009ef3dda79e8e8c6ed"/><file name="Interface.php" hash="349309458455e550c562fb17cf23f4a6"/><file name="paymill.crt" hash="f85d1ff17b0079709f131f3ce3f288d2"/></dir><file name="Base.php" hash="9f583d1613257b20a7d325131d545fae"/><file name="Clients.php" hash="f9bc9034a6f3b88a842f35efd6524ab6"/><file name="Exception.php" hash="9beffb75d92c0de3c1c7ea5b33930fff"/><file name="LoggingInterface.php" hash="46ebeede1da14b761c54a18aff6c3b79"/><file name="Offers.php" hash="28b2d420c87531ffa1f193ec3934fc5b"/><file name="PaymentProcessor.php" hash="d2471457b9193cb1b37032b3d0ce87f6"/><file name="Payments.php" hash="dd8e18548fb149956fff93fd55f68029"/><file name="Preauthorizations.php" hash="62dda9a5ee853e9c53d0c40fae7e95bd"/><file name="Refunds.php" hash="e15a2dfb3df362cb9cd45c8e5382b77b"/><file name="Subscriptions.php" hash="e8f55fcfd1065439d49bc5f734294be6"/><file name="Transactions.php" hash="fb6d248c88285105a426bf4491cbfc6b"/><file name="Webhooks.php" hash="06be5e57b81b3052a56371933e0674e9"/></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="paymill"><file name="logo.css" hash="6c09811ecd11d36b9e41b4a616481769"/></dir></dir><dir name="images"><dir name="paymill"><file name="icon_32x20_amex.png" hash="42c5fb43b4b603804b50da9761927d40"/><file name="icon_32x20_dinersclub.png" hash="0a7a8fc8f679ccf05d91298c9968629c"/><file name="icon_32x20_discover.png" hash="4fe8ef419087bed97cddbdeb251b847c"/><file name="icon_32x20_jcb.png" hash="774a040f938c5566fa3fddfa840d4743"/><file name="icon_32x20_maestro.png" hash="a6ffd22c9bbedb603449e2aa6136dbd1"/><file name="icon_32x20_mastercard.png" hash="09aef6dcbc50038605b7c0e5a38eb76e"/><file name="icon_32x20_visa.png" hash="e6d54e5c0120202eb5757bcfe499d73b"/><file name="icon_paymill.png" hash="303983a288b45cc7ddc5b88ad2eedd51"/></dir></dir></dir></dir></dir></target></contents>
23
  <compatible/>
24
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
25
  </package>