我试图创建一个自定义网关,并且已经跟踪了很多不同的文档。昨天我发现了新的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();
任何人都有任何想法会出错?