微信公众号登陆微商城

Oauth2.0

微信网页授权  首先要获取appID和appsecret

 

后台设置授权域名 支持IP

 

后台设置域名或者IP时不要加http://或者https://   直接填写域名即可 如果使用ip地址调试 直接输入IP即可(211.32.122.77) 如上图

 

业务流程

1.在开发者开发的系统上引导用户点击微信登录,点击微信登录时会访问类似如下url

https://open.weixin.qq.com/connect/oauth2/authorize?appid=申请到的APPID&redirect_uri=填写用户同意授权后跳转的地址,域名或者ip前需要加http://或者https://&response_type=code&scope=snsapi_userinfo(如果填写snsapi_base则通过access_token拉去用户信息时会报错,无法获取到用户的头像、昵称等信息)&state=STATE#wechat_redirect

测试时不能使用微信PC版,如果遇到回调时提示 ****点击继续访问  此时不要点击 继续访问 按钮 可以点击 底部 访问原网页

解释:回调后code只能使用一次,如果使用某code请求了微信的接口,再次请求时会提示code被使用过,无法获取到access_token

 

2.用户在微信内访问上述url地址时会提醒用户授权(弹出授权确认框,只有scope为snsapi_userinfo时才会弹出授权确认框),用户确认授权后悔跳转到步骤1中的redirect_uri参数对应的url,并且会在地址中传入code参数,此时会请求开发者设置的url 并执行对应的程序

 

3.在redirect_uri对应的url中需要获取code,加上appsecret 请求微信的接口 请求地址如下

https://api.weixin.qq.com/sns/oauth2/access_token?appid=申请到的APPID&secret=申请到的appsecret&code=get传递的code参数&grant_type=authorization_code

请求时可以使用file_get_contents 但是不推荐,推荐使用curl的方式抓取,并且设置超时时间 防止服务器有过度的资源消耗

如果数据正常会获取到access_token和openid(注:此请求只能请求一次,因为code只能使用一次)

 

4.通过access_token抓取用户信息

请求https://api.weixin.qq.com/sns/userinfo?access_token=步骤3中的access_token&openid=步骤3中的openid&lang=zh_CN

openid是微信用户的唯一标识,和appid绑定

 

 

猜你喜欢

转载自blog.csdn.net/weixin_42579642/article/details/82467981
今日推荐