BCard - Documentation technique

DjomyReturnController extends AbstractController
in package

Retour du navigateur depuis la page de paiement Djomy, commun à tous les parcours web hors inscription entreprise.

La route est publique : le paiement est retrouvé par son jeton de retour aléatoire (voir DjomyCheckoutService::start()), et rien n'est cru sans relecture du statut auprès de Djomy. Le contrôleur ne fait que constater le résultat et rediriger vers la page du parcours d'origine ; le traitement métier est celui de PaymentFulfillmentService, identique à celui du webhook.

Table of Contents

Constants

MESSAGE_FAILED  : mixed = 'Le paiement n\'a pas abouti ou a été annulé. V...
MESSAGE_PENDING  : mixed = 'Paiement en cours de traitement : votre comman...

Properties

$djomyService  : DjomyService
$entityManager  : EntityManagerInterface
$fulfillmentService  : PaymentFulfillmentService
$logger  : LoggerInterface
$physicalCardRepository  : PhysicalCardRepository

Methods

__construct()  : mixed
__invoke()  : Response
Constate le résultat d'un paiement Djomy et redirige vers la page de résultat du parcours.
flashAndRedirect()  : Response
Ajoute un message flash puis redirige vers une route.
redirectToResult()  : Response
Redirige vers la page de résultat propre au parcours du paiement.
resolveOutcome()  : string
Détermine le résultat du paiement, en le validant si Djomy confirme le succès.

Constants

MESSAGE_FAILED

private mixed MESSAGE_FAILED = 'Le paiement n\'a pas abouti ou a été annulé. Vous pouvez réessayer.'

MESSAGE_PENDING

private mixed MESSAGE_PENDING = 'Paiement en cours de traitement : votre commande sera confirmée dès réception de la confirmation de Djomy.'

Properties

Methods

__construct()

public __construct(DjomyService $djomyService, PaymentFulfillmentService $fulfillmentService, EntityManagerInterface $entityManager, PhysicalCardRepository $physicalCardRepository, LoggerInterface $logger) : mixed
Parameters
$djomyService : DjomyService

Relit le statut de la transaction.

$fulfillmentService : PaymentFulfillmentService

Traite un paiement réussi.

$entityManager : EntityManagerInterface

Recherche du paiement.

$physicalCardRepository : PhysicalCardRepository

Détecte une commande de carte physique.

$logger : LoggerInterface

Journalise les erreurs de lecture ou de traitement.

__invoke()

Constate le résultat d'un paiement Djomy et redirige vers la page de résultat du parcours.

public __invoke(string $token) : Response

Le paiement est chargé par jeton (404 s'il est inconnu, n'est pas Djomy ou n'a pas de transaction). S'il est déjà COMPLETED, c'est un succès. Sinon le statut est relu : seul SUCCESS (devise GNF si fournie) fait foi et déclenche PaymentFulfillmentService::fulfill() ; FAILED et CANCELLED sont un échec ; tout autre statut, une devise inattendue ou une erreur annonce un traitement en cours (le webhook finalisera). La destination dépend de ce qui est lié au paiement : abonnement Pro, commande d'abonnement, carte physique, commande entreprise ou commande de la boutique.

Route : /payment/djomy/return/{token} (GET), nom djomy_payment_return.

Parameters
$token : string

Jeton de retour du paiement.

Attributes
#[Route]
'/payment/djomy/return/{token}'
$name: 'djomy_payment_return'
$requirements: ['token' => '[0-9a-f]{32,64}']
$methods: ['GET']
Return values
Response —

Redirection vers la page de résultat du parcours.

flashAndRedirect()

Ajoute un message flash puis redirige vers une route.

private flashAndRedirect(string $type, string $message, string $route[, array<string, mixed> $params = [] ]) : Response
Parameters
$type : string

Type de flash (success, info, warning).

$message : string

Message affiché.

$route : string

Route de destination.

$params : array<string, mixed> = []

Paramètres de la route.

Return values
Response —

Redirection.

redirectToResult()

Redirige vers la page de résultat propre au parcours du paiement.

private redirectToResult(Payment $payment, string $outcome) : Response

Les pages de succès des parcours ne valident plus rien : elles affichent un état déjà enregistré par PaymentFulfillmentService.

Parameters
$payment : Payment

Paiement concerné.

$outcome : string

success, failed ou pending.

Return values
Response —

Redirection avec le message flash adapté.

resolveOutcome()

Détermine le résultat du paiement, en le validant si Djomy confirme le succès.

private resolveOutcome(Payment $payment) : string
Parameters
$payment : Payment

Paiement Djomy ayant une transaction.

Return values
string —

success, failed ou pending.


        
On this page

Search results