微信公众号开发(四)

原创
2019/04/23 20:53
阅读数 163

微信公众号开发时常需要一个用户授权绑定的过程。关于微信公众号的用户绑定,一般有如下两种实现方式:

  • (1)通过发送短信验证码的方式;
  • (2)使用用户登录时,向后端传递openid的方式。

使用短信验证码进行校验来进行绑定的方式反而相对来讲的话比较简单。下面我们来看下使用链接跳转进行绑定的方式。

  1. 首先,我们需要配置好微信公众号的开发者配置信息;
  2. 然后,编写一个Controller用来接收微信服务器发起的授权地址校验。这时候需要在微信公众号设置里面进行网页授权域名设置,想要使得此处设置的地址在授权跳转(回调)的时候起作用,需要下载一个微信的txt验证文件。很多人在初次面对这个文件的时候会显得一脸懵逼~不要慌,咱们继续。微信公众号官方的说法是将该文件放置在域名服务器的根路径下……其实这句话理解的方式有三种:
  • (1)对于纯web应用来说,直接将该文件放置在nginx的根目录,进行相应的配置,使得静态文件可以访问即可;
  • (2)对于tomcat作为容器的系统,既可以把文件作为一个静态资源对外暴露,也可以手动编写一个根路径的请求方法,URL名称为校验文件文件名(删掉.txt的部分),然后直接返回微信校验文件里面的字串即可。因为现在很多情况下,我们都是基于springboot开发,所以强烈推荐第二种方式。
  • (3) 在编写完成Controller之后,我们需要在微信公众号设置里面配置刚才的地址,这个地方要注意的是——微信服务器发起校验文件验证时的请求地址为网页授权域名/校验文件文件名(不包含.txt部分)

需要注意的是在发起微信配置的网页授权域名之前,先要把编写的微信服务端程序部署在可以被外部访问到的网络服务器上。微信可以选择的端口有80和443端口。

  • (4)部署好程序之后,进行授权域名的配置,然后点击保存,这个时候微信服务器会向应用服务器发起一次请求来进行校验,校验通过,则访问授权跳转链接的时候会成功跳转到回调地址。最常见的错误为【10003】 redirect_uri域名与后台配置不一致,这个时候就要检查你所配置的授权域名和授权URL的redirect_uri是否一致。
【授权地址参考链接】(请在微信客户端中打开此链接体验)
1. scope为snsapi_base(基础静默授权)https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect
2. scope为snsapi_userinfo(获取用户基本信息)
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

然后正常的话打开第二种链接,会跳出需用户确认的授权页面,点击同意之后跳转至填写的redirect_uri地址。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部