【发布时间】:2015-09-08 07:18:20
【问题描述】:
我们正在运行 WPMUdev 的 Memberships 插件,它要求在一个人的 PayPal 配置文件中设置默认 IPN 列表 URL(因为即使订阅按钮包含 notify_url,但没有设置默认 IPN 监听器,显然没有办法获得定期付款取消消息)——一切正常。
问题是,PayPal 无法区分此插件生成的按钮和手动生成的按钮(例如一次性捐赠),并尝试将 IPN 消息发送到插件的侦听器,这会因为预期的元数据而完全混淆不随它一起发送。然后,PayPal 会重试 IPN,直到达到其限制。
有没有办法使用notify_url(或其他一些HTML变量)来禁用特定按钮的IPN消息?还是我必须编写一个空 IPN 侦听器来简单地确认 IPN 消息并将它们丢弃在地板上?
【问题讨论】:
-
只是一个想法(自从我使用 IPN 以来已经有一段时间了),如何将一些查询字符串附加到您想要挑选出来的 URL 以便 您的侦听器 可以识别?归根结底,Paypal 真正所做的只是向您发送消息(您可以通过
notify_url告诉他们,帐户或覆盖)。 -
@EdSF,这不是一个好主意,即使我确实创建了必要的本地数据库记录以防止现有侦听器拒绝 IPN。请记住,侦听器存在是有原因的,并且期望更改本地状态作为 paypal 事件的结果。使手动创建的按钮看起来像属于插件的按钮可能会破坏插件。我想我必须编写一个自定义侦听器 :( 周围有足够多的模板实现,我只是很生气我必须有这个额外的、毫无意义的步骤。
-
反之亦然,您只是在识别“一次性”,甚至可能不需要做任何数据库的事情。如果你有你的听众应该“忽略”的“一次性按钮”,那么这个想法是保持你现有的工作实现不变,并且只“一次性”“偶尔”按钮 - 例如使用查询字符串 - 您只能识别“一次性”(仅此而已) - 它可能很简单,如
if has "foo" querystring just respond but don't do anything in backend。我想这完全取决于你所说的“一次性”是什么意思...... -
@EdSF 也许我们在谈论不同的事情。问题是会员插件会收到手动创建按钮的 IPN 请求,除非我使用
notify_url提供显式覆盖,但是对于手动创建的按钮,没有除非我写一个监听器。如果无法为特定按钮禁用 IPN,那么我需要将手动创建的按钮指向一个侦听器,该侦听器将对通知执行一些合理的操作(包括正确确认消息)。 -
正确,所以在您的“手动创建按钮”(一次性/偶尔需要)中,您将按照
http://my-current-listener.com?disregard=me的行分配一个notify_url- 在这一点你的听众只会正确回应而不做任何其他事情。这有意义吗?
标签: paypal paypal-ipn