J'utilise Symfony avec PayumBundle et payum-redsys afin d'accepter le paiement via la passerelle espagnole Redsys.Effectuer des opérations personnalisées sur la notification de passerelle avec Payum
Après chaque tentative de paiement (qu'elle soit réussie ou non), Redsys envoie une notification à une URL. Je veux attraper cette notification et prendre des mesures en fonction de sa charge utile (le paiement a-t-il réussi? Quel numéro de commande? Etc.). Par exemple, disons que si le paiement a réussi, je veux marquer la commande correspondante telle que payée dans la base de données, sinon je veux enregistrer l'erreur. Quelque chose comme:
if ($paymentSuccessful) {
$order = $orderRep->find($notif['Ds_Order']);
$order->setDatePaid($notif['Ds_Date']);
$em->flush();
} else {
$logger->error('Failed payment for order ' . $notif['Ds_Order']);
}
Si je laisse Payum traiter la demande de notification avec sa valeur par défaut NotifyController
, il effectue le jeton de validation automatique, le décodage des paramètres, etc., qui est parfait mais je ne vois pas comment effectuer mon propre opération personnalisée (voir le code ci-dessus), d'où le titre de cette question.