多商户配置

This commit is contained in:
2023-08-15 11:02:02 +08:00
parent 713e057769
commit 7c640f13fb
11 changed files with 207 additions and 29 deletions

View File

@@ -90,7 +90,7 @@ public class MemberService {
@Autowired
private OrderService orderService;
@Value("${adapay.appId}")
@Value("${adapay.jsowell.appId}")
private String ADAPAY_APP_ID;
@Value("${adapay.callback}")

View File

@@ -162,12 +162,19 @@ wechat:
adapay:
debugFlag: true
prodMode: false
apiKey: api_live_b9bff039-0598-4491-88e7-06ca6dc7289e
mockApiKey: api_test_15662261-8123-4b51-95d9-ad0af60eab53
rsaPrivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAOl7qJyrkrks7FKnBPr/Sngub897Ni5Bkn5pEa81zfs+4LrYsuWZQ8G1n7Q8/rjH4G/T7vPX+So41vNU74Sqn6E1b3BpW+wWBULhs9p1JSPT7Kzima4FmPigUr80NLrlVKn5bW+V4/odpN+bJWvpxdd024edHAD8mXX1M1N1lU5ZAgMBAAECgYA+mxbiM6tbFe2kV/6g4vVv9luq0cn8az7BwKCqT44U8Y5G67ZElG0zsuTI6pYOrCHFOpnXLrE0HhudEchL1YiJqW/SDKaoC4oDZf5nybhh11kOR3N5maLqvUz/WxdNy17th/2XxqVfTTu752X9yeeoXDj89N5OxyMl0jmxlhWbgQJBAPeoitR7FCxcjKtcKsEyrtV3T0H2WtQ2Pbku7CGe6VCtL4+DJNeUentn7plBj4IhbH3EwNmyCYzNlfp0X2d8fWkCQQDxWONjt1vV/dyKQYRvSVw/SWQWlR7g2OnHZokU2SNeewiCX2umCdYKh0doN0JHbSTLOGG5IA3+6Vxam+9hzPtxAkEAjr+QHf8/Vn6V+mOqpSdgjNwzS/MC0ZTeKPI52vsswnrAkjjmMHh9zMnQRnf6juhTD38sJY6wYH9TdkRDhXPFGQJATiFYe4+AS2ZDXv6WwPAezN4VaLodpOyTwdmPxxAEQzHRL2N0levZPs9MbpB1BGpw3tkBycx2u28QVsTkWeTiAQJAGRsAVr6Rhhdaq2vTjt9orhMVwt6BCoSQ0zzHSYilv4PMOtSu1Pyt4K8BDv3gjEyAi1GtE7kkJ0dcbsvOGiLzqQ==
appId: app_d0c80cb1-ffc8-48cb-a030-fe9bec823aaa
callback: https://api.jsowellcloud.com/uniapp/pay/adapayCallback
refundCallback: https://api.jsowellcloud.com/uniapp/pay/adapayRefundCallback
jsowell:
apiKey: api_live_b9bff039-0598-4491-88e7-06ca6dc7289e
mockApiKey: api_test_15662261-8123-4b51-95d9-ad0af60eab53
rsaPrivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAOl7qJyrkrks7FKnBPr/Sngub897Ni5Bkn5pEa81zfs+4LrYsuWZQ8G1n7Q8/rjH4G/T7vPX+So41vNU74Sqn6E1b3BpW+wWBULhs9p1JSPT7Kzima4FmPigUr80NLrlVKn5bW+V4/odpN+bJWvpxdd024edHAD8mXX1M1N1lU5ZAgMBAAECgYA+mxbiM6tbFe2kV/6g4vVv9luq0cn8az7BwKCqT44U8Y5G67ZElG0zsuTI6pYOrCHFOpnXLrE0HhudEchL1YiJqW/SDKaoC4oDZf5nybhh11kOR3N5maLqvUz/WxdNy17th/2XxqVfTTu752X9yeeoXDj89N5OxyMl0jmxlhWbgQJBAPeoitR7FCxcjKtcKsEyrtV3T0H2WtQ2Pbku7CGe6VCtL4+DJNeUentn7plBj4IhbH3EwNmyCYzNlfp0X2d8fWkCQQDxWONjt1vV/dyKQYRvSVw/SWQWlR7g2OnHZokU2SNeewiCX2umCdYKh0doN0JHbSTLOGG5IA3+6Vxam+9hzPtxAkEAjr+QHf8/Vn6V+mOqpSdgjNwzS/MC0ZTeKPI52vsswnrAkjjmMHh9zMnQRnf6juhTD38sJY6wYH9TdkRDhXPFGQJATiFYe4+AS2ZDXv6WwPAezN4VaLodpOyTwdmPxxAEQzHRL2N0levZPs9MbpB1BGpw3tkBycx2u28QVsTkWeTiAQJAGRsAVr6Rhhdaq2vTjt9orhMVwt6BCoSQ0zzHSYilv4PMOtSu1Pyt4K8BDv3gjEyAi1GtE7kkJ0dcbsvOGiLzqQ==
appId: app_d0c80cb1-ffc8-48cb-a030-fe9bec823aaa
wechatAppId: wxbb3e0d474569481d
xixiao:
apiKey: 54135135
mockApiKey: 54135135-8123-4b51-95d9-ad0af60eab53
rsaPrivateKey: 54135135/Sngub897Ni5Bkn5pEa81zfs+4LrYsuWZQ8G1n7Q8/rjH4G/T7vPX+So41vNU74Sqn6E1b3BpW+wWBULhs9p1JSPT7Kzima4FmPigUr80NLrlVKn5bW+V4/odpN+bJWvpxdd024edHAD8mXX1M1N1lU5ZAgMBAAECgYA+mxbiM6tbFe2kV/6g4vVv9luq0cn8az7BwKCqT44U8Y5G67ZElG0zsuTI6pYOrCHFOpnXLrE0HhudEchL1YiJqW/SDKaoC4oDZf5nybhh11kOR3N5maLqvUz/WxdNy17th/2XxqVfTTu752X9yeeoXDj89N5OxyMl0jmxlhWbgQJBAPeoitR7FCxcjKtcKsEyrtV3T0H2WtQ2Pbku7CGe6VCtL4+DJNeUentn7plBj4IhbH3EwNmyCYzNlfp0X2d8fWkCQQDxWONjt1vV/dyKQYRvSVw/SWQWlR7g2OnHZokU2SNeewiCX2umCdYKh0doN0JHbSTLOGG5IA3+6Vxam+9hzPtxAkEAjr+QHf8/Vn6V+mOqpSdgjNwzS/MC0ZTeKPI52vsswnrAkjjmMHh9zMnQRnf6juhTD38sJY6wYH9TdkRDhXPFGQJATiFYe4+AS2ZDXv6WwPAezN4VaLodpOyTwdmPxxAEQzHRL2N0levZPs9MbpB1BGpw3tkBycx2u28QVsTkWeTiAQJAGRsAVr6Rhhdaq2vTjt9orhMVwt6BCoSQ0zzHSYilv4PMOtSu1Pyt4K8BDv3gjEyAi1GtE7kkJ0dcbsvOGiLzqQ==
appId: 54135135
wechatAppId: 54135135
#高德地图相关配置

View File

@@ -160,12 +160,18 @@ wechat:
adapay:
debugFlag: false
prodMode: true
apiKey: api_live_b9bff039-0598-4491-88e7-06ca6dc7289e
mockApiKey: api_test_15662261-8123-4b51-95d9-ad0af60eab53
rsaPrivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAOl7qJyrkrks7FKnBPr/Sngub897Ni5Bkn5pEa81zfs+4LrYsuWZQ8G1n7Q8/rjH4G/T7vPX+So41vNU74Sqn6E1b3BpW+wWBULhs9p1JSPT7Kzima4FmPigUr80NLrlVKn5bW+V4/odpN+bJWvpxdd024edHAD8mXX1M1N1lU5ZAgMBAAECgYA+mxbiM6tbFe2kV/6g4vVv9luq0cn8az7BwKCqT44U8Y5G67ZElG0zsuTI6pYOrCHFOpnXLrE0HhudEchL1YiJqW/SDKaoC4oDZf5nybhh11kOR3N5maLqvUz/WxdNy17th/2XxqVfTTu752X9yeeoXDj89N5OxyMl0jmxlhWbgQJBAPeoitR7FCxcjKtcKsEyrtV3T0H2WtQ2Pbku7CGe6VCtL4+DJNeUentn7plBj4IhbH3EwNmyCYzNlfp0X2d8fWkCQQDxWONjt1vV/dyKQYRvSVw/SWQWlR7g2OnHZokU2SNeewiCX2umCdYKh0doN0JHbSTLOGG5IA3+6Vxam+9hzPtxAkEAjr+QHf8/Vn6V+mOqpSdgjNwzS/MC0ZTeKPI52vsswnrAkjjmMHh9zMnQRnf6juhTD38sJY6wYH9TdkRDhXPFGQJATiFYe4+AS2ZDXv6WwPAezN4VaLodpOyTwdmPxxAEQzHRL2N0levZPs9MbpB1BGpw3tkBycx2u28QVsTkWeTiAQJAGRsAVr6Rhhdaq2vTjt9orhMVwt6BCoSQ0zzHSYilv4PMOtSu1Pyt4K8BDv3gjEyAi1GtE7kkJ0dcbsvOGiLzqQ==
appId: app_d0c80cb1-ffc8-48cb-a030-fe9bec823aaa
callback: https://api.jsowellcloud.com/uniapp/pay/adapayCallback
refundCallback: https://api.jsowellcloud.com/uniapp/pay/adapayRefundCallback
jsowell:
apiKey: api_live_b9bff039-0598-4491-88e7-06ca6dc7289e
mockApiKey: api_test_15662261-8123-4b51-95d9-ad0af60eab53
rsaPrivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAOl7qJyrkrks7FKnBPr/Sngub897Ni5Bkn5pEa81zfs+4LrYsuWZQ8G1n7Q8/rjH4G/T7vPX+So41vNU74Sqn6E1b3BpW+wWBULhs9p1JSPT7Kzima4FmPigUr80NLrlVKn5bW+V4/odpN+bJWvpxdd024edHAD8mXX1M1N1lU5ZAgMBAAECgYA+mxbiM6tbFe2kV/6g4vVv9luq0cn8az7BwKCqT44U8Y5G67ZElG0zsuTI6pYOrCHFOpnXLrE0HhudEchL1YiJqW/SDKaoC4oDZf5nybhh11kOR3N5maLqvUz/WxdNy17th/2XxqVfTTu752X9yeeoXDj89N5OxyMl0jmxlhWbgQJBAPeoitR7FCxcjKtcKsEyrtV3T0H2WtQ2Pbku7CGe6VCtL4+DJNeUentn7plBj4IhbH3EwNmyCYzNlfp0X2d8fWkCQQDxWONjt1vV/dyKQYRvSVw/SWQWlR7g2OnHZokU2SNeewiCX2umCdYKh0doN0JHbSTLOGG5IA3+6Vxam+9hzPtxAkEAjr+QHf8/Vn6V+mOqpSdgjNwzS/MC0ZTeKPI52vsswnrAkjjmMHh9zMnQRnf6juhTD38sJY6wYH9TdkRDhXPFGQJATiFYe4+AS2ZDXv6WwPAezN4VaLodpOyTwdmPxxAEQzHRL2N0levZPs9MbpB1BGpw3tkBycx2u28QVsTkWeTiAQJAGRsAVr6Rhhdaq2vTjt9orhMVwt6BCoSQ0zzHSYilv4PMOtSu1Pyt4K8BDv3gjEyAi1GtE7kkJ0dcbsvOGiLzqQ==
appId: app_d0c80cb1-ffc8-48cb-a030-fe9bec823aaa
wechatAppId: wxbb3e0d474569481d
xixiao:
apiKey: 54135135
mockApiKey: 54135135-8123-4b51-95d9-ad0af60eab53
rsaPrivateKey: 54135135/Sngub897Ni5Bkn5pEa81zfs+4LrYsuWZQ8G1n7Q8/rjH4G/T7vPX+So41vNU74Sqn6E1b3BpW+wWBULhs9p1JSPT7Kzima4FmPigUr80NLrlVKn5bW+V4/odpN+bJWvpxdd024edHAD8mXX1M1N1lU5ZAgMBAAECgYA+mxbiM6tbFe2kV/6g4vVv9luq0cn8az7BwKCqT44U8Y5G67ZElG0zsuTI6pYOrCHFOpnXLrE0HhudEchL1YiJqW/SDKaoC4oDZf5nybhh11kOR3N5maLqvUz/WxdNy17th/2XxqVfTTu752X9yeeoXDj89N5OxyMl0jmxlhWbgQJBAPeoitR7FCxcjKtcKsEyrtV3T0H2WtQ2Pbku7CGe6VCtL4+DJNeUentn7plBj4IhbH3EwNmyCYzNlfp0X2d8fWkCQQDxWONjt1vV/dyKQYRvSVw/SWQWlR7g2OnHZokU2SNeewiCX2umCdYKh0doN0JHbSTLOGG5IA3+6Vxam+9hzPtxAkEAjr+QHf8/Vn6V+mOqpSdgjNwzS/MC0ZTeKPI52vsswnrAkjjmMHh9zMnQRnf6juhTD38sJY6wYH9TdkRDhXPFGQJATiFYe4+AS2ZDXv6WwPAezN4VaLodpOyTwdmPxxAEQzHRL2N0levZPs9MbpB1BGpw3tkBycx2u28QVsTkWeTiAQJAGRsAVr6Rhhdaq2vTjt9orhMVwt6BCoSQ0zzHSYilv4PMOtSu1Pyt4K8BDv3gjEyAi1GtE7kkJ0dcbsvOGiLzqQ==
appId: 54135135
wechatAppId: 54135135
#高德地图相关配置
aMap:

View File

@@ -13,6 +13,8 @@ import com.google.common.primitives.Bytes;
import com.huifu.adapay.core.exception.BaseAdaPayException;
import com.huifu.adapay.model.Refund;
import com.jsowell.JsowellApplication;
import com.jsowell.adapay.config.AbstractAdapayConfig;
import com.jsowell.adapay.factory.AdapayConfigFactory;
import com.jsowell.adapay.service.AdapayMemberService;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants;
@@ -211,8 +213,13 @@ public class SpringBootTestController {
@Test
public void testStopOccupyPileOrder() {
String occupyCode = "OP82399061445";
orderPileOccupyService.stopOccupyPileOrder(occupyCode);
String wechatAppId = "54135135";
AbstractAdapayConfig config = AdapayConfigFactory.getConfig(wechatAppId);
System.out.println(JSON.toJSONString(config));
String wechatAppId2 = "wxbb3e0d474569481d";
AbstractAdapayConfig config2 = AdapayConfigFactory.getConfig(wechatAppId2);
System.out.println(JSON.toJSONString(config2));
}
@Test

View File

@@ -0,0 +1,28 @@
package com.jsowell.adapay.config;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.InitializingBean;
/**
* adapay配置类
*/
@Getter
@Setter
public abstract class AbstractAdapayConfig implements InitializingBean {
private boolean debugFlag;
private boolean prodMode;
private String apiKey;
private String mockApiKey;
private String rsaPrivateKey;
private String adapayAppId;
private String wechatAppId;
}

View File

@@ -15,21 +15,21 @@ public class AdapayConfig implements CommandLineRunner {
private Logger logger = LoggerFactory.getLogger(AdapayConfig.class);
@Value("${adapay.apiKey}")
private String API_KEY;
@Value("${adapay.mockApiKey}")
private String MOCK_API_KEY;
@Value("${adapay.rsaPrivateKey}")
private String RSA_PRIVATE_KEY;
@Value("${adapay.debugFlag}")
private boolean DEBUG_FLAG;
@Value("${adapay.prodMode}")
private boolean PROD_MODE;
@Value("${adapay.jsowell.apiKey}")
private String JSOWELL_API_KEY;
@Value("${adapay.jsowell.mockApiKey}")
private String JSOWELL_MOCK_API_KEY;
@Value("${adapay.jsowell.rsaPrivateKey}")
private String JSOWELL_RSA_PRIVATE_KEY;
@Override
public void run(String... args) throws Exception {
/**
@@ -48,15 +48,15 @@ public class AdapayConfig implements CommandLineRunner {
* mockApiKey为mock模式的API KEY
* rsaPrivateKey为商户发起请求时用于请求参数加签所需要的RSA私钥
*/
String apiKey = API_KEY;
String mockApiKey = MOCK_API_KEY;
String rsaPrivateKey = RSA_PRIVATE_KEY;
String apiKey = JSOWELL_API_KEY;
String mockApiKey = JSOWELL_MOCK_API_KEY;
String rsaPrivateKey = JSOWELL_RSA_PRIVATE_KEY;
MerConfig merConfig = new MerConfig();
merConfig.setApiKey(apiKey);
merConfig.setApiMockKey(mockApiKey);
merConfig.setRSAPrivateKey(rsaPrivateKey);
Adapay.initWithMerConfig(merConfig);
logger.info("汇付配置初始化成功debug:{}, prodMode:{}, apiKey:{}, mockApiKey:{}, rsaPrivateKey:{}"
, DEBUG_FLAG, PROD_MODE, API_KEY, MOCK_API_KEY, RSA_PRIVATE_KEY);
, DEBUG_FLAG, PROD_MODE, JSOWELL_API_KEY, JSOWELL_MOCK_API_KEY, JSOWELL_RSA_PRIVATE_KEY);
}
}

View File

@@ -0,0 +1,42 @@
package com.jsowell.adapay.config;
import com.jsowell.adapay.factory.AdapayConfigFactory;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* 万车充adapay配置类
*/
@Component
@Getter
@Setter
public class JsowellAdapayConfig extends AbstractAdapayConfig{
@Value("${adapay.debugFlag}")
private boolean debugFlag;
@Value("${adapay.prodMode}")
private boolean prodMode;
@Value("${adapay.jsowell.apiKey}")
private String apiKey;
@Value("${adapay.jsowell.mockApiKey}")
private String mockApiKey;
@Value("${adapay.jsowell.rsaPrivateKey}")
private String rsaPrivateKey;
@Value("${adapay.jsowell.appId}")
private String adapayAppId;
@Value("${adapay.jsowell.wechatAppId}")
private String wechatAppId;
@Override
public void afterPropertiesSet() throws Exception {
// key为微信小程序id
AdapayConfigFactory.register(wechatAppId, this);
}
}

View File

@@ -0,0 +1,43 @@
package com.jsowell.adapay.config;
import com.jsowell.adapay.factory.AdapayConfigFactory;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* 希晓充电adapay配置
*/
@Component
@Getter
@Setter
public class XixiaoAdapayConfig extends AbstractAdapayConfig{
@Value("${adapay.debugFlag}")
private boolean debugFlag;
@Value("${adapay.prodMode}")
private boolean prodMode;
@Value("${adapay.xixiao.apiKey}")
private String apiKey;
@Value("${adapay.xixiao.mockApiKey}")
private String mockApiKey;
@Value("${adapay.xixiao.rsaPrivateKey}")
private String rsaPrivateKey;
@Value("${adapay.xixiao.appId}")
private String adapayAppId;
@Value("${adapay.xixiao.wechatAppId}")
private String wechatAppId;
@Override
public void afterPropertiesSet() throws Exception {
// key为微信小程序id
AdapayConfigFactory.register(wechatAppId, this);
}
}

View File

@@ -0,0 +1,45 @@
package com.jsowell.adapay.factory;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.jsowell.adapay.config.AbstractAdapayConfig;
import com.jsowell.common.util.StringUtils;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* adapay配置工厂类
*/
public class AdapayConfigFactory {
private static Map<String, AbstractAdapayConfig> configMap = Maps.newHashMap();
/**
* 注册
* @param str
* @param handler
*/
public static void register(String str, AbstractAdapayConfig handler) {
if (StringUtils.isBlank(str) || Objects.isNull(handler)) {
return;
}
configMap.put(str, handler);
}
/**
* 获取
* @param name
* @return
*/
public static AbstractAdapayConfig getConfig(String name) {
return configMap.get(name);
}
/**
* 获取全部
*/
public static List<AbstractAdapayConfig> getAllConfig() {
return Lists.newArrayList(configMap.values());
}
}

View File

@@ -49,7 +49,7 @@ import java.util.stream.Collectors;
@Service
public class AdapayMemberService {
@Value("${adapay.appId}")
@Value("${adapay.jsowell.appId}")
private String ADAPAY_APP_ID;
// private final String CALLBACK_URL = "https://api.jsowellcloud.com/uniapp/pay/callbackAdapay";

View File

@@ -94,7 +94,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
@Autowired
private RedisCache redisCache;
@Value("${adapay.appId}")
@Value("${adapay.jsowell.appId}")
private String ADAPAY_APP_ID;
@Value("${adapay.callback}")