Sage Pay 过帐异常
Sage Pay posting exception
当我从我的 vb.net 应用程序 post 进行 sage 支付时,我遇到了一个奇怪的问题
objHttpRequest = HttpWebRequest.Create(objUri)
objHttpRequest.KeepAlive = False
objHttpRequest.Method = "POST"
objHttpRequest.ProtocolVersion = HttpVersion.Version10
objHttpRequest.ContentType = "application/x-www-form-urlencoded"
arrRequest = objUTFEncode.GetBytes(postValues)
objHttpRequest.ContentLength = arrRequest.Length
objStreamReq = objHttpRequest.GetRequestStream()
objStreamReq.Write(arrRequest, 0, arrRequest.Length)
objStreamReq.Close()
objStreamReq = objHttpRequest.GetRequestStream()
在这一行抛出异常 "The underlying connection was closed: An unexpected error occurred on a send"。
当我调试时,连接对象什么都没有。但是不知道以前有没有
之前post编辑成功,我什么都没改。
我复制了输入并post使用 POSTMAN 发送到 sage pay,它成功了。
谁能帮我找到这个。
您使用的是测试服务器吗? TLS 1.0 和 1.1 上个月被禁用,因此除 TLS 1.2 之外的任何连接都将以这种方式失败。在 2018 年 3 月 31 日之前,实时服务器仍然支持 1.0/1.1,因此您需要确保客户端支持 TLS 1.2。
如果 OS 安装了 .NET 4.5+ 并且您手动设置了协议,则可以在 .NET 4.0 上使用 TLS 1.2:
https://blogs.perficient.com/microsoft/2016/04/tsl-1-2-and-net-support/
当我从我的 vb.net 应用程序 post 进行 sage 支付时,我遇到了一个奇怪的问题
objHttpRequest = HttpWebRequest.Create(objUri)
objHttpRequest.KeepAlive = False
objHttpRequest.Method = "POST"
objHttpRequest.ProtocolVersion = HttpVersion.Version10
objHttpRequest.ContentType = "application/x-www-form-urlencoded"
arrRequest = objUTFEncode.GetBytes(postValues)
objHttpRequest.ContentLength = arrRequest.Length
objStreamReq = objHttpRequest.GetRequestStream()
objStreamReq.Write(arrRequest, 0, arrRequest.Length)
objStreamReq.Close()
objStreamReq = objHttpRequest.GetRequestStream()
在这一行抛出异常 "The underlying connection was closed: An unexpected error occurred on a send"。
当我调试时,连接对象什么都没有。但是不知道以前有没有
之前post编辑成功,我什么都没改。
我复制了输入并post使用 POSTMAN 发送到 sage pay,它成功了。
谁能帮我找到这个。
您使用的是测试服务器吗? TLS 1.0 和 1.1 上个月被禁用,因此除 TLS 1.2 之外的任何连接都将以这种方式失败。在 2018 年 3 月 31 日之前,实时服务器仍然支持 1.0/1.1,因此您需要确保客户端支持 TLS 1.2。
如果 OS 安装了 .NET 4.5+ 并且您手动设置了协议,则可以在 .NET 4.0 上使用 TLS 1.2: https://blogs.perficient.com/microsoft/2016/04/tsl-1-2-and-net-support/