1.普通方式
public class PayConstants {
public static String generateQrcodeURL = "https://gw.open.icbc.com.cn/api/qrcode/V2/generate";
public static String scanPayURL = "https://gw.open.icbc.com.cn/api/qrcode/V2/pay";
public static String queryPayResultURL = "https://gw.open.icbc.com.cn/api/qrcode/V2/query";
public static String payRejectURL = "https://gw.open.icbc.com.cn/api/qrcode/V2/reject";
public static String payReverseURL = "https://gw.open.icbc.com.cn/api/qrcode/V2/reverse";
public static String queryRejectResultURL = "https://gw.open.icbc.com.cn/api/qrcode/reject/query/V3";
public static String AppId = "1000000000000000";//APP编号
public static String Mer_ID = "4402033*****29";//商户线下档案编号[商户号]
public static String Store_Code = "43533***44";//e生活档案编号
public static String private_key = "MIIEvoIBAQCDCwK+5ZEuOgxiOegGuVzzqw2nkBG5eLvN2PUdnOPhq5E5PA65nWnmpGUtXZ9y1dxbARUkogFueUcwmgFa/y3H0ZMH6g+lPS9c6zC2A2oLNZeGtm56yYbeyv5ARkEqIdcreHdoy5Y1pN0690GkPt07aia/Ku/7ry6ZDTbUZexSDFup56tOzDdR8Z93uwWhYZJsvdbhmlJZumKb8N05QeDLmvwYMSka8SwXsgYGyk1qewKf/YyKrKYSvma+F96g+qQAQwHdnMYrL8BfQR3zyIkBfhsgVZpV78dAgMBAAECggEAf4XBlsayowU/wVnebK0eadwepOaEcq05Xgf4JD+4DAVmPleyqRsa8IfaBt+243Lbb8JIw1ev4KCZJe4vZExTwBPTzVL0X01zP0kvd/qaT10zC5cMg5GReVz9qbvQ8LQyYLo7vB3fhuxj60K5icpApjYxY0evnb2yKNMhBvPoIrTXplQptlnOiLDQPC2LCGZGCgbU74zAZHEBVfQ3RiWEw2tefomdGNr/QBhhMbY/kWrLbmh1Hvc2m5piNRalDfPUqpfBnosQP6laedJ8y/7Umfhi2Q4ZXpDQOECX7d7BPb1fjYeurkPrkm/qjYbJKozKwMhrVWjrNW4Zn3Bd34qWoQKBgQC6m5+xG0jYWdX6A6uzJvVIp+3gVJOExYOwG/1q2Jye7ZVjunMbjL6O+nL2t952Ma/C7a4qk+ApqQ42Gn1+NeJ4stvh/82n0JS2kBOeuwir5NecDRJ6QVWQ3Nxr8Wl+FAgphn5swjOMbLYo7iF6giyooz8OH3JBmRuuE3SjMbjvGQKBgQC0dJ46RytOu81EyF0cXK+SvPv+JO86eZfjov4OUIi2pI0E6btnTCIIjzYdD5dNN2RfDiA6zlGDqvuUF47d7iqbCPNgsEhawkWZ0brJRMS+coiRILYtotxhnu5DIV4wdQkxaFMa5WYruN2FQV6VBOUD9chKdgRqebR1hwUH9htEpQKBgCG/9cDla2Zd0Rp3wX0UZbZvUNGK2mdgBbI7TbkeVi1UUPmJhjoMWYaoe1Rt6tk7oUtDC4X92sQOJFjar6m8+ynTR3t3dW2NhugB5NqHf0j/iZNateXQnTYnC+Kl9etsmhFQltr6wLH8E3IRp5JtqsARTl0yiMqec2gncqf1XTo5AoGAHjSvD54+F43EDFFllIvHL87Gd4IDMUyNKiNsV0UPvVLJ8BqXrfDGeZxPOIoVj21INckNiAplBp8mQWG4Hlnxc8YJxxN66QY/1EGQ/IOwUxik13YcSINMVGLgCwiY1Y+hnE2UK5pegc8N9XI9vL/2/bS0dBJRJul8VXfmVbDSW6kCgYAWqO1k+ItbXB7DrT0T8u75hnL3RAu41tdnPoh9Bt8BJBUIU7FyadName9JdnLvLJMssfxIDJw07WLen6R73K+vskSneuuS2X41fJPr0BXjdwT6ZluYHHyT42rYDPfVyjp39l5hhJfPB88i2I9X80iG9hbOal4fmlkK4ri6T9OaIg==";//通信私钥
public static String public_key = "MIGfMA0GCSqGSIb3DQEBAQUAA1C6NPym3zStvSoQayjYV+eIcZERkx31KhtFu9clZKgRTyPjdKMIth/wBtPKjL/5+PYalLdomM4ONthrPgnkN4x4R0+D4+EBpXo8gNiAFsNwIDAQAB";//通信公钥
public static String SIGN_TYPE_RSA2 = "RSA2";
}
2.json文件的方式配置
public static Map<String, Object> icbcConstantsmap = new HashMap<String, Object>();
static {
ClassPathResource classPathResource = new ClassPathResource("config/icbc.json");
try {
String icbcData = IOUtils.toString(classPathResource.getInputStream(), Charset.forName("UTF-8"));
icbcConstantsmap = JsonUtils.JsonToMapObj(icbcData);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
其中,config/icbc.json为json文件存放路径
{
"000001": {
"AppId":"100000000*******000",
"Mer_ID":"440*****89",
"Store_Code":"44******44",
"private_key":"******MIIEvAIBADANBgkq***hkll6*UdnOPhq***GUtXZ9y1dxbARUkogFueUcwmgFa/y3H0ZMH6g+lPS9c6zC2A2oLNZeGtm56yYbeyv5ARkEqIdcreHdoy5Y1pN0690GkPt07aia/Ku/7ry6ZDTbUZexSDFup56tOzDdR8Z93uwWhYZJsvdbhmlJZumKb8N05QeDLmvwYMSka8SwXsgYGyk1qewKf/YyKrKYSvma+F96g+qQAQwHdnMYrL8BfQR3zyIkBfhsgVZpV78dAgMBAAECggEAf4XBlsayowU/wVnebK0eadwepOaEcq05Xgf4JD+4DAVmPleyqRsa8IfaBt+243Lbb8JIw1ev4KCZJe4vZExTwBPTzVL0X01zP0kvd/qaT10zC5cMg5GReVz9qbvQ8LQyYLo7vB3fhuxj60K5icpApjYxY0evnb2yKNMhBvPoIrTXplQptlnOiLDQPC2LCGZGCgbU74zAZHEBVfQ3RiWEw2tefomdGNr/QBhhMbY/kWrLbmh1Hvc2m5piNRalDfPUqpfBnosQP6laedJ8y/7Umfhi2Q4ZXpDQOECX7d7BPb1fjYeurkPrkm/qjYbJKozKwMhrVWjrNW4Zn3Bd34qWoQKBgQC6m5+xG0jYWdX6A6uzJvVIp+3gVJOExYOwG/1q2Jye7ZVjunMbjL6O+nL2t952Ma/C7a4qk+ApqQ42Gn1+NeJ4stvh/82n0JS2kBOeuwir5NecDRJ6QVWQ3Nxr8Wl+FAgphn5swjOMbLYo7iF6giyooz8OH3JBmRuuE3SjMbjvGQKBgQC0dJ46RytOu81EyF0cXK+SvPv+JO86eZfjov4OUIi2pI0E6btnTCIIjzYdD5dNN2RfDiA6zlGDqvuUF47d7iqbCPNgsEhawkWZ0brJRMS+coiRILYtotxhnu5DIV4wdQkxaFMa5WYruN2FQV6VBOUD9chKdgRqebR1hwUH9htEpQKBgCG/9cDla2Zd0Rp3wX0UZbZvUNGK2mdgBbI7TbkeVi1UUPmJhjoMWYaoe1Rt6tk7oUtDC4X92sQOJFjar6m8+ynTR3t3dW2NhugB5NqHf0j/iZNateXQnTYnC+Kl9etsmhFQltr6wLH8E3IRp5JtqsARTl0yiMqec2gncqf1XTo5AoGAHjSvD54+F43EDFFllIvHL87Gd4IDMUyNKiNsV0UPvVLJ8BqXrfDGeZxPOIoVj21INckNiAplBp8mQWG4Hlnxc8YJxxN66QY/1EGQ/IOwUxik13YcSINMVGLgCwiY1Y+hnE2UK5pegc8N9XI9vL/2/bS0dBJRJul8VXfmVbDSW6kCgYAWqO1k+ItbXB7DrT0T8u75hnL3RAu41tdnPoh9Bt8BJBUIU7FyadName9JdnLvLJMssfxIDJw07WLen6R73K+vskSneuuS2X41fJPr0BXjdwT6ZluYHHyT42rYDPfVyjp39l5hhJfPB88i2I9X80iG9hbOal4fmlkK4ri6T9OaIg==",
"public_key":"MIGfMA0GCSqGSIb3DQEBAQUA*********IpiPEFAEDqRfNGAVvvH35yD****ceTMN1C6NPym3zStvSoQayjYV+eIcZERkx31KhtFu9clZKgRTyPjdKMIth/wBtPKjL/5+PYalLdomM4ONthrPgnkN4x4R0+D4+EBpXo8gNiAFsNwIDAQAB",
"SIGN_TYPE_RSA2":"RSA2",
"generateQrcodeURL":"https://gw.open.icbc.com.cn/api/qrcode/V2/generate",
"scanPayURL":"https://gw.open.icbc.com.cn/api/qrcode/V2/pay",
"queryPayResultURL":"https://gw.open.icbc.com.cn/api/qrcode/V2/query",
"payRejectURL":"https://gw.open.icbc.com.cn/api/qrcode/V2/reject",
"payReverseURL":"https://gw.open.icbc.com.cn/api/qrcode/V2/reverse",
"queryRejectResultURL":"https://gw.open.icbc.com.cn/api/qrcode/reject/query/V3"
},
"000002": {
"AppId":"",
"Mer_ID":"",
"Store_Code":"",
"private_key":"",
"public_key":"",
"SIGN_TYPE_RSA2":"RSA2",
"generateQrcodeURL":"",
"scanPayURL":"",
"queryPayResultURL":"",
"payRejectURL":"",
"payReverseURL":"",
"queryRejectResultURL":""
}
}
调用:
icbcpaymap = (Map<String, Object>) ICBCPayConstants.icbcConstantsmap.get(data.get("merchantId"));
DefaultIcbcClient client = new DefaultIcbcClient((String) icbcpaymap.get("AppId"),
(String) icbcpaymap.get("SIGN_TYPE_RSA2"), (String) icbcpaymap.get("private_key"),
(String) icbcpaymap.get("public_key"));