主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
在这个移动时代,微信微信官方账号逐渐成为人们获取信息的渠道和商家开发潜在客户的手段。所以很多程序员都转向了微信开发。那么今天就给大家介绍一下微信微信官方账号开发中如何实现网页授权。
在此之前,让我给你一个我的自定义请求接口的函数,它用在下面的示例代码中。
该函数用于向接口发出请求,传递参数并返回接口返回的数据。
(这一篇就不解释代码了。想知道的可以看看php curl函数的总结。)
//用户自定义请求接口函数。当$data为空时,发起get请求,当$data有值时,post请求函数http _ url ($ url,$ data = null){ $ ch = curl _ init();curl_setopt($ch,CURLOPT_URL,$ URL);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);如果(!empty($data)){ curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$ data);} $ RES = curl _ exec($ ch);if(curl _ errno($ ch)){ echo ;错误: 。curl _ error($ ch);退出;} curl _ close($ ch);返回$ res}(本文使用的界面由腾讯官方提供。可以参考微信公众平台的开发者文档)
首先,我们需要配置我们的微信官方账号。
1.微信微信官方账号请求用户网页授权前,开发者需要先在公众平台官网“开发-接口权限- web服务- web账号- web授权获取用户基本信息”的配置选项中修改授权回调域名。请注意,这里填写的是域名(一个字符串),不是网址,所以请不要添加http://之类的协议头;
2.授权回拨域名的配置规范是全域名。例如,要求网页授权的域名是www.qq.com。配置后,该域名、http://www.qq.com/music.html、http://www.qq.com/login.html,以下的页面可以进行OAuth2.0认证,但是,http://pay.qq.com、http://music.qq.com、http://qq.com不能进行OAuth2.0认证。
3.如果将微信官方账号的登录授权给第三方开发者进行管理,则无需进行任何设置,第三方可以替换微信官方账号实现网页授权。
第二,用户同意授权并获得代码。
地址:https://open.weixin.qq.com/connect/oauth2/authorize?。重定向URI ;代码 范围=范围 State = STATE #微信_重定向(注意接口参数)
Get _ code ()//Get code{//构造请求地址$ code _ URL = " https://open.weixin.qq.com/connect/oauth2/authorize? Appid =微信微信官方账号appid Redirect_uri=请求完成后的回调地址 response _ type = code scope = snsapi _ userinfo state = STATE #微信_重定向 ;//跳转到请求地址。回调地址应该是为本省设置的,所以不需要用file_get_content()来请求接口。标题( 位置: 。$ code _ URL);退出;} 3.获取的代码中缺少access_token和openid。
接口:https://api.weixin.qq.com/sns/oauth2/access_token? APPID = APPID ;秘密=秘密 代码=代码 授权类型=授权代码
/* * *通过获取的代码*获取access_token和openid * $code。注意获取的code *接口的参数要改成自己的,比如appid和secret */function get access _ token($ code){ $ get _ access _ token _ URL = " https://api.weixin.qq.com/sns/oauth2/access_token? appid = appid ;秘密=秘密 code = $ code grant _ type = authorization _ code ;$ RES = http _ URL($ get _ access _ token _ URL);返回json_decode($res,true);}四。判断access_token是否有效
接口:https://api.weixin.qq.com/sns/auth?接入令牌=接入令牌 openid=OPENID
/* * *检查访问令牌是否有效* */Function检查访问令牌($ access _ token,$ OpenID){ $ Check _ URL = " https://api.weixin.qq.com/sns/auth?访问令牌= $ access _ token openid = $ openid ;$ RES = http _ URL($ check _ URL);$result = json_decode($res,true);if(isset($result
/* * *如果获取的access_token无效,通过refresh_token刷新access_token *接口的参数,用自己的*/function get refresh _ token($ refresh _ token){ $ get _ refresh _ token _ URL = " https://api.weixin.qq.com/sns/oauth2/refresh_token? appid = appid ;授权类型=刷新令牌 刷新令牌= $刷新令牌 ;$ RES = http _ URL($ get _ refresh _ token _ URL);返回json_decode($res,true);}六。获取用户信息
接口:https://api.weixin.qq.com/sns/userinfo?接入令牌=接入令牌 openid = OPENID 郎=zh_CN
/* * *获取基本用户信息* */function Get _ user _ info($ access _ token,$ OpenID){ $ Get _ user _ info = " https://api.weixin.qq.com/sns/userinfo? access _ token = $ access _ token ;openid = $ openid lang = zh _ CN ;$ RES = http _ URL($ get _ user _ info);返回json_decode($res,true);}获取用户信息数据:
{ openid : OPENID , 昵称 :昵称, 性 : 1 , 省 : 省 "城市 : 城市 , 国家 : 国家 , headimgurl : http://third wx . qlogo . cn/mmopen/g3monuztnhkdmzicilib x 6 iafqac 56 vxls ufpb 6n 5 wks yvy 0 chqkkiajsgq 1 dzutogvllrhjberq 4 emsv 84 eavhiaiceqxibjxcfhe/46 ;, 特权 :完成以下代码:
lt?Php //跳转到第三方页面,获取用户的基本信息。//这是请求页面和回调页面session_start()的代码;//启动会话if(isset($ _ GET[ # 39;代码 # 39;])){//确定是否有代码来。如果没有调用函数,就要代码$ RES = get access _ token($ _ get[ # 39;代码 # 39;]);//使用代码获取access_token和OpenID if(CKCKACCESS Token($ RES[ # 39;访问令牌 # 39;],$ RES[ # 39;openid # 39]) == 0) {//判断access_token是否有效,如果无效,获取新的access _ token $ RES = get refresh _ token($ RES[ # 39;刷新_令牌 # 39;]);//或者新的access _ token } $ userinfo = get _ user _ info($ RES[ # 39;访问令牌 # 39;],$ RES[ # 39;openid # 39]);//获取用户信息$ _ SESSION[ # 39;userinfo # 39]= $ userinfo;//在session $ next _ url = # 39中存储用户信息;http://web/index . PHP # 39;;//下一页地址头( 位置: 。$ next _ URL);//获取信息后跳转到其他页面退出;} else {//Get Code Get _ Code();} function Get_Code() //获取代码{ $ Code _ URL = " https://open.weixin.qq.com/connect/oauth2/authorize? appid = appid ;回拨地址和响应类型=代码。scope = snsapi _ userinfo state = STATE #微信_重定向 ;标题( 位置: 。$ code _ URL);退出;}/* * * Get access_token和OpenID * */function Get access _ token($ code){ $ Get _ access _ token _ URL = " https://api.weixin.qq.com/sns/oauth2/access_token? appid = appid ;秘密=秘密 code = $ code grant _ type = authorization _ code ;$ RES = http _ URL($ get _ access _ token _ URL);返回json_decode($res,true);}/* * *检查访问令牌是否有效* */Function CK access令牌($ access _ token,$ OpenID){ $ Check _ URL = " https://api.weixin.qq.com/sns/auth?访问令牌= $ access _ token openid = $ openid ;$ RES = http _ URL($ check _ URL);$result = json_decode($res,true);if(isset($result[ # 39;errmsg # 39]) ; $ result[ # 39;errmsg # 39]= = 1){ return 1;//access_token有效}否则{ return 0;//无效的access_token}}/* *如果获取的access_token无效,刷新access _ token */function get refresh _ token($ refresh _ token){ $ get _ refresh _ token _ URL = " https://api.weixin.qq.com/sns/oauth2/refresh_token? appid = appid ;授权类型=刷新令牌 刷新令牌= $刷新令牌 ;$ RES = http _ URL($ get _ refresh _ token _ URL);返回json_decode($res,true);}/* * *获取基本用户信息* */function Get _ user _ info($ access _ token,$ OpenID){ $ Get _ user _ info = " https://api.weixin.qq.com/sns/userinfo? access _ token = $ access _ token ;openid = $ openid lang = zh _ CN ;$ RES = http _ URL($ get _ user _ info);返回json_decode($res,true);}//用户自定义请求接口函数。当$data为空时,启动get请求,当$data有值时,启动post请求。函数http _ url ($ url,$ data = null){ $ ch = curl _ init();curl_setopt($ch,CURLOPT_URL,$ URL);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);如果(!empty($data)){ curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$ data);} $ RES = curl _ exec($ ch);if(curl _ errno($ ch)){ echo ;错误: 。curl _ error($ ch);退出;} curl _ close($ ch);返回$ res}以上是微信微信官方账号网页授权的详细内容。更多请关注主机参考其他相关文章!
这几篇文章你可能也喜欢:
- 微信公众号上线新功能:支持更换封面图(微信公众号更换封面图)
- 如何从微信公众号下载音频
- 微信公众号和小程序有什么区别(微信公众号和小程序的区别)
- 如何从微信微信官方账号跳转到小程序(如何从微信微信官方账号跳转到小程序)
- 微信微信官方账号已全面开通【消息】功能,快去看看吧!(2021年微信官方账号消息功能开通)
本文由主机参考刊发,转载请注明:微信官方账号网页授权详解 https://zhujicankao.com/79347.html
评论前必须登录!
注册