Создание пользовательского шлюза - проблемы с моделью

Я пытаюсь создать собственный шлюз и следил за множеством различных документов. Вчера я обнаружил новый Payum/Skeleton, начал с него и последовал этому примеру. Хотя у меня есть проблема при перенаправлении на страницу захвата, я получаю следующие два исключения:

Неустранимая ошибка: необработанное исключение «Payum\Core\Exception\RequestNotSupportedException» с сообщением «Request Capture{model: Identity} не поддерживается. Убедитесь, что расширение хранилища для «Payum\Core\Model\Payment» зарегистрировано на шлюзе. Убедитесь, что метод поиска хранилища возвращает экземпляр с идентификатором «5678ff3e481ba». Убедитесь, что шлюз поддерживает запросы и есть действие, которое поддерживает этот запрос (метод возвращает значение true). Может быть ошибка, поэтому поищите связанную проблему в системе отслеживания проблем». в /home/vagrant/code/payumdibs/vendor/payum/core/Payum/Core/Exception/RequestNotSupportedException.php в строке 57

И

Payum\Core\Exception\RequestNotSupportedException: Request Capture{model: Identity} не поддерживается. Убедитесь, что расширение хранилища для «Payum\Core\Model\Payment» зарегистрировано на шлюзе. Убедитесь, что метод поиска хранилища возвращает экземпляр с идентификатором «5678ff3e481ba». Убедитесь, что шлюз поддерживает запросы и есть действие, которое поддерживает этот запрос (метод возвращает значение true). Может быть ошибка, поэтому поищите связанную проблему в системе отслеживания проблем. в /home/vagrant/code/payumdibs/vendor/payum/core/Payum/Core/Exception/RequestNotSupportedException.php в строке 57

Я использовал x-debug и выяснил, что когда CaptureAction::supports вызывается, $request->getModel() не является экземпляром \ArrayAccess и поэтому возвращает false.

При использовании стандартных платежных шлюзов все работает нормально, а при использовании кастомных нет.

Моя конфигурация:

$payum = (new PayumBuilder())
        ->addDefaultStorages()
        ->addGatewayFactory('paypal', new \Acme\Paypal\PaypalGatewayFactory([]))
        ->addGateway('offline', [
            'factory' => 'offline',
        ])->addGateway('paypal', [
            'factory' => 'paypal',
            'sandbox' => true,
        ])->getPayum();

У кого-нибудь есть идеи, что происходит не так?


person Henriksjodahl    schedule 22.12.2015    source источник
comment
Похоже на ошибку, я вернусь с решением чуть позже.   -  person Maksim Kotlyar    schedule 22.12.2015
comment
пожалуйста, проверьте эту проблему, есть решение github.com/Payum/Payum/issues/452< /а>   -  person Maksim Kotlyar    schedule 23.12.2015


Ответы (1)


Получил ответ в комментарии Максима Котляра. https://github.com/Payum/Payum/issues/452

person Henriksjodahl    schedule 04.01.2016