支付宝Iot小程序 my.request 请求超时问题记录
环境
支付宝开放平台,
- 小程序开发配置 ==> 已经配置域名白名单
阿里云服务器:
-
申请免费ssl证书
-
nginx服务器已配置证书
-
swagger测试没问题
-
https接口测试没问题
目前问题
使用真机调试iot小程序,wifi环境下没有任何问题,切换到4G环境,则访问阿里云服务器一直超时请求
访问其他网站没问题
错误信息如下:
java.util.concurrent.ExecutionException: com.alipay.mobile.common.transport.http.HttpException: Http Transport error[3] : org.apache.http.conn.ConnectTimeoutException: Connect to /39.103.179.69:443 timed out H5_PERF:H5,NETWORKH5,FATAL,https,STALLED_TIME=11msTCP_TIME=10005mshlas=TTARGET_HOST=39.103.179.69:443PRIO=FGURL=https://pay.hnhtlh.com/static/img/logo.57f420e9.pngDT=localdnsSPEED=0.0021RPC_ALL_TIME=42243msTTS=42.22GROUND=FGTMRX=5158TH_PO_ATC=175TTX=6521ERROR=ConnectTimeoutException:Connect to /39.103.179.69:443 timed outNETTUNNEL=HCTMTX=6521TH_PO_AC=1TRX=5158NETTYPE=0_13UUID=nullBWW=0.5833EXT1=FQOS=3_9784.2415TCP_COUNT=3DNS_TIME=10msAPI=h5_http_requestTAG=24179221RESULT=F^ 12
解决方案
-
关闭阿里云服务器防火墙(无效)
systemctl stop firewalld
-
重新映射域名(无效)
-
清空阿里云服务器白名单(无效)
-
ssl 证书链补全(无效)
-
更换ssl证书(无效)
阿里云的免费证书(已测试)
腾讯的免费证书(已测试)
-
更换域名(无效)
-
关闭服务器时间戳记录(无效)
导致请求阿里云ECS上的APP访问超时或访问慢,是由于移动端发送过来的TCP包的时间戳是乱的,所以服务器将这些包给丢弃了
vim /etc/sysctl.config #net.ipv4.tcp_tw_recycle 设置为1,则开启!设置为0为关闭!记录时间戳 net.ipv4.tcp_tw_recycle = 0 sysctl -p
终于发现问题
更换为移动手机卡和联通、电信手机卡,发现可以使用
最终定位问题到物联网卡(流量卡)和运营商网关IP白名单上面,联系了联通物联网平台和阿里云售后工程师,均让联系设备厂商。
基于设备厂商的问题解决效率和时间原因,直接更换了台阿里云服务器(更换弹性IP应该也可解决问题)
问题解决! 浪费了两天时间在排错上。