From d1ceac803bba9b0291f7cea6a96159065804b59a Mon Sep 17 00:00:00 2001 From: Alexandre Segura Date: Wed, 5 Feb 2025 10:40:32 +0100 Subject: [PATCH] Apply platform fees when order is fully paid by credit card. --- src/Service/PaygreenManager.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Service/PaygreenManager.php b/src/Service/PaygreenManager.php index b8a2f233fb..fc7b2d32cc 100644 --- a/src/Service/PaygreenManager.php +++ b/src/Service/PaygreenManager.php @@ -126,11 +126,11 @@ public function createPaymentOrder(PaymentInterface $payment) $paymentOrder->setCancelUrl($this->getCallbackUrl($order, 'paygreen_cancel')); $paymentOrder->setEligibleAmounts($this->getEligibleAmounts($order)); - // platforms is required when fees is set - // Impossible to process fees on Payment Orders setup with non-wallet platforms. - // You must only specify a platform with a wallet behavior (e.g. bank_card) - // $paymentOrder->setPlatforms(['bank_card']); - // $paymentOrder->setFees($order->getFeeTotal()); + // We can set platforms fees *ONLY* when the order is paid 100% by credit card + if ('CARD' === $payment->getMethod()->getCode()) { + $paymentOrder->setPlatforms(['bank_card']); // Avoid error "platforms is required when fees is set" + $paymentOrder->setFees($order->getFeeTotal()); + } $response = $this->paygreenClient->createPaymentOrder($paymentOrder);