Используя интеграцию с сервером и .net, я отправляю исходный запрос в SagePay и получаю штраф NextURL, и поэтому перехожу на страницы оплаты ... пошагово проходите через них ОК, но затем я получаю ошибку:
Ошибка сервера 5006: невозможно перенаправить на веб-сайт поставщика. Поставщик не смог предоставить RedirectionURL.
HTTP-ошибка 500: запрос не выполнен из-за непредвиденного состояния, с которым столкнулся сервер.
Но я отправляю RedirectionURL (хотя вызов docs - RedirectURL, что несколько сбивает с толку - в любом случае, я пробовал использовать оба. Это то, что я отправляю обратно из моего NotificatioURL - что неправильно?
Dim sb As New StringBuilder
sb.Append("Status=OK")
sb.Append("&StatusDetail=Fine")
sb.Append("&RedirectURL=https://mydomain.co.uk/sagepay.aspx")
Dim urlTEST As String = "https://test.sagepay.com/gateway/service/vspserver-register.vsp"
Dim urlLIVE As String = "https://live.sagepay.com/gateway/service/vspserver-register.vsp"
Try
Dim data As Byte() = Encoding.UTF8.GetBytes(sb.ToString)
Dim request As WebRequest = WebRequest.Create(urlTEST)
request.Method = "POST"
request.ContentType = "application/x-www-form-urlencoded"
request.ContentLength = data.Length
ServicePointManager.ServerCertificateValidationCallback = AddressOf ValidateRemoteSSLCertificate
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
Dim stream = request.GetRequestStream()
stream.Write(data, 0, data.Length)
stream.Close()
Dim response As WebResponse = request.GetResponse()
response.Close()
Catch ex As Exception
'log error
End Try
Обновление: я понимаю, что этот POST (в отличие от исходного с информацией о корзине) требует, чтобы данные отправлялись парами ключ-значение в виде простого текста, разделенными CrLf, поэтому я изменил это на
Dim sb As New StringBuilder
sb.AppendLine("Status=OK")
sb.AppendLine("StatusDetail=Fine")
sb.Append("RedirectURL=https://mydomain.co.uk/sagepay.aspx")
но он все равно не работает с теми же ошибками. Я также попытался использовать вместо класса WebRequst более простой:
Dim client As WebClient = New WebClient()
Dim reply As String = client.UploadString(urlTEST, sb.ToString)
Но все равно нет радости. Также попытался изменить request.ContentType на «text / plain», но не.
Давай, кто-нибудь, пожалуйста - это основа для их операций, кто-то, должно быть, сделал это ...