Administrator
8 hours ago 930968ab4101290b4ed6a01f706cb57bac3878d6
fix(payment): 修复BSPAY支付验证逻辑问题

- 修改签名验证注释,明确sign参数不参与签名计算
- 更新业务结果检查逻辑,兼容不同版本的返回码字段
- 添加对result_code为空的情况进行判断,避免空指针异常
- 改进错误信息提示,增加错误代码和描述信息的显示
1 files modified
6 ■■■■ changed files
src/main/java/cc/mrbird/febs/pay/service/BsPayService.java 6 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/pay/service/BsPayService.java
@@ -134,7 +134,7 @@
                    + (errCode != null ? " [" + errCode + ":" + errCodeDes + "]" : ""));
        }
        // 验证签名
        // 验证签名(sign 不参与签名)
        String respSign = json.getString("sign");
        if (StrUtil.isNotBlank(respSign)) {
            TreeMap<String, String> verifyParams = new TreeMap<>();
@@ -151,9 +151,9 @@
            }
        }
        // 检查业务结果
        // 检查业务结果:部分版本有 result_code,部分版本只有 return_code
        String resultCode = json.getString("result_code");
        if (!"SUCCESS".equals(resultCode)) {
        if (StrUtil.isNotBlank(resultCode) && !"SUCCESS".equals(resultCode)) {
            throw new RuntimeException("BSPAY 下单业务失败: " + json.getString("err_code_des"));
        }