@Override public JsonData saveWxUserPhone(String token, String encryptedData, String iv) { String msg = "success"; Integer code = 200; log.info("进入保存用户号码接口,token=" + token); //避免传输过程中,字符出现空格 //String encrData = encryptedData.replaceAll("[^a-zA-Z0-9+/=]", ""); log.info("小程序接口,加密数据encrData:" + encryptedData + ",初始向量:" + iv); try{ // 调用微信 API 获取用户的 openid 和 session_key Map<String,String> map = getOpenidAndSessionkey(URLDecoder.decode(token)); String openid = map.get("openid"); String sessionKey = map.get("sessionKey"); /*String openid = "oFBP54qpN074mehPS6CAlMoFzMhA"; String sessionKey = "qVRw+S+EmTfhgGsTbB5bXw==";*/ // 调用微信 API 获取用户的手机号 WxMaPhoneNumberInfo phoneInfo = userMiniService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv); String phoneNumber = phoneInfo.getPhoneNumber(); log.info("小程序接口,用户手机号码:"+phoneNumber); //查询是否存在对应的用户信息 if(userInfoService.selectCountById(openid)) { User user = User.builder().userId(openid).phoneNumber(phoneNumber).build(); //保存用户详细信息 userInfoService.updateUserInfo(user); log.info("小程序接口,保存用户详细信息:"+JSONObject.toJSONString(user)); } }catch (Exception e){ code = 303; msg = e.getMessage(); log.info("小程序接口,保存用户号码报错:"+e.getMessage()); } return new JsonData(code,msg); }简化代码
时间: 2024-02-14 15:15:27 浏览: 147
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
以下是简化后的Java代码:
```
@Override
public JsonData saveWxUserPhone(String token, String encryptedData, String iv) {
String msg = "success";
Integer code = 200;
log.info("进入保存用户号码接口,token=" + token);
try {
Map<String,String> map = getOpenidAndSessionkey(URLDecoder.decode(token));
String openid = map.get("openid");
String sessionKey = map.get("sessionKey");
WxMaPhoneNumberInfo phoneInfo = userMiniService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv);
String phoneNumber = phoneInfo.getPhoneNumber();
log.info("小程序接口,用户手机号码:"+phoneNumber);
if(userInfoService.selectCountById(openid)) {
User user = User.builder().userId(openid).phoneNumber(phoneNumber).build();
userInfoService.updateUserInfo(user);
log.info("小程序接口,保存用户详细信息:"+JSONObject.toJSONString(user));
}
} catch (Exception e) {
code = 303;
msg = e.getMessage();
log.info("小程序接口,保存用户号码报错:"+e.getMessage());
}
return new JsonData(code,msg);
}
```
该代码是一个保存用户手机号码的接口,其中包含获取用户openid和session_key的方法,以及调用微信API获取用户手机号码并保存到数据库中的操作。在异常发生时,返回JsonData对象,包含错误信息和状态码。
阅读全文