微信小程序获取用户手机号码,openid和session_key

本文详细介绍了如何在Java中通过微信小程序的API获取用户的openid和session_key,进一步解析用户手机号码的方法。文中提供了具体的代码实现,包括使用HttpRequester进行HTTP请求,以及如何处理响应结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天,写了个微信小程序调用第三方支付的功能,第三方支付需要知道用户的openid等信息,我负责搞定java中获取用户openid,电话号码等信息的功能。
获取用户手机号码,必须要首先获取openid和session_key,代码如下:

  //这个是微信小程序中获取openid和session_key的请求地址
 private final static String URL = "https://api.weixin.qq.com/sns/jscode2session";
 private static final String WE_CHAT_APPID= "你的appid";
 private static final String WE_CHAT_APP_SECRET = "你的secret";
    /**
     * 获取用户openid和session_key
     * @param request 请求
     * @return res
     */   
    public ResultBean<Map<String, String>> getWeChatMiniProgramsUserInfo(HttpServletRequest request) {
        //自己封装的返回结果类
        ResultBean<Map<String, String>> resultBean = new ResultBean<>();
        resultBean.setCode(-1);
        resultBean.setMsg("获取信息失败!");
        String code = request.getParameter("code");
        String url = URL + "?appid=" + WE_CHAT_APPID + "&secret=" + WE_CHAT_APP_SECRET + "&js_code=" + code + "&grant_type=authorization_code";
        try {
            //公司前辈封装的http请求方法
            HttpRequester request1 = new HttpRequester();
            request1.setDefaultContentEncoding("utf-8");
            HttpRespons hr = request1.sendGet(url);
            //这可做一步验证,也可以不错
            //用JSONObject转成map,也可以转成实体类,将Map.class换成你的实体类字节码就可以了
            Map<String, String> map = JSONObject.parseObject(hr.getContent(), Map.class);
            if (map.containsKey("openid")) {
             String openid= map.get("openid");
             System.out.println(openid);
            }
            resultBean.setCode(0);
            resultBean.setData(map);          
            resultBean.setMsg("以获取到用户信息!");
            return resultBean;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return resultBean;
    }

将结果返回给前端,剩下就是前端的事了,然后前端将必要的值传给我,我从中解析出手机号码;这个方法是抄的博客上的,JAVA 微信小程序获取用户信息和手机号码解密

第三方支付,坑比较多,给的demo跟*一样,改动比较大,下午测通了,耗费了一天半时间,比上次那个电子发票稍微请那么点,哈哈。

下班了,也是放假了,祝大家五一快乐!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值