1

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

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

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

transactionReference 参数是必需的

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

4

1 回答 1

1

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

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 分支做了一个分支: https ://github.com/goemaere/OmnipayBridge/blob/0.14/src/Action/OffsiteCaptureAction.php#L43-L49

于 2015-08-11T09:15:27.113 回答