Просмотр исходного кода

[b端][修改]:b端授权手机号修改

release_toaliyun_real
Stormeye Wu 6 лет назад
Родитель
Сommit
844bbf85e8
1 измененных файлов: 64 добавлений и 0 удалений
  1. +64
    -0
      mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java

+ 64
- 0
mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java Просмотреть файл

@@ -299,6 +299,7 @@ public class WxInfoController extends BaseController {
* @param map * @param map
* @return * @return
*/ */
@AuthIgnore
@PostMapping("/getUserPhone") @PostMapping("/getUserPhone")
@ApiOperation(value = "授权后获取用户的手机号", notes="{\"appId\":\"string\",\"encryptedData\":\"string\",\"iv\":\"string\",\"openId\":\"string\",\"session_key\":\"string\"}") @ApiOperation(value = "授权后获取用户的手机号", notes="{\"appId\":\"string\",\"encryptedData\":\"string\",\"iv\":\"string\",\"openId\":\"string\",\"session_key\":\"string\"}")
public ResultData getUserPhone(@RequestBody Map<String, String> map) { public ResultData getUserPhone(@RequestBody Map<String, String> map) {
@@ -321,6 +322,69 @@ public class WxInfoController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "openId 不能为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "openId 不能为空");
} }


WxMaService wxMaService = getWeappService(appId);

WxAppinfo wxAppinfo = getAppInfo(appId);
try {
// 解密
WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getPhoneNoInfo(session_key, encryptedData, iv);
if (null != phoneNoInfo) {
logger.info(phoneNoInfo.toString());
String phone = phoneNoInfo.getPhoneNumber();
resultMap.put("phone", phone);

MallUserInfo user = mallUserInfoService.getByPhone(phone, wxAppinfo.getTenantId());
if(user == null) {
return new ResultData(ErrorCode.USER_NO_PERMISSION, resultMap);
}
if (mallUserRoleService.checkIsMobileAdmin(user)) {
resultMap.put("phone", user.getPhone());
resultMap.put("admin", "1");

user.setBopenId(openId);
mallUserInfoService.saveOrUpdate(user);

return new ResultData(resultMap);
} else {
return new ResultData(ErrorCode.USER_NO_PERMISSION, resultMap);
}
} else {
return new ResultData(ErrorCode.PHONE_DECODE_ERR, resultMap);
}
} catch (Exception e) {
this.logger.error(e.getMessage(), e);
return new ResultData(ErrorCode.DB_FAIL.getCode(), "解密并保存出错", resultMap);
}
}


/**
* 授权后获取用户的手机号等信息
* @param map
* @return
*/
@PostMapping("/getUserPhoneForBuser")
@ApiOperation(value = "登录后授权获取用户的手机号", notes="{\"appId\":\"string\",\"encryptedData\":\"string\",\"iv\":\"string\",\"openId\":\"string\",\"session_key\":\"string\"}")
public ResultData getUserPhoneForBuser(@RequestBody Map<String, String> map) {
logger.debug(map.toString());
Map resultMap = new HashMap();
String appId = map.get("appId");
String encryptedData = map.get("encryptedData");
String iv = map.get("iv");
String openId = map.get("openId");
String session_key = map.get("session_key");

//登录凭证不能为空
if (StringUtils.isBlank(encryptedData)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "encryptedData 不能为空");
}
if (StringUtils.isBlank(iv)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "iv 不能为空");
}
if (StringUtils.isBlank(openId)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "openId 不能为空");
}

WxMaService wxMaService = getWeappService(appId); WxMaService wxMaService = getWeappService(appId);
WxBuser buser = getBuser(); WxBuser buser = getBuser();
try { try {


Загрузка…
Отмена
Сохранить