我在網站上使用pay pal訂閱。
當用戶付錢時,我等待IPN消息將其保存在數據庫中。
此外,付款後用戶從paypal重定向到我的網站,我必須檢查IPN郵件是否存儲在數據庫中,並基於此我做了一些其他的東西ind數據庫。
問題是,當用戶重定向到網站有時它發生的IPN消息還沒有,所以我不能做我想做的。
所以我想以某種方式停止應用程序三秒鐘,但我從來沒有做過這樣的事情,我不知道這樣做是否好。
IPN信息延遲幾秒鐘是否正常?
如果我說Thread.Sleep(3000)
是否有可能以這種方式在Web應用程序中顯示動畫加載器?
Pay Pal IPN延遲 - 正在睡覺的網站解決方案
0
A
回答
1
您可以在paypal ipn overview的一看就會發現,你將需要一個不同的方法。
「IPN消息服務並不假設您的聽衆會及時收到所有消息,因爲互聯網不是100%可靠的,所以消息可能會丟失或延遲,爲了處理傳輸和接收的可能性延遲或失敗,IPN消息服務實現一個重試機制,以不同的時間間隔重新發送消息,直到您確認消息已成功接收爲止。消息可能會在原始消息後四天內重新發送。
「IPN消息服務不應被視爲實時服務,您的結帳流程不應等待IPN消息才能完成。如果您的網站等待IPN消息,結帳處理可能會延遲由於系統負載並且由於重試的可能性而變得更加複雜。「
一種解決方案是在付款到達之前不啓用內容,但正如您所看到的,最多可能需要四天。
其他解決方案是,當您通過paypal API創建訂閱時,您會收到一個包含訂閱信息的響應。 (例如,如果您正在使用定期付款,則在create_recurring付款資料中的回覆)。在此之後,您可以承諾他會支付並啓用內容。 (當然,如果付款時間太長,用戶可能會在退款前退訂)
0
如果我說了Thread.Sleep(3000)是有可能在Web應用程序以這種方式顯示動畫裝載機 ?
不,您將完全卡住您的應用程序而無需任何實現。所以解決方案可以使用一個計時器。
所以嘗試:
Timer timer = new Timer();
timer.Interval = 3000;
timer.Tick += new EventHandler(timer_Tick);
//diplay the animated loader and start the timer
timer.Enabled = true;
void timer_Tick(object sender, EventArgs e)
{
//Elapsed 3000 milliseconds so you have to stop the timer
timer.Enabled = false;
//Now redirect the user
}
相關問題
- 1. PAY PAL IPN停止工作
- 2. 延遲程序就像睡覺()
- 3. jquery:如何睡覺或延遲?
- 4. 指導睡覺理髮監測解決方案
- 5. jQuery的延遲或JavaScript的setTimeout簡單的解決方案
- 6. Apple Pay。延遲付款?
- 7. 移動網站分析解決方案
- 8. 延遲/懶解決
- 9. 尋求XSP提交延遲的解決方案
- 10. JQuery延遲解決其他延遲
- 11. 解決方案Dexie.js調試代碼接管延遲承諾
- 12. 如何解決網站速度測試延遲
- 13. 將「已發佈」網站導入視覺工作室作爲解決方案
- 14. 如何解決在我的網站下顯示的解決方案文件?
- 15. 網站創建者的網絡分析解決方案
- 16. 延遲/睡眠呼叫方法
- 17. 在我的解決方案中,我是否永久禁用延遲加載?
- 18. 在ASP.NET MVC網站上集成PayPal的簡單解決方案
- 19. 如何解決在JavaScript延遲的keydown
- 20. Windows Azure網站延遲
- 21. Azure網站 - 高延遲
- 22. Salesforce網站更改延遲
- 23. 網站應用程序的第三方存儲解決方案?
- 24. 跟蹤第三方網站上像素的解決方案?
- 25. 網站付款Pro託管解決方案錯誤
- 26. 延遲腳本,直到它執行ping到IP不睡覺
- 27. 在我的網站上加載延遲
- 28. 方法的網絡解決方案
- 29. JSON解析正確的解決方案
- 30. 用javascript屏幕拖延網站延遲
正確的解決方案是不使用IPN,而是使用PayPal NVP API(或SOAP,如果您已陷入施虐受虐狂)。我們爲C#/ ASP.NET開源了一個非常簡單的PayPal NVP庫:https://github.com/NeoSmart/paypalnvp-dotnet –
我聽說過類似於PDT的東西 – Toskan