[因为远程方关闭传输流,身份验证失败]一次处理支付接口bug记录

因公司系统升级,出现忽然有些银行卡不能支付的状况,最开始排查发现是第三方平台接口返回有问题:php

返回以下:java

       

从11月7日下午开始一直联系第三方,第三方开始排查,一直说是数据格式有问题。json

修改格式之后问题一样出现,又从新调试跟踪下代码,发现以下问题:测试

看错误描述应该是判断是访问发生问题,又想到了为何升级之前是好好得,升级之后才出现这个问题?加密

从新找来官方的demo文档,从新下单测试,发现又是正常的 ?why?把全部的数据复制到系统来,发现仍是不能访问。。。。spa

 

 因而把系统中的请求数据直接写死:.net

 

 直接访问下单页面 ,OK终于能访问了,到这觉得问题已经解决,估计是数据格式问题,而后就又从下单界面测试了一次,发现又不行了 ,调试

 我擦,为何直接访问接口页面可以访问,经过下单界面调用接口访问而不行了呢?仍然报错误:因为远程方关闭传输流,身份验证失败。blog

 


打开百度,出现不少相似的状况,找到各类处理方法,可是都不能解决,太奇怪了啊。因而想起了用Fiddler试试看,果真在这里出现了问题。
接口

当访问失败时请求数据为:

 

当访问成功时,请求数据为:

 

 两次采用的ssl加密版本方式竟然不同,难道是随机的吗?太奇葩了吧,修改访问时,强制采用Tsl/1.0版本的加密方式:

 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

问题终于获得解决,而后如今已是11月8日的下午了。

 

话说:对接的两个第三方平台,支付都出问题,

一个是java和.net ,对json反序列化不一样,致使验证失败,他们主要使用java。

一个是没有设置正确的ssl访问加密方式,因为第三方平台没有.NET开发了,他们本身也测试不到。

还有一个支付平台,只有php和java的接口,没有.NET的接口,暂时还未对接。

怎么感受使用.NET的忽然好像变少了呢?

相关文章
相关标签/搜索