2015-05-14 9 views
1

Я пытаюсь интегрировать Mollie в sylius payburundle через мост Omniipay. Это то, что моя конфигурация выглядит следующим образом:Интегрируйте Mollie в Sylius paybackundle

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

работает нормально, однако после процедуры оплаты Mollie перенаправляет обратно, и я получаю следующее сообщение об ошибке:

The transactionReference parameter is required

ли кто-нибудь добиться успеха в интеграции sylius с Молли?

ответ

1

Похоже, что OffsiteCaptureAction от OmnipayBridge несовместим с шлюзом 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 подтверждения платежа.

Возможно, эти изменения не совместимы с другими шлюзами. Я использую только Молли, поэтому для меня это не большая проблема.

Я сделал вилку для 0.14 филиала: https://github.com/goemaere/OmnipayBridge/blob/0.14/src/Action/OffsiteCaptureAction.php#L43-L49

+0

Таким образом, если заявление для уведомит URL должен быть добавлен? Правильно ли я понял? –