Я ищу простой и правильный способ запустить мой процесс, когда платеж закончен - зафиксирован, отменен. Я думаю, что это типичное требование.
Я не хочу делать это на готовой странице - она в моем методе оплаты ожидает рассмотрения, и ее пользователь уволен. Я хочу, чтобы платежный шлюз отправлял окончание платежа в фоновом режиме.
Но в этом пакете это непросто.
События не запускаются - поэтому 1. Добавить Symfony Events https://github.com/Payum/Payum/blob/master/docs/event-dispatcher.md
payum.extension.event_dispatcher:
class: Payum\Core\Bridge\Symfony\Extension\EventDispatcherExtension
arguments: ["@event_dispatcher"]
public: true
tags:
- { name: payum.extension, all: true, prepend: true }
В документации есть ошибка - если prepend - true, она работает, когда false - вот мой отчет об ошибке
https://github.com/Payum/Payum/issues/821
Iне могу найти правильное имя события - у нас есть только 3 события
const GATEWAY_PRE_EXECUTE = 'payum.gateway.pre_execute';
const GATEWAY_EXECUTE = 'payum.gateway.execute';
const GATEWAY_POST_EXECUTE = 'payum.gateway.post_execute';
Я добавляю слушателя PayumEvents :: GATEWAY_POST_EXECUTE
Я вижу, что почти каждая операция в этом пакете выполняет какое-то действие, поэтому перед завершением пользователяоплата мое событие запускается много раз.
в ExecuteEvent Я не знаю, что происходит - я получаю_класс $ event-> getContext () -> getRequest () и 7 раз запускаю событие
Payum\Core\Request\GetHttpRequest
Payum\Paypal\ExpressCheckout\Nvp\Request\Api\SetExpressCheckout
Payum\Paypal\ExpressCheckout\Nvp\Request\Api\GetExpressCheckoutDetails
Payum\Core\Request\Sync
Payum\Paypal\ExpressCheckout\Nvp\Request\Api\AuthorizeToken
Payum\Core\Request\Capture
Payum\Core\Request\Capture
я только что переехал на сайт PayPal ....
хорошо, я делаю платеж - получить следующие 10 раз прослушивания слушателя?
Payum\Core\Request\GetHttpRequest
Payum\Paypal\ExpressCheckout\Nvp\Request\Api\GetExpressCheckoutDetails
Payum\Core\Request\Sync
Payum\Paypal\ExpressCheckout\Nvp\Request\Api\DoExpressCheckoutPayment
Payum\Paypal\ExpressCheckout\Nvp\Request\Api\GetExpressCheckoutDetails
Payum\Paypal\ExpressCheckout\Nvp\Request\Api\GetTransactionDetails
Payum\Core\Request\Sync
Payum\Core\Request\Capture
Payum\Core\Request\Capture
Payum\Paypal\ExpressCheckout\Nvp\Request\Api\GetExpressCheckoutDetails
тьфу ...
Пожалуйста, помогите мне - как я могу принять решение, когда я действительно получаю платеж. Изменение статуса.
Мне просто нужно запустить процесс, когда пользователь заплатил или отменить платеж ...