Browse Source

查询富友支付订单状态

Yangzw 8 months ago
parent
commit
77308fede3

+ 12 - 4
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/app/order/AppTradeOrderController.java

@@ -38,9 +38,11 @@ import javax.validation.Valid;
 import java.util.List;
 import java.util.Map;
 
+import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
 import static cn.newfeifan.mall.framework.common.util.collection.CollectionUtils.convertSet;
 import static cn.newfeifan.mall.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
+import static cn.newfeifan.mall.module.pay.enums.ErrorCodeConstants.PAY_ORDER_NOT_FOUND;
 
 @Tag(name = "用户 App - 交易订单")
 @RestController
@@ -94,13 +96,19 @@ public class AppTradeOrderController {
 
     @PostMapping("/getFuYouPayOrderByStatus")
     @Operation(summary = "查询富友支付订单状态")
-    public CommonResult<PayOrderRespVO> getFuYouPayOrderByStatus(@RequestParam("id") Long id) {
-        log.info("getPayOrderByStatus2:=========id:{}",id);
-        PayOrderDO oldPayOrderDO = payOrderMapper.selectById(id);
+    @Parameter(name = "payOrderNo", description = "支付订单编号", required = true, example = "16103-202407151500201")
+    public CommonResult<PayOrderRespVO> getFuYouPayOrderByStatus(@RequestParam("id") Long payOrderNo) {
+        log.info("getPayOrderByStatus2:=========id:{}",payOrderNo);
+        PayOrderDO oldPayOrderDO = payOrderMapper.selectByPayOrderNo(payOrderNo);
+
+        // 若查无此订单
+        if(oldPayOrderDO == null){
+            throw exception(PAY_ORDER_NOT_FOUND);
+        }
 
         PayOrderDO newPayOrderDO = fuYouPayOrderService.getPayOrderByStatus(oldPayOrderDO);
 
-        return getPayOrderRespVOCommonResult(id, newPayOrderDO, oldPayOrderDO);
+        return getPayOrderRespVOCommonResult(oldPayOrderDO.getId(), newPayOrderDO, oldPayOrderDO);
     }
 
     @NotNull

+ 37 - 0
feifan-module-pay/feifan-module-pay-api/src/main/java/cn/newfeifan/mall/module/pay/enums/fuyouorder/AfterSaleOrderTypeEnum.java

@@ -0,0 +1,37 @@
+package cn.newfeifan.mall.module.pay.enums.fuyouorder;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 富友退款的订单类型
+ */
+
+@Getter
+@AllArgsConstructor
+public enum AfterSaleOrderTypeEnum {
+
+    ALIPAY("ALIPAY","(统一下单、条码支付、服务窗支付)"),
+    WECHAT("WECHAT","(统一下单、条码支付、公众号支付、小程序)"),
+    UNIONPAY("UNIONPAY","富友没有备注"),
+    WXAPP("WXAPP","(微信app)"),
+    ALIAPP("ALIAPP","(支付宝app)"),
+    WXH5("WXH5","(微信h5)"),
+    ALIH5("ALIH5","(支付宝h5)"),
+    WXBX("WXBX","(微信保险类)"),
+    ALBX("ALBX","(支付宝保险类)"),
+    WXXS("WXXS","(微信线上所有交易)(不支持线下类型)"),
+    ;
+
+
+    /**
+     * 类型
+     */
+    private final String type;
+
+    /**
+     * 描述
+     */
+    private final String describe;
+
+}

+ 31 - 0
feifan-module-pay/feifan-module-pay-api/src/main/java/cn/newfeifan/mall/module/pay/enums/fuyouorder/FuYouPayOrderTypeEnum.java

@@ -0,0 +1,31 @@
+package cn.newfeifan.mall.module.pay.enums.fuyouorder;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 富友支付订单的类型枚举
+ */
+
+@Getter
+@AllArgsConstructor
+public enum FuYouPayOrderTypeEnum {
+
+    JSAPI("JSAPI","公众号线下支付"),
+    APP("APP","app支付(暂不可用)"),
+    FWC("FWC","支付宝服务窗"),
+    LETPAY("LETPAY","小程序"),
+    WXBXJS("WXBXJS","(微信公众号保险类)"),
+    WXBXLET("WXBXLET","(微信小程序保险类)"),
+    WXBXAPP("WXBXAPP","(微信APP保险类)"),
+    ALBXJS("ALBXJS","(支付宝服务窗保险类)"),
+    APPLEPAY("APPLEPAY","相机扫码)"),
+    UNIONPAY("UNIONPAY","(云闪付扫码)"),
+    BESTPAY("BESTPAY","(翼支付js)"),
+    ;
+
+
+    private final String code;
+
+    private final String describe;
+}

+ 0 - 58
feifan-module-pay/feifan-module-pay-biz/src/main/java/cn/newfeifan/mall/module/pay/controller/app/fuyouorder/vo/Test.java

@@ -1,58 +0,0 @@
-package cn.newfeifan.mall.module.pay.controller.app.fuyouorder.vo;
-
-import cn.newfeifan.mall.module.pay.fuiou.reqdata.WxPreCreateDataReq;
-import cn.newfeifan.mall.module.pay.fuiou.util.DateUtils;
-import cn.newfeifan.mall.module.pay.fuiou.util.FuiouHttpPoster;
-import cn.newfeifan.mall.module.pay.fuiou.util.MD5;
-import com.alibaba.fastjson.JSON;
-
-import static cn.newfeifan.mall.module.pay.fuiou.client.WxPreCreateClient.privateKey;
-
-public class Test {
-    public static void main(String[] args) {
-        WxPreCreateDataReq req = new WxPreCreateDataReq();
-        FuiouHttpPoster http = new FuiouHttpPoster();
-        http.setCharset("utf-8");
-        http.setUrl("https://aipaytest.fuioupay.com/aggregatePay/wxPreCreate");
-        req.setTerm_id("88888888");
-        req.setTerm_ip("192.168.8.8");
-        req.setRandom_str(DateUtils.getCurrentDate("yyyyMMddHHmmss")
-                + "568974");
-        req.setMchnt_cd("0002900F1503036");
-        req.setTrade_type("JSAPI");
-//        req.setOpenid("oDax96l0bZdXqRQ2uVfn_2LV-DxM");//微信支付此字段必填
-//		req.setSub_openid("221122121");//支付宝支付此字段必填
-        req.setOrder_amt("1");
-        req.setGoods_des("测试订单");
-        req.setOpenid("oDax96l0bZdXqRQ2uVfn_2LV-DxM");
-        req.setSub_openid("oDax96l0bZdXqRQ2uVfn_2LV-DxM");
-        req.setSub_appid("wxe133514440a8829d");
-        req.setMchnt_order_no("1066" + "o202406121152101");//不能重复
-        req.setTxn_begin_ts(DateUtils.getCurrentDate("yyyyMMddHHmmss"));
-        req.setNotify_url("wwww.baidu.com");
-        req.setVersion("1.0");
-        StringBuilder sb = new StringBuilder();
-        sb.append(req.getMchnt_cd().trim()).append("|")
-                .append(req.getTrade_type().trim()).append("|")
-                .append(req.getOrder_amt().trim()).append("|")
-                .append(req.getMchnt_order_no().trim()).append("|")
-                .append(req.getTxn_begin_ts()).append("|")
-                .append(req.getGoods_des()).append("|")
-                .append(req.getTerm_id()).append("|")
-                .append(req.getTerm_ip()).append("|")
-                .append(req.getNotify_url()).append("|")
-                .append(req.getRandom_str()).append("|")
-                .append(req.getVersion()).append("|")
-                .append(privateKey);
-        req.setSign(MD5.MD5Encode(sb.toString()));
-        String res = null;
-        try {
-            res = http.newPost(JSON.toJSONString(req));
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-        System.out.println("=====resp=====");
-        System.out.println(res);
-    }
-
-}

+ 3 - 0
feifan-module-pay/feifan-module-pay-biz/src/main/java/cn/newfeifan/mall/module/pay/dal/mysql/order/PayOrderMapper.java

@@ -59,4 +59,7 @@ public interface PayOrderMapper extends BaseMapperX<PayOrderDO> {
                 .lt(PayOrderDO::getExpireTime, expireTime));
     }
 
+    default PayOrderDO selectByPayOrderNo(Long payOrderNo){
+        return selectOne(PayOrderDO::getPayOrderNo, payOrderNo);
+    }
 }

+ 2 - 4
feifan-module-pay/feifan-module-pay-biz/src/main/java/cn/newfeifan/mall/module/pay/service/fuyouorder/FiYouPayOrderServiceImpl.java

@@ -32,7 +32,6 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 
@@ -49,7 +48,6 @@ import static cn.newfeifan.mall.module.pay.enums.ErrorCodeConstants.CHANNEL_NOT_
 import static cn.newfeifan.mall.module.pay.enums.ErrorCodeConstants.SUBMIT_ORDER_ERROR;
 
 @Service
-@Validated
 @Slf4j
 public class FiYouPayOrderServiceImpl implements FuYouPayOrderService {
 
@@ -144,7 +142,7 @@ public class FiYouPayOrderServiceImpl implements FuYouPayOrderService {
             ObjectMapper mapper = new ObjectMapper();
             FuYouPaymentResponseVO resp = mapper.readValue(res, FuYouPaymentResponseVO.class);
 
-            if (!"000000".equals(resp.getResult_code())) {
+            if (!resultCode.equals(resp.getResult_code())) {
                 throw exception(SUBMIT_ORDER_ERROR);
             }
 
@@ -229,7 +227,7 @@ public class FiYouPayOrderServiceImpl implements FuYouPayOrderService {
             PayOrderExtensionDO payOrderExtensionDO = orderExtensionMapper.selectByPayId(payOrderDO.getId());
 
             // 修改订单状态
-            updateOrderStatus(payOrderExtensionDO,payOrderDO);
+            updateOrderStatus(payOrderExtensionDO, payOrderService.getOrder(payOrderDO.getId()));
         }