Procházet zdrojové kódy

feat : 支付接口补充修改

bilingfeng před 2 roky
rodič
revize
0a2ee7dbb6

+ 10 - 3
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/PayController.java

@@ -1,6 +1,7 @@
 package com.zanxiang.sdk.controller;
 
 import com.zanxiang.common.domain.ResultMap;
+import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.PayWayEnum;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.sdk.annotation.UnSignCheck;
@@ -74,23 +75,29 @@ public class PayController {
 
     @UnSignCheck
     @ApiOperation(value = "支付宝支付异步回调(二维码、H5、网站)")
-    @RequestMapping(value = "notify", method = RequestMethod.POST)
+    @RequestMapping(value = "/notify", method = RequestMethod.POST)
     public String aliPayNotify(HttpServletRequest request, HttpServletResponse response) throws IOException {
         return orderPayService.notify(request, response, PayWayEnum.ALIPAY.getNum());
     }
 
     @UnSignCheck
     @ApiOperation(value = "微信支付")
-    @RequestMapping(value = "wxPayNotify", method = RequestMethod.POST)
+    @RequestMapping(value = "/wxPayNotify", method = RequestMethod.POST)
     public String wxPayNotify(HttpServletRequest request, HttpServletResponse response) throws IOException {
         return orderPayService.notify(request, response, PayWayEnum.WXPAY.getNum());
     }
 
     @UnSignCheck
     @ApiOperation(value = "支付宝支付同步回调(二维码、H5、网站)")
-    @RequestMapping(value = "alipaySynNotify", method = RequestMethod.GET)
+    @RequestMapping(value = "/alipaySynNotify", method = RequestMethod.GET)
     public ResultMap synNotify(HttpServletRequest request) {
         return orderPayService.synNotify(request, PayWayEnum.ALIPAY.getNum());
     }
 
+    @ApiOperation(value = "获取订单支付结果")
+    @RequestMapping(value = "/get/result", method = RequestMethod.GET)
+    public ResultVO<Boolean> getResult(String orderId) {
+        return ResultVO.ok(orderPayService.payResult(orderId));
+    }
+
 }

+ 16 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/OrderPayServiceImpl.java

@@ -1,7 +1,10 @@
 package com.zanxiang.sdk.service.Impl;
 
 import com.zanxiang.common.domain.ResultMap;
+import com.zanxiang.common.enums.OrderStateEnum;
+import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.utils.SpringUtils;
+import com.zanxiang.mybatis.entity.Order;
 import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
 import com.zanxiang.sdk.enums.PayTypeEnum;
 import com.zanxiang.sdk.service.GamePayWayService;
@@ -15,6 +18,7 @@ import org.springframework.stereotype.Service;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.Objects;
 
 /**
  * @author : lingfeng
@@ -51,4 +55,16 @@ public class OrderPayServiceImpl implements OrderPayService {
         PayBaseService service = SpringUtils.getBean(payTypeEnum.getClazz());
         return service.synNotify(request);
     }
+
+    @Override
+    public Boolean payResult(String orderId) {
+        Order order = platformOrderService.getById(orderId);
+        if (order == null) {
+            throw new BaseException("参数错误, 订单信息不存在");
+        }
+        if (Objects.equals(order.getStatus(), OrderStateEnum.SUCCESS.getCode())) {
+            return Boolean.TRUE;
+        }
+        return Boolean.FALSE;
+    }
 }

+ 8 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/OrderPayService.java

@@ -40,4 +40,12 @@ public interface OrderPayService {
      * @return : 回调结果
      */
     ResultMap synNotify(HttpServletRequest request, Integer payType);
+
+    /**
+     * 订单支付结果查询
+     *
+     * @param orderId : 订单id
+     * @return : 返回支付结果
+     */
+    Boolean payResult(String orderId);
 }

+ 4 - 4
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/AliPayService.java

@@ -190,7 +190,7 @@ public class AliPayService extends PayBaseService {
             result.put("fromData", body);
             //安卓与ios系统时才单独获取app支付地址
             if (!product.getDeviceSystem().contains(OsEnum.SYSTEM_ANDROID.getOs()) && !product.getDeviceSystem().contains(OsEnum.SYSTEM_IOS.getOs())) {
-                return ResultMap.ok(product.getPayDevice(), result);
+                return ResultMap.ok(product.getPayDevice(), result, product.getOutTradeNo());
             }
             Matcher matcher = pattern.matcher(body);
             //解析短链
@@ -223,7 +223,7 @@ public class AliPayService extends PayBaseService {
                     }
                 }
             }
-            return ResultMap.ok(product.getPayDevice(), result.get("appLink"));
+            return ResultMap.ok(product.getPayDevice(), result.get("appLink"), product.getOutTradeNo());
         } catch (Exception e) {
             log.error("支付宝h5支付失败,meg : {}", e.getMessage());
             return ResultMap.error(ResEnum.FAIL.getMsg());
@@ -244,7 +244,7 @@ public class AliPayService extends PayBaseService {
                     .pay(product.getSubject(), product.getOutTradeNo(), product.getTotalFee(), this.returnUrl);
             log.info("pc端支付生成,result:{}", response);
             if (ResponseChecker.success(response)) {
-                return ResultMap.ok(product.getPayDevice(), response.getBody());
+                return ResultMap.ok(product.getPayDevice(), response.getBody(), product.getOutTradeNo());
             } else {
                 return ResultMap.error(ResEnum.FAIL.getMsg());
             }
@@ -266,7 +266,7 @@ public class AliPayService extends PayBaseService {
                     .App().asyncNotify(notifyUrl)
                     .pay(product.getSubject(), product.getOutTradeNo(), product.getTotalFee());
             if (ResponseChecker.success(response)) {
-                return ResultMap.ok(product.getPayDevice(), response.getBody());
+                return ResultMap.ok(product.getPayDevice(), response.getBody(), product.getOutTradeNo());
             } else {
                 return ResultMap.error(ResEnum.FAIL.getMsg());
             }

+ 2 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/WxPayService.java

@@ -155,7 +155,7 @@ public class WxPayService extends PayBaseService {
             throw new BaseException("微信PC支付链接urlCode为空");
         }
         //返回结果
-        return ResultMap.ok(product.getPayDevice(), urlCode);
+        return ResultMap.ok(product.getPayDevice(), urlCode, product.getOutTradeNo());
     }
 
     private ResultMap h5Pay(ProductPayParamBO product) {
@@ -176,7 +176,7 @@ public class WxPayService extends PayBaseService {
             throw new BaseException("微信h5支付urlCode转deepLink异常");
         }
         //返回结果
-        return ResultMap.ok(product.getPayDevice(), deepLink);
+        return ResultMap.ok(product.getPayDevice(), deepLink, product.getOutTradeNo());
     }
 
     private ResultMap miniAppPay(ProductPayParamBO product) {