Administrator
2025-03-18 124c85c184236ae4efa1047c4c203b0815ad215a
'bug修复'
2个文件已修改
99 ■■■■■ 已修改文件
src/main/java/com/taoke/autopay/utils/order/DYOrderApi.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/taoke/autopay/utils/order/OrderChannelApiUtil.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/taoke/autopay/utils/order/DYOrderApi.java
@@ -48,27 +48,36 @@
    private static DYOrderDto getOrderDetail1(String orderNo) throws KeyOrderException {
        String result = requestByOrderNo1(orderNo);
        JSONObject root = JSONObject.fromObject(result);
        if (root.optInt("code") != 1000) {
            logger.error(String.format("抖音订单查询出错(超享佣):%s - %s",orderNo, result));
            throw new KeyOrderException(root.optString("message"));
        try {
            JSONObject root = JSONObject.fromObject(result);
            if (root.optInt("code") != 1000) {
                logger.error(String.format("抖音订单查询出错(超享佣):%s - %s", orderNo, result));
                throw new KeyOrderException(root.optString("message"));
            }
            JSONObject data = root.optJSONObject("data");
            DYOrderDto dto = JsonUtil.getSimpleGson().fromJson(data.toString(), DYOrderDto.class);
            dto.setOrderChannel(Constant.ORDER_CHANNEL_CYX);
            return dto;
        }catch(Exception e){
            throw new KeyOrderException(e.getMessage());
        }
        JSONObject data = root.optJSONObject("data");
        DYOrderDto dto =  JsonUtil.getSimpleGson().fromJson(data.toString(),DYOrderDto.class);
        dto.setOrderChannel(Constant.ORDER_CHANNEL_CYX);
        return dto;
    }
    private static DYOrderDto getOrderDetail2(String orderNo) throws KeyOrderException {
        String result = requestByOrderNo2(orderNo);
        logger.info(String.format("爆品社接口%s:%s", orderNo, result));
        System.out.println(result);
        JSONObject root = JSONObject.fromObject(result);
        if (root.optInt("errCode") != 0) {
            logger.error(String.format("抖音订单查询出错(爆品社):%s - %s",orderNo, result));
            throw new KeyOrderException(root.optString("errMsg"));
        JSONObject data = null;
        try {
            JSONObject root = JSONObject.fromObject(result);
            if (root.optInt("errCode") != 0) {
                logger.error(String.format("抖音订单查询出错(爆品社):%s - %s", orderNo, result));
                throw new KeyOrderException(root.optString("errMsg"));
            }
            data = root.optJSONObject("data");
        }catch(Exception e){
        }
        JSONObject data = root.optJSONObject("data");
        if(data==null){
            logger.error(String.format("抖音订单查询无数据(2):%s - %s",orderNo, result));
            throw new KeyOrderException("订单查询无数据");
src/main/java/com/taoke/autopay/utils/order/OrderChannelApiUtil.java
@@ -36,36 +36,40 @@
     * @param: orderChannelName
     **/
    public static boolean isMerchantCanPay(OrderChannelEnum channel, String merchant, BigDecimal payMoney) throws UnsupportedEncodingException {
        if (channel == OrderChannelEnum.cyx) {
            String url = String.format("https://api.youihuo.com/open/free.checkKsCompanyName?bsName=%s&apiKey=%s", URLEncoder.encode(merchant, "UTF-8"), OrderChannelUtil.CYX_API_KEY);
            String result = HttpUtil.get(url);
            logger.info(String.format("超佣享商家付款判断:%s-%s-%s", merchant, result, payMoney!=null?payMoney.setScale(2,RoundingMode.HALF_UP).toString():null));
            JSONObject root = JSONObject.fromObject(result);
            System.out.println(result);
            if (root.optInt("code") == 1000) {
                return true;
            }
        } else if (channel == OrderChannelEnum.bps) {
            String url = String.format("https://api.bpshe.com/mall/douyinOMS/getSubsidyOrderInfo?appKey=cdaef330f1324961a73e15a85ab67fd2&payAccount=%s", URLEncoder.encode(merchant, StandardCharsets.UTF_8.displayName()));
            Map<String, String> headers = new HashMap<>();
            headers.put("Accept", "application/json;charset=utf-8");
            String result = HttpUtil.get(url, headers);
            logger.info(String.format("爆品社商家付款判断:%s-%s-%s", merchant, result, payMoney!=null?payMoney.setScale(2,RoundingMode.HALF_UP).toString():null));
            JSONObject root = JSONObject.fromObject(result);
            if (root.optInt("errCode") == 0) {
                JSONArray array = root.optJSONObject("data").optJSONArray("payAmounts");
                if (array != null) {
                    if (payMoney == null) {
                        return true;
                    }
                    Set<String> moneys = new HashSet<>();
                    for (int i = 0; i < array.size(); i++) {
                        moneys.add(array.optString(i));
                    }
                    return moneys.contains(payMoney.setScale(2, RoundingMode.HALF_UP).toString());
                }
            }
        }
       try {
           if (channel == OrderChannelEnum.cyx) {
               String url = String.format("https://api.youihuo.com/open/free.checkKsCompanyName?bsName=%s&apiKey=%s", URLEncoder.encode(merchant, "UTF-8"), OrderChannelUtil.CYX_API_KEY);
               String result = HttpUtil.get(url);
               logger.info(String.format("超佣享商家付款判断:%s-%s-%s", merchant, result, payMoney != null ? payMoney.setScale(2, RoundingMode.HALF_UP).toString() : null));
               JSONObject root = JSONObject.fromObject(result);
               System.out.println(result);
               if (root.optInt("code") == 1000) {
                   return true;
               }
           } else if (channel == OrderChannelEnum.bps) {
               String url = String.format("https://api.bpshe.com/mall/douyinOMS/getSubsidyOrderInfo?appKey=cdaef330f1324961a73e15a85ab67fd2&payAccount=%s", URLEncoder.encode(merchant, StandardCharsets.UTF_8.displayName()));
               Map<String, String> headers = new HashMap<>();
               headers.put("Accept", "application/json;charset=utf-8");
               String result = HttpUtil.get(url, headers);
               logger.info(String.format("爆品社商家付款判断:%s-%s-%s", merchant, result, payMoney != null ? payMoney.setScale(2, RoundingMode.HALF_UP).toString() : null));
               JSONObject root = JSONObject.fromObject(result);
               if (root.optInt("errCode") == 0) {
                   JSONArray array = root.optJSONObject("data").optJSONArray("payAmounts");
                   if (array != null) {
                       if (payMoney == null) {
                           return true;
                       }
                       Set<String> moneys = new HashSet<>();
                       for (int i = 0; i < array.size(); i++) {
                           moneys.add(array.optString(i));
                       }
                       return moneys.contains(payMoney.setScale(2, RoundingMode.HALF_UP).toString());
                   }
               }
           }
       }catch(Exception e){
           logger.error("商家验证错误:", e);
       }
        return false;
    }