php如何获取微信openid

  介绍

小编给大家分享一下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的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

php如何获取微信openid