1

我的网站建立在 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,

4

1 回答 1

0

您需要向组件添加一个菜单项,以便为回调页面创建一个菜单项。然后您可以使用内置的 Joomla SEF URL 作为回调 URL。由于它是一个菜单项,它将传递所需的正确参数以及您的支付处理器发回的附加值。

如果您不熟悉组件的菜单项,可以查看此处 -在菜单项类型中显示 joomla 组件

于 2013-03-16T23:35:04.657 回答