各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

php如何获取微信用户基本信息(代码)

管理员 2023-09-05
PHP
99

php如何获取微信用户基本信息(代码)

内容导读

收集整理的这篇技术教程文章主要介绍了php如何获取微信用户基本信息(代码),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5586字,纯文字阅读大概需要8分钟

内容图文

本篇文章给大家带来的内容是关于php如何获取微信用户基本信息(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
<?phperror_reporting(1);header('Content-type:text/html; Charset=utf-8');/* 配置开始 */$appid = '';  //微信公众平台->开发->基本配置->AppID$appKey = '';   //微信公众平台->开发->基本配置->AppSecret/* 配置结束 *///①、获取用户openid$wxPay = new WxService($appid,$appKey);$data = $wxPay->GetOpenid();      //获取openidif(!$data['openid']) exit('获取openid失败');//②、获取用户信息$user = $wxPay->getUserInfo($data['openid'],$data['access_token']);?><!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta name="renderer" content="webkit" />    <meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />    <title>微信获取用户信息demo</title>    <link href="https://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet">    <script src="https://cdn.bootcss.com/jquery/2.1.0/jquery.min.js"></script></head><body><div>    <div>        <h1>你的基本信息如下:</h1>        <table class="table table-bordered">            <tr>                <td>openid</td>                <td><?=$user['openid']?></td>            </tr>            <tr>                <td>unionid</td>                <td><?=$user['unionid']?></td>            </tr>            <tr>                <td>昵称</td>                <td><?=$user['nickname']?></td>            </tr>            <tr>                <td>头像</td>                <td><img src="<?=$user['headimgurl']?>" style="width: 100px;" alt=""></td>            </tr>                           <tr>                <td>性别</td>                <td><?php                    switch (strtoupper($user['sex'])){                        case 1:                            echo '男性';                            break;                        case 2:                            echo '女性';                            break;                        default:                            echo '未知';                            break;                    }                    ?></td>            </tr>            <tr>                <td>省份 / 城市</td>                <td><?=$user['province'].' / '.$user['city']?></td>            </tr>            <tr>                <td>language</td>                <td><?=$user['language']?></td>            </tr>        </table>    </div></div></body></html><?phpclass WxService{    protected $appid;    protected $appKey;    public $data = null;    public function __construct($appid, $appKey)    {        $this->appid = $appid; //微信支付申请对应的公众号的APPID        $this->appKey = $appKey; //微信支付申请对应的公众号的APP Key    }    /**     * 通过跳转获取用户的openid,跳转流程如下:     * 1、设置自己需要调回的url及其其他参数,跳转到微信服务器https://open.weixin.qq.com/connect/oauth2/authorize     * 2、微信服务处理完成之后会跳转回用户redirect_uri地址,此时会带上一些参数,如:code     *     * @return 用户的openid     */    public function GetOpenid()    {        //通过code获得openid        if (!isset($_GET['code'])){            //触发微信返回code码            $baseUrl = $this->getCurrentUrl();            $url = $this->__CreateOauthUrlForCode($baseUrl);            Header("Location: $url");            exit();        } else {            //获取code码,以获取openid            $code = $_GET['code'];            $openid = $this->getOpenidFromMp($code);            return $openid;        }    }    public function getCurrentUrl()    {        $scheme = $_SERVER['HTTPS']=='on' ? 'https://' : 'http://';        $uri = $_SERVER['PHP_SELF'].$_SERVER['QUERY_STRING'];        if($_SERVER['REQUEST_URI']) $uri = $_SERVER['REQUEST_URI'];        $baseUrl = urlencode($scheme.$_SERVER['HTTP_HOST'].$uri);        return $baseUrl;    }    /**     * 通过code从工作平台获取openid机器access_token     * @param string $code 微信跳转回来带上的code     * @return openid     */    public function GetOpenidFromMp($code)    {        $url = $this->__CreateOauthUrlForOpenid($code);                $res = self::curlGet($url);        $data = json_decode($res,true);        $this->data = $data;        return $data;    }    /**     * 构造获取open和access_toke的url地址     * @param string $code,微信跳转带回的code     * @return 请求的url     */    private function __CreateOauthUrlForOpenid($code)    {        $urlObj["appid"] = $this->appid;        $urlObj["secret"] = $this->appKey;        $urlObj["code"] = $code;        $urlObj["grant_type"] = "authorization_code";        $bizString = $this->ToUrlParams($urlObj);        return "https://api.weixin.qq.com/sns/oauth2/access_token?".$bizString;    }    /**     * 构造获取code的url连接     * @param string $redirectUrl 微信服务器回跳的url,需要url编码     * @return 返回构造好的url     */    private function __CreateOauthUrlForCode($redirectUrl)    {        $urlObj["appid"] = $this->appid;        $urlObj["redirect_uri"] = "$redirectUrl";        $urlObj["response_type"] = "code";        $urlObj["scope"] = "snsapi_userinfo";        $urlObj["state"] = "STATE";        $bizString = $this->ToUrlParams($urlObj);        return "https://open.weixin.qq.com/connect/oauth2/authorize?".$bizString;    }    /**     * 拼接签名字符串     * @param array $urlObj     * @return 返回已经拼接好的字符串     */    private function ToUrlParams($urlObj)    {        $buff = "";        foreach ($urlObj as $k => $v)        {            if($k != "sign") $buff .= $k . "=" . $v . "&";        }        $buff = trim($buff, "&");        return $buff;    }    /**     * 获取用户信息     * @param string $openid 调用【网页授权获取用户信息】接口获取到用户在该公众号下的Openid     * @return string     */    public function getUserInfo($openid,$access_token)    {        $response = self::curlGet('https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN');        return json_decode($response,true);            }    public static function curlGet($url = '', $options = array())    {        $ch = curl_init($url);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        curl_setopt($ch, CURLOPT_TIMEOUT, 30);        if (!empty($options)) {            curl_setopt_array($ch, $options);        }        //https请求 不验证证书和host        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);        $data = curl_exec($ch);        curl_close($ch);        return $data;    }    public static function curlPost($url = '', $postData = '', $options = array())    {        if (is_array($postData)) {            $postData = http_build_query($postData);        }        $ch = curl_init();        curl_setopt($ch, CURLOPT_URL, $url);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        curl_setopt($ch, CURLOPT_POST, 1);        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);        curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置cURL允许执行的最长秒数        if (!empty($options)) {            curl_setopt_array($ch, $options);        }        //https请求 不验证证书和host        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);        $data = curl_exec($ch);        curl_close($ch);        return $data;    }}

以上就是php如何获取微信用户基本信息(代码)的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php如何获取微信用户基本信息(代码)全部内容,希望文章能够帮你解决php如何获取微信用户基本信息(代码)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

扫码关注

qrcode

QQ交谈

回顶部