修复了罚单履约与回退机制

This commit is contained in:
2026-07-10 15:18:45 +08:00
parent e123510185
commit 5eebbfbff1
3 changed files with 61 additions and 3 deletions

View File

@@ -602,7 +602,24 @@ class ShangjiaChenggong(APIView):
'message': '订单不存在或不属于当前用户'
}, status=status.HTTP_400_BAD_REQUEST)
# 3. 检查订单状态是否为已支付3
# 3. 订单未支付时,尝试补偿履约(回调延迟/失败时通过轮询兜底
if order.zhuangtai == 9:
from jituan.services.czjilu_fulfill import confirm_czjilu_paid, CzjiluFulfillError
try:
confirm_czjilu_paid(dingdanid, request.user.UserUID, expected_leixing=4)
order = Czjilu.query.get(
dingdan_id=dingdanid,
yonghuid=request.user.UserUID,
leixing=4
)
except CzjiluFulfillError as exc:
logger.info(f"商家充值确认未就绪 {dingdanid}: {exc}")
return Response({
'code': 400,
'message': '订单尚未支付完成'
}, status=status.HTTP_400_BAD_REQUEST)
# 4. 检查订单状态是否为已支付3
if order.zhuangtai != 3:
logger.info(f"商家订单{dingdanid}尚未支付完成,当前状态: {order.zhuangtai}")
return Response({
@@ -610,7 +627,7 @@ class ShangjiaChenggong(APIView):
'message': '订单尚未支付完成'
}, status=status.HTTP_400_BAD_REQUEST)
# 4. 获取商家余额(通过反向查询)
# 5. 获取商家余额(通过反向查询)
try:
shangjia = request.user.ShopProfile
yue = float(shangjia.yue) # 转为浮点数方便前端处理