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/