Administrator
6 days ago bd0f33bb7cbcca5eec92325c350bc7fbc366b609
src/main/java/cc/mrbird/febs/pay/service/LwPayService.java
@@ -46,6 +46,15 @@
    /** LWPAY API 基础地址 */
    private static final String LWPAY_BASE_URL = "https://lwpay.live";
    /**
     * 参与签名的字段白名单
     * 签名只包含这 7 个业务必传字段,pay_productname / pay_attach / pay_md5sign 不参与签名
     */
    private static final String[] SIGN_FIELD_KEYS = {
            "pay_memberid", "pay_orderid", "pay_applydate",
            "pay_bankcode", "pay_notifyurl", "pay_callbackurl", "pay_amount"
    };
    // ==================== 代收接口 ====================
    /**
@@ -78,8 +87,15 @@
            params.put("pay_attach", "network:" + network);
        }
        // 生成签名
        String sign = generateSign(params, secretKey);
        // 签名:仅使用白名单中的 7 个业务必传字段
        TreeMap<String, String> signParams = new TreeMap<>();
        for (String key : SIGN_FIELD_KEYS) {
            String val = params.get(key);
            if (StrUtil.isNotBlank(val)) {
                signParams.put(key, val);
            }
        }
        String sign = generateSign(signParams, secretKey);
        params.put("pay_md5sign", sign);
        log.info("LWPAY 代收请求: memberId={}, orderNo={}, amount={}, bankCode={}",