/**
|
* Alipay.com Inc. Copyright (c) 2004-2020 All Rights Reserved.
|
*/
|
package com.alipay.easysdk;
|
|
import com.alipay.easysdk.kernel.Config;
|
import com.alipay.easysdk.kms.aliyun.AliyunKMSConfig;
|
import com.google.gson.Gson;
|
import com.google.gson.reflect.TypeToken;
|
|
import java.io.InputStream;
|
import java.io.InputStreamReader;
|
import java.util.Map;
|
|
/**
|
* @author zhongyu
|
* @version $Id: TestAccount.java, v 0.1 2020年01月19日 4:42 PM zhongyu Exp $
|
*/
|
public class TestAccount {
|
/**
|
* 从文件中读取私钥
|
* <p>
|
* 注意:实际开发过程中,请务必注意不要将私钥信息配置在源码中(比如配置为常量或储存在配置文件的某个字段中等),因为私钥的保密等级往往比源码高得多,将会增加私钥泄露的风险。推荐将私钥信息储存在专用的私钥文件中,
|
* 将私钥文件通过安全的流程分发到服务器的安全储存区域上,仅供自己的应用运行时读取。
|
* <p>
|
* 此处为了单元测试执行的环境普适性,私钥文件配置在resources资源下,实际过程中请不要这样做。
|
*
|
* @param appId 私钥对应的APP_ID
|
* @return 私钥字符串
|
*/
|
private static String getPrivateKey(String appId) {
|
InputStream stream = TestAccount.class.getResourceAsStream("/fixture/privateKey.json");
|
Map<String, String> result = new Gson().fromJson(new InputStreamReader(stream), new TypeToken<Map<String, String>>() {}.getType());
|
return result.get(appId);
|
}
|
|
/**
|
* 从文件中读取阿里云AccessKey配置信息
|
* 此处为了单元测试执行的环境普适性,AccessKey信息配置在resources资源下,实际过程中请不要这样做。
|
* @param key AccessKey配置对应的key
|
* @return AccessKey配置字符串
|
*/
|
private static String getAliyunAccessKey(String key){
|
InputStream stream = TestAccount.class.getResourceAsStream("/fixture/aliyunAccessKey.json");
|
Map<String, String> result = new Gson().fromJson(new InputStreamReader(stream), new TypeToken<Map<String, String>>() {}.getType());
|
return result.get(key);
|
}
|
|
/**
|
* 线上小程序测试账号
|
*/
|
public static class Mini {
|
public static final Config CONFIG = getConfig();
|
|
public static Config getConfig() {
|
Config config = new Config();
|
config.protocol = "https";
|
config.gatewayHost = "openapi.alipay.com";
|
config.appId = "2019022663440152";
|
config.signType = "RSA2";
|
|
config.alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAumX1EaLM4ddn1Pia4SxTRb62aVYxU8I2mHMqrc"
|
+ "pQU6F01mIO/DjY7R4xUWcLi0I2oH/BK/WhckEDCFsGrT7mO+JX8K4sfaWZx1aDGs0m25wOCNjp+DCVBXotXSCurqgGI/9UrY+"
|
+ "QydYDnsl4jB65M3p8VilF93MfS01omEDjUW+1MM4o3FP0khmcKsoHnYGs21btEeh0LK1gnnTDlou6Jwv3Ew36CbCNY2cYkuyP"
|
+ "AW0j47XqzhWJ7awAx60fwgNBq6ZOEPJnODqH20TAdTLNxPSl4qGxamjBO+RuInBy+Bc2hFHq3pNv6hTAfktggRKkKzDlDEUwg"
|
+ "SLE7d2eL7P6rwIDAQAB";
|
config.merchantPrivateKey = getPrivateKey(config.appId);
|
config.notifyUrl = "https://www.test.com/callback";
|
return config;
|
}
|
}
|
|
/**
|
* 线上生活号测试账号
|
*/
|
public static class OpenLife {
|
public static final Config CONFIG = getConfig();
|
|
private static Config getConfig() {
|
Config config = new Config();
|
config.protocol = "https";
|
config.gatewayHost = "openapi.alipay.com";
|
config.appId = "2021002177673029";
|
config.signType = "RSA2";
|
|
config.alipayCertPath = "src/test/resources/fixture/alipayCertPublicKey_RSA2.crt";
|
config.alipayRootCertPath = "src/test/resources/fixture/alipayRootCert.crt";
|
config.merchantCertPath = "src/test/resources/fixture/appCertPublicKey_2021002177673029.crt";
|
config.merchantPrivateKey = getPrivateKey(config.appId);
|
return config;
|
}
|
}
|
|
/**
|
* Aliyun KMS签名测试账号
|
*/
|
public static class AliyunKMS {
|
public static final AliyunKMSConfig CONFIG = getConfig();
|
|
private static AliyunKMSConfig getConfig() {
|
AliyunKMSConfig config = new AliyunKMSConfig();
|
config.protocol = "https";
|
config.gatewayHost = "openapi.alipay.com";
|
config.appId = "2021001163614348";
|
config.signType = "RSA2";
|
config.notifyUrl = "https://www.test.com/callback";
|
|
config.alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiOgupSXhUE3GkMDeCpeDwoEM2z+krBpaKPFbfS" +
|
"JgFVoN/M1s62VC6LhFI9aL4F76bqMGilQPpe2ukW5UmLR+C3OmliuqE/v5/UEpasnndcZMEKadQbWOpQ4eBHGkKTASQhtbgYb3U" +
|
"WS+viD5MfHS0+3h+sko8cW06jONmjG2tvFpnmooIjMawXByK8/f4vBMBk4ZQQodo4TT18mhyyyIoilhLH2EatQp/lov54ZhwHi9" +
|
"8LXeLw7Yt4QK8q7u+lB34V8lsu9zVMEMZExhoblsdjgzFAY6KzCn/QGnQE5e54i59+wONAyf2npUkz4cpPDJPLQ7KBu1febsZjk" +
|
"g9vZrXwIDAQAB";
|
|
//如果使用阿里云KMS签名,则不需要配置私钥
|
//config.merchantPrivateKey = getPrivateKey(config.appId);
|
|
//如果使用第三方签名服务,则需要指定签名提供方名称,阿里云KMS的名称为"AliyunKMS"
|
config.signProvider = "AliyunKMS";
|
|
//如果使用阿里云KMS签名,需要更换为您的阿里云账号信息
|
config.aliyunAccessKeyId = getAliyunAccessKey("AccessKeyId");
|
config.aliyunAccessKeySecret = getAliyunAccessKey("AccessKeySecret");
|
config.kmsKeyId = "4358f298-8e30-4849-9791-52e68dbd9d1e";
|
config.kmsKeyVersionId = "e71daa69-c321-4014-b0c4-ba070c7839ee";
|
|
//如果使用阿里云KMS签名,需要更换为您的KMS服务地址
|
// KMS服务地址列表详情,请参考:
|
// https://help.aliyun.com/document_detail/69006.html?spm=a2c4g.11186623.2.9.783f77cfAoNhY6#concept-69006-zh
|
config.kmsEndpoint = "kms.cn-hangzhou.aliyuncs.com";
|
|
return config;
|
}
|
}
|
}
|