介绍
这期内容当中小编将会给大家带来有关l利用PHP怎么对微信网页进行授权,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息;在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取用户信息;而微信网页授权可在不需要消息交互,也不需要关注的情况下获取用户的基本信息。
微信网页授权时通过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 nulll利用PHP怎么对微信网页进行授权