редирект — компонент Joomla 3.6 и код php

Я надеюсь, что кто-то может помочь мне с этим, так как я сгорел много часов, пытаясь найти решение?

Я работаю над сайтом Joomla 3.6.5, используя компонент под названием OS Services Booking by OS SOLUTION.

Я настроил компонент так, как мне хотелось бы, и работал (до определенного момента) на тестовом сервере, в то время как я пытаюсь настроить WorldPay как платежный шлюз для бронирований.

Проблема, с которой я сталкиваюсь, заключается в том, что после обработки платежа через WorldPay «ответ покупателя» (или перенаправление) работает только до тех пор, пока не произойдет ошибка 303 и не произойдет зависание.

Я полагаю, что причина этой ошибки 303 заключается в том, как обрабатывается ответ от WorldPay, как только он достигает компонента бронирования служб ОС.

URL-адрес покупателя, предоставленный компонентом, и вы указали в своей конфигурации WorldPay:
HTTP: //YOURDOMAINN/index.php вариант = com_osservicesbooking&задача = defaul_paymentconfirm&PAYMENT_METHOD = os_worldpay

Из того, что я понимаю, это URL, по которому WorldPay передает результаты транзакции обратно. Данные, отправленные обратно из WorldPay, достигают бронирования OS Services, и в результате компонент обновляет свою базу данных, чтобы записать транзакцию / записать временной интервал и отправить уведомления по электронной почте.

Последняя часть процесса предназначена для того, чтобы компонент перенаправил вас на страницу на вашем веб-сайте, информирующую клиента о том, что транзакция не удалась / прошла успешно.

Для этого компонент передает переменные для создания URL-адреса (все это происходит в файле … компоненты> com_osservicesbooking> helpers> payment> omnipay.php, начиная со строки 135)

protected function setPaymentSuccessUrl($id, $data = array())

{

$Itemid = JFactory::getApplication()->input->get->getInt('Itemid',0);

$this->paymentSuccessUrl = JRoute::_('index.php?option=com_osservicesbooking&task=defaul_paymentconfirm&Itemid=' . $Itemid, false, false);

}

Я проследил URL-адрес (используя wheregoes.com) и то, как компонент обрабатывает эту функцию, по-видимому, с помощью перенаправления 303.

Похоже, WorldPay не нравится это перенаправление 303, и все останавливается, и клиент остается на веб-странице WorldPays (я думаю, что они называются resultsY.html или resultsC.html, а не перенаправляются обратно на ваш сайт!)

После исследования и разговора с ним кажется, что WorldPay может пропустить это перенаправление Url, если выбранный маршрут использует мета-обновление, а не перенаправление 303.

Имея это в виду, я надеюсь, что если код может быть отредактирован для выполнения мета-обновления, то все может работать?

Нечто подобное (мои навыки PHP не существует)

protected function setPaymentSuccessUrl($id, $data = array())

{

$Itemid = JFactory::getApplication()->input->get->getInt('Itemid',0);

echo '<META HTTP-EQUIV="Refresh" Content="0; URL="';

$this->paymentSuccessUrl = JRoute::_('index.php?option=com_osservicesbooking&task=defaul_paymentconfirm&Itemid=' . $Itemid, false, false);

echo '">';

}

(Но это не работает!)

Если кто-нибудь может помочь, это будет очень цениться

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]