Authorize.net : 底层连接已关闭
Posted
技术标签:
【中文标题】Authorize.net : 底层连接已关闭【英文标题】:Authorize.net : The underlying connection was closed 【发布时间】:2017-09-29 14:40:42 【问题描述】:我正在使用 Authorize.Net 进行付款处理的项目。
它工作正常,但今天我在调用任何 API 函数时不断收到错误“底层连接已关闭:发送时发生意外错误。”。这个问题属于authorize.net方面吗?
我正在使用沙盒帐户进行测试模式。
【问题讨论】:
Authorize 从 2018 年 2 月 28 日开始在其生产系统中禁用对 TLS 1.0 的支持。authorize.net/blog/TLSDisablement 【参考方案1】:在代码的最开始添加这一行
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
【讨论】:
您需要使用 .NET 4.5 或更高版本才能使用此功能。【参考方案2】:开发者沙箱no longer accepts connections using TLS 1.0 or 1.1。相反,您需要将系统配置为使用 TLS 1.2。
【讨论】:
【参考方案3】:开发者沙盒不再接受使用 TLS 1.0 或 1.1 的连接。相反,您需要将系统配置为使用 TLS 1.2。
要做到这一点,只需添加这一行 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12
在这一行之前 ApiOperationBase(Of ANetApiRequest, ANetApiResponse).RunEnvironment = AuthorizeNet.Environment.SANDBOX
适用于 Visual Basic .Net 程序员
【讨论】:
【参考方案4】:似乎只是沙盒环境的问题。我们遇到了同样的问题。指向具有测试模式的帐户的生产,并发现那里没有问题。 ApiOperationBase.RunEnvironment = AuthorizeNet.Environment.PRODUCTION;
用 authorize.net 开票,但目前没有回应;会及时通知你
【讨论】:
以上是关于Authorize.net : 底层连接已关闭的主要内容,如果未能解决你的问题,请参考以下文章
调用 SOAP 时,“底层连接已关闭:预期保持活动状态的连接已被服务器关闭”
如何在向某些站点发出 HttpWebRequest 时修复“底层连接已关闭:连接已意外关闭”