微信小程序获取用户openid的方法与步骤详解

why 262 2024-09-23 14:34:03

本文主要和大家分享微信小程序如何获取用户的openid,微信小程序中获取用户的openid的方式有两种,希望能帮助到大家。

方法一:
先获取用户信息(wx.getUserInfo),然后将返回的用户信息中包含openid的敏感信息解密得到用户的openid一种是先获取用户信息,然后将返回的用户信息中包含openid的敏感信息解密得到用户的openid,这种方法获取用户openid比较麻烦,还涉及到数据解密,而且如果用户拒绝授权,则获取不到。这里不细说此方法,详见文档。
方法二:
先登录(wx.login)获取用户登录凭证(code),然后拿这个code当参数调用接口,通过后端获取到用户的openid。
小程序端代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

//app.js

App({

  onLaunch: function() {

    wx.login({

      success: function(res) {

        if (res.code) {

          //发起网络请求

          wx.request({

            url: 'https://test.com/onLogin',

            data: {

              code: res.code

            }

          })

        } else {

          console.log('获取用户登录态失败!' + res.errMsg)

        }

      }

    });

  }

})

后端获取数据方法如下:

1

2

3

4

5

6

7

8

9

10

11

12

//获取用户openid

function getopenid(){

    $js_code = I('post.code');

    if(empty($js_code)) return array('status'=>0,'info'=>'缺少js_code');

     

    $appid = 'xxxxxxxxxxxxx';

    $appsecret = 'xxxxxxxxxxxxxxxxxxxxxx';

    $curl = 'https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code';

    $curl = sprintf($curl,$appid,$appsecret,$js_code);

    $result = request($curl);

    return array('status'=>1,'info'=>json_decode($result,true));

}

数据返回说明

1

2

3

4

5

6

7

8

9

10

11

//正常返回的JSON数据包

{

      "openid": "OPENID",

      "session_key": "SESSIONKEY",

      "unionid": "UNIONID"

}

//错误时返回JSON数据包(示例为Code无效)

{

    "errcode": 40029,

    "errmsg": "invalid code"

}



版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序新增数据管理 API 的详细介绍与应用
下一篇:微信小程序获取手机号授权实现用户登录功能实例解析
相关文章