我正在尝试创建一个自定义网关并遵循了许多不同的文档。昨天我发现了新的 Payum/Skeleton 并从它开始并遵循了这个例子。尽管重定向到捕获页面时出现问题,但出现以下两个异常:
致命错误:不支持未捕获的异常“Payum\Core\Exception\RequestNotSupportedException”和消息“请求捕获{模型:身份}”。确保“Payum\Core\Model\Payment”的存储扩展已注册到网关。确保存储查找方法返回 id 为“5678ff3e481ba”的实例。确保网关支持请求并且有支持此请求的操作(该方法返回 true)。可能存在错误,因此请在问题跟踪器上查找相关问题。在第 57 行的 /home/vagrant/code/payumdibs/vendor/payum/core/Payum/Core/Exception/RequestNotSupportedException.php
和
Payum\Core\Exception\RequestNotSupportedException:不支持请求捕获{模型:身份}。确保“Payum\Core\Model\Payment”的存储扩展已注册到网关。确保存储查找方法返回 id 为“5678ff3e481ba”的实例。确保网关支持请求并且有支持此请求的操作(该方法返回 true)。可能存在错误,因此请在问题跟踪器上查找相关问题。在第 57 行的 /home/vagrant/code/payumdibs/vendor/payum/core/Payum/Core/Exception/RequestNotSupportedException.php
我使用了 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();
任何人都有任何想法出了什么问题?