c# - Paypal IPN delay-is sleeping 站点解决方案

标签 c# asp.net paypal paypal-ipn

我在网站上使用支付宝订阅。
当用户在 pay pal 上付款时,我等待 IPN 消息将其保存在数据库中。
此外,在付款用户从 pay pal 重定向到我的网站后,我必须检查 IPN 消息是否存储在数据库中,并基于此我在数据库中做一些其他事情。
问题是当用户被重定向到站点时,有时会发生 IPN 消息还不存在,所以我无法做我想做的事。
所以我想以某种方式停止应用程序三秒钟,但我从来没有做过这样的事情,我不知道这样做是否好。

IPN消息延迟几秒正常吗?

如果我说 Thread.Sleep(3000) 是否可以通过这种方式在 Web 应用程序中显示动画加载器?

最佳答案

可以上paypal ipn overview看看一个人会发现你需要一种不同的方法。

“IPN 消息服务不假定您的听众会及时收到所有消息。由于互联网不是 100% 可靠,消息可能会丢失或延迟。处理传输和接收延迟的可能性或失败,IPN 消息服务实现重试机制,以不同的时间间隔重新发送消息,直到您确认消息已成功接收。消息可能会在原始消息后最多四天内重新发送。

“IPN 消息服务不应被视为实时服务。您的结帐流程不应等待 IPN 消息才能完成。如果您的网站等待 IPN 消息,则结帐处理可能会延迟,因为由于重试的可能性,系统加载变得更加复杂。”

一种解决方案是在付款到达之前不启用内容,但如您所见,这最多可能需要四天时间。

其他解决方案是,当您通过 paypal API 创建订阅时,您会收到包含订阅信息的响应。 (例如,如果您使用的是定期付款,则在 create_recurring 付款资料中的响应)。在此之后,您可以相信他会支付费用并启用内容的 promise 。 (当然也有可能用户在付款前退订,时间太长的话)

关于c# - Paypal IPN delay-is sleeping 站点解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10715786/

相关文章:

c# - EPPlus 将 Excel 的第一列读入数组

c# - 为什么 IIS 会在一段时间后停止?

php - Windows srv 2012 R2 IPN 问题上的 XAMPP

asp.net - HttpRequest的HttpMethod和RequestType有什么区别?

asp.net - 奇怪的 IIS 管理员授权问题

paypal - Drupal 7/PayPal 快速结账 : How to set delivery options based on address

android - 如何从一个应用程序快速集成多个商家

c# - ValueInjecter 从方法中注入(inject)

c# - 未找到其余 Azure 端点

c# - "??"有什么用