在Sylius payumbundle中整合Mollie

时间:2015-05-14 18:27:33

标签: sylius omnipay payum mollie

我正试图通过omnipay桥将Mollie整合到sylius payumbundle中。这就是我的配置:

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

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

  

transactionReference参数是必需的

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

1 个答案:

答案 0 :(得分: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,并将客户重定向到付款确认网址。

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

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