[因爲遠程方關閉傳輸流,身份驗證失敗]一次處理支付接口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的忽然好像變少了呢?

相關文章
相關標籤/搜索