|
@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject; |
|
|
import com.alipay.api.AlipayApiException; |
|
|
import com.alipay.api.AlipayApiException; |
|
|
import com.alipay.api.AlipayClient; |
|
|
import com.alipay.api.AlipayClient; |
|
|
import com.alipay.api.AlipayConfig; |
|
|
import com.alipay.api.AlipayConfig; |
|
|
|
|
|
import com.alipay.api.CertAlipayRequest; |
|
|
import com.alipay.api.DefaultAlipayClient; |
|
|
import com.alipay.api.DefaultAlipayClient; |
|
|
import com.alipay.api.request.AlipayTradePagePayRequest; |
|
|
import com.alipay.api.request.AlipayTradePagePayRequest; |
|
|
import com.alipay.api.response.AlipayTradePagePayResponse; |
|
|
import com.alipay.api.response.AlipayTradePagePayResponse; |
|
@@ -315,7 +316,7 @@ public class MaUtil { |
|
|
alipayConfig.setAlipayPublicKey(payAccount.getMerchantApiKey()); |
|
|
alipayConfig.setAlipayPublicKey(payAccount.getMerchantApiKey()); |
|
|
alipayConfig.setSignType("RSA2"); |
|
|
alipayConfig.setSignType("RSA2"); |
|
|
|
|
|
|
|
|
String key = appinfo.getAppId(); |
|
|
|
|
|
|
|
|
String key = appinfo.getAppId()+"_byPublicKey"; |
|
|
AlipayClient alipayClient = alipayClientMap.get(key); |
|
|
AlipayClient alipayClient = alipayClientMap.get(key); |
|
|
if(alipayClient == null){ |
|
|
if(alipayClient == null){ |
|
|
synchronized("getAliPayClientBlock"+appinfo.getAppId()) { |
|
|
synchronized("getAliPayClientBlock"+appinfo.getAppId()) { |
|
@@ -335,5 +336,42 @@ public class MaUtil { |
|
|
} |
|
|
} |
|
|
return alipayClient; |
|
|
return alipayClient; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public AlipayClient getAliPayCertClient(WxAppinfo appinfo, WxPayAccount payAccount) { |
|
|
|
|
|
|
|
|
|
|
|
CertAlipayRequest certAlipayRequest = new CertAlipayRequest(); |
|
|
|
|
|
certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do"); |
|
|
|
|
|
certAlipayRequest.setAppId(appinfo.getAppId()); |
|
|
|
|
|
certAlipayRequest.setPrivateKey(appinfo.getSecret()); |
|
|
|
|
|
certAlipayRequest.setFormat("json"); |
|
|
|
|
|
certAlipayRequest.setCharset("UTF-8"); |
|
|
|
|
|
certAlipayRequest.setSignType("RSA2"); |
|
|
|
|
|
certAlipayRequest.setCertPath(payAccount.getMerchantCertPath()); |
|
|
|
|
|
certAlipayRequest.setAlipayPublicCertPath(payAccount.getMerchantKeyPath()); |
|
|
|
|
|
certAlipayRequest.setRootCertPath(payAccount.getMerchantCertPemPath()); |
|
|
|
|
|
|
|
|
|
|
|
String key = appinfo.getAppId()+"_byCert"; |
|
|
|
|
|
AlipayClient alipayClient = alipayClientMap.get(key); |
|
|
|
|
|
if(alipayClient == null){ |
|
|
|
|
|
synchronized("getAliPayClientBlock"+appinfo.getAppId()) { |
|
|
|
|
|
alipayClient = alipayClientMap.get(key); |
|
|
|
|
|
if (null == alipayClient) { |
|
|
|
|
|
try { |
|
|
|
|
|
alipayClient = new DefaultAlipayClient(certAlipayRequest); |
|
|
|
|
|
alipayClientMap.put(key, alipayClient); |
|
|
|
|
|
} catch (AlipayApiException e) { |
|
|
|
|
|
e.printStackTrace(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if(alipayClient == null){ |
|
|
|
|
|
throw new MallinkException(ErrorCode.APP_PLAT_ERROR.getCode(),"获取支付配置失败"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 提交数据至支付宝时请使用 |
|
|
|
|
|
//alipayClient.certificateExecute(request); |
|
|
|
|
|
return alipayClient; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |