获取微信小程序用户的code、openid、session_key

一、微信小程序用户Code

1、安装微信开发者工具:

在你的电脑上安装微信小程序的开发者工具。你可以从微信开放平台官网下载并安装适用于你的操作系统的开发者工具。

2、注册微信开放平台账号:

如果你还没有微信开放平台账号,需要注册一个。你可以在微信开放平台注册页面进行注册。

3、创建小程序:

登录微信开放平台,进入小程序管理后台,在左侧菜单中选择"开发" -> "开发设置",创建一个新的小程序。

4、获取 AppID:

在小程序创建成功后,你会获得一个唯一的AppID。这是小程序的标识,将在开发和发布过程中使用。

5、使用微信开发者工具打开小程序项目:

打开微信开发者工具,在工具中选择"小程序",然后点击"新建项目"。填入项目名称、AppID,选择项目存放的本地目录,并选择开发者工具支持的小程序版本。(直接不使用模板

6、配置项目:

在新建项目的配置页面中,可以选择小程序的模板、配置appid、项目名称等信息。根据项目需求进行配置。

7、编写JS:

onLoad: function(options) {
    // 在小程序的某个页面逻辑代码中
    wx.login({
      success: function(res) {
        if (res.code) {
          console.log("输出code:" + res.code)
          // 将res.code发送到你的服务器,用于换取用户唯一标识openid和会话密钥session_key
          wx.request({
            url: 'https://xxx',  // 替换成你的服务器接口地址
            method: 'POST',
            data: {
              code: res.code
            },
            success: function(response) {
              console.log('服务器返回的用户信息:', response.data);
              // 在这里处理服务器返回的用户信息
            },
            fail: function(error) {
              console.error('请求服务器失败:', error);
            }
          });
        } else {
          console.log('登录失败!' + res.errMsg);
        }
      }
    });
  }
8、结果

二、根据Code获取openid与session_key

1、登录微信公众平台
2、获取AppID(小程序ID)与AppSecret(小程序密钥):

3、后端代码编写:
public String getByCode(String code){

    try {
        // 授权(必填)固定
        String grantType = "authorization_code";

        // 发送请求
        String res = HttpRequest.post("https://api.weixin.qq.com/sns/jscode2session")
                .form("appid", appId)
                .form("secret",appSecret)
                .form("js_code",code)
                .form("grant_type",grantType)
                .execute().body();

        // 解析相应内容(转换成json对象)
        JSONObject json = JSONObject.parseObject(res);
        log.info("解析code请求结果:"+json.toString());

        //获取openid
        String openid = json.getString("openid");
        log.info("openid:"+openid);

        // 获取session_key
        String session_key = json.getString("session_key");
        log.info("session_key:"+session_key);

        return openid;
        // return session_key;
    } catch (Exception e) {
        e.printStackTrace();
        log.error("openId生成失败");
        return "";
    }
}
"errcode":40163,"errmsg":"code been used, rid: 6552d780-14479786-52544a32":

原因:使用的 `code` 已经被使用过了。每个 `code` 只能用一次,尝试再次使用相同的 `code` 会导致此类错误。

为了解决这个问题,你需要确保每次发起登录请求时都使用一个新的 `code`。通常情况下,小程序端在用户登录的时候生成一个新的 `code`,然后将其发送到服务器。服务器使用这个 `code` 向微信服务器请求用户的 `openid` 和 `session_key`。如果用户再次登录,小程序端会生成一个新的 `code`,然后发送给服务器。

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值