Move gateway reference generation to gateway checkout service

This commit is contained in:
2024-09-26 14:06:08 +02:00
parent 2d4e5817e6
commit 61ab4d0d2f
2 changed files with 15 additions and 8 deletions
@@ -224,18 +224,13 @@ class PaypalGateway implements GatewayInterface
];
}
private function getPaypalReference(GatewayCheckout $checkout, GatewayCharge $charge): string
{
return sprintf('CO%d-CH%d', $checkout->getId(), $charge->getId());
}
private function getPaypalPurchaseUnits(GatewayCheckout $checkout): array
{
$units = [];
foreach ($checkout->getCharges() as $charge) {
$money = $this->getPaypalMoney($charge);
$reference = $this->getPaypalReference($checkout, $charge);
$reference = $this->checkoutService->getGatewayReference($checkout, $charge);
$units[] = [
'reference_id' => $reference,
+14 -2
View File
@@ -3,6 +3,8 @@
namespace App\Service;
use App\Controller\GatewaysController;
use App\Entity\GatewayCharge;
use App\Entity\GatewayCheckout;
use Symfony\Component\Routing\RouterInterface;
class GatewayCheckoutService
@@ -12,8 +14,7 @@ class GatewayCheckoutService
public function __construct(
private RouterInterface $router,
) {
}
) {}
public function generateRedirectUrl(string $gateway, string $type = self::RESPONSE_TYPE_SUCCESS, array $parameters = []): string
{
@@ -26,4 +27,15 @@ class GatewayCheckoutService
RouterInterface::ABSOLUTE_URL
);
}
public function getGatewayReference(GatewayCheckout $checkout, GatewayCharge $charge): string
{
return sprintf(
'AO%d-CO%d-CH%d-AT%d',
$checkout->getOrigin()->getId(),
$checkout->getId(),
$charge->getId(),
$charge->getTarget()->getId()
);
}
}