Procházet zdrojové kódy

Merge branch 'default_zfb' into pre

# Conflicts:
#	netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java
zoujiajian před 2 roky
rodič
revize
6cc1011a11

+ 1 - 0
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -1082,6 +1082,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		String payTimeStr = params.get("gmt_payment");
 		//买家支付宝账号
 		String buyerId = Optional.ofNullable(params.get("buyer_id")).orElse(params.get("buyer_open_id"));
+		log.info("支付宝回调信息:{}", Jsons.toJson(params));
 		if (!orderDon.getStatus().equals(OrderDon.Status.noPayment) && !orderDon.getStatus().equals(OrderDon.Status.close)) {
 			log.info("支付宝已回调,重复修改状态 id:{}", orderDon.getId());
 			return;

+ 27 - 10
netflix-service/src/main/java/com/cyksj/service/pay/impl/TransferFuncServiceImpl.java

@@ -19,6 +19,7 @@ import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.snowflake.Sequence;
 import com.cyksj.common.util.Jsons;
 import com.cyksj.common.util.SmsUtil;
+import com.cyksj.common.util.StringUtil;
 import com.cyksj.config.zfb.AliPayClientFactory;
 import com.cyksj.config.zfb.ZfbProductCode;
 import com.cyksj.dto.Result;
@@ -87,13 +88,18 @@ public class TransferFuncServiceImpl implements TransferFuncService {
 		if (!redisService.setNx(key, applyMoneyReq.getUserId(), RedisService.key.APPLY_MONEY_DAY_LIMIT_KEY.getTimeout())) {
 			throw BusinessRuntimeException.getInstance("每天仅可提现一次");
 		}
-		Result result = commonApplyMoney(applyMoneyReq);
-		if (result.isFlag()) {
-			redisService.set(key, applyMoneyReq.getUserId(), RedisService.key.APPLY_MONEY_DAY_LIMIT_KEY.getTimeout());
-		} else {
+		try {
+			Result result = commonApplyMoney(applyMoneyReq);
+			if (result.isFlag()) {
+				redisService.set(key, applyMoneyReq.getUserId(), RedisService.key.APPLY_MONEY_DAY_LIMIT_KEY.getTimeout());
+			} else {
+				redisService.del(key);
+			}
+			return result;
+		} catch (Exception e) {
 			redisService.del(key);
+			throw BusinessRuntimeException.getInstance(StringUtil.getErrorMsg(e));
 		}
-		return result;
 	}
 
 	@Override
@@ -103,13 +109,18 @@ public class TransferFuncServiceImpl implements TransferFuncService {
 		if (!redisService.setNx(key, applyMoneyReq.getUserId(), RedisService.key.APPLY_MONEY_DAY_LIMIT_KEY.getTimeout())) {
 			throw BusinessRuntimeException.getInstance("每天仅可提现一次");
 		}
-		Result result = yhShopApplyMoney(applyMoneyReq);
-		if (result.isFlag()) {
-			redisService.set(key, applyMoneyReq.getUserId(), RedisService.key.APPLY_MONEY_DAY_LIMIT_KEY.getTimeout());
-		} else {
+		try {
+			Result result = yhShopApplyMoney(applyMoneyReq);
+			if (result.isFlag()) {
+				redisService.set(key, applyMoneyReq.getUserId(), RedisService.key.APPLY_MONEY_DAY_LIMIT_KEY.getTimeout());
+			} else {
+				redisService.del(key);
+			}
+			return result;
+		} catch (Exception e) {
 			redisService.del(key);
+			throw BusinessRuntimeException.getInstance(StringUtil.getErrorMsg(e));
 		}
-		return result;
 	}
 
 	@Override
@@ -324,6 +335,9 @@ public class TransferFuncServiceImpl implements TransferFuncService {
 					if (alipayResponse.getSubMsg().contains("冻结")) {
 						return GatewayResponse.FAIL.newBuilder().setMsg("目前财务清账中,48小时后可提现").toResult();
 					}
+					if (alipayResponse.getSubMsg().contains("余额不足")) {
+						return GatewayResponse.FAIL.newBuilder().setMsg("转账失败,请联系客服").toResult();
+					}
 					return GatewayResponse.FAIL.newBuilder().setMsg(alipayResponse.getSubMsg()).toResult();
 				}
 			}
@@ -418,6 +432,9 @@ public class TransferFuncServiceImpl implements TransferFuncService {
 					if (alipayResponse.getSubMsg().contains("冻结")) {
 						return GatewayResponse.FAIL.newBuilder().setMsg("目前财务清账中,48小时后可提现").toResult();
 					}
+					if (alipayResponse.getSubMsg().contains("余额不足")) {
+						return GatewayResponse.FAIL.newBuilder().setMsg("转账失败,请联系客服").toResult();
+					}
 					return GatewayResponse.FAIL.newBuilder().setMsg(alipayResponse.getSubMsg()).toResult();
 				}
 			}