From 31f7261e6fb93d3ec9a6ed36eeaeaf76dac31a55 Mon Sep 17 00:00:00 2001 From: Hadjer Chabane Date: Wed, 14 Oct 2020 12:36:16 +0200 Subject: [PATCH] [BOT] Migrate hotfix 1.11.3 to GitHub. --- CHANGELOG.md | 3 + .../System/Config/Field/CategoryMapping.php | 4 +- .../Config/Field/Choozeo/CustgroupOptions.php | 23 +++ .../Config/Field/Choozeo/PaymentOptions.php | 93 ++++++++++ .../Lyranetwork/Payzen/Block/Choozeo.php | 26 +++ .../Lyranetwork/Payzen/Block/Redirect.php | 9 +- .../Lyranetwork/Payzen/Helper/Data.php | 2 + .../Payzen/Helper/Payment/Data.php | 5 +- .../Lyranetwork/Payzen/Model/Api/Api.php | 51 +++--- .../Lyranetwork/Payzen/Model/Api/Request.php | 1 + .../Api/Ws/AuthenticationRequestData.php | 2 +- .../Model/Api/Ws/AuthenticationResultData.php | 2 +- .../Model/Api/Ws/AuthorizationResponse.php | 2 +- .../Model/Api/Ws/BillingDetailsRequest.php | 2 +- .../Model/Api/Ws/BillingDetailsResponse.php | 2 +- .../Model/Api/Ws/CancelCapturedPayment.php | 2 +- .../Api/Ws/CancelCapturedPaymentResponse.php | 2 +- .../Api/Ws/CancelCapturedPaymentResult.php | 2 +- .../Payzen/Model/Api/Ws/CancelPayment.php | 2 +- .../Model/Api/Ws/CancelPaymentResponse.php | 2 +- .../Model/Api/Ws/CancelPaymentResult.php | 2 +- .../Payzen/Model/Api/Ws/CancelRefund.php | 2 +- .../Model/Api/Ws/CancelRefundResponse.php | 2 +- .../Model/Api/Ws/CancelRefundResult.php | 2 +- .../Model/Api/Ws/CancelSubscription.php | 2 +- .../Api/Ws/CancelSubscriptionResponse.php | 2 +- .../Model/Api/Ws/CancelSubscriptionResult.php | 2 +- .../Payzen/Model/Api/Ws/CancelToken.php | 2 +- .../Model/Api/Ws/CancelTokenResponse.php | 2 +- .../Payzen/Model/Api/Ws/CancelTokenResult.php | 2 +- .../Payzen/Model/Api/Ws/CapturePayment.php | 2 +- .../Model/Api/Ws/CapturePaymentResponse.php | 2 +- .../Model/Api/Ws/CapturePaymentResult.php | 2 +- .../Payzen/Model/Api/Ws/CaptureResponse.php | 2 +- .../Payzen/Model/Api/Ws/CardRequest.php | 2 +- .../Payzen/Model/Api/Ws/CardResponse.php | 2 +- .../Payzen/Model/Api/Ws/CartItemInfo.php | 2 +- .../Api/Ws/CheckThreeDSAuthentication.php | 2 +- .../Ws/CheckThreeDSAuthenticationResponse.php | 2 +- .../Ws/CheckThreeDSAuthenticationResult.php | 2 +- .../Payzen/Model/Api/Ws/CommonRequest.php | 2 +- .../Payzen/Model/Api/Ws/CommonResponse.php | 2 +- .../Payzen/Model/Api/Ws/CreatePayment.php | 2 +- .../Model/Api/Ws/CreatePaymentResponse.php | 2 +- .../Model/Api/Ws/CreatePaymentResult.php | 2 +- .../Model/Api/Ws/CreateSubscription.php | 2 +- .../Api/Ws/CreateSubscriptionResponse.php | 2 +- .../Model/Api/Ws/CreateSubscriptionResult.php | 2 +- .../Payzen/Model/Api/Ws/CreateToken.php | 2 +- .../Payzen/Model/Api/Ws/CreateTokenByIban.php | 2 +- .../Api/Ws/CreateTokenByIbanResponse.php | 2 +- .../Model/Api/Ws/CreateTokenByIbanResult.php | 2 +- .../Api/Ws/CreateTokenFromTransaction.php | 2 +- .../Ws/CreateTokenFromTransactionResponse.php | 2 +- .../Ws/CreateTokenFromTransactionResult.php | 2 +- .../Model/Api/Ws/CreateTokenResponse.php | 2 +- .../Payzen/Model/Api/Ws/CreateTokenResult.php | 2 +- .../Payzen/Model/Api/Ws/CustStatus.php | 2 +- .../Payzen/Model/Api/Ws/CustomerRequest.php | 2 +- .../Payzen/Model/Api/Ws/CustomerResponse.php | 2 +- .../Payzen/Model/Api/Ws/DeliverySpeed.php | 2 +- .../Payzen/Model/Api/Ws/DeliveryType.php | 2 +- .../Payzen/Model/Api/Ws/DuplicatePayment.php | 2 +- .../Model/Api/Ws/DuplicatePaymentResponse.php | 2 +- .../Model/Api/Ws/DuplicatePaymentResult.php | 2 +- .../Payzen/Model/Api/Ws/ExtInfo.php | 2 +- .../Model/Api/Ws/ExtendedResponseRequest.php | 2 +- .../Model/Api/Ws/ExtraDetailsRequest.php | 2 +- .../Model/Api/Ws/ExtraDetailsResponse.php | 2 +- .../Payzen/Model/Api/Ws/ExtraResponse.php | 2 +- .../Payzen/Model/Api/Ws/FindPayments.php | 2 +- .../Model/Api/Ws/FindPaymentsResponse.php | 2 +- .../Model/Api/Ws/FindPaymentsResult.php | 2 +- .../Model/Api/Ws/FraudManagementResponse.php | 2 +- .../Payzen/Model/Api/Ws/GetPaymentDetails.php | 2 +- .../Api/Ws/GetPaymentDetailsResponse.php | 2 +- .../Model/Api/Ws/GetPaymentDetailsResult.php | 2 +- .../Payzen/Model/Api/Ws/GetPaymentUuid.php | 2 +- .../Model/Api/Ws/GetPaymentUuidResponse.php | 2 +- .../Model/Api/Ws/GetSubscriptionDetails.php | 2 +- .../Api/Ws/GetSubscriptionDetailsResponse.php | 2 +- .../Api/Ws/GetSubscriptionDetailsResult.php | 2 +- .../Payzen/Model/Api/Ws/GetTokenDetails.php | 2 +- .../Model/Api/Ws/GetTokenDetailsResponse.php | 2 +- .../Model/Api/Ws/GetTokenDetailsResult.php | 2 +- .../Payzen/Model/Api/Ws/IbanRequest.php | 2 +- .../Api/Ws/LegacyTransactionKeyRequest.php | 2 +- .../Api/Ws/LegacyTransactionKeyResult.php | 2 +- .../Payzen/Model/Api/Ws/MarkResponse.php | 2 +- .../Model/Api/Ws/MpiExtensionRequest.php | 2 +- .../Payzen/Model/Api/Ws/OrderRequest.php | 2 +- .../Payzen/Model/Api/Ws/OrderResponse.php | 2 +- .../Payzen/Model/Api/Ws/PaymentRequest.php | 2 +- .../Payzen/Model/Api/Ws/PaymentResponse.php | 2 +- .../Payzen/Model/Api/Ws/PaymentType.php | 2 +- .../Payzen/Model/Api/Ws/ProductType.php | 2 +- .../Payzen/Model/Api/Ws/QueryRequest.php | 2 +- .../Payzen/Model/Api/Ws/ReactivateToken.php | 2 +- .../Model/Api/Ws/ReactivateTokenResponse.php | 2 +- .../Model/Api/Ws/ReactivateTokenResult.php | 2 +- .../Payzen/Model/Api/Ws/RefundPayment.php | 2 +- .../Model/Api/Ws/RefundPaymentResponse.php | 2 +- .../Model/Api/Ws/RefundPaymentResult.php | 2 +- .../Payzen/Model/Api/Ws/RiskAnalysis.php | 2 +- .../Api/Ws/RiskAnalysisProcessingStatus.php | 2 +- .../Payzen/Model/Api/Ws/RiskAssessments.php | 2 +- .../Payzen/Model/Api/Ws/RiskControl.php | 2 +- .../Payzen/Model/Api/Ws/SettlementRequest.php | 2 +- .../Model/Api/Ws/ShippingDetailsRequest.php | 2 +- .../Model/Api/Ws/ShippingDetailsResponse.php | 2 +- .../Model/Api/Ws/ShoppingCartRequest.php | 2 +- .../Model/Api/Ws/ShoppingCartResponse.php | 2 +- .../Model/Api/Ws/SubscriptionRequest.php | 2 +- .../Model/Api/Ws/SubscriptionResponse.php | 2 +- .../Payzen/Model/Api/Ws/TechRequest.php | 2 +- .../Payzen/Model/Api/Ws/ThreeDSMode.php | 2 +- .../Payzen/Model/Api/Ws/ThreeDSRequest.php | 2 +- .../Payzen/Model/Api/Ws/ThreeDSResponse.php | 2 +- .../Payzen/Model/Api/Ws/TokenRequest.php | 2 +- .../Payzen/Model/Api/Ws/TokenResponse.php | 2 +- .../Payzen/Model/Api/Ws/TransactionItem.php | 2 +- .../Payzen/Model/Api/Ws/UpdatePayment.php | 2 +- .../Model/Api/Ws/UpdatePaymentDetails.php | 2 +- .../Api/Ws/UpdatePaymentDetailsResponse.php | 2 +- .../Api/Ws/UpdatePaymentDetailsResult.php | 2 +- .../Model/Api/Ws/UpdatePaymentResponse.php | 2 +- .../Model/Api/Ws/UpdatePaymentResult.php | 2 +- .../Payzen/Model/Api/Ws/UpdateRefund.php | 2 +- .../Model/Api/Ws/UpdateRefundResponse.php | 2 +- .../Model/Api/Ws/UpdateRefundResult.php | 2 +- .../Model/Api/Ws/UpdateSubscription.php | 2 +- .../Api/Ws/UpdateSubscriptionResponse.php | 2 +- .../Model/Api/Ws/UpdateSubscriptionResult.php | 2 +- .../Payzen/Model/Api/Ws/UpdateToken.php | 2 +- .../Model/Api/Ws/UpdateTokenResponse.php | 2 +- .../Payzen/Model/Api/Ws/UpdateTokenResult.php | 2 +- .../Payzen/Model/Api/Ws/ValidatePayment.php | 2 +- .../Model/Api/Ws/ValidatePaymentResponse.php | 2 +- .../Model/Api/Ws/ValidatePaymentResult.php | 2 +- .../Model/Api/Ws/VerifyThreeDSEnrollment.php | 2 +- .../Ws/VerifyThreeDSEnrollmentResponse.php | 2 +- .../Api/Ws/VerifyThreeDSEnrollmentResult.php | 2 +- .../Lyranetwork/Payzen/Model/Api/Ws/WsApi.php | 2 +- .../Payzen/Model/Api/Ws/WsApiClassLoader.php | 2 +- .../Payzen/Model/Api/Ws/WsResponse.php | 2 +- .../Model/Field/Choozeo/CustgroupOptions.php | 43 +++++ .../Model/Field/Choozeo/PaymentOptions.php | 40 ++++ .../Payzen/Model/Payment/Choozeo.php | 128 +++++++++++++ .../Payzen/Model/Payment/Postfinance.php | 2 +- .../Payzen/Model/Payment/Sofort.php | 2 +- .../Lyranetwork/Payzen/Model/Session.php | 3 +- .../Source/Choozeo/AvailableCountries.php | 38 ++++ .../Adminhtml/Payzen/PaymentController.php | 2 +- .../Payzen/controllers/PaymentController.php | 2 +- .../Lyranetwork/Payzen/etc/config.xml | 19 +- .../Lyranetwork/Payzen/etc/system.xml | 171 +++++++++++++++++- .../default/template/payzen/gift.phtml | 2 +- .../default/template/payzen/multi.phtml | 2 +- .../default/template/payzen/standard.phtml | 2 +- .../default/template/payzen/choozeo.phtml | 37 ++++ .../base/default/template/payzen/fullcb.phtml | 4 +- .../base/default/template/payzen/gift.phtml | 2 +- .../default/template/payzen/giropay.phtml | 2 +- .../base/default/template/payzen/ideal.phtml | 2 +- .../base/default/template/payzen/multi.phtml | 2 +- .../payzen/oneclick/shipping/method.phtml | 2 +- .../base/default/template/payzen/oney.phtml | 2 +- .../default/template/payzen/oney3x4x.phtml | 8 +- .../base/default/template/payzen/other.phtml | 2 +- .../base/default/template/payzen/paypal.phtml | 2 +- .../default/template/payzen/postfinance.phtml | 2 +- .../base/default/template/payzen/sepa.phtml | 2 +- .../base/default/template/payzen/sofort.phtml | 2 +- .../default/template/payzen/standard.phtml | 2 +- .../template/payzen/standard_rest.phtml | 2 +- app/locale/de_DE/Lyranetwork_Payzen.csv | 5 +- app/locale/en_US/Lyranetwork_Payzen.csv | 7 +- app/locale/es_ES/Lyranetwork_Payzen.csv | 5 +- app/locale/fr_FR/Lyranetwork_Payzen.csv | 5 +- media/payzen/ct/epnf_3x.png | Bin 0 -> 4300 bytes media/payzen/ct/epnf_4x.png | Bin 0 -> 4217 bytes media/payzen/logos/choozeo.png | Bin 0 -> 28806 bytes skin/adminhtml/default/default/payzen.css | 9 +- skin/frontend/base/default/css/payzen.css | 13 +- 184 files changed, 843 insertions(+), 219 deletions(-) create mode 100644 app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/Choozeo/CustgroupOptions.php create mode 100644 app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/Choozeo/PaymentOptions.php create mode 100644 app/code/community/Lyranetwork/Payzen/Block/Choozeo.php create mode 100644 app/code/community/Lyranetwork/Payzen/Model/Field/Choozeo/CustgroupOptions.php create mode 100644 app/code/community/Lyranetwork/Payzen/Model/Field/Choozeo/PaymentOptions.php create mode 100644 app/code/community/Lyranetwork/Payzen/Model/Payment/Choozeo.php create mode 100644 app/code/community/Lyranetwork/Payzen/Model/Source/Choozeo/AvailableCountries.php create mode 100644 app/design/frontend/base/default/template/payzen/choozeo.phtml create mode 100644 media/payzen/ct/epnf_3x.png create mode 100644 media/payzen/ct/epnf_4x.png create mode 100644 media/payzen/logos/choozeo.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e32d8ee..7c2292e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +1.11.3, 2020-10-14: +- [oney] Do not display payment installments for buyer. + 1.11.2, 2020-08-19: - [embedded] Bug fix: Do not cancel orders in status "Fraud suspected" when new IPN calls are made. - [embedded] Bug fix: Error due to strongAuthenticationState field renaming in REST token creation. diff --git a/app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/CategoryMapping.php b/app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/CategoryMapping.php index 4b1c43bc..eea87d5c 100644 --- a/app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/CategoryMapping.php +++ b/app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/CategoryMapping.php @@ -43,9 +43,9 @@ public function __construct() } /** - * Obtain existing data from form element. + * Obtain existing data from form element * - * Each row will be instance of Varien_Object. + * Each row will be instance of Varien_Object * * @return array */ diff --git a/app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/Choozeo/CustgroupOptions.php b/app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/Choozeo/CustgroupOptions.php new file mode 100644 index 00000000..d5360f6e --- /dev/null +++ b/app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/Choozeo/CustgroupOptions.php @@ -0,0 +1,23 @@ +_default = array('amount_min' => '135', 'amount_max' => '2000'); + } +} diff --git a/app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/Choozeo/PaymentOptions.php b/app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/Choozeo/PaymentOptions.php new file mode 100644 index 00000000..b8418814 --- /dev/null +++ b/app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/Choozeo/PaymentOptions.php @@ -0,0 +1,93 @@ +addColumn( + 'label', + array( + 'label' => Mage::helper('payzen')->__('Label'), + 'style' => 'width: 260px;', + 'renderer' => new Lyranetwork_Payzen_Block_Adminhtml_System_Config_Field_Column_Label + ) + ); + $this->addColumn( + 'amount_min', + array( + 'label' => Mage::helper('payzen')->__('Minimum amount'), + 'style' => 'width: 210px;' + ) + ); + $this->addColumn( + 'amount_max', + array( + 'label' => Mage::helper('payzen')->__('Maximum amount'), + 'style' => 'width: 210px;' + ) + ); + + $this->_addAfter = false; + + parent::__construct(); + + $this->setTemplate('payzen/field/array.phtml'); + } + + /** + * Obtain existing data from form element. + * + * Each row will be instance of Varien_Object + * + * @return array + */ + public function getArrayRows() + { + /** + * @var array[string][string] $options + */ + $options = array( + 'EPNF_3X' => 'Choozeo 3X CB', + 'EPNF_4X' => 'Choozeo 4X CB' + ); + + $savedOptions = $this->getElement()->getValue(); + if (! is_array($savedOptions)) { + $savedOptions = array(); + } + + foreach ($savedOptions as $id => $savedOption) { + if (key_exists($savedOption['code'], $options)) { + $savedOptions[$id]['label'] = $options[$savedOption['code']]; + unset($options[$savedOption['code']]); + } + } + + // Add not saved yet groups. + foreach ($options as $code => $label) { + $option = array( + 'code' => $code, + 'label' => $label, + 'amount_min' => '', + 'amount_max' => '' + ); + + $savedOptions[uniqid('_' . $code . '_')] = $option; + } + + $this->getElement()->setValue($savedOptions); + return parent::getArrayRows(); + } +} diff --git a/app/code/community/Lyranetwork/Payzen/Block/Choozeo.php b/app/code/community/Lyranetwork/Payzen/Block/Choozeo.php new file mode 100644 index 00000000..046d4a41 --- /dev/null +++ b/app/code/community/Lyranetwork/Payzen/Block/Choozeo.php @@ -0,0 +1,26 @@ +setTemplate('payzen/choozeo.phtml'); + } + + public function getAvailableOptions() + { + $amount = $this->getMethod()->getInfoInstance()->getQuote()->getBaseGrandTotal(); + return $this->_getModel()->getAvailableOptions($amount); + } +} diff --git a/app/code/community/Lyranetwork/Payzen/Block/Redirect.php b/app/code/community/Lyranetwork/Payzen/Block/Redirect.php index 89718617..76df58e7 100644 --- a/app/code/community/Lyranetwork/Payzen/Block/Redirect.php +++ b/app/code/community/Lyranetwork/Payzen/Block/Redirect.php @@ -10,8 +10,9 @@ class Lyranetwork_Payzen_Block_Redirect extends Mage_Core_Block_Template { + /** - * Get checkout session namespace. + * Get checkout session namespace * * @return Mage_Checkout_Model_Session */ @@ -31,7 +32,7 @@ protected function _getMethodInstance() } /** - * Return order instance with loaded information by increment id. + * Return order instance with loaded information by increment id * * @return Mage_Sales_Model_Order */ @@ -49,7 +50,7 @@ protected function _getOrder() } /** - * Get Form data by using ops payment api. + * Get Form data by using ops payment api * * @return array */ @@ -59,7 +60,7 @@ public function getFormFields() } /** - * Getting gateway url. + * Getting gateway url * * @return string */ diff --git a/app/code/community/Lyranetwork/Payzen/Helper/Data.php b/app/code/community/Lyranetwork/Payzen/Helper/Data.php index 71971b24..84d033e3 100644 --- a/app/code/community/Lyranetwork/Payzen/Helper/Data.php +++ b/app/code/community/Lyranetwork/Payzen/Helper/Data.php @@ -10,6 +10,7 @@ class Lyranetwork_Payzen_Helper_Data extends Mage_Core_Helper_Abstract { + /** * * @var array a global var to easily enable/disable features @@ -30,6 +31,7 @@ class Lyranetwork_Payzen_Helper_Data extends Mage_Core_Helper_Abstract 'postfinance' => true, 'giropay' => true, 'ideal' => true, + 'choozeo' => false, 'fullcb' => true, 'sepa' => true ); diff --git a/app/code/community/Lyranetwork/Payzen/Helper/Payment/Data.php b/app/code/community/Lyranetwork/Payzen/Helper/Payment/Data.php index fbd8f039..b44a47c0 100644 --- a/app/code/community/Lyranetwork/Payzen/Helper/Payment/Data.php +++ b/app/code/community/Lyranetwork/Payzen/Helper/Payment/Data.php @@ -10,8 +10,9 @@ class Lyranetwork_Payzen_Helper_Payment_Data extends Mage_Payment_Helper_Data { + /** - * Retrieve method model object. + * Retrieve method model object * * @param string $code * @return Mage_Payment_Model_Method_Abstract|false @@ -22,7 +23,7 @@ public function getMethodInstance($code) $code = 'payzen_other'; } - $key = self::XML_PATH_PAYMENT_METHODS . '/' . $code . '/model'; + $key = self::XML_PATH_PAYMENT_METHODS.'/'.$code.'/model'; $class = Mage::getStoreConfig($key); return Mage::getModel($class); } diff --git a/app/code/community/Lyranetwork/Payzen/Model/Api/Api.php b/app/code/community/Lyranetwork/Payzen/Model/Api/Api.php index 29784c8e..d03d1dc3 100644 --- a/app/code/community/Lyranetwork/Payzen/Model/Api/Api.php +++ b/app/code/community/Lyranetwork/Payzen/Model/Api/Api.php @@ -212,35 +212,32 @@ public static function getSupportedCardTypes() 'CB' => 'CB', 'E-CARTEBLEUE' => 'e-Carte Bleue', 'MAESTRO' => 'Maestro', 'MASTERCARD' => 'Mastercard', 'VISA' => 'Visa', 'VISA_ELECTRON' => 'Visa Electron', 'VPAY' => 'V PAY', 'AMEX' => 'American Express', 'ACCORD_STORE' => 'Cartes Enseignes Partenaires', 'ACCORD_STORE_SB' => 'Cartes Enseignes Partenaires (sandbox)', - 'ALINEA' => 'Carte myalinea', 'ALINEA_CDX' => 'Carte Cadeau Alinéa', - 'ALINEA_CDX_SB' => 'Carte Cadeau Alinéa (sandbox)', 'ALINEA_SB' => 'Carte myalinea (sandbox)', - 'ALIPAY' => 'Alipay', 'ALLOBEBE_CDX' => 'Carte Cadeau Allobébé', 'ALLOBEBE_CDX_SB' => 'Carte Cadeau Allobébé (sandbox)', + 'ALINEA_CDX' => 'Carte Cadeau Alinéa', 'ALINEA_CDX_SB' => 'Carte Cadeau Alinéa (sandbox)', 'ALIPAY' => 'Alipay', + 'ALLOBEBE_CDX' => 'Carte Cadeau Allobébé', 'ALLOBEBE_CDX_SB' => 'Carte Cadeau Allobébé (sandbox)', 'APETIZ' => 'Apetiz', 'AUCHAN' => 'Carte Auchan', 'AUCHAN_SB' => 'Carte Auchan (sandbox)', 'AURORE-MULTI' => 'Cpay Aurore', 'BANCONTACT' => 'Bancontact Mistercash', 'BIZZBEE_CDX' => 'Carte Cadeau Bizzbee', - 'BIZZBEE_CDX_SB' => 'Carte Cadeau Bizzbee (sandbox)', 'BOULANGER' => 'Carte b+', - 'BOULANGER_SB' => 'Carte b+ (sandbox)', 'BRICE_CDX' => 'Carte Cadeau Brice', - 'BRICE_CDX_SB' => 'Carte Cadeau Brice (sandbox)', 'COFINOGA' => 'Cofinoga', - 'CONECS' => 'Conecs', 'APETIZ' => 'Apetiz', - 'CHQ_DEJ' => 'Chèque Déjeuner', - 'SODEXO' => 'Pass Restaurant', 'EDENRED' => 'Ticket Restaurant', - 'CORA_BLANCHE' => 'Cora blanche', 'CORA_PREM' => 'Cora Visa Premier', 'CORA_VISA' => 'Cora Visa', - 'DINERS' => 'Diners', 'DISCOVER' => 'Discover', 'E_CV' => 'e-Chèque-Vacances', 'ECCARD' => 'EC Card', - 'EDENRED_EC' => 'Ticket EcoCheque', 'EDENRED_TC' => 'Ticket Compliments', - 'EDENRED_TR' => 'Ticket Restaurant', 'ELV' => 'ELV', - 'FULLCB3X' => 'Paiement en 3 fois CB', 'FULLCB4X' => 'Paiement en 4 fois CB', - 'GOOGLEPAY' => 'Google Pay', 'GIROPAY' => 'Giropay', 'IDEAL' => 'iDEAL', 'ILLICADO' => 'Carte Illicado', - 'ILLICADO_SB' => 'Carte Illicado (sandbox)', 'JCB' => 'JCB', - 'KLARNA' => 'Klarna', 'LEROY-MERLIN' => 'Carte Maison Financement', - 'LEROY-MERLIN_SB' => 'Carte Maison Financement (sandbox)', 'MASTERPASS' => 'MasterPass', - 'MULTIBANCO' => 'Multibanco', 'NORAUTO' => 'Carte Norauto option Financement', 'NORAUTO_SB' => 'Carte Norauto option Financement (sandbox)', - 'ONEY' => 'Paiement en 3 ou 4 fois par CB', 'ONEY_SANDBOX' => 'Paiement en 3 ou 4 fois par CB (sandbox)', 'ONEY_3X_4X' => 'Paiement en 3 ou 4 fois Oney', - 'PAYDIREKT' => 'Paydirekt', 'PAYLIB' => 'Paylib', 'PAYPAL' => 'PayPal', 'PAYPAL_SB' => 'PayPal Sandbox', - 'POSTFINANCE' => 'PostFinance Card', 'POSTFINANCE_EFIN' => 'PostFinance E-Finance', 'SCT' => 'Virement SEPA', - 'SDD' => 'Prélèvement SEPA', 'SOFICARTE' => 'Soficarte', - 'SOFORT_BANKING' => 'Sofort', 'TRUFFAUT_CDX' => 'Carte Cadeau Truffaut', 'UNION_PAY' => 'UnionPay', - 'VILLAVERDE' => 'Carte Cadeau VillaVerde', 'VILLAVERDE_SB' => 'Carte Cadeau VillaVerde (sandbox)', - 'WECHAT' => 'WeChat Pay', 'MYBANK' => 'MyBank', 'PRZELEWY24' => 'Przelewy24', - 'ONEY_ENSEIGNE' => 'Cartes enseignes Oney' + 'BIZZBEE_CDX_SB' => 'Carte Cadeau Bizzbee (sandbox)', 'BOULANGER' => 'Carte b+', 'BOULANGER_SB' => 'Carte b+ (sandbox)', + 'BRICE_CDX' => 'Carte Cadeau Brice', 'BRICE_CDX_SB' => 'Carte Cadeau Brice (sandbox)', 'BUT' => 'But', 'CABAL' => 'Cabal', + 'CARNET' => 'Carnet', 'CA_DO_CARTE' => 'CA DO Carte', 'CHQ_DEJ' => 'Chèque Déjeuner', 'CONECS' => 'Conecs', + 'CONFORAMA' => 'Conforama', 'CORA' => 'Cora', 'CORA_BLANCHE' => 'Cora blanche', 'CORA_PREM' => 'Cora Visa Premier', + 'CORA_VISA' => 'Cora Visa', 'CVCO' => 'Chèque-Vacances Connect', 'DINERS' => 'Diners', 'DISCOVER' => 'Discover', + 'ECCARD' => 'EC Card', 'EDENRED' => 'Ticket Restaurant', 'EDENRED_EC' => 'Ticket EcoCheque', + 'EDENRED_SC' => 'Ticket Sport & Culture', 'EDENRED_TC' => 'Ticket Compliments', 'EDENRED_TR' => 'Ticket Restaurant', + 'ELO' => 'Elo', 'E_CV' => 'e-Chèque-Vacances', 'FRANFINANCE_3X' => 'Paiement en 3 fois', + 'FRANFINANCE_4X' => 'Paiement en 4 fois', 'FULLCB3X' => 'Paiement en 3 fois CB', 'FULLCB4X' => 'Paiement en 4 fois CB', + 'GEMO_CDX' => 'Carte Cadeau Gémo', 'GEMO_CDX_SB' => 'Carte Cadeau Gémo (sandbox)', 'GIROPAY' => 'Giropay', + 'GOOGLEPAY' => 'Google Pay', 'HIPER' => 'Hiper', 'HIPERCARD' => 'Hipercard', 'IDEAL' => 'iDEAL', 'JCB' => 'JCB', + 'JOUECLUB_CDX' => 'Carte Cadeau Joué Club', 'JOUECLUB_CDX_SB' => 'Carte Cadeau Joué Club (sandbox)', + 'JULES_CDX' => 'Carte Cadeau Jules', 'JULES_CDX_SB' => 'Carte Cadeau Jules (sandbox)', 'KLARNA' => 'Klarna', + 'LECLERC' => 'Carte Reglo', 'MC_CORDOBESA' => 'Mastercard Cordobesa', + 'MULTIBANCO' => 'Multibanco', 'MYBANK' => 'MyBank', 'NARANJA' => 'Naranja', 'NORAUTO' => 'Carte Norauto option Financement', + 'NORAUTO_SB' => 'Carte Norauto option Financement (sandbox)', 'ONEY_3X_4X' => 'Paiement en 3 ou 4 fois Oney', + 'ONEY_ENSEIGNE' => 'Cartes enseignes Oney', 'PAYDIREKT' => 'Paydirekt', 'PAYLIB' => 'Paylib', 'PAYPAL' => 'PayPal', + 'PAYPAL_SB' => 'PayPal Sandbox', 'PICWIC' => 'Carte Picwic', 'PICWIC_SB' => 'Carte Picwic (sandbox)', + 'POSTFINANCE' => 'PostFinance Card', 'POSTFINANCE_EFIN' => 'PostFinance E-Finance', 'PRESTO' => 'Presto', + 'PRZELEWY24' => 'Przelewy24', 'S-MONEY' => 'S-money', 'SCT' => 'Virement SEPA', 'SDD' => 'Prélèvement SEPA', + 'SODEXO' => 'Pass Restaurant', 'SOFORT_BANKING' => 'Sofort', 'SOROCRED' => 'Sorocred', + 'TRUFFAUT_CDX' => 'Carte Cadeau Truffaut', 'UNION_PAY' => 'UnionPay', 'WECHAT' => 'WeChat Pay' ); } diff --git a/app/code/community/Lyranetwork/Payzen/Model/Api/Request.php b/app/code/community/Lyranetwork/Payzen/Model/Api/Request.php index 296db390..b031867b 100644 --- a/app/code/community/Lyranetwork/Payzen/Model/Api/Request.php +++ b/app/code/community/Lyranetwork/Payzen/Model/Api/Request.php @@ -119,6 +119,7 @@ public function __construct($encoding = 'UTF-8') // Defining all parameters and setting formats and default values. $this->addField('signature', 'Signature', '#^[0-9a-f]{40}$#u', true); + $this->addField('vads_acquirer_transient_data', 'Acquirer transient data', $ans255); $this->addField('vads_action_mode', 'Action mode', '#^INTERACTIVE|SILENT$#u', true, 11); $this->addField('vads_amount', 'Amount', '#^' . $supzero . '$#u', true); $this->addField('vads_available_languages', 'Available languages', '#^(|[A-Za-z]{2}(;[A-Za-z]{2})*)$#u', false, 2); diff --git a/app/code/community/Lyranetwork/Payzen/Model/Api/Ws/AuthenticationRequestData.php b/app/code/community/Lyranetwork/Payzen/Model/Api/Ws/AuthenticationRequestData.php index 74eea91c..ee036b80 100644 --- a/app/code/community/Lyranetwork/Payzen/Model/Api/Ws/AuthenticationRequestData.php +++ b/app/code/community/Lyranetwork/Payzen/Model/Api/Ws/AuthenticationRequestData.php @@ -1,6 +1,6 @@ getValue(); + + $data = $this->getGroups('payzen_choozeo'); // Get data of Choozeo config group. + if ($data['fields']['choozeo_active']['value']) { // Choozeo is activated. + foreach ($values as $value) { + if (empty($value) || ($value['code'] !== 'all')) { + continue; + } + + if (empty($value['amount_min'])) { + $field = 'Minimum amount'; + } elseif (empty($value['amount_max'])) { + $field = 'Maximum amount'; + } + + if (isset($field)) { + $field = Mage::helper('payzen')->__($field); // Translate field name. + $group = Mage::helper('payzen')->getConfigGroupTitle($this->getGroupId()); + $msg = Mage::helper('payzen')->__('Please enter a value for « ALL GROUPS - %s » in « %s » section as agreed with your bank.', $field, $group); + + // Throw exception. + Mage::throwException($msg); + } + } + } + + return parent::_beforeSave(); + } +} diff --git a/app/code/community/Lyranetwork/Payzen/Model/Field/Choozeo/PaymentOptions.php b/app/code/community/Lyranetwork/Payzen/Model/Field/Choozeo/PaymentOptions.php new file mode 100644 index 00000000..1bbaf00c --- /dev/null +++ b/app/code/community/Lyranetwork/Payzen/Model/Field/Choozeo/PaymentOptions.php @@ -0,0 +1,40 @@ +getValue(); + + if (! is_array($values) || empty($values)) { + $this->setValue(array()); + } else { + $i = 0; + foreach ($values as $value) { + $i++; + + if (empty($value)) { + continue; + } + + if (! empty($value['amount_min']) && (! is_numeric($value['amount_min']) || $value['amount_min'] < 0)) { + $this->_throwError('Minimum amount', $i); + } elseif (! empty($value['amount_max']) && (! is_numeric($value['amount_max']) || $value['amount_max'] < 0)) { + $this->_throwError('Maximum amount', $i); + } + } + } + + return parent::_beforeSave(); + } +} diff --git a/app/code/community/Lyranetwork/Payzen/Model/Payment/Choozeo.php b/app/code/community/Lyranetwork/Payzen/Model/Payment/Choozeo.php new file mode 100644 index 00000000..31d747ff --- /dev/null +++ b/app/code/community/Lyranetwork/Payzen/Model/Payment/Choozeo.php @@ -0,0 +1,128 @@ +_payzenRequest->set('validation_mode', '0'); + $this->_payzenRequest->set('cust_status', 'PRIVATE'); + $this->_payzenRequest->set('cust_country', 'FR'); + + // Override with selected Choozeo payment card. + $info = $this->getInfoInstance(); + $this->_payzenRequest->set('payment_cards', $info->getCcType()); + } + + /** + * Assign data to info model instance + * + * @param mixed $data + * @return Mage_Payment_Model_Info + */ + public function assignData($data) + { + $info = $this->getInfoInstance(); + + // Init all payment data. + $info->setCcType($data->getPayzenChoozeoCcType()) + ->setCcLast4(null) + ->setCcNumber(null) + ->setCcCid(null) + ->setCcExpMonth(null) + ->setCcExpYear(null) + ->setAdditionalData(null); + + return $this; + } + + /** + * Return true if the method can be used at this time + * + * @return bool + */ + public function isAvailable($quote = null) + { + if (! parent::isAvailable($quote)) { + return false; + } + + $amount = $quote ? $quote->getBaseGrandTotal() : null; + if ($amount) { + $options = $this->getAvailableOptions($amount); + return ! empty($options); + } + + return false; + } + + /** + * To check billing country is allowed for Choozeo payment method. + * + * @return bool + */ + public function canUseForCountry($country) + { + $availableCountries = Mage::getModel('payzen/source_choozeo_availableCountries')->getCountryCodes(); + + if ($this->getConfigData('allowspecific') == 1) { + $availableCountries = explode(',', $this->getConfigData('specificcountry')); + } + + return in_array($country, $availableCountries); + } + + /** + * Return available payment options to be displayed on payment method list page. + * + * @param double $amount a given amount + * @return array[string][array] An array "$code => $option" of availables options + */ + public function getAvailableOptions($amount = null) + { + $configOptions = unserialize($this->getConfigData('payment_options')); + + /** + * @var array[string][string] $options + */ + $options = array( + 'EPNF_3X' => 'Choozeo 3X CB', + 'EPNF_4X' => 'Choozeo 4X CB' + ); + + $availOptions = array(); + if (is_array($configOptions) && ! empty($configOptions)) { + foreach ($configOptions as $code => $value) { + if (empty($value)) { + continue; + } + + if ((! $amount || ! $value['amount_min'] || $amount > $value['amount_min']) + && (! $amount || ! $value['amount_max'] || $amount < $value['amount_max']) + ) { + $value['label'] = $options[$value['code']]; + + // Option will be available. + $availOptions[$code] = $value; + } + } + } + + return $availOptions; + } +} diff --git a/app/code/community/Lyranetwork/Payzen/Model/Payment/Postfinance.php b/app/code/community/Lyranetwork/Payzen/Model/Payment/Postfinance.php index 218efbf8..3b199f7b 100644 --- a/app/code/community/Lyranetwork/Payzen/Model/Payment/Postfinance.php +++ b/app/code/community/Lyranetwork/Payzen/Model/Payment/Postfinance.php @@ -22,7 +22,7 @@ protected function _setExtraFields($order) } /** - * Assign data to info model instance. + * Assign data to info model instance * * @param mixed $data * @return Mage_Payment_Model_Info diff --git a/app/code/community/Lyranetwork/Payzen/Model/Payment/Sofort.php b/app/code/community/Lyranetwork/Payzen/Model/Payment/Sofort.php index 94c6caf1..d95611c6 100644 --- a/app/code/community/Lyranetwork/Payzen/Model/Payment/Sofort.php +++ b/app/code/community/Lyranetwork/Payzen/Model/Payment/Sofort.php @@ -24,7 +24,7 @@ protected function _setExtraFields($order) } /** - * Assign data to info model instance. + * Assign data to info model instance * * @param mixed $data * @return Mage_Payment_Model_Info diff --git a/app/code/community/Lyranetwork/Payzen/Model/Session.php b/app/code/community/Lyranetwork/Payzen/Model/Session.php index 329ac6ec..dacd171a 100644 --- a/app/code/community/Lyranetwork/Payzen/Model/Session.php +++ b/app/code/community/Lyranetwork/Payzen/Model/Session.php @@ -10,13 +10,14 @@ class Lyranetwork_Payzen_Model_Session extends Mage_Checkout_Model_Session { + public function __construct() { $this->init('payzen'); } /** - * Get gateway 1-Click quote instance by current session. + * Get gateway 1-Click quote instance by current session * * @return Mage_Sales_Model_Quote */ diff --git a/app/code/community/Lyranetwork/Payzen/Model/Source/Choozeo/AvailableCountries.php b/app/code/community/Lyranetwork/Payzen/Model/Source/Choozeo/AvailableCountries.php new file mode 100644 index 00000000..643f5c21 --- /dev/null +++ b/app/code/community/Lyranetwork/Payzen/Model/Source/Choozeo/AvailableCountries.php @@ -0,0 +1,38 @@ +_availableCountries as $code) { + $name = Mage::app()->getLocale()->getCountryTranslation($code); + if (empty($name)) { + $name = $code; + } + + $result[] = array( + 'value' => $code, + 'label' => $name + ); + } + + return $result; + } + + public function getCountryCodes() + { + return $this->_availableCountries; + } +} diff --git a/app/code/community/Lyranetwork/Payzen/controllers/Adminhtml/Payzen/PaymentController.php b/app/code/community/Lyranetwork/Payzen/controllers/Adminhtml/Payzen/PaymentController.php index 84fd3806..b3334429 100644 --- a/app/code/community/Lyranetwork/Payzen/controllers/Adminhtml/Payzen/PaymentController.php +++ b/app/code/community/Lyranetwork/Payzen/controllers/Adminhtml/Payzen/PaymentController.php @@ -135,7 +135,7 @@ public function redirectResponse($order, $case, $checkUrlWarn = false) $this->getAdminSession()->addSuccess( $this->__('The payment was successful. Your order was registered successfully.') ); - $this->_redirect('adminhtml/sales_order/view', array('order_id' => $order->getIncrementId())); + $this->_redirect('adminhtml/sales_order/view', array('order_id' => $order->getId())); } else { $this->_getDataHelper()->log("Unsetting order data in session for order #{$order->getIncrementId()}."); $this->getCheckout()->unsLastQuoteId() diff --git a/app/code/community/Lyranetwork/Payzen/controllers/PaymentController.php b/app/code/community/Lyranetwork/Payzen/controllers/PaymentController.php index 58f25adf..0e7ad415 100644 --- a/app/code/community/Lyranetwork/Payzen/controllers/PaymentController.php +++ b/app/code/community/Lyranetwork/Payzen/controllers/PaymentController.php @@ -519,7 +519,7 @@ public function redirectResponse($order, $case, $checkUrlWarn = false) } /** - * Set redirect into response + * Set redirect into response. * * @param string $path * @param array $arguments diff --git a/app/code/community/Lyranetwork/Payzen/etc/config.xml b/app/code/community/Lyranetwork/Payzen/etc/config.xml index 67e64e47..c5f14184 100644 --- a/app/code/community/Lyranetwork/Payzen/etc/config.xml +++ b/app/code/community/Lyranetwork/Payzen/etc/config.xml @@ -14,7 +14,7 @@ - 1.11.2 + 1.11.3 @@ -496,7 +496,7 @@ Lyra Network support@payzen.eu - 1.11.2 + 1.11.3 V2 Magento_1.4-1.9 1 @@ -586,6 +586,19 @@ -1 + + payzen/payment_choozeo + payzen + + 0 + 0 + FR,GF,GP,MQ,RE,YT + Payment with Choozeo without fees + 4 + choozeo.png + authorize + + payzen/payment_oney3x4x payzen @@ -593,7 +606,7 @@ 0 0 FR,GF,GP,MQ,RE,YT - Payment in 3 or 4 times Oney + Payment in 3 or 4 times with Oney 5 oney3x4x.png authorize diff --git a/app/code/community/Lyranetwork/Payzen/etc/system.xml b/app/code/community/Lyranetwork/Payzen/etc/system.xml index d1a85ef1..d4f53cf8 100644 --- a/app/code/community/Lyranetwork/Payzen/etc/system.xml +++ b/app/code/community/Lyranetwork/Payzen/etc/system.xml @@ -703,8 +703,7 @@ - - select + select payzen/source_standard_cardInfoModes payment/payzen_standard/card_info_mode 41 @@ -1327,6 +1326,174 @@ + + + payzen/adminhtml_system_config_fieldset_payment + choozeo + 104 + 1 + 1 + 1 + complex + + + + + + label + payzen/adminhtml_system_config_field_sectionTitle + 10 + 1 + 1 + 1 + + + + + + select + adminhtml/system_config_source_yesno + payment/payzen_choozeo/active + 11 + 1 + 1 + 1 + + + + + + text + payment/payzen_choozeo/title + 12 + 1 + 1 + 1 + + + + + + text + payment/payzen_choozeo/sort_order + 13 + 1 + 1 + 1 + + + + + + image + payment/payzen_choozeo/module_logo + payzen/field_logo + payzen/logos + payzen/logos + 14 + 1 + 1 + 1 + + + + + + label + payzen/adminhtml_system_config_field_sectionTitle + 20 + 1 + 1 + 1 + + + + + + allowspecific + payment/payzen_choozeo/allowspecific + 21 + adminhtml/system_config_source_payment_allspecificcountries + 1 + 1 + 1 + + + + + multiselect + payzen/adminhtml_system_config_field_multiselect + 5 + payment/payzen_choozeo/specificcountry + 22 + payzen/source_choozeo_availableCountries + 1 + 1 + 1 + + 1 + + + + + + + payzen/adminhtml_system_config_field_choozeo_custgroupOptions + payzen/field_choozeo_custgroupOptions + payment/payzen_choozeo/custgroup_amount_restrictions + 23 + 1 + 1 + 1 + + + + + + label + payzen/adminhtml_system_config_field_sectionTitle + 30 + 1 + 1 + 1 + + + + + + text + payment/payzen_choozeo/capture_delay + 31 + 1 + 1 + 1 + + + + + + label + payzen/adminhtml_system_config_field_sectionTitle + 40 + 1 + 1 + 1 + + + + + payzen/adminhtml_system_config_field_choozeo_paymentOptions + payzen/field_choozeo_paymentOptions + payment/payzen_choozeo/payment_options + 41 + 1 + 1 + 1 + + + + + payzen/adminhtml_system_config_fieldset_payment diff --git a/app/design/adminhtml/default/default/template/payzen/gift.phtml b/app/design/adminhtml/default/default/template/payzen/gift.phtml index 8f3d6787..9d347aa8 100644 --- a/app/design/adminhtml/default/default/template/payzen/gift.phtml +++ b/app/design/adminhtml/default/default/template/payzen/gift.phtml @@ -9,7 +9,7 @@ */ ?> -