如何找出这个 IPN 请求发送到哪个文件?
Posted
技术标签:
【中文标题】如何找出这个 IPN 请求发送到哪个文件?【英文标题】:How can I find out which file this IPN request goes to? 【发布时间】:2013-04-18 07:22:56 【问题描述】:我正在从插件 IPN 包(Joomla 的 Valanx)转移到 php 中自定义构建的包。
问题是现有订阅者无法更改IPN地址!我不确定为什么 PayPal 将这个参数永久固定,但这让我们有些头疼。所以现在我们必须在现有的 IPN 接收器中放入一些代码,以将其转发给我们的新接收器 - 以便旧订阅者更新到新系统中。
我找不到需要修改的文件。它迷失在 Joomla 文件和插件的迷宫中。当前插件使用查询字符串作为接收地址http://mywebsite.com/index.php?option=com_acctexp&task=paypal_subscriptionnotification&Itemid=99999999'
我的问题是:如何找出要修改哪个文件以将现有 IPN 转发到我们的新系统?
或者也许有人对如何处理这个问题而不是转发 IPN 有其他建议(这对我来说似乎相当笨拙)。
【问题讨论】:
【参考方案1】:在普通 Joomla 下!约定(即,如果扩展程序是按照 MVC 编写的),则 URL 将按如下方式分解。
option=com_acctexp
- 在前端映射到目录/components/com_acctexp/
task=paypal_subscriptionnotification
是其中一个控制器文件中的方法名称。但是,根据记忆,Valanx 的 AEC 产品并未遵循此约定。
在现代扩展中,您会看到 task=controller.method
语法,它指示特定的 controller
文件和其中调用的 method
。
您可能会在com_acctexp
主目录中的processors
(或者称为paymentgateways
目录)中找到它。我建议在该目录中查找 paypal.php
或 paypal_subscriptions.php
文件。
抱歉,我无法更具体地说明,自从 dumped 取代了该产品已经有几年了。
【讨论】:
这是正确的,我也得到了开发人员的确认。该文件是 paypal_subscription.php【参考方案2】:您应该能够登录您的 PayPal 帐户,并在您的帐户中进入您的 IPN 历史记录。如果您单击过去发送的 IPN 之一,它将为您提供您发送到的 URL。这将告诉您需要修改的文件所在的位置。请记住,IPN 历史只能追溯到 28 天,因此它必须是在过去 28 天内完成的 IPN。
【讨论】:
是的,但是 IPN 消息/历史记录视图中的 IPN 地址仍然是一个查询http://www.mysite.com/index.php?option=com_acctexp&task=paypal_subscriptionnotification&Itemid=
有什么想法可以找到接收此文件的实际 PHP 文件吗?
如果不安装相同的插件包并查看它,我不知道它专门放置代码的位置。如果是插件,你应该有一个插件目录。你可以试试看那里。否则,如果它是一个免费插件,您可以将我指向下载,我可以尝试查看它。
不幸的是它不是免费的。不过谢谢你的提议!我想知道是否有办法在 cpanel 或原始访问日志中查看处理 IPN 的位置?
您可以尝试对所有文件进行搜索,以查找 PayPal URL,因为这应该在代码中,并且您的 IPN 脚本将针对它发回。以上是关于如何找出这个 IPN 请求发送到哪个文件?的主要内容,如果未能解决你的问题,请参考以下文章