如何找出这个 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.phppaypal_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 请求发送到哪个文件?的主要内容,如果未能解决你的问题,请参考以下文章

PayPal ipn 通知请求未发送

贝宝 IPN 安全

我的服务器突然不再接收来自 Paypal 的 IPN 请求,工作了多年

“PayPal Here”是不是发送 IPN 通知?

首先,结帐还是 IPN 发送?

Paypal 不会将沙盒交易数据发送到 IPN