liujie
2025-12-15 85ed5ccbecbcb6e129fb9e5d08c9f7feb157a29c
ruoyi-system/src/main/java/com/ruoyi/system/config/IcbcConfig.java
@@ -1,136 +1,136 @@
package com.ruoyi.system.config;
import com.icbc.api.DefaultIcbcClient;
import com.icbc.api.IcbcConstants;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
 * @description:
 * @author: yangchuan
 * @create: 2024-11-18 17:10
 */
@Component
@Data
public class IcbcConfig {
    /**
     * 聚合支付B2C线上消费下单接口url (无界面)
     */
    @Value("${icbc.api.pay-url}")
    private String apiPayUrl;
    /**
     * 订单拆分请求url
     */
    @Value("${icbc.api.suborder-url}")
    private String apiSubOrderUrl;
    /**
     * 订单拆分前退款url
     */
    @Value("${icbc.api.refund-url}")
    private String refundUrl;
    /**
     * 订单拆分后退款url
     */
    @Value("${icbc.api.sub-order-refund-url}")
    private String subOrderRefundUrl;
    /**
     * 订单支付查询url
     */
    @Value("${icbc.api.order-pay-url}")
    private String selectOrderPayUrl;
    /**
     * 订单退款查询url
     */
    @Value("${icbc.api.order-refund-url}")
    private String selectOrderRefundUrl;
    /**
     * 我方私钥,用于签名请求
     */
    @Value("${icbc.keys.my-private-key}")
    private String myPrivateKey;
    /**
     * 对方(即工行)网关公钥,用于验证返回的签名
     */
    @Value("${icbc.keys.api-gw-public-key}")
    private String apiGwPublicKey;
    /**
     * APP编号
     */
    @Value("${icbc.app-id}")
    private String appId;
    /**
     * 商户编号
     */
    @Value("${icbc.mer-id}")
    private String merId;
    /**
     * 收单产品协议编号
     */
    @Value("${icbc.mer-prtcl-no}")
    private String merPrtclNo;
    /**
     * 设备号
     */
    @Value("${icbc.decive-info}")
    private String deciveInfo;
    /**
     * 完整回调通知地址
     */
    @Value("${icbc.api.notify-url}")
    private String notifyUrl;
    /**
     * 完整回调通知地址
     */
    @Value("${icbc.api.notify-url-method}")
    private String notifyUrlMethod;
    /**
     * 微信APP编号
     */
    @Value("${icbc.wx-app-id}")
    private String wxAppId;
    /**
     * 微信公众号APP编号
     */
    @Value("${icbc.wx-gzh-app-id}")
    private String wxGzhAppId;
    /**
     * 订单超时时间,单位为分钟
     */
    @Value("${icbc.expire-time}")
    private String expireTime;
    private volatile static DefaultIcbcClient instance = null;
    public static DefaultIcbcClient getInstance(IcbcConfig icbcConfig) {
        if (instance == null) {
            synchronized (IcbcConfig.class) {
                if (instance == null) {
                    instance = new DefaultIcbcClient(icbcConfig.appId, IcbcConstants.SIGN_TYPE_RSA2, icbcConfig.myPrivateKey, icbcConfig.apiGwPublicKey);
                }
            }
        }
        return instance;
    }
}
package com.ruoyi.system.config;
import com.icbc.api.DefaultIcbcClient;
import com.icbc.api.IcbcConstants;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
 * @description:
 * @author: yangchuan
 * @create: 2024-11-18 17:10
 */
//@Component
@Data
public class IcbcConfig {
    /**
     * 聚合支付B2C线上消费下单接口url (无界面)
     */
    @Value("${icbc.api.pay-url}")
    private String apiPayUrl;
    /**
     * 订单拆分请求url
     */
    @Value("${icbc.api.suborder-url}")
    private String apiSubOrderUrl;
    /**
     * 订单拆分前退款url
     */
    @Value("${icbc.api.refund-url}")
    private String refundUrl;
    /**
     * 订单拆分后退款url
     */
    @Value("${icbc.api.sub-order-refund-url}")
    private String subOrderRefundUrl;
    /**
     * 订单支付查询url
     */
    @Value("${icbc.api.order-pay-url}")
    private String selectOrderPayUrl;
    /**
     * 订单退款查询url
     */
    @Value("${icbc.api.order-refund-url}")
    private String selectOrderRefundUrl;
    /**
     * 我方私钥,用于签名请求
     */
    @Value("${icbc.keys.my-private-key}")
    private String myPrivateKey;
    /**
     * 对方(即工行)网关公钥,用于验证返回的签名
     */
    @Value("${icbc.keys.api-gw-public-key}")
    private String apiGwPublicKey;
    /**
     * APP编号
     */
    @Value("${icbc.app-id}")
    private String appId;
    /**
     * 商户编号
     */
    @Value("${icbc.mer-id}")
    private String merId;
    /**
     * 收单产品协议编号
     */
    @Value("${icbc.mer-prtcl-no}")
    private String merPrtclNo;
    /**
     * 设备号
     */
    @Value("${icbc.decive-info}")
    private String deciveInfo;
    /**
     * 完整回调通知地址
     */
    @Value("${icbc.api.notify-url}")
    private String notifyUrl;
    /**
     * 完整回调通知地址
     */
    @Value("${icbc.api.notify-url-method}")
    private String notifyUrlMethod;
    /**
     * 微信APP编号
     */
    @Value("${icbc.wx-app-id}")
    private String wxAppId;
    /**
     * 微信公众号APP编号
     */
    @Value("${icbc.wx-gzh-app-id}")
    private String wxGzhAppId;
    /**
     * 订单超时时间,单位为分钟
     */
    @Value("${icbc.expire-time}")
    private String expireTime;
    private volatile static DefaultIcbcClient instance = null;
    public static DefaultIcbcClient getInstance(IcbcConfig icbcConfig) {
        if (instance == null) {
            synchronized (IcbcConfig.class) {
                if (instance == null) {
                    instance = new DefaultIcbcClient(icbcConfig.appId, IcbcConstants.SIGN_TYPE_RSA2, icbcConfig.myPrivateKey, icbcConfig.apiGwPublicKey);
                }
            }
        }
        return instance;
    }
}