Skip to content

SpringBoot 获取 open_id

标签:Java
创建时间:2022/10/01 16:57:59

说明

  1. 在开发微信小程序时,需要获取用户在小程序中的唯一标识 open_id,通过小程序自身是无法获取的,需要用自己的服务器去请求微信官方的服务器所要 open_id

  2. 登录流程时序图

获取小程序参数

登录微信公众平台后,在 开发管理 --- 开发设置 中可查看 appid 和 appsecret 参数

后端代码

controller 代码

java
@RequestMapping("/getOpenId")
public Object getOpenId(String code) {
    String url = "https://api.weixin.qq.com/sns/jscode2session" +
            "?appid=wx6676ea3b865237b8" +
            "&secret=92bbf76c4415b9679216263212577316" +
            "&grant_type=authorization_code" +
            "&js_code=" + code;

    RestTemplate restTemplate = new RestTemplate();
    restTemplate.getMessageConverters().add(new WxTool());

    return restTemplate.getForObject(url, Object.class);
}

工具类 WxTool.java

java
package com.utils;

import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.util.ArrayList;
import java.util.List;

public class WxTool extends MappingJackson2HttpMessageConverter {

    public WxTool(){
        List<MediaType> mediaTypes = new ArrayList<>();
        mediaTypes.add(MediaType.TEXT_PLAIN);
        mediaTypes.add(MediaType.TEXT_HTML);
        setSupportedMediaTypes(mediaTypes);
    }

}

基于 MIT 许可发布