我的网站建立在 joomla 2.5.8 上。该网站正在使用支付网关来处理付款。
如您所知,joomla 具有这种 URL 结构(没有 SEF):
index.php?option=com_componentname&controller=order&task=notify&gateway=paymentgateway
现在,支付网关提供商要求我向他们发送一个回调 URL,以将交易的值传递给它,并让我使用基于此 URL 值的交易信息更新 MySQL 数据库表。
问题是支付网关提供商将在回调 URL 中使用这些值:
?Response=1&status=10&code=123456-123456&token=f0021bfa-7ae4-48af-b4a2-d08d7a647b5e&lang=en&ignore=1
我的组件用作回调 URL 的链接应该是这样的:
index.php?option=com_componentname&controller=order&task=notify&gateway=paymentgateway
因此,支付提供商拒绝在其系统中设置此回调 URL,因为它包含“?” 在里面。他们必须使用这个“?” 在回调 URL 中传递事务值。
因此,如果他们接受我给他们的回调,回调 URL 将如下所示:
index.php?option=com_componentname&controller=order&task=notify&gateway=paymentgateway?Response=1&status=10&code=123456-123456&token=f0021bfa-7ae4-48af-b4a2-d08d7a647b5e&lang=en&ignore=1
正如您在上面注意到的,回调 URL 将包含两个“?” 问号。
到目前为止我所做的:我安装了一个组件,可以在我的 Joomla 网站中 SEF 任何非 SEF URL。所以我将这个链接 (index.php?option=com_componentname&controller=order&task=notify&gateway=paymentgateway) 设置为 (payment-status) 并将其发送回支付提供商。但是,回调 URL 中传递的值不会更新我的数据库表。
所以在付款过程中一切正常。一旦我达到了获取参数值来更新我的数据库的目的,它就不会了。我该如何解决这个问题?
BR,