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