1

我希望有人可以帮助我解决这个问题,因为我已经花了很多时间试图找到解决方案?

我正在使用 OS SOLUTION 的一个名为 OS Services Booking 的组件在 Joomla 3.6.5 网站上工作。

当我尝试将 WorldPay 配置为预订的支付网关时,我已经按照我的意愿配置了组件并在测试服务器上工作(在某种程度上)。

我遇到的问题是,一旦通过 WorldPay 处理了付款,“购物者响应”(或重定向)到目前为止似乎只能工作,直到它遇到 303 错误并挂起。

我相信这个 303 错误的原因是由于 WorldPay 的响应到达操作系统服务预订组件后如何处理。

组件提供的购物者响应 URL 并放入 WorldPay 配置是 - http://YOURDOMAINN/index.php?option=com_osservicesbooking&task=defaul_paymentconfirm&payment_method=os_worldpay

据我了解,这是 WorldPay 将交易结果传回的 URL。从 WorldPay 发回的数据到达 OS 服务预订,因此组件更新其数据库以记录交易/预订时间段并发送通知电子邮件。

该过程的最后一部分是让组件将您重定向到您网站上的页面,通知客户交易失败/成功。

为此,组件传递变量以创建 url(这一切似乎都发生在文件中... components > 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,而不是被重定向回您的网站!

经过研究并与之交谈后,如果采用的路由使用元刷新而不是 303 重定向,WorldPay 可能会通过此 URL 重定向。

考虑到这一点,我希望如果可以编辑代码以执行元刷新,那么一切都可以正常工作吗?

类似的东西(我的 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 '">';      

    }

(但这不起作用!)

如果有人可以提供帮助,将不胜感激

4

0 回答 0