访问微信开发前的说明
首先,确定开发前需要准备的关键事项。
请简单说明一下:在线服务器/本地配置内部网为1台应用服务器(如Nginx/Tomcat)、1台微信公众号(认证)/1台微信测试号、1台计算机和1台程序员,为什么要以公众号授权登录。
- 一般公司在接入微信相关接口的时候都会使用微信公众号的。
- 公司未来的运营,产品的推销,宣传推文等等都会用的到。
- 微信小程序都是可以以微信公众号作为认证主体。这样不需要额外付费。
- 网站应用扫码登录也是要额外收费 300 的。
最后,建议申请公众号的时候让你们公司技术经理或者其他相关负责人来走整个流程。
因为,之前就遇到一个同事自己申请注册结果不小心把公众号的名称其中的一个字打错了,然后再重新认证的时候自己腰包套了 300 块钱,因为公众号重新认证是需求再次付费的。
内网击穿工具 NATAPP 的配置使用(让微信能访问你内网的回调接口)
首先,内网击穿的工具有很多,比如某生壳、某米球等等,这里不打广告,只是以我个人常用的感觉比较好用免费的一种内网击穿工具介绍和教学。
我们点击进入 NATAPP 官网 完成注册之后,进入我的隧道。
紧接着,我们进入配置模块中,这里其实很直观的显示各配置项,其实就是类似我们 Nginx 代理功能。
然后,一般我们开发中都对我们的 Web 服务用 Nginx 做过端口代理的,所以这里我们配置 80 端口就行了。最后我们下载一下 NATAPP 的客户端直接启动,按照新手图文教程里面正常启动 NATAPP。
最后,当我们启动的时候看到这个界面,那么恭喜你,你的内网击穿已经配置成功了,如果你的 80 端口有服务挂载着,那么你就可以在外网中输入红框中的地址正常访问你本地的项目或者接口了。
微信公众号测试号的正确配置
首先我们要找到微信公众号测试号地址,如果有公众号的按照下图就可以进入,扫码登录就可以了。
其次,如果没有公众号的,我们直接点击进入微信公众号测试号地址,拿到我们后面开发要用到的 AppId 和 AppSecrect。
紧接着,我们需要配置测试号的接口配置信息(与下文正式公众号服务器 Url 配置同理),记住这里的 URL 就是你后端对应的 GET 验签的请求接口(此接口会在后续代码开发篇细说),而且是必须要外网可以访问到的(这也就是为什么上面首先要配置内网击穿 )。
最后,我们把网页授权获取用户基本信息的域名(此域名就可以填写上文配置的内网击穿的域名地址)即可。到此为止我们的测试公众号环境就配置好了,可以安心用测试号的 AppId 和 AppSecrect 去进入代码编写环节了。
微信公众号(微信认证)的正确配置
首先,我们的微信公众号必须是完成了微信认证的,我们先拿到基本的 AppId 和 AppSecrect,而 AppSecret 在显示的时候我们就要复制保存好,不然就看不到了只能再让管理员扫码重置 AppSecret 。
紧接着,我们看下面这张截图就是微信公众号开发者设置模块,与上文测试公众号类似,然后我们还需要配置下方的服务器配置,配置这块的作用也就是让我们对微信的访问正常验签响应,记得这里的 URL 就是你后端对应的 GET 验签的请求接口,而且是必须要外网可以访问到的(这也就是为什么上面首先要配置内网击穿),不然服务器配置这块就一直通不过的。令牌(Token)的作用就是跟你自己后端配置的 Token 保持一直就可以了,这里后续代码篇会具体说明如何去使用此 Token 的。
然后我们配置一下 IP 白名单这里,很多小伙伴这块配置的时候 添加了自己内网的什么 192.168.1.xxx 之类的,这个是不正确的,那只是交换机路由器给我们局域网电脑自动分配的 P,我们在在线 P 查询的网站查到正确的 P 添加即可。
最后,就是配置我们正式公众号的网页授权获取用户基本信息的域名地址(此域名就可以填写上文配置的内网击穿的域名地址)了,与上面测试账号不同的是,测试号的域名不会进行安全效验,而正式的域名微信服务器会做安全验证。
最后,我们在填写域名的时候看到下面红色的提示信息,不要慌,我们只需要把上面的 txt 文件下载下来,放到我们本地或者线上的 Nginx/Tomcat 代理 80 端口项目的文件夹下就可以了,确保我们在地址栏输入:
http: 内网击穿的地址
然后可以正常下载这个文件那就成功了。至此我们的正式公众号的环境配置就完成了。
解决 redirectUrl 与后台不一致,scope 权限 code 失效,业务域名等问题
redirectUrl 与后台不一致原因剖析:
- 一般可能是后台代码中配置的 redirectUrl 中的域名,与正式/测试公众号网页授权获取用户基本信息配置的域名不一致。
- 有可能开发的时候,内网击穿的域名发生了变化导致与配置的 redirectUrl 不一致。
- 可能是测试公众号,授权地址填写的域名加了 http 前戳导致的。
- code 失效可能是因为二次使用,或者过期了。
scope 权限 code 失效,业务域名问题原因剖析:
- scope 权限问题,可能是正式微信公众号没有认证,
- 我们后续扫码登录 scope 权限设置为 snsapi_userinfo 即可。
- 业务域名其实上文也提到了,就是在我们内网击穿代理的本地或者是线上服务器的 Nginx/Tomcat 80 端口文件夹下放入微信让下载的 txt 文件,并且我们能够 域名/文件全称 能够正常 GET 请求能下载到该文件就可以了。
补充说明
其实整个的一个环境配置就是这样一个过程,为了照顾部分小白,所以文章基本没有跳过任何必要环节,这里很多读者或许有疑问授权接口到底是怎么样的,那个接口该如何写如何接入如何验签和响应微信请求,Token 如何去在代码里配置和使用,回调接口在哪里配置,回调接口的作用是什么,怎么保证授权获取 code 的一次有效性和过期时间,系统怎么获取微信用户扫码成功授权的状态,如果微信用户没有绑定平台用户过怎么在注册和登陆的时候绑定等等问题。后续实际代码篇会详细说明,另外会从鼓励的读者中免费答疑。
1.《微信公众号怎么扫码登陆不了怎么办看这里!Spring Boot 超详细整合实现微信扫码登录(环境配置篇)》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《微信公众号怎么扫码登陆不了怎么办看这里!Spring Boot 超详细整合实现微信扫码登录(环境配置篇)》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3261475.html