l利用PHP怎么对微信网页进行授权

  介绍

这期内容当中小编将会给大家带来有关l利用PHP怎么对微信网页进行授权,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息;在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取用户信息;而微信网页授权可在不需要消息交互,也不需要关注的情况下获取用户的基本信息。

 l利用PHP怎么对微信网页进行授权

微信网页授权时通过OAuth3.0完成的,整个过程分为三步:

<李>

<强>用户授权、获取代码;

<李>

<强>根据代码获取access_token【可通过refresh_token刷新获取较长有效期】

<李>

<强>通过access_token和openid获取用户信息
  ,

对微信网页授权过程做了简单封装:

, php & lt; ?   ,/* *   ,*微信授权相关接口   ,*/,   class  Wechat  {   ,,//高才能级功能——》开发者模式——》获取   private 才能;app_id 美元;=,& # 39;xxx # 39;;   private 才能;app_secret 美元;=,& # 39;xxxxxxx # 39;;   ,   ,   ,/* *   ,,*,获取微信授权链接   ,,*,   ,,*,@param  string  redirect_uri 美元;跳转地址   ,,*,@param  mixed  state 美元;参数   ,,*/public 才能;function  get_authorize_url ($ redirect_uri =, & # 39; & # 39;,, state 美元;=,& # 39;& # 39;)   {才能   ,,,redirect_uri 美元;=,urlencode ($ redirect_uri);   ,,,return “https://open.weixin.qq.com/connect/oauth3/authorize?appid={$ this→app_id}, redirect_uri={$ redirect_uri}, response_type=code&范围=snsapi_userinfo&状态={$状态}# wechat_redirect";   ,,}   ,,   ,/* *   ,,*,获取授权令牌   ,,*,   ,,*,@param  string  code 美元;通过get_authorize_url获取到的代码   ,,*/public 才能;function  get_access_token ($ app_id =, & # 39; & # 39;,, app_secret 美元;=,& # 39;& # 39;,,code 美元;=,& # 39;& # 39;)   {才能   ,,,token_url 美元;=,“https://api.weixin.qq.com/sns/oauth3/access_token?appid={$ this→app_id},秘密={$ this→app_secret},代码={$代码},grant_type=authorization_code";   ,,,token_data 美元;=,$ this→http (token_url美元);   ,,,,   ,,,如果美元token_data [0],==, 200)   ,,,{   ,,,,,return  json_decode()美元token_data[1],,真的);   ,,,}   ,,,,   ,,,return 假;   ,,}   ,,   ,/* *   ,,*,获取授权后的微信用户信息   ,,*,   ,,*,@param  string  access_token美元   ,,*,@param  string  open_id美元   ,,*/public 才能;function  get_user_info ($ access_token =, & # 39; & # 39;,, open_id 美元;=,& # 39;& # 39;)   {才能   ,,,如果(access_token 美元;,,,open_id美元)   ,,,{   ,,,,,info_url 美元;=,“https://api.weixin.qq.com/sns/userinfo?access_token={$ access_token}, openid={$ open_id}, lang=zh_CN";   ,,,,,info_data 美元;=,$ this→http (info_url美元);   ,,,,,   ,,,,,如果(info_data美元[0],==,200)   ,,,,,{   ,,,,,,,return  json_decode()美元info_data[1],,真的);   ,,,,,}   ,,,}   ,,,,   ,,,return 假;   ,,}   ,,   public 才能;function  http (url,美元,美元的方法,,postfields 美元;=,null,, headers 美元;=,数组(),,debug 美元;=,假)   {才能   ,,,ci 美元;=,curl_init ();   ,,,/*,Curl  settings  */,,,curl_setopt (ci美元,CURLOPT_HTTP_VERSION,, CURL_HTTP_VERSION_1_1);   ,,,curl_setopt (ci美元,CURLOPT_CONNECTTIMEOUT,, 30);   ,,,curl_setopt (ci美元,CURLOPT_TIMEOUT,, 30);   ,,,curl_setopt (ci美元,CURLOPT_RETURNTRANSFER,,真的);   ,   ,,,switch (方法),{   ,,,,,case  & # 39;文章# 39;:   ,,,,,,,curl_setopt (ci美元,CURLOPT_POST,,真的);   ,,,,,,,if (!空(postfields美元)),{   ,,,,,,,,,curl_setopt (ci美元,CURLOPT_POSTFIELDS,, postfields美元);   ,,,,,,,,,这个→美元postdata =, postfields美元;   ,,,,,,,}   ,,,,,,,休息;   ,,,}   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

l利用PHP怎么对微信网页进行授权