微信网页应用开发扫码登录和小程序通过unionid打通账号(更新中)

微信网页应用开发扫码登录和小程序通过unionid打通账号(更新中)

Ezra
2021-06-07 / 0 评论 / 35 阅读 / 正在检测是否收录...

首先微信网页应用开发需要去微信开放平台去注册,而小程序则需要去微信公众平台注册,这时候要注意虽然我们想做账号打通将两个东西用一个微信号就可以登录,但是注册微信开放平台和注册微信公众平台的注册邮箱却不能一样,我们只需要保持这两个东西的主体一样就可以了.
微信截图_20210607170314.png
如图,这就是微信公平台里的样子,此时我们将要打通账号的微信小程序添加进来
微信截图_20210607170342.png

微信截图_20210608095119.png
第一步请求code https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html

参数是否必须说明
appid应用唯一标识
redirect_uri请使用urlEncode对链接进行处理
response_type应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login
scope应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login
state用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验

因为我是网页移动开发所以以我为例, appid 就填你网站应用的appid, redirect_uri 这里有点坑很容易报redirect_uri参数错误,除了你的域名不是授权回调域以外还有可能是因为redirect_uri需要做urlEncode处理,百度一下urlEncode将你的地址处理了就好了,此外还有很多人说不加http或https,这个看情况我做的时候就是没有带http所以报错了建议都试试。后边三个参数一般不用管默认的就行,不过还是要看具体的开发情况
微信截图_20210608100415.png

第二步通过code获取到access_token
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

参数是否必须说明
appid应用唯一标识
secret应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
code第一步获取的code
grant_type填authorization_code

微信截图_20210608102859.png
这样我们就可以获取到unionid了,unionid在之后的打通账号中非常重要
然后可以根据openid和access_token进一步获取用户信息
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

{
"openid":"OPENID",
"nickname":"NICKNAME",
"sex":1,
"province":"PROVINCE",
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "https://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
"privilege":[
"PRIVILEGE1",
"PRIVILEGE2"
],
"unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"

}

小程序部分
参考文档
微信图片_20210619105906.jpg
首先小程序调起登录接口生成code返回给后台,然后返回给后台,后台再向微信请求到openid,unionid需要小程序绑定到微信开放平台,否则是获取不到的

0

评论 (0)

取消