重复支付错误信息优化

This commit is contained in:
gaoqr
2026-06-15 18:12:56 +08:00
parent 836e0039aa
commit 1a245115e0
3 changed files with 17 additions and 3 deletions
@@ -10,5 +10,5 @@ import lombok.Data;
*/ */
@Data @Data
public class ErrorData { public class ErrorData {
private String errorData; private Object[] errorData;
} }
@@ -159,4 +159,9 @@ public class PurchaseRecordDO extends BaseDO {
* 第三方支付链接 * 第三方支付链接
*/ */
private String displayContent; private String displayContent;
/**
* 支付订单id
*/
private Long payOrderId;
} }
@@ -173,7 +173,11 @@ public class PayOrderServiceImpl implements PayOrderService {
PurchaseRecordDO latestPendingPurchase = pendingPurchaseList.stream() PurchaseRecordDO latestPendingPurchase = pendingPurchaseList.stream()
.max(Comparator.comparing(BaseDO::getUpdateTime)) .max(Comparator.comparing(BaseDO::getUpdateTime))
.orElse(null); .orElse(null);
throw new ServiceException(ORG_PRODUCT_PURCHASE_WAIT_PAY_ERROR, new ErrorData().setErrorData(latestPendingPurchase.getDisplayContent()), payConfig.getPayExpireTime().toMinutes()); Object[] errorData = new Object[3];
errorData[0] = latestPendingPurchase.getPayOrderId();
errorData[1] = latestPendingPurchase.getPaymentMethod();
errorData[2] = latestPendingPurchase.getDisplayContent();
throw new ServiceException(ORG_PRODUCT_PURCHASE_WAIT_PAY_ERROR, new ErrorData().setErrorData(errorData), payConfig.getPayExpireTime().toMinutes());
} }
// 查询组织产品的首次购买记录 // 查询组织产品的首次购买记录
@@ -207,6 +211,7 @@ public class PayOrderServiceImpl implements PayOrderService {
// 购买记录入库,记录外部支付请求 // 购买记录入库,记录外部支付请求
purchaseRecordDO.setDisplayContent(payOrderRespDTO.getDisplayContent()); purchaseRecordDO.setDisplayContent(payOrderRespDTO.getDisplayContent());
purchaseRecordDO.setPayOrderId(payOrder.getId());
purchaseService.createRecord(purchaseRecordDO); purchaseService.createRecord(purchaseRecordDO);
return payOrderRespDTO; return payOrderRespDTO;
@@ -247,7 +252,11 @@ public class PayOrderServiceImpl implements PayOrderService {
PurchaseRecordDO latestPendingPurchase = pendingPurchaseList.stream() PurchaseRecordDO latestPendingPurchase = pendingPurchaseList.stream()
.max(Comparator.comparing(BaseDO::getUpdateTime)) .max(Comparator.comparing(BaseDO::getUpdateTime))
.orElse(null); .orElse(null);
throw new ServiceException(ORG_PRODUCT_PURCHASE_WAIT_PAY_ERROR, new ErrorData().setErrorData(latestPendingPurchase.getDisplayContent()), payConfig.getPayExpireTime().toMinutes()); Object[] errorData = new Object[3];
errorData[0] = latestPendingPurchase.getPayOrderId();
errorData[1] = latestPendingPurchase.getPaymentMethod();
errorData[2] = latestPendingPurchase.getDisplayContent();
throw new ServiceException(ORG_PRODUCT_PURCHASE_WAIT_PAY_ERROR, new ErrorData().setErrorData(errorData), payConfig.getPayExpireTime().toMinutes());
} }
// 查询组织产品的首次购买记录 // 查询组织产品的首次购买记录