当前位置: 首页 > 工具软件 > OpenID4Java > 使用案例 >

java 后端获取微信小程序openid

魏俊茂
2023-12-01

java 后端获取微信小程序openid

public class GetOpenIdUtil {

    public String getopenid(String appid,String code,String secret) {
        BufferedReader in = null;
        //appid和secret是开发者分别是小程序ID和小程序密钥,开发者通过微信公众平台-》设置-》开发设置就可以直接获取,
        String url="https://api.weixin.qq.com/sns/jscode2session?appid="
                +appid+"&secret="+secret+"&js_code="+code+"&grant_type=authorization_code";
        try{
            URL weChatUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection connection = weChatUrl.openConnection();
            // 设置通用的请求属性
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(5000);
            // 建立实际的连接
            connection.connect();
            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            StringBuffer sb = new StringBuffer();
            String line;
            while ((line = in.readLine()) != null) {
                sb.append(line);
            }
            return sb.toString();
        }catch (Exception e) {
            throw new RuntimeException(e);
        }
        // 使用finally块来关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }
}

   //通过code获取openid
    public String decodeUserInfo(String code) {
        GetOpenIdUtil getOpenIdUtil=new GetOpenIdUtil();
        String jsonId = getOpenIdUtil.getopenid("appid",code,"sercet");
        JSONObject jsonObject = JSONObject.parseObject(jsonId);
        //可将返回值类型改为String,然后直接return jsonObject
        String openid=jsonObject.getString("openid");
        return openid;
 }```

 类似资料: