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;
|
}
|
|
}
|
|
|