yq 3 jaren geleden
bovenliggende
commit
7912f01867

+ 2 - 2
src/main/java/com/usky/dxtop/service/api/TopApi.java

@@ -170,8 +170,8 @@ public class TopApi {
     }
 
 
-    public static String generateUrl(String url,TreeMap<String, String> params){
-        return String.format("%s?%s&sign=%s", url,
+    public static String generateParam(TreeMap<String, String> params){
+        return String.format("%s&sign=%s",
                 TopApi.joinParam(params),
                 TopApi.signData(params));
     }

+ 17 - 6
src/main/java/com/usky/dxtop/service/impl/OrderServiceImpl.java

@@ -131,7 +131,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         baseMapper.insert(order);
         //记录调用日志
         callApiLogService.saveOrUpdate(orderNumber,SCAN_PAY,TopApi.SCAN_TO_PAY_URL,JSONObject.toJSONString(params),null);
-        return TopApi.generateUrl(TopApi.SCAN_TO_PAY_URL, params);
+        return String.format("%s?%s",TopApi.SCAN_TO_PAY_URL,TopApi.generateParam(params));
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -167,7 +167,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Override
     public String callTopFindOrderInfoApi(String orderNumber) {
         TreeMap<String, String> param = TopApi.generateDealSelectParam(orderNumber, null, null, null);
-        String format = TopApi.generateUrl(TopApi.DEAL_SELECT_URL, param);
+        String format = TopApi.generateParam(param);
         String result = HttpUtils.sendGet(TopApi.DEAL_SELECT_URL, format);
         Order order = one(orderNumber);
         //处理订单
@@ -358,16 +358,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     public String callUnifiedPay(Order order) {
         String orderNumber = TopApi.getOrderNumber();
         order.setOrderNumber(orderNumber);
+        String appId = null;
+        if ("W06".equals(order.getTopPayType())){
+            appId = TopApi.WX_APP_ID;
+        }
         TreeMap<String, String> params = TopApi.generateUnifyParam(orderNumber,new Double(Arith.mul(order.getMoney(),100)).intValue(),
                 null, null,
-                null,null,null,order.getTopPayType(),null,TopApi.WX_APP_ID,
+                null,null,null,order.getTopPayType(),null,appId,
                 null,null,null,null);
-        String unifyUrl = TopApi.generateUrl(TopApi.SCAN_TO_PAY_URL, params);
-        String result = HttpUtils.sendGet(TopApi.DEAL_SELECT_URL, unifyUrl);
+        String unify = TopApi.generateParam(params);
+        String result = HttpUtils.sendGet(TopApi.UNIFY_URL, unify);
+        JSONObject obj= JSON.parseObject(result);
+        String payInfo;
+        if ("0000".equals(obj.get("status"))){
+            payInfo = obj.get("payinfo").toString();
+        }else {
+            throw new CustomException(obj.get("errorMessage").toString());
+        }
         baseMapper.insert(order);
         //记录调用日志
         callApiLogService.saveOrUpdate(orderNumber,SCAN_PAY,TopApi.SCAN_TO_PAY_URL,JSONObject.toJSONString(params),null);
-        return result;
+        return payInfo;
     }
 
     /**