2014-02-19 72 views
0

我有一個相當簡單的頁面來處理付款給PayPal,然後當從Paypal返回時應該顯示用戶「訂單」以允許他們上傳項目並編輯他們已付費的訂單。Page_Load從Paypal退回問題

當我點擊從PayPal返回的鏈接時,我的一些代碼似乎沒有運行。我是否必須處理它不同,因爲PayPal發佈到我的頁面?

我在頁面的Page_Load部分中有我的方法,所以當頁面加載時,我檢查Membership.GetUser()。ProviderUserKey()以獲取登錄用戶的帳戶ID,然後將其與單獨的函數一起使用獲取訂單ID。

當頁面嘗試運行此代碼時,返回的訂單ID始終爲空白GUID。我已將帳戶ID輸出到屏幕,並且它始終正確填充,所以我不明白爲什麼代碼返回空白GUID。

accountID = Membership.GetUser().ProviderUserKey() 
Dim order As New orders 
Dim orderID As String = order.SelectExistingPurchaseSeller(accountID, "2014/02/23") 

如果我離開頁面的時間可能是3/4秒,然後按F5鍵,那麼它會顯示它應該顯示的內容。

我在這裏錯過了一些簡單的東西嗎?我不明白爲什麼它第一次不起作用,但是如果我等待並刷新它,它會運行我的DB功能,並返回正確的訂單ID。

我已經把這個頁面的頂部關閉此頁的緩存:

<%@ OutputCache Location="None" VaryByParam="None" %> 

感謝

+0

就像一個進一步的評論我剛剛添加了一個5秒的等待使用System.Threading.Thread.Sleep(5000),似乎已經排序,但它應該立即工作,只要頁面加載,爲什麼我需要添加延遲才能正常工作? –

回答

0

我已經回答了這個自己。

儘管Paypal表示他們的IPN是「即時付款通知」,但實際上可能需要10-20秒,因爲我一旦通過Paypal付款進行支付,有時付款並未完成。

現在我要添加一些延遲檢查頁面的形式,以確定在繼續之前訂單是否完整。