【问题标题】:Integrate Mollie in Sylius payumbundle在 Sylius payumbundle 中集成 Mollie
【发布时间】:2015-07-26 12:01:42
【问题描述】:

我正在尝试通过omnipay 桥将Mollie 集成到sylius payumbundle 中。这是我的配置:

sylius_payment:
    gateways:
        mollie: Mollie
payum:
    contexts:
        mollie:
            omnipay_onsite:
                type: Mollie
                options:
                    apiKey: test_...

它工作正常,但是在付款程序之后,Mollie 重定向回来,我收到以下错误:

transactionReference 参数是必需的

有人成功地将 sylius 与 Mollie 集成了吗?

【问题讨论】:

    标签: sylius omnipay payum mollie


    【解决方案1】:

    OmnipayBridge 中的 OffsiteCaptureAction 似乎与 Omnipay/Mollie 网关不兼容。

    following part from OffsiteCaptureAction.php 不兼容:

    if (false == $details['returnUrl'] && $request->getToken()) {
        $details['returnUrl'] = $request->getToken()->getTargetUrl();
    }
    

    如果您将不兼容的部分替换为以下代码行,则它可以工作:

    if (false == $details['returnUrl'] && $request->getToken()) {
        $details['returnUrl'] = $request->getToken()->getAfterUrl();
    }
    
    if (false == $details['notifyUrl'] && $request->getToken()) {
        $details['notifyUrl'] = $request->getToken()->getTargetUrl();
    }
    

    Mollie 网关使用 notifyUrl 作为 webhook 来确认付款。这是付款中最重要的部分。在后台使用 webhook/notifyUrl 后,客户将被重定向到 returnUrl/AfterUrl。原始代码缺少 notifyUrl,并将客户重定向到付款确认 URL。

    这些更改可能与其他网关不兼容。我只使用 Mollie,所以这对我来说不是什么大问题。

    我为 0.14 分支做了一个 fork: https://github.com/goemaere/OmnipayBridge/blob/0.14/src/Action/OffsiteCaptureAction.php#L43-L49

    【讨论】:

    • 那么notify url的if语句要加吗?我猜对了吗?
    猜你喜欢
    • 2019-11-14
    • 2014-09-12
    • 1970-01-01
    • 2013-09-04
    • 2017-01-29
    • 2017-01-13
    • 2014-12-07
    • 1970-01-01
    • 2013-09-03
    相关资源
    最近更新 更多