欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

微信应用程序手机号码授权登录

最编程 2024-06-02 07:17:51
...
/** * 微信小程序手机号码授权登录 * @param input */ @Anonymous @PostMapping("/login") public AppletLoginOutput login(@RequestBody AppletLoginInput input) { AppletLoginOutput appletLoginOutput = new AppletLoginOutput(); // 首先获取最新的token信息 String tokenParam = "appid=" + appletConfig.getAppId() + "&secret=" + appletConfig.getAppSecret() + "&grant_type=client_credential"; String tokenResult = HttpUtils.sendGet("https://api.weixin.qq.com/cgi-bin/token", tokenParam); JSONObject tokenJSONObject = JSONObject.parseObject(tokenResult); // 通过登录信息获取用户的手机号码 // 获取token 信息 String body = "{\"code\": \"" + input.getPhoneCode() + "\"}"; HttpRequest post = HttpUtil.createPost("https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + tokenJSONObject.getString("access_token")); post.header("Content-Type", "application/json"); post.body(body); HttpResponse execute = post.execute(); AppletResultModel resultModel = JSONObject.parseObject(execute.body(), AppletResultModel.class); String jsonString = JSONObject.toJSONString(resultModel); System.out.println(jsonString); // {"errcode":0,"errmsg":"ok","phone_info":{"countryCode":"86","phoneNumber":"178****3721","purePhoneNumber":"178****3721","watermark":{"appid":"wx53fda****1c6b0a3","timestamp":1754865784}}} return appletLoginOutput; }