Я тестирую Bitbag / PayUPlugin , и я был остановлен шлюзом API с ошибкой «Отсутствуют необходимые данные».
После некоторой отладки я понял, что сущность Sylius Payment, в частности свойство "details", не выполняется с данными.
После изменения условия в строке 53:
https://github.com/Sylius/Sylius/blob/4e06a4dfb8dc56731470016bb97165f3025947b7/src/Sylius/Bundle/PayumBundle/Action/CapturePaymentAction.php#L53
до
if ($status->isNew() || $status->isUnknown()) {
Платежный шлюз работает правильно.
Это ошибка или я что-то не так делаю?
Sylius / Sylius v1.4.6 Bitbag / PayUPlugin v1.8.0
Маловероятно, что есть ошибка в PayumBundle / CapturePaymentAction (поскольку больше людей использовали PayumBundle, чем PayUPlugin, поэтому вероятность ошибки меньше), концептуально статус платежного объекта в начале должен быть «новым», а не «неизвестным», поэтому условиедолжно работать.
Итак, вы должны выяснить класс https://github.com/BitBagCommerce/SyliusPayUPlugin/blob/master/src/Action/StatusAction.php#L58, почему он не достигает markNew() строки.
markNew()