dcs 2 月之前
父节点
当前提交
2951a13278

+ 8 - 12
virgo.api/src/main/java/com/bosshand/virgo/api/workark/controller/WxPayController.java

@@ -50,7 +50,7 @@ public class WxPayController {
      */
     @ApiOperation("支付通知")
     @PostMapping("/native/notify")
-    public String nativeNotify(HttpServletRequest request, HttpServletResponse response){
+    public String nativeNotify(HttpServletRequest request, HttpServletResponse response) {
 
         Gson gson = new Gson();
         Map<String, String> map = new HashMap<>();//应答对象
@@ -61,13 +61,10 @@ public class WxPayController {
             String body = HttpUtils.readData(request);
             Map<String, Object> bodyMap = gson.fromJson(body, HashMap.class);
 
-            log.info(bodyMap.toString());
-
-            String requestId = (String)bodyMap.get("id");
-            log.info("支付通知的id ===>"+requestId);
+            String requestId = (String) bodyMap.get("id");
+            log.info("支付通知的id ===>" + requestId);
 
             //签名的验证
-
             if(false){
 
                 log.error("通知验签失败");
@@ -80,11 +77,11 @@ public class WxPayController {
             log.info("通知验签成功");
 
             //处理订单
-            //wxPayService.processOrder(bodyMap);
+            wxPayService.processOrder(bodyMap);
 
             //应答超时
             //模拟接收微信端的重复通知
-            TimeUnit.SECONDS.sleep(3);
+            TimeUnit.SECONDS.sleep(5);
 
             //成功应答
             response.setStatus(200);
@@ -129,7 +126,6 @@ public class WxPayController {
         log.info("查询订单");
         String result = wxPayService.queryOrder(orderNo);
         return Response.ok(result);
-
     }
 
     @ApiOperation("申请退款")
@@ -160,7 +156,7 @@ public class WxPayController {
      */
     @ApiOperation("退款结果通知")
     @PostMapping("/refunds/notify")
-    public String refundsNotify(HttpServletRequest request, HttpServletResponse response){
+    public String refundsNotify(HttpServletRequest request, HttpServletResponse response) {
         log.info("退款通知执行");
         Gson gson = new Gson();
         Map<String, String> map = new HashMap<>();//应答对象
@@ -169,8 +165,8 @@ public class WxPayController {
             //处理通知参数
             String body = HttpUtils.readData(request);
             Map<String, Object> bodyMap = gson.fromJson(body, HashMap.class);
-            String requestId = (String)bodyMap.get("id");
-            log.info("支付通知的id ===>"+ requestId);
+            String requestId = (String) bodyMap.get("id");
+            log.info("支付通知的id ===>" + requestId);
 
             //签名的验证
             if(false){

+ 5 - 5
virgo.api/src/main/java/com/bosshand/virgo/api/workark/service/PaymentInfoService.java

@@ -33,16 +33,16 @@ public class PaymentInfoService {
         HashMap plainTextMap = gson.fromJson(plainText, HashMap.class);
 
         //订单号
-        String orderNo = (String)plainTextMap.get("outTradeNo");
+        String orderNo = (String)plainTextMap.get("out_trade_no");
         //业务编号
-        String transactionId = (String)plainTextMap.get("transactionId");
+        String transactionId = (String)plainTextMap.get("transaction_id");
         //支付类型
-        String tradeType = (String)plainTextMap.get("tradeType");
+        String tradeType = (String)plainTextMap.get("trade_type");
         //交易状态
-        String tradeState = (String)plainTextMap.get("tradeState");
+        String tradeState = (String)plainTextMap.get("trade_state");
         //用户实际支付金额
         Map<String, Object> amount = (Map)plainTextMap.get("amount");
-        Integer payerTotal = ((Double) amount.get("payerTotal")).intValue();
+        Integer payerTotal = ((Double) amount.get("payer_total")).intValue();
 
         // 分 转换 元
         BigDecimal multiplier = new BigDecimal("100");

+ 9 - 3
virgo.api/src/main/java/com/bosshand/virgo/api/workark/service/WxPayService.java

@@ -219,7 +219,7 @@ public class WxPayService {
 
     public String queryOrder(String orderNo) throws Exception {
 
-        log.info("查单接口调用 ===>"+ orderNo);
+        log.info("查单接口调用 ===>" + orderNo);
 
         NativePayService service = new NativePayService.Builder().config(getConfig()).build();
 
@@ -229,7 +229,13 @@ public class WxPayService {
 
         Transaction transaction = service.queryOrderByOutTradeNo(request);
 
-        return JSONObject.toJSONString(transaction);
+        String name = transaction.getTradeState().name();
+
+        if (WxTradeState.SUCCESS.equals(name)) {
+            orderInfoService.updateStatusByOrderNo(orderNo, OrderStatus.SUCCESS);
+        }
+        return name;
+
     }
 
     /**
@@ -437,7 +443,7 @@ public class WxPayService {
         //将明文转换成map
         Gson gson = new Gson();
         HashMap plainTextMap = gson.fromJson(plainText, HashMap.class);
-        String orderNo = (String)plainTextMap.get("outTradeNo");
+        String orderNo = (String)plainTextMap.get("out_trade_no");
 
 
         /*在对业务数据进行状态检查和处理之前,