是否有实时paypal ipn服务

是否有实时paypal ipn服务,paypal,paypal-ipn,asp.net-web-api,Paypal,Paypal Ipn,Asp.net Web Api,PayPal明确表示,在用户结账过程中不应依赖其IPN服务。我相信这里的想法是,IPN应该是一种跟踪机制,以保持我们的后端数据与贝宝的数据同步。我想做的是使用快速签出,但在任何事情最终确定之前,强制执行一个“IPN”来命中我的服务器,并让我的服务器做出适当的响应 然后,我可以确保我只在用户付费后向他们分发内容,并且如果用户确实为内容付费,他们不必刷新或等待IPN进入。使用返回url和查询字符串进行此操作的一个问题是,我在firefox手机上有一个单页网站。手机从我们的API web服务获取数据。

PayPal明确表示,在用户结账过程中不应依赖其IPN服务。我相信这里的想法是,IPN应该是一种跟踪机制,以保持我们的后端数据与贝宝的数据同步。我想做的是使用快速签出,但在任何事情最终确定之前,强制执行一个“IPN”来命中我的服务器,并让我的服务器做出适当的响应

然后,我可以确保我只在用户付费后向他们分发内容,并且如果用户确实为内容付费,他们不必刷新或等待IPN进入。使用返回url和查询字符串进行此操作的一个问题是,我在firefox手机上有一个单页网站。手机从我们的API web服务获取数据。因此,我需要在不考虑返回url的情况下命中该端点


我知道PayPal advanced developer还有一些功能,但需要付费。如果是这样的话,我可以接受,但我只想先知道我的选择。

顾名思义,IPN是即时的。很少有情况下会稍微延迟,但这种情况并不经常发生,尤其是在实时服务器上

您可以构建您的IPN侦听器来执行任何您需要的操作,如更新数据库、生成自定义电子邮件通知、点击第三方web服务等,这些操作将实时触发

您只需要在PayPal IPN设置中创建和配置侦听器,或者也可以在Express Checkout API调用的NotifyURL参数中传递IPN URL

如果你碰巧在使用WordPress,你可能会对我的插件感兴趣。它可以让你很快地启动并运行IPN,然后你可以连接到插件,根据不同的IPN类型或支付状态触发你自己的功能

评论中的额外信息

如前所述,IPN是交易后的事情。不过,您可以做的是在结帐系统上设置身份验证和捕获。当订单通过时,您会将其作为授权运行,当您准备好“完成”时,您会运行捕获

您将获得授权和捕获的IPN。因此,如果合适的话,您可以做一件事,将订单作为授权运行,然后在您的IPN脚本中,继续运行捕获。这样你就可以做任何你想做的检查,只有通过了才能抓取


在偶然的情况下,当命令发生时,捕获将“几乎”立即发生。在无法通过的情况下,您可以使身份验证无效,或者让它处于挂起状态。

IPN本质上是异步的。您可以在web服务中设置一个循环,检查IPN回调是否已发生以及用户帐户是否已更新。PayPal的“高级”或“专业”产品中的任何内容都不会添加重要的新选项,除了a)对API响应采取行动或b)对IPN采取行动(延迟;通常为几秒钟,但可能更长). RESTful解决方案提供了“Webhook”,但这些基本上是更现代的IPN:)。它当然不是“即时的”。根据我的经验,这通常是我所说的“快速”:即在几分钟内,而不是几毫秒内。我想,这增加了一种信心,我可以强制我的服务器在paypal完成购买之前响应IPN吗?@Ukemi paypal已经完成购买,并通知你付款的情况。@Ukemi嗯,这不是它的工作方式。重新考虑你的设计。在收到IPN之前,我不会在系统中为用户启用产品。当返回url被点击时,我告诉他等待确认电子邮件,我在处理IPN后发送。实际上,IPN告诉你在PayPal完成的交易(不仅仅是“付款”)。如果您使用授权,PayPal可以向您发送一个IPN,告诉您授权已完成(意味着资金有保证可用),然后您可以采取行动并捕获(或在特殊情况下释放)授权。这只是一个想法,以防对OP有所帮助。但是EJP的流程是一个很好的流程。