KKSU
2025-02-07 1ccd041defcd6abc731636ba8673718e784103f6
fix(pay): 修复订单重复支付问题

- 在处理支付回调之前,先检查订单是否已经支付成功
- 如果订单已支付,直接返回支付成功页面,避免重复处理
1 files modified
5 ■■■■■ changed files
src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java
@@ -172,6 +172,11 @@
        // 计算 skey 验证
        String preSkey = DigestUtils.md5Hex(tranID + orderId + status + domain + amount + currency);
        String calculatedSkey = DigestUtils.md5Hex(paydate + domain + preSkey + secretKey);
        MallOrderInfo mallOrderInfo = ValidateEntityUtils.ensureColumnReturnEntity(orderId, MallOrderInfo::getId, mallOrderInfoMapper::selectOne, "订单不存在");
        if("1".equals(mallOrderInfo.getPayResult())){
            return new FebsResponse().success().data("/pages/order/pay/paySuccess?amount="+ amount +"&type=3");
        }
        if (!calculatedSkey.equals(skey)) {
            throw new FebsException("订单回调失败,---"+orderId);