介绍
小编给大家分享一下php如何获取微信openid,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
使用微信接口,无论是自动登录还是微信支付我们首先需要获取的就是openid,获取openid的方式有两种,一种是在关注的时候进行获取,这种订阅号就可以获取的到,第二种是通过网页授权获取,这种获取需要的是认证服务号。
今天我要说的是第二种网页授权获取openid。下面是我写的一个关于获取openid的类
& lt; php ?/* * *微信授权相关接口 * * @link http://www.phpddt.com */类Wchat { 私人$ app_id=& # 39; wx444444444444& # 39;; 私人$ app_secret=& # 39; 77777777 & # 39;; 私人$状态=& # 39;aaaa级# 39;;/* * *获取微信授权链接 * * @param字符串$ redirect_uri跳转地址 美元* @param混合状态参数 */公共函数get_authorize_url ($ redirect_uri=& # 39; & # 39;, $状态=& # 39;& # 39;) { $ redirect_uri=urlencode ($ redirect_uri); 返回“https://open.weixin.qq.com/connect/oauth3/authorize?appid={$ this→app_id}, redirect_uri={$ redirect_uri}, response_type=code&范围=snsapi_userinfo&状态={$状态}# wechat_redirect"; }/* * *获取微信openid */公共函数getOpenid (turl美元) { 如果(!收取($ _GET[& # 39;代码# 39;])){//触发微信返回码代码 url=这→美元get_authorize_url (turl,这美元→状态); 标题(“位置:url"美元;); 退出(); 其他}{//获取代码码,以获取openid $代码=$ _GET[& # 39;代码# 39;]; access_info=这→美元get_access_token($代码); 返回access_info美元; } }/* * *获取授权令牌网页授权 * * @param字符串$代码通过get_authorize_url获取到的代码 */公共函数get_access_token($代码=& # 39;& # 39;) { appid=这→美元app_id; appsecret=这→美元app_secret; 美元$ token_url=癶ttps://api.weixin.qq.com/sns/oauth3/access_token?appid="。appid !”,秘密=啊C涝猘ppsecret !”,代码=啊C涝删蛔约旱拇?grant_type=authorization_code";//echo $ token_url; $ token_data=https://www.yisu.com/zixun/$ this -> http (token_url美元);//var_dump ($ token_data); 如果($ token_data [0]==200) { 美元$ ar=json_decode (token_data [1], TRUE); 返回$基于“增大化现实”技术; } 返回$ token_data [1]; } 公共函数http (url,美元方法=" $ postfields=零,数组$ header=()美元debug=false) { $ ci=curl_init ();/* */旋度设置 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真实); 开关(方法){ 例“POST”: curl_setopt ($ ci CURLOPT_POST真实); 如果(!空(postfields美元)){ curl_setopt ($ ci CURLOPT_POSTFIELDS postfields美元); $ this -> postdata=$ postfields; } 打破; } curl_setopt ($ ci CURLOPT_URL $ url); curl_setopt ($ ci CURLOPT_HTTPHEADER头美元); curl_setopt ($ ci CURLINFO_HEADER_OUT真实); (响应=curl_exec美元ci); $ http_code=curl_getinfo (ci美元,CURLINFO_HTTP_CODE); 如果美元(调试){ 回声”=====post数据======/r/n”; postfields美元var_dump (); echo '==========信息”。“/r/n”; print_r (curl_getinfo (ci)美元); echo '=====$响应====='。“/r/n”; print_r($响应); } curl_close (ci); 返回数组(http_code美元,美元反应); } } ?>
getOpenid (turl美元)这个方法就是获取openid的方法。前端调用代码如下:
openid=收取美元($ _COOKIE [& # 39; openid # 39;]) ?美元_COOKIE [& # 39; openid # 39;]: & # 39; & # 39;; 如果(空(openid美元)) { 美元wchat=new wchat (); $ t_url=& # 39; http://& # 39;。$ _SERVER [& # 39; HTTP_HOST& # 39;] # 39;公司/user.php ?行动=注册# 39;; 信息=wchat→美元getOpenid ($ t_url); 如果($ info) { openid=info美元[& # 39;openid # 39;]; setcookie (& # 39; openid # 39;, openid美元,时间()+ 86400 * 30); } }
以上是php如何获取微信openid的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!