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 +7 -1
- app/code/community/Paymill/Paymill/Helper/OptionHelper.php +0 -14
- app/code/community/Paymill/Paymill/Helper/PaymentHelper.php +58 -12
- app/code/community/Paymill/Paymill/Model/Method/MethodModelAbstract.php +6 -6
- app/code/community/Paymill/Paymill/Model/Method/MethodModelCreditcard.php +3 -2
- app/code/community/Paymill/Paymill/etc/config.xml +1 -1
- app/code/community/Paymill/Paymill/etc/system.xml +3 -15
- app/design/frontend/base/default/layout/paymill.xml +2 -23
- app/design/frontend/base/default/template/paymill/payment/form/creditcard.phtml +1 -1
- app/locale/de_DE/Paymill_Paymill.csv +38 -1
- app/locale/en_GB/Paymill_Paymill.csv +38 -1
- js/paymill/paymentForm.js +1 -1
- lib/Services/Paymill/Apiclient/Curl.php +7 -3
- lib/Services/Paymill/Apiclient/paymill.crt +25 -25
- lib/Services/Paymill/PaymentProcessor.php +14 -2
- lib/Services/Paymill/Preauthorizations.php +26 -26
- package.xml +7 -8
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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("
|
| 194 |
Mage::getSingleton('checkout/session')->setGotoSection('payment');
|
| 195 |
-
Mage::throwException("
|
| 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("
|
| 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.
|
| 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.
|
| 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.
|
| 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.
|
| 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 |
-
<
|
| 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 |
-
</
|
| 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')->
|
| 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."
|
| 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.
|
| 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 |
<br /><br />
|
| 14 |
IMPORTANT: Only use the latest version.
|
| 15 |
</description>
|
| 16 |
-
<notes
|
| 17 |
-
*
|
| 18 |
-
*
|
| 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-
|
| 22 |
-
<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="
|
| 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 |
<br /><br />
|
| 14 |
IMPORTANT: Only use the latest version.
|
| 15 |
</description>
|
| 16 |
+
<notes> * Customer friendly error messages
|
| 17 |
+
* Better owner validation
|
| 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>
|
