Php 从Joomla中的回调URL更新MySQL表

Php 从Joomla中的回调URL更新MySQL表,php,mysql,callback,joomla2.5,payment-gateway,Php,Mysql,Callback,Joomla2.5,Payment Gateway,我的网站是建立在joomla 2.5.8上的。该网站正在使用支付网关处理支付 正如您所知,joomla的URL结构(没有SEF): 现在,支付网关提供商要求我向他们发送一个回调URL,将事务的值传递给它,并让我根据此URL值使用事务信息更新MySQL数据库表 问题在于,支付网关提供商将在回调URL中使用以下值: ?Response=1&status=10&code=123456-123456&token=f0021bfa-7ae4-48af-b4a2-d08d7a647b

我的网站是建立在joomla 2.5.8上的。该网站正在使用支付网关处理支付

正如您所知,joomla的URL结构(没有SEF):

现在,支付网关提供商要求我向他们发送一个回调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 URL。因此,我将这个链接(index.php?option=com\u componentname&controller=order&task=notify&gateway=paymentgateway)设为(支付状态),并将其发送回支付提供商。但是,回调URL中传递的值不会更新我的数据库表

所以在付款过程中一切都很好。一旦我到达了获取参数值以更新数据库的点,它就不会更新了。我怎样才能解决这个问题


BR,

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


如果您不熟悉某个组件的菜单项,可以在此处查看-

我正在尝试您提供的链接中提到的最后一个技巧并向您反馈。我所做的是:创建一个指向单个文章的菜单项,并将其命名为payment status和alias payment status。然后转到phpmyadmin并修改那里的链接,指向这个“index.php?option=com\u componentname&controller=order&task=notify&gateway=paymentgateway”。然后我尝试了一个测试付款,但这个链接仍然没有更新我的数据库。你知道我可能做错了什么和/或解决方案是什么吗?听起来好像其中一个参数没有传递到页面。开始的地方是在屏幕上转储所有参数值,以便您可以看到哪些是成功传递到页面的,哪些不是。请停止使用标志以引起您问题的注意。这些仅对网站版主可见,不用于寻求帮助或解决方案。
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