微信支付网络监控工具指引

更新时间:2024.11.13

简介

为定位解决公网网络偶现不稳定的问题,特提供此监控程序。

监控程序可监控商户服务器与微信支付服务器之间的网络质量,并将监控数据上报到远端,微信支付技术人员可利用监控数据进行问题的分析与定位。

监控程序有两种工作模式:常驻后台运行;一次性检查。

如果您对程序的逻辑与性能存在疑虑,请查看文档最后的附录“程序逻辑简介”。

 

常驻后台运行

1、获取程序包 

获取程序包,并拷贝到服务器/data目录(或其他目录)下。

您可以直接在服务器上执行:

wget --no-check-certificate 

https://wx.gtimg.com/opitil/file/wxpaymonitor-stable.tgz

或者,在页面打开链接,进行下载,然后上传至服务器

 

2、解压程序包

命令:tar -xvzf wxpaymonitor-stable.tgz

 

3、启动程序。

使用service.sh脚本启动程序。

命令:./service.sh start

 

4、输入“微信支付商户号”。 

首次运行程序会要求您输入商户号。如下图所示。

商户号mch_id可以登录商户平台-账户概览页面获取,如果不清楚,请填0。

 

5、确认程序正常运行

./service.sh show

 

一次性检查

./wxpaymonitor -t

对微信支付API服务进行一次性检查。

包含:接口网络耗时;获取LocalDns;测试微信支付服务器延时。

如下图所示。

 

图中各字段解释如下表所示。

字段名

含义

RemoteIp

DNS解析得到的IP

Total duration

接口总耗时

Lookup duration

DNS解析耗时

Connection duration

Connect耗时

Request duration

请求耗时

UserIp

商户服务器IP

LocalDns

LocalDns

WXPAY_IP

微信支付服务器IP

TIME

Ping测耗时

 

其他功能

运行./wxpaymonitor -h,可以查看所有命令参数。如下图。

(1)./wxpaymonitor -i 

展示程序的关键配置信息。

微信支付技术人员可能会要求您提供输出信息的前两行,以便在管理系统中能够查询到您的数据。如图所示。

 

(2)./wxpaymonitor -m

设置mch_id。

您初次启动时,可能设置mch_id为0。当您获取到准确的mch_id后,可通过此命令进行设置。重启服务后生效,重启命令:./service.sh restart。

 

(3)./wxpaymonitor -u

检测更新。

只提示是否存在新版本,不会自动进行更新操作。考虑到您可能对自动更新存在顾虑,所以没有实现自动更新的功能。您可以联系微信支付技术人员,获取最新版本。

 

附录一:程序逻辑简

监控程序使用golang编写,程序常驻后台运行时,会做三件事。

(1)对微信支付API发起一次GET请求

请求API是微信支付查单接口,https://api.mch.weixin.qq.com/pay/orderquery。通过发起一次GET请求,获取:域名解析耗时;connect耗时;域名解析IP列表。

(2)对一个随机域名发起一次域名解析

随机域名是****.mmpay.imtmp.net,这个特定的域名解析时,最终会递归到腾讯的DNS根服务器,根服务器会拿到用户的LocalDns。

(3)Ping测试api.mch.weixin.qq.com解析出的IP

对解析出的IP列表发送ICMP包,三次探测取平均值,得到ping测延时。

监控的结果会进行上报,上报地址为:https://api.mch.weixin.qq.com/opitil/mReport。微信支付内部提供管理平台对数据进行分析、绘图,辅助技术人员定位问题。

程序定时每分钟运行一次。

做一次性检查时,程序逻辑基本类似,只是将检测结果输出到控制台。

附录二:程序目录结构

bin --- 工具脚本目录

data --- 数据文件目录

etc --- 配置文件目录

log --- 日志目录

service.sh --- 启停脚本

wxpaymonitor --- 程序二进制

 

更多技术问题
技术咨询
反馈
咨询
目录
置顶