微信支付網絡超時應如何定位?

網絡超時的定位

1. 手工定位

1.1 確認商戶服務器出口IP

Linux: ifconfig直接輸出已配置外網IP,如無配置外網則需要使用第二種方式《自動化工具定位》方式獲取

Windows: 可以通過瀏覽器訪問http://ip.qq.com頁面獲取

1.2 通過ping確認延時和丟包情況

Linux: ping api.mch.weixin.qq.com -c 100

Windows: ping api.mch.weixin.qq.com -n 100

1.3 通過trace確認對應的路由節點

Linux: traceroute api.mch.weixin.qq.com

Windows: tracert api.mch.weixin.qq.com

1.4 通過mtr確認對應的路由節點丟包情況

mtr -4 -i 1 api.mch.weixin.qq.com

1.5 curl測試

curl -o /dev/null -4 -v -s -w %{time_namelookup}:%{time_connect}:%{time_starttransfer}:%{time_total}"\n" 'https://api.mch.weixin.qq.com/orderquery'

**這裏的輸出需要確認有一列的時間超過3s纔有參考意義

2. 自動化工具定位

2.1 運行工具命令:

./wxpaymonitor -t

2.2 工具運行輸出結果:

2.3 自動化工具定位說明:

◆ 工具最優接入IP建議

從ping測延時的結果會按照延時最低到最高的排序,其中最優IP需要與RemoteIp能匹配。如果IP的耗時爲9999.999ms則表示該IP不通,同時會有i/o timeout的條目提示。如果商戶測試的RemoteIp與該條目錄一致,則可以確認存在網絡異常。

◆ LocalDns相關的配置建議

從工具測試的結果,UserIp與LocalDns以及RemoteIp需要屬於同運營商,具體IP運營商歸屬商戶側可以通過http://ip.qq.com查詢(騰訊內部可通過http://gslb.oa.com/oss/ip_library查詢IP歸屬)

◆ 接口耗時說明

Duration:表示此次請求接口總耗時

Lookup duration:表示此次請求通過DNS解析域名耗時,如果此耗時比較高,建議確認DNS解析是否正常

Connection duration:表示此次請求連接建立耗時,如果此耗時超過1s,表示網絡層面TCP連接建立時間長

Request duration: 表示此次請求在業務層面處理的耗時,如果此耗時超過3s則需要重點排查業務處理日誌,建議商戶提供具體的單號確認問題。

總體來看請求耗時>連接耗時>DNS解析耗時,且總體耗時不超過3s屬正常範圍。

附一:微信支付回調通知出口IP列表

商戶側對商戶回調通知功能開通白名單網段:
101.226.103.0/25、140.207.54.0/25、103.7.30.0/25、183.3.234.0/25、58.251.80.0/25
說明:

上海電信出口網段101.226.103.0/25
上海聯通出口網段140.207.54.0/25
深圳電信出口網段183.3.234.0/25
深圳聯通出口網段58.251.80.0/25
香港出口網段103.7.30.0/25
注意:深圳的出口爲新增,商戶側需要新開防火牆

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章