{{format('0')}} {{format('511')}} {{format('3321')}}

通过微信授权登录code获取openid [ 技术杂谈 ]

九叶的小窝 文章 正文

As Long As You Love Me.
分享

九叶

{{nature("2021-05-24 15:47:39")}}更新

请求地址

获取code后,请求以下链接获取access_token:

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

请求参数

参数说明

参数 是否必须 说明
appid 公众号的唯一标识
secret 公众号的appsecret
code 填写第一步获取的code参数
grant_type 填写为authorization_code

返回值

Object

返回的 JSON 数据包

属性 类型 说明
openid string 用户唯一标识
session_key string 会话密钥
unionid string 用户在开放平台的唯一标识符,若当前小程序已绑定到微信开放平台帐号下会返回,详见UnionID 机制说明
errcode number 错误码
errmsg string 错误信息

errcode 的合法值

说明
-1 系统繁忙,此时请开发者稍候再试
0 请求成功
40029 code 无效
45011 频率限制,每个用户每分钟100次

代码

public class Constants {
    public static final String CODE_TO_SESSION_URL = "https://api.weixin.qq.com/sns/jscode2session?";
    public static final String APPID_KEY = "appid=";
    public static final String SECRET_KEY = "&secret=";
    public static final String JS_CODE_KEY = "&js_code=";
    public static final String GRANT_TYPE_KEY = "&grant_type=authorization_code";
}
/**
 * //通过wxcode获取openid
 * @param code
 * @return
 */
private String getOpenIdByCode(String code) {
    RestTemplate restTemplate = new RestTemplate();
    String appid = wxConfig.getAppid();
    String secret = wxConfig.getSecret();
    String url =
            Constants.CODE_TO_SESSION_URL +
            Constants.APPID_KEY + appid +
            Constants.SECRET_KEY + secret +
            Constants.JS_CODE_KEY+ code +
            Constants.GRANT_TYPE_KEY;
    String jsonStr = restTemplate.getForObject(url, String.class);
    JSONObject parse =(JSONObject) JSONObject.parse(jsonStr);
    return (String) parse.get("openid");
}
评论 0
0
{{userInfo.data?.nickname}}
{{userInfo.data?.email}}
TOP 2
Minecraft | [1.12.2] 核电工艺模拟器 1.2.25 —— 汉化版

{{nature('2021-12-07 15:29:00')}} {{format('2460')}}人已阅读

TOP 3
SSM搭建Spring单元测试环境

{{nature('2021-01-31 20:01:00')}} {{format('1048')}}人已阅读

TOP 4
dispatcher-servlet.xml文件配置模板

{{nature('2020-12-11 21:17:00')}} {{format('963')}}人已阅读

TOP 5
Windows平台Nacos启动报错无法创建Bean实例

{{nature('2021-04-22 15:16:00')}} {{format('942')}}人已阅读

目录

标签云

微信 小程序

一言

# {{hitokoto.data.from || '来自'}} #
{{hitokoto.data.hitokoto || '内容'}}
作者:{{hitokoto.data.from_who || '作者'}}
自定义UI
配色方案

侧边栏