我已设置了PayPal按钮,启用了IPN并设置了一个IPN监听器页面,用于验证付款是否已完成,并发送一封电子邮件,其中包含指向30天后到期的安全下载页面的链接(AWS S3即将过期的URL)。< / p>
一切都很好,只要他们收到我的电子邮件。
我想让IPN监听器页面显示我的安全下载链接,但是没有看到如何让任何人只要他们想要随时点击IPN监听器页面并生成新的下载链接。
我打算使用会话变量,在侦听器页面上设置,然后重定向到另一个我将显示安全链接的页面。在该页面上,我将在付款完成后检查会话变量是否已设置,但会话变量不适用于IPN过程,因为它是2个不同的会话。执行验证的会话是服务器到服务器,买方看到的页面不在同一会话中。
如何显示下载链接但知道显示该页面的页面仅在完成付款后才能访问?有什么像我可以检查的推荐人网址?因为他们是通过paypal发送到那个页面的,所以看起来我应该能够检查,但我不知道如何。
我在一个非常简单的webforms项目中使用C#。我没有使用数据库。
答案 0 :(得分:0)
我进行此设置的方式不正确。在阅读了EJP的评论后,我回去看了我的设置。我有返回URL和Notify_url相同,都进入IPN监听器。我还在按钮HTML代码中看到了这些内容,它们是可见的。
Notify_url仅适用于IPN侦听器。这是服务器到服务器,是我使用下载链接生成电子邮件的地方。
返回网址是PayPal在交易后将用户带回您网站的地方。如果在创建按钮时使用rm = 2作为高级变量,那么PayPal会将相同的信息发送到返回URL,就像它对IPN侦听器页面一样(至少到目前为止,这是我看到的)。
使用POST数据,您可以检查它是来自PayPal的交易,然后运行代码以在Return url上显示安全下载链接。如果有人遇到页面,他们将看不到任何内容。
最初,当我测试的东西时,按钮创建部分工作得不好,我最终将不同的隐藏输入放在按钮html中,并且还将所有内容设置为相同的URL - 我不知道是什么通知和返回之间的区别是,这是我误入歧途的地方。