Explorar o código

update:查询支付订单

yonge %!s(int64=4) %!d(string=hai) anos
pai
achega
fb1279e509

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/PayStatus.java

@@ -0,0 +1,23 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum PayStatus implements BaseEnum<String, PayStatus> {
+
+	FAILED("支付失败"), WAIT_PAY("待支付"), PAYING("支付中"), SUCCESSED("支付成功");
+
+	private String desc;
+
+	private PayStatus(String desc) {
+		this.desc = desc;
+	}
+
+	@Override
+	public String getCode() {
+		return this.name();
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+}

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -15,6 +15,7 @@ import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.enums.PayStatus;
 import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -185,5 +186,7 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
     void callOrderCallBack(StudentPaymentOrder order) throws Exception;
     
     int batchUpdate(List<StudentPaymentOrder> studentPaymentOrderList);
+    
+    PayStatus queryPayStatus(String paymentChannel, String orderNo, String transNo) throws Exception;
 
 }

+ 46 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -31,6 +31,7 @@ import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.enums.PayStatus;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
 import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
@@ -645,4 +646,49 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
 	public int batchUpdate(List<StudentPaymentOrder> studentPaymentOrderList) {
 		return studentPaymentOrderDao.batchUpdate(studentPaymentOrderList);
 	}
+
+	@Override
+	public PayStatus queryPayStatus(String paymentChannel, String orderNo, String transNo) throws Exception {
+		if (StringUtils.isBlank(transNo)) {
+			return PayStatus.FAILED;
+		}
+
+		if (StringUtils.equals(paymentChannel, "ADAPAY")) {
+			Map<String, Object> payment = Payment.queryPayment(transNo);
+			String status = (String) payment.get("status");
+			if (status.equals("succeeded")) {
+				return PayStatus.SUCCESSED;
+			} else if (status.equals("failed")) {
+				return PayStatus.FAILED;
+			} else {
+				return PayStatus.PAYING;
+			}
+		} else if (StringUtils.equals(paymentChannel, "YQPAY")) {
+			String notifyUrl = ""; // 回调地址
+			Map<String, Object> resultMap = new LinkedHashMap<>();
+			resultMap.put("merOrderNoList", orderNo);
+			Map<String, Object> requestMap = YqPayUtil.getRequestMap(notifyUrl, resultMap);
+
+			RsqMsg rsqMsg = new RsqMsg(requestMap);
+
+			Msg queryRs = yqPayFeignService.orderQuery(rsqMsg);
+
+			if (queryRs.getCode().equals("88")) {
+				// 更新订单状态
+				String responseParameters = queryRs.getResponseParameters();
+				List<Map<String, String>> responseList = JSON.parseObject(responseParameters, List.class);
+				for (Map<String, String> response : responseList) {
+
+					if (StringUtils.equals(response.get("tradeState"), "1")) {
+						return PayStatus.SUCCESSED;
+					} else if (StringUtils.equals(response.get("tradeState"), "0") || StringUtils.equals(response.get("tradeState"), "7")) {
+						return PayStatus.FAILED;
+					} else {
+						return PayStatus.PAYING;
+					}
+				}
+			}
+		}
+		throw new BizException("支付渠道错误");
+	}
 }