PayumBundle захватить платеж в фоновом режиме не просто - PullRequest
1 голос
/ 01 ноября 2019

Я ищу простой и правильный способ запустить мой процесс, когда платеж закончен - зафиксирован, отменен. Я думаю, что это типичное требование.

Я не хочу делать это на готовой странице - она ​​в моем методе оплаты ожидает рассмотрения, и ее пользователь уволен. Я хочу, чтобы платежный шлюз отправлял окончание платежа в фоновом режиме.

Но в этом пакете это непросто.

События не запускаются - поэтому 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

тьфу ...

Пожалуйста, помогите мне - как я могу принять решение, когда я действительно получаю платеж. Изменение статуса.

Мне просто нужно запустить процесс, когда пользователь заплатил или отменить платеж ...

...