2014-02-19 3 views
0

У меня есть довольно простая страница, которая обрабатывает платеж в Paypal, а затем, когда возвращается из Paypal, следует отобразить «заказ» пользователей, чтобы они могли загружать элементы и редактировать их заказы, за которые они заплатили.Page_Load вопросы по возвращении из Paypal

Когда я нажимаю на ссылку, чтобы вернуться из Paypal, некоторые из моих кодов, похоже, не работают. Должен ли я обрабатывать его по-разному, потому что Paypal отправляет на мою страницу?

У меня есть мои методы в части страницы Page_Load, поэтому, когда загружается страница, я проверяю Membership.GetUser(). ProviderUserKey(), чтобы получить идентификатор учетной записи зарегистрированного пользователя, а затем использовать ее с отдельной функцией для получения идентификатора заказа.

Когда страница пытается запустить этот код, возвращаемый идентификатор заказа всегда является пустым GUID. Я выводил идентификатор учетной записи на экран, и он всегда правильно заполнен, поэтому я не понимаю, почему код возвращает пустой GUID.

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

Если я покину страницу, возможно, 3/4 секунды и нажмите F5, она отобразится как следует.

Я пропустил что-то простое здесь? Я не понимаю, почему он не работает в первый раз, но затем, если я жду и обновляю, он запускает мою функцию БД так, как должен, и возвращает правильный Идентификатор заказа.

Я выключил Кэширование этой страницы, помещая это в верхней части страницы:

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

Благодаря

+0

Как еще один комментарий, я только что добавил 5 секунд ожидания, используя System.Threading.Thread.Sleep (5000) и, похоже, отсортировал его, но он должен работать сразу же после загрузки страницы, почему Мне нужно добавить задержку для его работы? –

ответ

0

Я ответил на это сам.

Несмотря на то, что Paypal заявляет, что их IPN является «Мгновенным уведомлением о платеже», на самом деле это может занять до 10-20 секунд, потому что я проверяю, как только платеж Paypal будет пропущен, иногда оплата не завершена.

Теперь я собираюсь добавить страницу проверки задержки, чтобы проверить, завершен ли заказ, прежде чем двигаться дальше.

Смежные вопросы