我们已经创建了一个小应用来帮助用户管理某些PayPal订单,但IPN似乎没有按预期工作。我在以下网址底部的注释中找到了这个:
https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNSetup/
"Even though you have not enabled receiving IPN messages in your Profile or
you have reset your preference by turning off IPN messages, PayPal still
sends IPN messages to the notification URL you specify for a specific
payment."
基于此,我们指示我们的Beta测试人员不要担心在其帐户中启用IPN,因为我们通过按钮代码中的notify_url字段指定用户事务的通知URL。但是后来没有发送IPN。
接下来,我们指示我们的测试版测试人员启用IPN,因为这样做需要您输入通知网址,用户不希望每笔交易的交易数据都发布到我们的系统,我们也不想要或者,我们指示他们进入"假的" URL并禁止在其帐户中向该URL发送邮件。根据上面链接中的说明,我们认为这也应该有效,但它并没有。虽然您现在可以在IPN历史记录中看到该消息,但不会发送IPN。
所以我在这里有点难过。我看到它的方式,我们只有2个选项,似乎都不理想......
指示我们的用户启用IPN并将我们的IPN通知网址硬编码到其个人资料设置中。这意味着如果他们已经将IPN用于其他事情,他们就无法做到这一点,即使他们可以这意味着他们所做的每笔交易的数据也会影响我们的系统,用户和我们都不需要。
指示我们的用户输入"虚假"他们帐户中的通知网址,并将消息保留为启用该网址,因为我们会使用我们自己的notify_url设置覆盖此消息。这可行,但是它会导致PayPal尝试将消息发送到无效的通知URL,以用于未通过我们的系统处理的任何交易。我认为PayPal并不想要这个,并且由于持续的IPN错误等原因,它可能导致用户将来失去IPN访问权。
任何人对我都有任何想法?谢谢!
答案 0 :(得分:1)
根据您的经验,您确实需要启用IPN才能发送IPN,但如果您指定了notify_url,它将覆盖配置文件中的URL。
不是设置伪造的URL,而是可以在那里放置任何实际的脚本。只需使它成为一个绝对没有任何东西的脚本。这样,在这里发送的IPN将“无所事事”,而不是向PayPal的服务器发回200 OK,表明IPN已成功接收。
如果他们已经在使用他们自己的IPN解决方案并且数据需要通过两者,那么您将必须设置IPN转发器。如果需要,您可以将IPN网址以菊花链方式连接到一堆网页上。
就个人而言,我喜欢在我的个人资料中设置一些全面的IPN设置,以保存它获取到我的数据库的所有IPN以用于记录目的。然后,如果需要,可以再次使用通知URL来覆盖它。