|
|
@@ -538,8 +538,11 @@ public class HahaCallbackServiceImpl implements HahaCallbackService {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (orderId != null && orderId.equals(localOrder.getOrderNo())) {
|
|
|
- log.info("订单已处理过,跳过更新 - orderId: {}", orderId);
|
|
|
+ // 如果订单已有金额且与回调金额一致,说明是重复回调,跳过
|
|
|
+ if (orderMoney != null && localOrder.getTotalAmount() != null
|
|
|
+ && localOrder.getTotalAmount().compareTo(BigDecimal.ZERO) > 0
|
|
|
+ && localOrder.getTotalAmount().compareTo(new BigDecimal(orderMoney.toString())) == 0) {
|
|
|
+ log.info("订单已处理过(金额一致),跳过更新 - orderId: {}", orderId);
|
|
|
saveOrderInfoToRedis(localOrder, activityId, orderId, orderMoney, orderDetail);
|
|
|
return;
|
|
|
}
|
|
|
@@ -870,7 +873,7 @@ public class HahaCallbackServiceImpl implements HahaCallbackService {
|
|
|
private void updateOrderFromCallback(Order order, String orderId, String activityId,
|
|
|
Object orderMoney, String orderDetail,
|
|
|
String orderName, String orderGoodsStr) {
|
|
|
- order.setOrderNo(orderId);
|
|
|
+ // 不覆盖本地生成的订单号,哈哈的 order_id 仅作为字段记录
|
|
|
order.setActivityId(activityId);
|
|
|
|
|
|
if (orderName != null && !orderName.isEmpty()) {
|