由于生产环境是在内网,微信只能通过nginx代理才能访问。序直接在外网上可以正常访问,但通过nginx就提示签名错误,网上找了一圈都没找到解决办法。
尝试过通过代码加代理的方式请求接口,但第三方封装的库改起来比较麻烦也就放弃了。
解决方案
最后研究了下加密方式,发现加密方式是处理连接,除域名外包括请求地址都要参与签名(难受)。到这里应该知道为什么通过nginx提示签名错误了吧?
没错!!!我配置nginx是加了个虚拟目录的,把虚拟目录去掉就行了。
由于生产环境是在内网,微信只能通过nginx代理才能访问。序直接在外网上可以正常访问,但通过nginx就提示签名错误,网上找了一圈都没找到解决办法。
尝试过通过代码加代理的方式请求接口,但第三方封装的库改起来比较麻烦也就放弃了。
最后研究了下加密方式,发现加密方式是处理连接,除域名外包括请求地址都要参与签名(难受)。到这里应该知道为什么通过nginx提示签名错误了吧?
没错!!!我配置nginx是加了个虚拟目录的,把虚拟目录去掉就行了。