微信oauth2接口获取用户的openid

当微信的菜单类型是view型时,就需要通过“网页授权获取用户基本信息”接口来获取了,具体接口使用大家自己到微信公众平台去查看文档吧。这里只简述我的方法吧

如果大家view的设置链接为 http://myself.test.cn/index.php?app=weixin&act=getCode

app:是类名.

act:是方法名

以下是获取openid的方法

1、用户同意授权,获取code.这一步很简单

function getCode()

{

  //只需将文档中的链接复制过来改为自己的,redirect_uri 参数为网址的回调,切记要用urlencode()处理下,这个网址填写你想要回调的地址,用以接受code

   $redirect_uri = urlencode(‘http://jiuke_shop.eonch.cn/index.php?app=weixin&act=openid_show‘);//这里我写到控制器weixin 中的openid_show方法
        $url_getcode = ‘https://open.weixin.qq.com/connect/oauth2/authorize?appid=‘.$wxconfig[‘appid‘].‘&redirect_uri=‘.$redirect_uri.‘&response_type=code&    scope=snsapi_base&state=1#wechat_redirect‘;
        header("Location:{$url_getcode}");

}

2、这个是用来接受上面回调所传回来的code,并处理code获得openid

function openid_show()

{

  $appid = ‘.................‘;//微信公众号  ID

  $secret= ‘.................‘;//微信公众号  秘钥

  if (isset($_GET[‘code‘]) && isset($_GET[‘state‘]) ){
            $code = $_GET[‘code‘]; //获取code
            $weixin_openid = $this->GetOpenid($_GET[‘code‘],$appid,$secret); //通过GetOpenid获得openid
       }

}

//获取微信的openid
    function GetOpenid($c_code,$appid,$secret)
    {
        $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . $appid . "&secret=" . $secret . "&code=" . $c_code . "&grant_type=authorization_code";

$result = $this->getData($url);

$jsondecode = json_decode($result);
            
        return $jsondecode->{"openid"};

}

//获取https的get请求结果
    function getData($c_url)
    {
        $curl = curl_init(); // 启动一个CURL会话
        curl_setopt($curl, CURLOPT_URL, $c_url); // 要访问的地址
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
        curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER[‘HTTP_USER_AGENT‘]); // 模拟用户使用的浏览器
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
    //    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
    //    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
        curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
        curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
        $tmpInfo = curl_exec($curl); // 执行操作
        if (curl_errno($curl)) {
           echo ‘Errno‘.curl_error($curl);//捕抓异常
        }
        curl_close($curl); // 关闭CURL会话
        return $tmpInfo; // 返回数据
    }

看懂了也并不复杂吧,以上代码拿来就能用哦,自学的时候确实很头疼呢,现在就来造福下大家吧,为新手们造福。

时间: 2024-10-14 10:34:27

微信oauth2接口获取用户的openid的相关文章

微信商城中使用微信支付接口获取用户地址

授人以鱼不如授人以渔 微信支付获取用户地址 使用微信获取地址信息是和微信支付一道申请的,微信支付申请通过,就可以使用该功能. 微信商城中,使用微信支付获取用户的收货地址,可以省略用户输入地址信息的繁复流程,提高用户体验. 但是可能是因为牵扯到用户隐私,所以在使用过程中,需要用户自己主动选择使用该功能,并且是通过点击的操作,我们才可以获取到用户的收货地址,这一点是要注意的. 操作流程如下: 1.用户打开购物车页面,点击结算,跳转到一个微信的oauth2的页面,地址为:https://open.we

微信获取用户的openid和详细信息

获取用户的信息的原理,首先用户会点击一个url,这个url会包含一个参数redirect_uri,这个url是指向微信那边的服务器的,然后微信会把这个http请求重定向到redirect_uri,即我们的后端,而且会附带一个code参数,如果我们需要获取用户的基础信息(也就是openid)就需要用这个code去访问微信的指定url来请求用户的openid,如果我们需要获取用户的详细信息(微信名称,头像),我们就需要先用code获取一个access_token,再用这个access_token来获

C#微信公众号开发之网页授权oauth2.0获取用户基本信息(二)

C#微信公众号开发之网页授权oauth2.0获取用户基本信息(一) 中讲解了如果通过微信授权2.0snsapi_base获取已经关注用户的基本信息,然而很多情况下我们经常需要获取非关注用户的信息,方法如下: 第一步和之前讲的一样:获取code,但是scope使用方法是snsapi_userinfo; 第二步,根据code获取openid和access_token(此处的access_token是通过网页授权code换取的不是我们之前讲的全局的票据),代码: 1 /// <summary> 2

微信小程序-获取用户信息和openid,session_key,

1:微信小程序获取用户信息:比如常用的 avatarUrl (用户头像),nickName (用户名称) 等等, (1):获取用户信息调用 wx.getUserInfo 代码如下: 直接请求接口就可以了,随后把数据存放到storage中,下次直接取 就不用再请求接口,, 2:获取 openid (1):请求wx.login 接口,代码如下: url:是微信提供的 appid:是小程序的appid secret:是小程序开发设置的 AppSecret 只要获取到这两项,用户信息可以用于页面,ope

微信公众平台如何获取用户的OpenID

如何获取用户的OpenID,对于微信开发模式下的开发来说,那就是一个非常简单的小功能了.简单介绍一下我是怎样去获取OpenID的. 微信服务器与公众账号服务器交互的信息可以分为3类:请求消息.事件和响应消息. (1)请求消息指用户发送给公众账号的信息包含: 文本消息.图片消息.语音消息.视频消息.小视频消息. 地理位置消息.链接消息 (2)事件指用户对公众账号的做出的某种操作时,会使得微信服务器通过事件推送的形式通知到公众账号服务器,从而开发者可以获取到该信息.包含:关注/取消关注事件.扫描带参

微信公众号获取用户信息致跳过的坑

有一段时间没有搞微信开发了 ,今天突然要改一下程序! 回头一看 微信的帮助文档太tm的稀烂的,太难懂了,这做个笔记以后看着方便 微信有2个ACCESS_TOKEN, 1,基础接口的token 获取接口是 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 2,用户网页授权access_token 获取接口地址是 https://api.weixin

.NET 微信开发之 获取用户数据

通过微信接口获取用户信息主要分为以下几个步骤: a.获取公众号的access_token b.通过查询所有用户OPenid接口获取所有用户. string url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=" + access_token; c.通过获取用户openid,然后通过openid获取用户数据 d.把用户信息添加到数据库中. 1.参数化查询以及添加用户信息到数据库方法 public void AddT

微信公众号--获取用户列表

之前其实写过一次微信号的简单开发,包括菜单自动回复拉取用户信息等简单的微信公众号的开发,今天又用到了,然后发现自己还是忘记了,看来记录下来是真的有必要的.我今天主要是写了拉取用户信息,所以我这比写的也就是拉取用户信息. 这里使用的还是TP的框架写的php代码进行开发的. 1.对使用的公众号进行基本配置 代码: //微信验证 public function checkWechat(){ // $weixin=M("maiclub_weixin"); // $res=$weixin->

微信小程序获取用户手机号

前端通过微信接口获取这三个参数 $code = input('post.code'); $encryptedData = urldecode(input('post.encryptedData')); $iv = input('post.iv'); 首先  我们拿code去curl获取到用户的信息 (openID,session_key) 然后  通过session_key,appid,encrypteData,iv 这几个参数 通过官方demo 的解密方式 获取到信息 最后  电话号入库就结束