Ich benutze Symfony mit PayumBundle und payum-redsys, um die Zahlung über die spanische Redsys-Gateway zu akzeptieren.Führen Sie benutzerdefinierte Operationen auf Gateway Benachrichtigung mit Payum
Nach jedem Zahlungsversuch (ob erfolgreich oder nicht) sendet Redsys eine Benachrichtigung an eine URL. Ich möchte diese Benachrichtigung abfangen und Maßnahmen entsprechend ihrer Nutzlast ergreifen (war die Zahlung erfolgreich? Welche Bestellnummer? Usw.). Nehmen wir zum Beispiel an, dass, wenn die Zahlung erfolgreich war, ich den entsprechenden Auftrag als bezahlt in der Datenbank markieren möchte, andernfalls möchte ich den Fehler protokollieren. Etwas wie:
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']);
}
Wenn ich ließ Payum die Benachrichtigungsanforderung mit seinem Standard behandeln NotifyController
, führt er automatische Token-Validierung, Dekodierung von Parametern usw., die perfekt ist aber Ich kann nicht sehen, wie mein auszuführen eigene benutzerdefinierte Operation (siehe Code oben), daher der Titel dieser Frage.