玩命狂奔的间隙,莫忘记抬头看看前路的星光

0%

微信小程序业务域名验证提示“系统错误,请稍后再试”的解决办法

今天给一台新的服务器配置小程序的业务域名,发现总是无法通过,微信错误提示:一直提示:系统错误,请稍后再试。

明明通过url访问的时候能够正常显示,但是一直提示稍后再试,稍后了好多次,看微信开发者社区有些玄学方法都毫无用处,例如:

  • 配置完成之后,提示系统错误,请稍后再试,就刷新页面重新提交就行了
  • 挺无语的,你把校验文件上传到服务器后,直接保存它就是会提示 “系统错误,请稍后再试”,我是 关闭配置窗口然后多刷新小程序管理后台,多刷新两次,再去配置就可以了

仔细查看文档,错误原因解决的每一个汉字:

1
2
3
4
5
6
7
8
 当出现这个错误提示时,绝大部分原因就是:微信服务器无法访问目标路径,建立不了网络请求,直接报网络错误了。

类似于 fetch fail 这种提示,因此开发者需注意排查以下几点:

使用外部网络(手机热点等)访问链接,确认自身服务器没有拦截请求(配了个内网域名肯定不行,要排除白名单或者防火墙是否有限制)
微信服务器会请求 https 协议路径,确保域名所在服务器能正确响应 https 请求,SSL 证书没有过期。
校验请求需要在短时间内完成,建议耗时小于 1 秒,如果超过,微信服务器可能直接拒绝掉判定失败。
【重要】检查服务器加密套件,为保持兼容性,微信平台的校验服务,要求开发者的校验文件所在服务器,需配置 TLS1.1 加密套件,如只能配置 TLS 1.2 应配置允许降级的加密套件。仅配置 TLS 1.3 或 不支持降级 TLS 1.2 的加密套件是无法通过校验的。

最后确认应该是不支持TSL1.1的原因,登陆服务器配置完成后,仍然无法通过验证,一直提示“系统错误,请稍后再试”。

把nginx的ssl配置都改成下面这样了,仍然不通过,真是有趣:

1
2
3
4
# SSL安全配置
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
# 为了通过微信业务域名的检测,添加tsl v1.1支持和套件支持
ssl_ciphers 'ALL:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA';

最后折腾了好几分钟,鬼使神差点了下验证,居然提示:正在保存。
居然成功了!!!真的是要让子弹飞一会啊!验证完成后赶紧把ssl恢复原状,毕竟网络上的坏人太多了。