根据帮助文档,做了个借助企业微信的JS-SDK 实现网页扫码的功能
之前一直是直接访问ft的http服务,都是正常扫码的,
现在配了一个nginx反向代理,扫码功能就不能使用了,就是点击扫码按键,调不出扫码的界面
其他功能都还是正常的,唯独这个扫码不行了,
请教,这是什么问题,要怎么处理
因为经过代理转换后,微信访问的地址和服务端代码里获取的地址不一致导致的
在nginx里给监听的端口设一下下面红色的内容。各项设置具体什么意思我也不记得了,自行百度吧
server {
listen 443 ssl;
server_name wechat.foxtable.com;
#.......其它略........
#设置静态资源目录
location ~ ^/(weui|images|lib)/.*$ {
root C:/web;
}
location / {
root C:/web;
#保留用户真实信息
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header request_url $scheme://$host$request_uri;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 10m;
}
}
然后服务端获取url的时候使用下面红色代码:
Dim timestamp As String = CInt((Date.Now - _firstTime).TotalSeconds())
Dim noncestr As String = Rand.NextString(12)
Dim url As String = e.Request.Url.AbsoluteUri
Dim signature As String = Functions.Execute("GetJsSignature", noncestr, timestamp, url)
Dim cfg As String = "wx.config({appId:'{0}',timestamp:{1},nonceStr:'{2}',signature:'{3}',jsApiList:['scanQRCode']});"