我觉得我已经阅读了很多想要帮助添加网关的人的帖子,但是一旦提问者找到答案,我似乎还没有找到任何共享的解决方案。我知道也有人建议查看 Payum Bundle 文档,但由于我无法弄清楚 Sylius 与 Payum Bundle 的集成程度,因此我无法从 payum 文档中获得太多帮助。有人可以帮助解释让 PayPal Pro 在 sylius 应用程序中工作的必要条件吗?
我已将此添加到配置文件中:
payum:
contexts:
paypal_pro:
omnipay:
type: PayPal_Pro
options:
username: %paypal.username%
password: %paypal.password%
signature: %paypal.signature%
testMode: %paypal.test_mode%
storages:
Sylius\Component\Core\Model\Order:
doctrine:
driver: orm
Sylius\Component\Core\Model\Payment:
doctrine:
driver: orm
这在我的 services.yml 文件中:
sylius.payum.paypal.action.capture_payment_using_credit_card:
class: %sylius.payum.paypal.action.capture_payment_using_credit_card.class%
tags:
- { name: payum.action, factory: omnipay }
对于 CapturePaymentUsingCreditCardAction 类,我只是复制了 Sylius 的 Stripe 类。我认为这已经足够了,因为据说 Stripe 也可以开箱即用。当我输入假信用卡信息时(我们处于沙盒模式),在我被重定向到付款方式选择页面后,我只会收到“未知付款错误”的闪烁消息。根据我阅读此线程的理解,状态由状态机自动管理。我已经简单地添加了一个 PaymentStatusAction(从 Dummy 类复制并 var_dumping 详细信息),但这没有任何帮助。
另外,有人能解释一下 ExecuteSameRequestWithDetailsAction 的必要性吗?它看起来与 CapturePaymentUsingCreditCardAction 之类的几乎相同。