|
|
@@ -6,11 +6,12 @@ import cn.hutool.core.util.StrUtil;
|
|
|
import com.alipay.api.AlipayApiException;
|
|
|
import com.alipay.api.AlipayClient;
|
|
|
import com.alipay.api.AlipayRequest;
|
|
|
-import com.alipay.api.AlipayResponse;
|
|
|
import com.alipay.api.domain.AlipayTradePagePayModel;
|
|
|
import com.alipay.api.domain.AlipayTradeWapPayModel;
|
|
|
import com.alipay.api.request.AlipayTradePagePayRequest;
|
|
|
import com.alipay.api.request.AlipayTradeWapPayRequest;
|
|
|
+import com.alipay.api.request.AlipayUserInfoShareRequest;
|
|
|
+import com.alipay.api.response.AlipayUserInfoShareResponse;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.cyksj.common.EnvCommonService;
|
|
|
@@ -210,6 +211,12 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
|
|
|
.gt(ZfbShopOrderDayLimit::getDayRemainOrders, 0)
|
|
|
.gt(ZfbShopOrderDayLimit::getHourLimitOrders, 0));
|
|
|
for (ZfbShopOrderDayLimit orderDayLimit : orderDayLimits) {
|
|
|
+ //检测商户状态
|
|
|
+ if (!checkZfbShopStatus(orderDayLimit.getAppId())) {
|
|
|
+ orderDayLimit.setStatus(false);
|
|
|
+ zfbShopOrderDayLimitMapper.updateById(orderDayLimit);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
Integer update = zfbShopOrderDayLimitMapper.decrRemainOrdersById(orderDayLimit.getId());
|
|
|
if (update == 1) {
|
|
|
return orderDayLimit;
|
|
|
@@ -249,21 +256,9 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
|
|
|
alipayRequest.setNotifyUrl(notifyUrl);
|
|
|
String form = null;
|
|
|
try {
|
|
|
- AlipayResponse alipayResponse = alipayClient.pageExecute(alipayRequest);
|
|
|
- if (!alipayResponse.isSuccess()) {
|
|
|
- String shopId = orderPayBuilderDto.getShopId();
|
|
|
- ZfbShopOrderDayLimit dayLimit = zfbShopOrderDayLimitMapper.selectOne(Wrappers.lambdaQuery(ZfbShopOrderDayLimit.class)
|
|
|
- .eq(ZfbShopOrderDayLimit::getAppId, shopId)
|
|
|
- .last("limit 1"));
|
|
|
- if (dayLimit != null) {
|
|
|
- dayLimit.setStatus(false);
|
|
|
- zfbShopOrderDayLimitMapper.updateById(dayLimit);
|
|
|
- }
|
|
|
- throw BusinessRuntimeException.getInstance("支付异常,请刷新页面重试");
|
|
|
- }
|
|
|
//调用SDK生成表单
|
|
|
//pagePay 统一下单接口
|
|
|
- form = alipayResponse.getBody();
|
|
|
+ form = alipayClient.pageExecute(alipayRequest).getBody();
|
|
|
} catch (AlipayApiException e) {
|
|
|
log.error("支付宝生成表单错误:{}", StringUtil.getErrorText(e));
|
|
|
}
|
|
|
@@ -483,4 +478,31 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
|
|
|
notifyUrl,
|
|
|
returnUrl);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 检测商户状态
|
|
|
+ */
|
|
|
+ public Boolean checkZfbShopStatus(String shopId) {
|
|
|
+ // 创建API请求对象
|
|
|
+ AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest();
|
|
|
+ try {
|
|
|
+ AlipayClient alipayClient = AliPayClientFactory.getAlipayClient(shopId);
|
|
|
+ // 发送请求
|
|
|
+ AlipayUserInfoShareResponse response = alipayClient.certificateExecute(request);
|
|
|
+ // 处理响应
|
|
|
+ if (response.isSuccess()) {
|
|
|
+ String userStatus = response.getUserStatus();
|
|
|
+ log.info("商户状态: " + userStatus);
|
|
|
+ if (!"T".equals(userStatus)) {
|
|
|
+ log.error("{}商户账户存在异常,请及时处理!", shopId);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ log.error("错误码:" + response.getCode() + ",错误信息:" + response.getSubMsg());
|
|
|
+ } catch (AlipayApiException e) {
|
|
|
+ log.error("接口调用异常: {}", StringUtil.getErrorText(e));
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|