【微信小程序】获取用户openid实例(前端+后端)

编程知识 更新时间:2023-04-03 21:32:03

第一步:获取小程序的APPID和APPSecret。
打开网址:https://mp.weixin.qq

扫码登录,选择小程序登录,选择小程序登录,选择小程序登录。千万不要选择了公众号登录,不然获得的APPID和APPSecret不对,导致Code无效。

得到AppID和AppSecret,记录下来,后面要用到。

第二部,通过wx.login(Object object)获取登录凭证(code)
调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。详情请见微信小程序开发文档。
JS代码:

	wx.login({
      success:function(res){
        console.log(res.code)
        //发送请求
        wx.request({
          url: 'http://XX.XXX.XXX.XX/Test.php', //接口地址,改成自己的
          data: {code:res.code},
          header: {
            'content-type': 'application/json' //默认值
          },
          success: function (res) {
            console.log(res.data)
          }
        })
      }
    })

PHP代码:

//从前端接收到的code
$code = $_GET["code"];
//配置appid
$appid = "一开始叫保存的AppID";
//配置appscret
$secret = "一开始叫保存的AppSecret";
//api接口
$getUrl = "https://api.weixin.qq/sns/jscode2session?appid=".$appid."&secret=".$secret."&js_code=".$code."&grant_type=authorization_code";
//获取GET请求
//php请求网络的方法
function curl_get($url, &$httpCode = 0) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    //不做证书校验,部署在linux环境下请改为true
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    $file_contents = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    return $file_contents;
}

$result = curl_get($getUrl);//请求拼接好的url
$wxResult = json_decode($result, true);
	if (empty($wxResult)) {
        echo '获取openid时异常,微信内部错误';
    } else {
        $loginFail = array_key_exists('errcode', $wxResult);
        if ($loginFail) {//请求失败
            var_dump($wxResult);
        } else {//请求成功
            $openid = $wxResult['openid'];
            echo "获取openid成功成功:" . $openid;
        }
    }

我把wx.login()写在了一个方法里面,每次点击按钮的时候就会获取用户的openid并且在控制台中显示出来。

弄了一整天,各种踩坑,记录一下。

更多推荐

【微信小程序】获取用户openid实例(前端+后端)

本文发布于:2023-04-03 21:32:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/5c768dece63f897cbca91e94b774616c.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实例   后端   程序   用户   微信小

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 40035文章数
  • 14阅读数
  • 0评论数