From 8570af1118386c1cfc7c5878073d0fc0136b1e6b Mon Sep 17 00:00:00 2001 From: "Stormeye.Wu" Date: Fri, 12 Oct 2018 13:53:15 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E8=BF=90=E5=8A=A8=E8=A7=A3?= =?UTF-8?q?=E5=AF=86][=E6=96=B0=E5=A2=9E]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxUserGrantController.java | 42 ++++++++++++++++++- .../java/com/iformall/common/ErrorCode.java | 1 + 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index 77c139633..4298f3f7e 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -4,6 +4,9 @@ import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.binarywang.wx.miniapp.bean.WxMaUserInfo; +import cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.iformall.annotation.AuthIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.Result; @@ -234,7 +237,6 @@ public class WxUserGrantController extends BaseController { * @param map * @return */ - @PostMapping("/getUserPhone") @ApiOperation(value = "授权后获取用户的手机号", notes="{\"encryptedData\":\"string\",\"iv\":\"string\"}") public ResultData getUserPhone(@RequestBody Map map) { @@ -412,5 +414,43 @@ public class WxUserGrantController extends BaseController { out.close(); } + /** + * 授权后获取用户的手机号等信息 + * @param map + * @return + */ + @PostMapping("/getWeRunData") + @ApiOperation(value = "获取用户过去三十天微信运动步数", notes="{\"encryptedData\":\"string\",\"iv\":\"string\"}") + public ResultData getWeRunData(@RequestBody Map map) { + logger.debug(map.toString()); + String encryptedData = map.get("encryptedData"); + String iv = map.get("iv"); + + //登录凭证不能为空 + 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 不能为空"); + } + + WxCUser user = getUser(); + + String session_key = user.getSessionKey(); + try { + // 解密 + String weRunDataStr = WxMaCryptUtils.decrypt(session_key, encryptedData, iv); + if (null != weRunDataStr) { + Object obj = JSON.parse(weRunDataStr); + return new ResultData(obj); + } else { + return new ResultData(ErrorCode.WE_RUN_DATA_DECODE_ERR); + } + } catch (Exception e) { + this.logger.error(e.getMessage(), e); + return new ResultData(ErrorCode.WE_RUN_DATA_DECODE_ERR); + } + } + } diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 3c776942c..697057e59 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -151,6 +151,7 @@ public enum ErrorCode{ PHONE_NOT_FOUND(11005, "Phone未授权"), PHONE_IS_ENCRYPTED(11006, "Phone已加密"), TEMPLATE_SEND_FAILED(11007, "模板消息发送失败"), + WE_RUN_DATA_DECODE_ERR(11008, "运动信息解密失败"), /**