代码之家  ›  专栏  ›  技术社区  ›  Chaddeus

Paypal订阅- IPN处理和站点流量?

  •  4
  • Chaddeus  · 技术社区  · 16 年前

    对于我的会员网站,我已经完成了IPN处理程序。我的问题是网站的“流量”之一。

    具体情况如下: 用户-GT;登陆&注册;&验证;

    这就是问题所在(可能都在我脑子里)。假设您已经注册并验证了您的帐户。然后点击“订阅!”链接,并发送到贝宝-在那里你完成付款,并发送到“谢谢”页。

    如果IPN不能很快回到我的网站怎么办?订阅链接仍然存在,用户可能会再次单击它,以为他们没有订阅(尽管他们已经订阅了,但这只是占用时间)。

    如果我通过更新他们的个人资料来解决这个问题,我会说……激活“…”当他们点击“订阅”链接时,他们不会完成PayPal进程…它可能永远在说“激活……”。

    只是好奇,因为这是我第一次整合PayPal:

    • 如何处理用户单击订阅链接与IPN进程完成所需时间之间的状态?

    • 你有没有遇到过IPN不能很快到达的问题?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Wayne    16 年前

    您的问题表明到远程服务器的连接是异步的(Ajax)?

    以同步方式编写它可能更容易,因此保证IPN返回。如果没有,就意味着:

    a)用户重定向到远程服务器后关闭浏览器;
    b)远程服务器没有响应。

    如果用户单击“取消”按钮,好的支付网关会将其重定向回您的站点,但返回永远无法保证,因此您需要正确处理。

    我将有一个单独的表来记录给定用户的事务;即:

    一个用户,多个事务

    有些支付网关允许您在事务完成时定义为对服务器的回调。也就是说,连接是由网关启动的——它不运行浏览器,因为用户可以关闭选项卡/窗口——在这里它向回调URL发送一个日志,然后更新事务的状态。

    我不知道贝宝是否允许这样的事情,但到目前为止,我从来没有问题与贝宝,因为我一直写它的同步方式。

    当然,如果需要异步,那么Ajax函数必须有一个超时/错误处理程序——当然,我建议使用jquery。

        2
  •  1
  •   Patrick Gryciuk    16 年前

    我从来没有遇到过IPN不能很快到达的问题,但是我也从来没有真正拥有过一个拥有大量用户的庞大网站。在收到IPN之前,我没有对用户帐户做任何重大更改。

    我用Paypal API为我的一个网站做了付费注册。用户将填写他们的用户名、密码等,我会把变量传递给Paypal API。在我收到IPN之前,数据不会被处理。

    如果您觉得用户配置文件中的状态“激活…”很重要,则可以始终将时间戳与挂起的付款关联起来。等待付款可能在10分钟后超时。