创建自定义网关 - 模型问题

时间:2015-12-22 07:56:39

标签: php payum

我试图创建一个自定义网关,并且已经跟踪了很多不同的文档。昨天我发现了新的Payum / Skeleton并从那开始并遵循了这个例子。 虽然我在重定向到捕获页面时遇到问题,但我得到以下两个例外:

  

致命错误:未捕获的异常   ' Payum \核心\异常\ RequestNotSupportedException'与消息   '请求捕获{model:Identity}不受支持。确保   " Payum \ Core \ Model \ Payment"的存储扩展是注册的   网关。确保存储查找方法按id返回实例   " 5678ff3e481ba&#34 ;.确保网关支持请求   是一个支持此请求的操作(该方法返回true)。   可能存在错误,因此请在问题跟踪器上查找相关问题。'   在/home/vagrant/code/payumdibs/vendor/payum/core/Payum/Core/Exception/RequestNotSupportedException.php   在第57行

  

Payum \ Core \ Exception \ RequestNotSupportedException:Request   不支持捕获{model:Identity}。确保存储空间   " Payum \ Core \ Model \ Payment"的扩展名已注册到网关。   确保存储查找方法按id返回实例   " 5678ff3e481ba&#34 ;.确保网关支持请求   是一个支持此请求的操作(该方法返回true)。   可能存在错误,因此请在问题跟踪器上查找相关问题。   在   /home/vagrant/code/payumdibs/vendor/payum/core/Payum/Core/Exception/RequestNotSupportedException.php   在第57行

我使用过x-debug并发现当CaptureAction ::支持调用时,$ 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();

任何人都有任何想法会出错?

1 个答案:

答案 0 :(得分:0)

Maksim Kotlyar在评论中得到了答案。 https://github.com/Payum/Payum/issues/452