Browse Source

feat : 接口统一参数新增字段, 拦截器增加必传参数验证

bilingfeng 2 years ago
parent
commit
b706ea02cc

+ 17 - 2
game-module/game-common/src/main/java/com/zanxiang/common/enums/DeviceTypeEnum.java

@@ -6,7 +6,7 @@ import lombok.Getter;
 /**
  * @author : lingfeng
  * @time : 2022-06-07
- * @description : 设备类型枚举
+ * @description : 客户端类型
  */
 @Getter
 @AllArgsConstructor
@@ -15,7 +15,22 @@ public enum DeviceTypeEnum {
     /**
      * 安卓app
      */
-    DEVICE_TYPE_ANDROID_APP(1, "androidApp");
+    DEVICE_TYPE_ANDROID(1, "android"),
+
+    /**
+     * 苹果app
+     */
+    DEVICE_TYPE_IOS(2, "ios"),
+
+    /**
+     * h5网页
+     */
+    DEVICE_TYPE_H5(3, "h5"),
+
+    /**
+     * 小程序
+     */
+    DEVICE_TYPE_MINI_APP(4, "miniApp");
 
     /**
      * 设备类型

+ 8 - 8
game-module/game-common/src/main/java/com/zanxiang/common/enums/OsEnum.java

@@ -12,31 +12,31 @@ import lombok.Getter;
 @AllArgsConstructor
 public enum OsEnum {
 
-    /**
-     * 苹果
-     */
-    SYSTEM_IOS("ios", "苹果手机操作系统"),
-
     /**
      * 安卓
      */
     SYSTEM_ANDROID("android", "安卓手机操作系统"),
 
     /**
-     * window操作系统
+     * 苹果
      */
-    SYSTEM_WINDOW("window", "window操作系统"),
+    SYSTEM_IOS("ios", "苹果手机操作系统"),
 
     /**
      * window操作系统
      */
-    SYSTEM_LINUX("linux", "linux操作系统"),
+    SYSTEM_WINDOW("windows", "window操作系统"),
 
     /**
      * Mac操作系统
      */
     SYSTEM_MAC("mac", "Mac操作系统"),
 
+    /**
+     * linux操作系统
+     */
+    SYSTEM_LINUX("linux", "linux操作系统"),
+
     /**
      * 其它操作系统
      */

+ 4 - 12
game-module/game-sdk/src/main/java/com/zanxiang/sdk/adapter/ArgumentAdapter.java

@@ -7,9 +7,7 @@ import com.zanxiang.sdk.annotation.ValidLogin;
 import com.zanxiang.sdk.domain.dto.UserTokenDTO;
 import com.zanxiang.sdk.domain.params.UserData;
 import com.zanxiang.sdk.service.UserTokenService;
-import com.zanxiang.sdk.util.DeviceCheckUtil;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.logging.log4j.util.Strings;
 import org.springframework.core.MethodParameter;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
@@ -45,8 +43,6 @@ public class ArgumentAdapter implements HandlerMethodArgumentResolver {
         if (request == null) {
             throw new CustomException(HttpStatusEnum.UNKNOWN_ERROR);
         }
-        //游戏id
-        String gameId = request.getHeader("gameId");
         //是否强制验证登录状态
         boolean b = parameter.hasParameterAnnotation(ValidLogin.class);
         String token = request.getHeader("token");
@@ -55,14 +51,10 @@ public class ArgumentAdapter implements HandlerMethodArgumentResolver {
             throw new CustomException(HttpStatusEnum.USER_NO_LOGIN);
         }
         //请求头处理
-        String userAgent = request.getHeader("user-agent");
-        Integer deviceType = DeviceCheckUtil.getType(userAgent);
-        UserData data = new UserData();
-        data.setDeviceType(deviceType);
-        data.setDeviceSystem(DeviceCheckUtil.getDeviceSystem(userAgent));
-        if (Strings.isNotBlank(gameId)) {
-            data.setGameId(Long.valueOf(gameId));
-        }
+        String os = request.getHeader("os");
+        Integer deviceType = Integer.valueOf(request.getHeader("deviceType"));
+        Long gameId = Long.valueOf(request.getHeader("gameId"));
+        UserData data = UserData.builder().gameId(gameId).deviceType(deviceType).deviceSystem(os).build();
         //不需要登录, token不存在
         if (StringUtils.isEmpty(token)) {
             return data;

+ 6 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/adapter/WebHandlerAdapter.java

@@ -2,6 +2,7 @@ package com.zanxiang.sdk.adapter;
 
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.exception.CustomException;
+import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.mybatis.entity.GameKey;
 import com.zanxiang.sdk.annotation.UnSignCheck;
 import com.zanxiang.sdk.service.GameKeyService;
@@ -48,8 +49,11 @@ public class WebHandlerAdapter implements HandlerInterceptor {
         String gameId = request.getHeader("gameId");
         String sign = request.getHeader("sign");
         String timestamp = request.getHeader("timestamp");
-        if (Strings.isBlank(sign) || Strings.isBlank(timestamp) || Strings.isBlank(gameId)) {
-            log.error("非法参数, sign加密参数存在空值, gameId : {}, sign : {}, timestamp : {}", gameId, sign, timestamp);
+        String os = request.getHeader("os");
+        String deviceType = request.getHeader("deviceType");
+        //必传参数判断
+        if (StringUtils.isAnyEmpty(gameId, sign, timestamp, os, deviceType)) {
+            log.error("非法参数, 请求头中缺少必传参数");
             throw new CustomException(HttpStatusEnum.INVALID_PARAMS);
         }
         //签名验证

+ 6 - 10
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/LoginController.java

@@ -4,7 +4,6 @@ import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.sdk.annotation.UnSignCheck;
 import com.zanxiang.sdk.domain.params.LoginMobileParam;
 import com.zanxiang.sdk.domain.params.LoginPasswordParam;
-import com.zanxiang.sdk.domain.params.UserData;
 import com.zanxiang.sdk.domain.vo.UserLoginVO;
 import com.zanxiang.sdk.service.RegisterLoginService;
 import com.zanxiang.sdk.service.UserTokenService;
@@ -38,25 +37,22 @@ public class LoginController {
     @GetMapping("/token/check")
     @UnSignCheck
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Long.class)})
-    public ResultVO userTokenCheck(@RequestParam Long gameId, @RequestParam Long userId,
-                                   @RequestParam String token, @RequestParam String sign) {
+    public ResultVO userTokenCheck(@RequestParam Long gameId, @RequestParam Long userId, @RequestParam String token, @RequestParam String sign) {
         return userTokenService.userTokenCheck(gameId, userId, token, sign);
     }
 
-    @ApiOperation(value = "用户账号注册注册/登录")
+    @ApiOperation(value = "用户账号注册/登录")
     @PostMapping("/password")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVO<UserLoginVO> loginPassword(@Validated @RequestBody LoginPasswordParam param, UserData userData,
-                                               HttpServletRequest request) {
-        return registerPassword.loginPassword(param, userData, request);
+    public ResultVO<UserLoginVO> loginPassword(@Validated @RequestBody LoginPasswordParam param, HttpServletRequest request) {
+        return registerPassword.loginPassword(param, request);
     }
 
     @ApiOperation(value = "用户手机号注册/登录")
     @PostMapping("/mobile")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
-    public ResultVO<UserLoginVO> loginMobile(@Validated @RequestBody LoginMobileParam param, UserData userData,
-                                             HttpServletRequest request) {
-        return registerPassword.loginMobile(param, userData, request);
+    public ResultVO<UserLoginVO> loginMobile(@Validated @RequestBody LoginMobileParam param, HttpServletRequest request) {
+        return registerPassword.loginMobile(param, request);
     }
 
     @ApiOperation(value = "用户退出")

+ 2 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/LoginPasswordParam.java

@@ -33,9 +33,9 @@ public class LoginPasswordParam {
     private String password;
 
     /**
-     * 类型 , 0 : 注册登录, 1 : 登录
+     * 类型 , 0 : 注册登录, 1 : 登录
      */
-    @ApiModelProperty(notes = "类型 , 0 : 注册登录, 1 : 登录")
+    @ApiModelProperty(notes = "类型 , 0 : 注册登录, 1 : 登录")
     @NotNull(message = "类型不可为空")
     private Integer type;
 }

+ 9 - 34
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/UserData.java

@@ -1,10 +1,9 @@
 package com.zanxiang.sdk.domain.params;
 
-import com.zanxiang.common.enums.OsEnum;
-import com.zanxiang.common.utils.StringUtils;
 import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
 import lombok.NoArgsConstructor;
-import lombok.Setter;
 
 import java.io.Serializable;
 
@@ -13,7 +12,8 @@ import java.io.Serializable;
  * @time : 2022-06-20
  * @description : 用户信息
  */
-@Setter
+@Data
+@Builder
 @NoArgsConstructor
 @AllArgsConstructor
 public class UserData implements Serializable {
@@ -25,6 +25,11 @@ public class UserData implements Serializable {
      */
     private Long userId;
 
+    /**
+     * 游戏id
+     */
+    private Long gameId;
+
     /**
      * 设备类型;
      */
@@ -34,34 +39,4 @@ public class UserData implements Serializable {
      * 设备类型(android / ios)
      */
     private String deviceSystem;
-
-    /**
-     * 游戏id
-     */
-    private Long gameId;
-
-    public Long getUserId() {
-        if (userId == null) {
-            return 1L;
-        }
-        return userId;
-    }
-
-    public Integer getDeviceType() {
-        if (deviceType == null) {
-            return 1;
-        }
-        return deviceType;
-    }
-
-    public String getDeviceSystem() {
-        if (StringUtils.isEmpty(deviceSystem)) {
-            return OsEnum.SYSTEM_OTHER.getOs();
-        }
-        return deviceSystem;
-    }
-
-    public Long getGameId() {
-        return gameId;
-    }
 }

+ 15 - 17
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/LoginServiceImpl.java

@@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.time.LocalDateTime;
@@ -49,10 +50,10 @@ public class LoginServiceImpl implements RegisterLoginService {
     @Autowired
     private RedisUtil<String> redisUtil;
 
-    @Autowired
+    @Resource
     private QqApiService qqApiService;
 
-    @Autowired
+    @Resource
     private VxApiService vxApiService;
 
     @Autowired
@@ -88,17 +89,16 @@ public class LoginServiceImpl implements RegisterLoginService {
     /**
      * 用户名注册或者登录
      *
-     * @param param    : 注册登录参数
-     * @param request  : 请求信息
-     * @param userData : 用户信息
+     * @param param   : 注册登录参数
+     * @param request : 请求信息
      * @return : 返回用户登录信息
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ResultVO<UserLoginVO> loginPassword(LoginPasswordParam param, UserData userData, HttpServletRequest request) {
+    public ResultVO<UserLoginVO> loginPassword(LoginPasswordParam param, HttpServletRequest request) {
         String username = param.getUsername();
         String password = param.getPassword();
-        Long gameId = userData.getGameId();
+        Long gameId = Long.valueOf(request.getHeader("gameId"));
         Integer type = param.getType();
         //用户信息
         User user;
@@ -128,7 +128,7 @@ public class LoginServiceImpl implements RegisterLoginService {
                     .gameId(gameId)
                     .username(username)
                     .password(RegisterUtil.cmfPassword(password))
-                    .deviceType(DeviceTypeEnum.DEVICE_TYPE_ANDROID_APP.getDeviceType())
+                    .deviceType(DeviceTypeEnum.DEVICE_TYPE_ANDROID.getDeviceType())
                     .status(AccountStatusEnum.NORMAL_STATUS.getStatus())
                     .authentication(0)
                     .createTime(LocalDateTime.now())
@@ -141,7 +141,7 @@ public class LoginServiceImpl implements RegisterLoginService {
         //插入用户登录记录
         userLoginLogService.addUserLoginLog(realIp, user, gameId, 0);
         //验证通过, 获取token
-        String userToken = userTokenService.getUserToken(user.getId(), DeviceTypeEnum.DEVICE_TYPE_ANDROID_APP.getDeviceType());
+        String userToken = userTokenService.getUserToken(user.getId(), DeviceTypeEnum.DEVICE_TYPE_ANDROID.getDeviceType());
         //构造用户登录信息
         UserLoginVO userLoginVO = UserLoginVO.builder()
                 .userId(user.getId())
@@ -157,17 +157,16 @@ public class LoginServiceImpl implements RegisterLoginService {
     /**
      * 手机号登录
      *
-     * @param param    : 手机号登录参数
-     * @param request  : 请求信息
-     * @param userData : 用户信息
+     * @param param   : 手机号登录参数
+     * @param request : 请求信息
      * @return : 返回登录信息
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ResultVO<UserLoginVO> loginMobile(LoginMobileParam param, UserData userData, HttpServletRequest request) {
+    public ResultVO<UserLoginVO> loginMobile(LoginMobileParam param, HttpServletRequest request) {
         String mobile = param.getMobile();
         String code = param.getCode();
-        Long gameId = userData.getGameId();
+        Long gameId = Long.valueOf(request.getHeader("gameId"));
         //验证码校验
         HttpStatusEnum httpStatusEnum = smsService.smsCheck(SmsTypeEnum.SMS_REG.getType(), mobile, code);
         //验证不通过, 返回
@@ -181,7 +180,7 @@ public class LoginServiceImpl implements RegisterLoginService {
             user = User.builder()
                     .gameId(gameId)
                     .mobile(mobile)
-                    .deviceType(DeviceTypeEnum.DEVICE_TYPE_ANDROID_APP.getDeviceType())
+                    .deviceType(DeviceTypeEnum.DEVICE_TYPE_ANDROID.getDeviceType())
                     .status(AccountStatusEnum.NORMAL_STATUS.getStatus())
                     .authentication(0)
                     .createTime(LocalDateTime.now())
@@ -195,12 +194,11 @@ public class LoginServiceImpl implements RegisterLoginService {
             }
         }
         //验证通过, 获取token
-        String userToken = userTokenService.getUserToken(user.getId(), DeviceTypeEnum.DEVICE_TYPE_ANDROID_APP.getDeviceType());
+        String userToken = userTokenService.getUserToken(user.getId(), DeviceTypeEnum.DEVICE_TYPE_ANDROID.getDeviceType());
         //登录的ip
         String realIp = IpUtils.getRealIp(request);
         //插入用户登录记录
         userLoginLogService.addUserLoginLog(realIp, user, gameId, 0);
-        //构造返回
         //构造用户登录信息
         UserLoginVO userLoginVO = UserLoginVO.builder()
                 .userId(user.getId())

+ 0 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PlatformOrderServiceImpl.java

@@ -30,7 +30,6 @@ import java.util.Date;
  * @author xufeng
  * @date 2022-06-06 17:06
  */
-
 @Component
 @Slf4j
 @Service

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserLoginLogServiceImpl.java

@@ -32,7 +32,7 @@ public class UserLoginLogServiceImpl extends ServiceImpl<UserLoginLogMapper, Use
                 .userId(user.getId())
                 .gameId(gameId)
                 .ip(realIp)
-                .deviceType(DeviceTypeEnum.DEVICE_TYPE_ANDROID_APP.getDeviceType())
+                .deviceType(DeviceTypeEnum.DEVICE_TYPE_ANDROID.getDeviceType())
                 .type(type)
                 .build();
         super.save(userLoginLog);

+ 6 - 4
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserTokenServiceImpl.java

@@ -64,16 +64,18 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
         //登录密钥
         String loginKey = gameKey.getLoginKey();
         //计算用户签名
-        String sb = "loginKey=" + loginKey + "&" +
-                "gameId=" + gameId + "&" +
-                "userId=" + userId + "&" +
-                "token=" + token;
+        String sb = "loginKey=" + loginKey + "&" + "gameId=" + gameId + "&" + "userId=" + userId + "&" + "token=" + token;
         String mySign;
         try {
             mySign = SignUtil.MD5(sb);
         } catch (Exception e) {
             throw new BaseException("MD5加密异常");
         }
+        //签名错误
+        if (!Objects.equals(mySign, sign)) {
+            return ResultVO.ok(-2, "签名错误");
+        }
+        //查询token是否存在
         if (Objects.equals(mySign, sign)) {
             return ResultVO.ok(1, "验证成功", userId);
         }

+ 4 - 6
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/RegisterLoginService.java

@@ -20,22 +20,20 @@ public interface RegisterLoginService {
     /**
      * 用户名注册或者登录
      *
-     * @param param    : 注册登录参数
-     * @param userData : 用户信息
-     * @param request  : 请求信息
+     * @param param   : 注册登录参数
+     * @param request : 请求信息
      * @return : 返回用户登录信息
      */
-    ResultVO<UserLoginVO> loginPassword(LoginPasswordParam param, UserData userData, HttpServletRequest request);
+    ResultVO<UserLoginVO> loginPassword(LoginPasswordParam param, HttpServletRequest request);
 
     /**
      * 手机号登录
      *
      * @param param   : 手机号登录参数
-     * @param userData   : 用户信息
      * @param request : HttpServletRequest
      * @return : 返回登录信息
      */
-    ResultVO<UserLoginVO> loginMobile(LoginMobileParam param, UserData userData, HttpServletRequest request);
+    ResultVO<UserLoginVO> loginMobile(LoginMobileParam param, HttpServletRequest request);
 
     /**
      * QQ授权登录

+ 0 - 145
game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/DeviceCheckUtil.java

@@ -1,145 +0,0 @@
-package com.zanxiang.sdk.util;
-
-import com.zanxiang.common.enums.DeviceTypeEnum;
-import com.zanxiang.common.enums.OsEnum;
-import com.zanxiang.common.utils.StringUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-import java.util.Locale;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * 通过user-agent匹配用户访问设备类型
- *
- * @author xufeng
- * @date 2022/6/22 10:45
- */
-@Component
-@Slf4j
-public class DeviceCheckUtil {
-    //手机
-    static String phoneReg = "\\b(ip(hone|od)|android|opera m(ob|in)i"
-            + "|windows (phone|ce)|blackberry|symbianos"
-            + "|s(ymbian|eries60|amsung)|p(laybook|alm|rofile/midp"
-            + "|laystation portable)|nokia|fennec|htc[-_]"
-            + "|mobile|up.browser|[1-4][0-9]{2}x[1-4][0-9]{2})\\b";
-    //平板
-    static String tableReg = "\\b(ipad|tablet|(Nexus 7)|up.browser"
-            + "|[1-4][0-9]{2}x[1-4][0-9]{2})\\b";
-    //苹果设备
-    static String appleReg = "\\b(ip(hone|od|ad))\\b";
-
-    //微信小程序
-    static String wxMiniReg = "\\b(miniProgram)\\b";
-
-
-    //移动设备正则匹配:手机端、平板、苹果设备、微信小程序
-    static Pattern phonePat = Pattern.compile(phoneReg, Pattern.CASE_INSENSITIVE);
-    static Pattern tablePat = Pattern.compile(tableReg, Pattern.CASE_INSENSITIVE);
-    static Pattern applePat = Pattern.compile(appleReg, Pattern.CASE_INSENSITIVE);
-    static Pattern wxMiniPat = Pattern.compile(wxMiniReg, Pattern.CASE_INSENSITIVE);
-
-    /**
-     * 检测是否是移动设备访问
-     *
-     * @param userAgent 浏览器标识
-     * @return true:移动设备接入,false:pc端接入
-     * @Title: check
-     */
-    public static boolean isMobile(String userAgent) {
-        if (null == userAgent) {
-            return false;
-        }
-        // 匹配
-        Matcher matcherPhone = phonePat.matcher(userAgent);
-        Matcher matcherTable = tablePat.matcher(userAgent);
-        if (matcherPhone.find() || matcherTable.find()) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * 通过userAgent获取支付设备类型id
-     *
-     * @param userAgent
-     * @return PayDeviceEnum
-     */
-    public static Integer getType(String userAgent) {
-        //暂时只有安卓App, 只返回安卓app类型
-        return DeviceTypeEnum.DEVICE_TYPE_ANDROID_APP.getDeviceType();
-//        //todo app判断场景待加入
-//        boolean isMobile = isMobile(userAgent);
-//        if (!isMobile) {
-//            return PayDeviceEnum.PC_PAY.getCode();
-//        }
-//        //todo 微信小程序场景待校验
-//        //验证是否为微信小程序环境
-//        Matcher matcherWxMini = wxMiniPat.matcher(userAgent);
-//        if (matcherWxMini.find()) {
-//            return PayDeviceEnum.MINI_APP_PAY.getCode();
-//        }
-//        return PayDeviceEnum.H5_PAY.getCode();
-    }
-
-    /**
-     * 检查是否为苹果IOS设备
-     *
-     * @param userAgent
-     * @return
-     */
-    public static Boolean isIOS(String userAgent) {
-        Matcher matcherApple = applePat.matcher(userAgent);
-        if (matcherApple.find()) {
-            return true;
-        }
-        return false;
-    }
-
-
-    /**
-     * 获取设备系统
-     *
-     * @param userAgent
-     * @return
-     */
-    public static String getDeviceSystem(String userAgent) {
-
-        if (StringUtils.isEmpty(userAgent)) {
-            return OsEnum.SYSTEM_OTHER.getOs();
-        }
-        //统一转小写
-        userAgent = userAgent.toLowerCase(Locale.ROOT);
-
-        boolean isMobile = isMobile(userAgent);
-        if (isMobile) {
-            // android
-            if (userAgent.contains(OsEnum.SYSTEM_ANDROID.getOs())) {
-                return OsEnum.SYSTEM_ANDROID.getOs();
-            }
-            //ios
-            if (isIOS(userAgent)) {
-                return OsEnum.SYSTEM_IOS.getOs();
-            }
-        }
-        //mac
-        if (userAgent.contains(OsEnum.SYSTEM_MAC.getOs())) {
-            return OsEnum.SYSTEM_MAC.getOs();
-        }
-
-        //window
-        if (userAgent.contains(OsEnum.SYSTEM_WINDOW.getOs())) {
-            return OsEnum.SYSTEM_WINDOW.getOs();
-        }
-        //linux
-        if (userAgent.contains(OsEnum.SYSTEM_LINUX.getOs())) {
-            return OsEnum.SYSTEM_LINUX.getOs();
-        }
-
-
-        return OsEnum.SYSTEM_OTHER.getOs();
-    }
-}

+ 0 - 28
game-module/game-sdk/src/main/java/com/zanxiang/sdk/util/HttpUtil.java

@@ -9,11 +9,8 @@ import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.net.URL;
 import java.net.URLConnection;
-import java.net.URLEncoder;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
-import java.util.Iterator;
-import java.util.Map;
 
 /**
  * 获取订单url
@@ -146,29 +143,4 @@ public class HttpUtil {
         }
     }
 
-    public static String postData(String urlStr, Map<String, String> data) {
-        return postData(urlStr, httpBuildQuery(data), null);
-    }
-
-    public static String httpBuildQuery(Map<String, String> array) {
-        String reString = null;
-        //遍历数组形成akey=avalue&bkey=bvalue&ckey=cvalue形式的的字符串
-        Iterator it = array.entrySet().iterator();
-        while (it.hasNext()) {
-            Map.Entry<String, String> entry = (Map.Entry) it.next();
-            String key = entry.getKey();
-            String value = entry.getValue();
-            reString += key + "=" + value + "&";
-        }
-        reString = reString.substring(0, reString.length() - 1);
-        //将得到的字符串进行处理得到目标格式的字符串
-        try {
-            reString = URLEncoder.encode(reString, "utf-8");
-        } catch (Exception e) {
-            throw new RuntimeException("http_build_query error:{}", e);
-        }
-        reString = reString.replace("%3D", "=").replace("%26", "&");
-        return reString;
-    }
-
 }