Ошибка SagePay RedirectURL - PullRequest
       25

Ошибка SagePay RedirectURL

0 голосов
/ 10 мая 2018

Используя интеграцию с сервером и .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», но не.

Давай, кто-нибудь, пожалуйста - это основа для их операций, кто-то, должно быть, сделал это ...

1 Ответ

0 голосов
/ 11 мая 2018

Blimey - это никогда не платит, чтобы быть умным. Этот сценарий не требует WebRequest или чего-либо еще, просто пишет в простой объект Response. Вздох .. как Линус сказал ....

...