Skip to content

Commit aa613ea

Browse files
Merge branch 'release/1.1.0'
2 parents 4162b20 + d20740b commit aa613ea

38 files changed

Lines changed: 3589 additions & 271 deletions

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,11 @@
1+
1.1.0, 2024-11-22:
2+
- Added compatibility with OpenMage and PHP latest versions.
3+
- [technical] Enabled some features by plugin variant.
4+
- Improve refund management.
5+
- Update payment method default logo.
6+
- Update list of supported payment means.
7+
- Update list of supported currencies.
8+
- Set return mode to POST by default.
9+
110
1.0.0, 2021-07-13:
211
- Initial plugin version compatible with OpenMage 19 and 20.

COPYING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright © 2021 Lyra Network.
1+
Copyright © 2021-2024 Lyra Network.
22

33
PayZen plugin for OpenMage is licensed under the
44
Open Software License version 3.0 that is bundled with

app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/ContactUs.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
99
*/
1010

11+
use Lyranetwork\Payzen\Model\Api\Form\Api as PayzenApi;
12+
1113
/**
1214
* Custom renderer for the contact us element.
1315
*/
@@ -21,7 +23,7 @@ class Lyranetwork_Payzen_Block_Adminhtml_System_Config_Field_ContactUs extends M
2123
*/
2224
public function render(Varien_Data_Form_Element_Abstract $element)
2325
{
24-
$comment = Lyranetwork_Payzen_Model_Api_Api::formatSupportEmails('support@payzen.eu');
26+
$comment = PayzenApi::formatSupportEmails('support@payzen.eu');
2527
$element->setComment($comment);
2628

2729
return parent::render($element);

app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/Multi/PaymentOptions.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
99
*/
1010

11+
use Lyranetwork\Payzen\Model\Api\Form\Api as PayzenApi;
12+
1113
/**
1214
* Custom renderer for the multi payment options field.
1315
*/
@@ -38,7 +40,7 @@ public function __construct()
3840
)
3941
);
4042

41-
$cards = Lyranetwork_Payzen_Model_Api_Api::getSupportedCardTypes();
43+
$cards = PayzenApi::getSupportedCardTypes();
4244
if (isset($cards['CB'])) {
4345
// If CB is available, we allow contract override.
4446
$this->addColumn(

app/code/community/Lyranetwork/Payzen/Block/Adminhtml/System/Config/Field/Other/PaymentMeans.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
99
*/
1010

11+
use Lyranetwork\Payzen\Model\Api\Form\Api as PayzenApi;
12+
1113
/**
1214
* Custom renderer for the other payment means field.
1315
*/
@@ -24,7 +26,7 @@ public function __construct()
2426
)
2527
);
2628

27-
$defaultCards = Lyranetwork_Payzen_Model_Api_Api::getSupportedCardTypes();
29+
$defaultCards = PayzenApi::getSupportedCardTypes();
2830
$addedCards = Mage::getModel('payzen/payment_other')->getAddedMeans();
2931

3032
$cards = array_merge ($defaultCards, $addedCards);
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?php
2+
/**
3+
* Copyright © Lyra Network.
4+
* This file is part of PayZen plugin for OpenMage. See COPYING.md for license details.
5+
*
6+
* @author Lyra Network (https://www.lyra.com/)
7+
* @copyright Lyra Network
8+
* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
9+
*/
10+
11+
use Lyranetwork\Payzen\Model\Api\Form\Api as PayzenApi;
12+
13+
/**
14+
* Custom renderer for the plugin documentation element.
15+
*/
16+
class Lyranetwork_Payzen_Block_Adminhtml_System_Config_Field_PluginDoc extends Mage_Adminhtml_Block_System_Config_Form_Field
17+
{
18+
/**
19+
* Render field HTML.
20+
*
21+
* @param Varien_Data_Form_Element_Abstract $element
22+
*
23+
* @return string
24+
*/
25+
public function render(Varien_Data_Form_Element_Abstract $element)
26+
{
27+
// Get documentation links.
28+
$languages = array(
29+
'fr' => 'Français',
30+
'en' => 'English',
31+
'es' => 'Español',
32+
'pt' => 'Português'
33+
// Complete when other languages are managed.
34+
);
35+
36+
$docs = "";
37+
foreach (PayzenApi::getOnlineDocUri() as $lang => $docUri) {
38+
$docs .= '<a style="margin-left: 10px; text-decoration: none; text-transform: uppercase;" href="' . $docUri . 'openmage/sitemap.html" target="_blank">' . $languages[$lang] . '</a>';
39+
}
40+
41+
$element->setComment($docs);
42+
43+
return parent::render($element);
44+
}
45+
}

app/code/community/Lyranetwork/Payzen/Block/Info.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
99
*/
1010

11+
use Lyranetwork\Payzen\Model\Api\Form\Response as PayzenResponse;
12+
1113
class Lyranetwork_Payzen_Block_Info extends Mage_Payment_Block_Info
1214
{
1315
protected function _construct()
@@ -80,7 +82,7 @@ public function getResultDescription()
8082
}
8183

8284
if ($key === 'result' && $allResults[$key] === '30') { // Append form error if any.
83-
$label .= ' ' . Lyranetwork_Payzen_Model_Api_Response::extraMessage($allResults['extra_result']);
85+
$label .= ' ' . PayzenResponse::extraMessage($allResults['extra_result']);
8486
}
8587

8688
$labels[] = $label;
@@ -92,6 +94,6 @@ public function getResultDescription()
9294
public function translate($code, $type, $appendCode = false)
9395
{
9496
$lang = strtolower(substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2));
95-
return Lyranetwork_Payzen_Model_Api_Response::translate($code, $type, $lang, $appendCode);
97+
return PayzenResponse::translate($code, $type, $lang, $appendCode);
9698
}
9799
}

app/code/community/Lyranetwork/Payzen/Helper/Payment.php

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
99
*/
1010

11+
use Lyranetwork\Payzen\Model\Api\Form\Api as PayzenApi;
12+
use Lyranetwork\Payzen\Model\Api\Rest\Api as PayzenRest;
13+
use Lyranetwork\Payzen\Model\Api\Form\Response as PayzenResponse;
14+
1115
class Lyranetwork_Payzen_Helper_Payment extends Mage_Core_Helper_Abstract
1216
{
1317
const IDENTIFIER = 'payzen_identifier'; // Key to save if payment is by identifier.
@@ -108,7 +112,7 @@ public function doPaymentReturn($controller)
108112
$storeId = $order->getStore()->getId();
109113

110114
// Load API response.
111-
$response = new Lyranetwork_Payzen_Model_Api_Response(
115+
$response = new PayzenResponse(
112116
$request,
113117
$this->_getHelper()->getCommonConfigData('ctx_mode', $storeId),
114118
$this->_getHelper()->getCommonConfigData('key_test', $storeId),
@@ -227,7 +231,7 @@ public function doPaymentCheck($controller)
227231
Mage::app()->init($storeId, 'store');
228232

229233
// Load API response.
230-
$response = new Lyranetwork_Payzen_Model_Api_Response(
234+
$response = new PayzenResponse(
231235
$post,
232236
$this->_getHelper()->getCommonConfigData('ctx_mode', $storeId),
233237
$this->_getHelper()->getCommonConfigData('key_test', $storeId),
@@ -311,13 +315,13 @@ public function doPaymentCheck($controller)
311315
$transactionId = $response->get('trans_id') . '-' . $response->get('sequence_number');
312316

313317
// Save paid amount.
314-
$currency = Lyranetwork_Payzen_Model_Api_Api::findCurrencyByNumCode($response->get('currency'));
318+
$currency = PayzenApi::findCurrencyByNumCode($response->get('currency'));
315319
$amount = number_format($currency->convertAmountToFloat($response->get('amount')), $currency->getDecimals(), ',', ' ');
316320

317321
$amountDetail = $amount . ' ' . $currency->getAlpha3();
318322

319323
if ($response->get('effective_currency') && ($response->get('currency') !== $response->get('effective_currency'))) {
320-
$effectiveCurrency = Lyranetwork_Payzen_Model_Api_Api::findCurrencyByNumCode($response->get('effective_currency'));
324+
$effectiveCurrency = PayzenApi::findCurrencyByNumCode($response->get('effective_currency'));
321325

322326
$effectiveAmount = number_format(
323327
$effectiveCurrency->convertAmountToFloat($response->get('effective_amount')),
@@ -390,8 +394,8 @@ public function doPaymentRestReturn($controller)
390394
// Wrap payment result to use traditional order creation tunnel.
391395
$data = $this->_getRestHelper()->convertRestResult($answer);
392396

393-
/** @var Lyranetwork_Payzen_Model_Api_Response $response */
394-
$response = new Lyranetwork_Payzen_Model_Api_Response($data, null, null, null);
397+
/** @var PayzenResponse $response */
398+
$response = new PayzenResponse($data, null, null, null);
395399

396400
$quoteId = (int) $response->getExtInfo('quote_id'); // Quote ID is sent to platform as ext_info.
397401
$quote = Mage::getModel('sales/quote');
@@ -530,7 +534,7 @@ public function doPaymentRestCheck($controller)
530534

531535
// Wrap payment result to use traditional order creation tunnel.
532536
$data = $this->_getRestHelper()->convertRestResult($answer);
533-
$response = new Lyranetwork_Payzen_Model_Api_Response($data, null, null, null);
537+
$response = new PayzenResponse($data, null, null, null);
534538

535539
$quoteId = (int) $response->getExtInfo('quote_id'); // Quote ID is sent to platform as ext_info.
536540
$quote = Mage::getModel('sales/quote');
@@ -678,7 +682,7 @@ public function deleteIdentifier($attribute, $maskedAttribute)
678682
);
679683

680684
// Perform REST request to cancel identifier.
681-
$client = new Lyranetwork_Payzen_Model_Api_Rest(
685+
$client = new PayzenRest(
682686
$this->_getHelper()->getCommonConfigData('rest_url'),
683687
$this->_getHelper()->getCommonConfigData('site_id'),
684688
$this->_getRestHelper()->getPassword()
@@ -729,7 +733,7 @@ private function deleteIdentifierAttribute($customer, $attribute, $maskedAttribu
729733
$this->_getHelper()->log("Identifier for customer {$customer->getEmail()} successfully deleted.");
730734
}
731735

732-
private function _isPaymentSuccessfullyProcessed(Lyranetwork_Payzen_Model_Api_Response $response)
736+
private function _isPaymentSuccessfullyProcessed(PayzenResponse $response)
733737
{
734738
if ($response->isAcceptedPayment()) {
735739
return true;
@@ -742,9 +746,9 @@ private function _isPaymentSuccessfullyProcessed(Lyranetwork_Payzen_Model_Api_Re
742746
* Update order status and eventually create invoice.
743747
*
744748
* @param Mage_Sales_Model_Order $order
745-
* @param Lyranetwork_Payzen_Model_Api_Response $response
749+
* @param PayzenResponse $response
746750
*/
747-
protected function _registerOrder(Mage_Sales_Model_Order $order, Lyranetwork_Payzen_Model_Api_Response $response)
751+
protected function _registerOrder(Mage_Sales_Model_Order $order, PayzenResponse $response)
748752
{
749753
$this->_getHelper()->log("Saving payment for order #{$order->getIncrementId()}.");
750754

@@ -798,7 +802,7 @@ protected function _registerOrder(Mage_Sales_Model_Order $order, Lyranetwork_Pay
798802
* Update order payment information.
799803
*
800804
* @param Mage_Sales_Model_Order $order
801-
* @param Lyranetwork_Payzen_Model_Api_Response $response
805+
* @param PayzenResponse $response
802806
*/
803807
public function updatePaymentInfo(Mage_Sales_Model_Order $order, $response)
804808
{
@@ -853,7 +857,7 @@ public function updatePaymentInfo(Mage_Sales_Model_Order $order, $response)
853857
// Set is_fraud_detected flag.
854858
$order->getPayment()->setIsFraudDetected($response->isSuspectedFraud());
855859

856-
$currency = Lyranetwork_Payzen_Model_Api_Api::findCurrencyByNumCode($response->get('currency'));
860+
$currency = PayzenApi::findCurrencyByNumCode($response->get('currency'));
857861

858862
if ($response->get('card_brand') === 'MULTI') { // Multi brand.
859863
$data = Mage::helper('core')->jsonDecode($response->get('payment_seq'), Zend_Json::TYPE_OBJECT);
@@ -961,7 +965,7 @@ public function updatePaymentInfo(Mage_Sales_Model_Order $order, $response)
961965
&& ($response->get('currency') !== $response->get('effective_currency'))
962966
) {
963967
// Effective amount.
964-
$effectiveCurrency = Lyranetwork_Payzen_Model_Api_Api::findCurrencyByNumCode($response->get('effective_currency'));
968+
$effectiveCurrency = PayzenApi::findCurrencyByNumCode($response->get('effective_currency'));
965969

966970
$effectiveAmount= number_format(
967971
$effectiveCurrency->convertAmountToFloat((int) ($amount / $rate)),
@@ -1002,7 +1006,7 @@ public function updatePaymentInfo(Mage_Sales_Model_Order $order, $response)
10021006

10031007
if ($response->get('effective_currency') && ($response->get('currency') !== $response->get('effective_currency'))) {
10041008
// Effective amount.
1005-
$effectiveCurrency = Lyranetwork_Payzen_Model_Api_Api::findCurrencyByNumCode($response->get('effective_currency'));
1009+
$effectiveCurrency = PayzenApi::findCurrencyByNumCode($response->get('effective_currency'));
10061010

10071011
$effectiveAmount = number_format(
10081012
$effectiveCurrency->convertAmountToFloat($response->get('effective_amount')),
@@ -1059,7 +1063,7 @@ private function getThreedsStatus($status)
10591063
}
10601064
}
10611065

1062-
private function _saveIdentifier(Mage_Sales_Model_Order $order, Lyranetwork_Payzen_Model_Api_Response $response)
1066+
private function _saveIdentifier(Mage_Sales_Model_Order $order, PayzenResponse $response)
10631067
{
10641068
if (! $order->getCustomerId()) {
10651069
return;
@@ -1109,7 +1113,7 @@ private function _saveIdentifier(Mage_Sales_Model_Order $order, Lyranetwork_Payz
11091113
}
11101114
}
11111115

1112-
private function _saveSepaIdentifier(Mage_Sales_Model_Order $order, Lyranetwork_Payzen_Model_Api_Response $response)
1116+
private function _saveSepaIdentifier(Mage_Sales_Model_Order $order, PayzenResponse $response)
11131117
{
11141118
if (! $order->getCustomerId()) {
11151119
return;
@@ -1196,9 +1200,9 @@ public function createInvoice(Mage_Sales_Model_Order $order)
11961200
* Cancel order.
11971201
*
11981202
* @param Mage_Sales_Model_Order $order
1199-
* @param Lyranetwork_Payzen_Model_Api_Response $response
1203+
* @param PayzenResponse $response
12001204
*/
1201-
protected function _cancelOrder(Mage_Sales_Model_Order $order, Lyranetwork_Payzen_Model_Api_Response $response)
1205+
protected function _cancelOrder(Mage_Sales_Model_Order $order, PayzenResponse $response)
12021206
{
12031207
$this->_getHelper()->log("Canceling order #{$order->getIncrementId()}.");
12041208

@@ -1296,7 +1300,7 @@ public function addTransaction($payment, $type, $transactionId, $additionalInfo,
12961300
/**
12971301
* Get new order state and status according to the gateway response.
12981302
*
1299-
* @param Lyranetwork_Payzen_Model_Api_Response $response
1303+
* @param PayzenResponse $response
13001304
* @param Mage_Sales_Model_Order $order
13011305
* @param boolean $ignoreFraud
13021306
* @return Varien_Object
@@ -1369,8 +1373,8 @@ public function convertTxnType($payzenType)
13691373
$type = false;
13701374

13711375
$successStatuses = array_merge(
1372-
Lyranetwork_Payzen_Model_Api_Api::getSuccessStatuses(),
1373-
Lyranetwork_Payzen_Model_Api_Api::getPendingStatuses()
1376+
PayzenApi::getSuccessStatuses(),
1377+
PayzenApi::getPendingStatuses()
13741378
);
13751379

13761380
switch (true) {

0 commit comments

Comments
 (0)