Oh dear paypal,Почему paypal Redirect выполняется после Page_Load?
Хотелось бы знать, почему страница «return redirect Url» не будет загружаться, если я позвоню Response.AppendHeader
. Вы видите, что я пытаюсь сделать загрузку файла автоматически после того, как пользователь оплаченный на странице PayPal, так что я положил следующий код на мой Page_Load
If Not IsNothing(Request.QueryString("paymentId")) Then
Dim paypalUtils As New PayPalUtils
paypalUtils.ProcessPayPalResponse(Request.QueryString("paymentId").ToString(), Request.QueryString("PayerID").ToString())
TransmitFile()
End If
Моя TransmitFile
реализация очень проста
Protected Sub TransmitFile()
Response.ContentType = "application/sla"
Response.AppendHeader("Content-Disposition", "attachment; filename=" & Path.GetFileNameWithoutExtension(hidFileName.Value) & ".stl")
Response.TransmitFile(Sistema.SavePath & Path.GetFileNameWithoutExtension(hidFileName.Value) & ".stl")
Response.End()
End Sub
Проблема в том, что каким-то образом вызов Response.AppendHeader
или любая из следующих строк мешает правильной переадресации PayPal на правильный URL-адрес, указанный мной в API.
Если я прокомментирую TransmitFile
на странице_Load, все будет работать должным образом (Paypal перенаправляет меня на мой сайт). Если нет, то я успешно сделать загрузку файлов автоматически, но я застрял на этой странице
Что такое, что я делаю неправильно?
Если я правильно понял ваш код, вы передаете файл в «Response» из перенаправления PayPal? Или ваш 'paypalUtils.ProcessPayPalResponse (...)' вызывает завершение полученного ответа и перенаправление на другую страницу вашего приложения до вызова 'TransmitFile()'? –
Да. Я передаю файл в 'Response' из переадресации Paypal .. Единственное, что' paypalUtils.ProcessPayPalResponse (...) 'does выполняет платеж –
В этом случае, когда вы устанавливаете' Response.TransmitFile() ', ваше приложение пытается отправить файл в ответ на PayPal, когда ваше приложение обрабатывает входящий запрос.Причина, по которой он застрял на «Загрузка», скорее всего, потому что на сайте PayPal, который настроен для ответа на этот тип ответа, нет ничего. Вам нужна «Response.Redirect()» на внутреннюю страницу, которая отвечает файлом, чтобы покупатель получил файл. –