Quellcode durchsuchen

[微信运动解密][新增]

release_toaliyun_real
Stormeye.Wu vor 7 Jahren
Ursprung
Commit
8570af1118
2 geänderte Dateien mit 42 neuen und 1 gelöschten Zeilen
  1. +41
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java
  2. +1
    -0
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java

+ 41
- 1
mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java Datei anzeigen

@@ -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<String, String> 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<String, String> 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);
}
}


}

+ 1
- 0
mallinkService/src/main/java/com/iformall/common/ErrorCode.java Datei anzeigen

@@ -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, "运动信息解密失败"),


/**


Laden…
Abbrechen
Speichern