xujunwei 2 gadi atpakaļ
vecāks
revīzija
a7293b3ed0

+ 4 - 5
framework-common/src/main/java/com/mrxu/framework/common/util/HttpUtil.java

@@ -404,18 +404,17 @@ public class HttpUtil {
         return isAjax(request) || uri.endsWith(".aj") || uri.endsWith(".json");
     }
 
-    public static String httpsRequest(String requestUrl, String requestMethod, String outputStr,String certName) {
+    public static String httpsRequest(String requestUrl, String requestMethod, String outputStr,InputStream certInputStream) {
         SSLContext sslContext = null;
         HttpsURLConnection conn = null;
         InputStream inputStream = null;
         InputStreamReader inputStreamReader = null;
         BufferedReader bufferedReader = null;
         try {
-            if(certName != null) {
+            if(certInputStream != null) {
+                String certName = "cert.p12";
                 KeyStore keyStore = KeyStore.getInstance("PKCS12");
-                ClassLoader loader = Thread.currentThread().getContextClassLoader();
-                InputStream instream = loader.getResourceAsStream("wxcert/" + certName + ".p12");
-                keyStore.load(instream, certName.toCharArray());
+                keyStore.load(certInputStream, certName.toCharArray());
                 sslContext = SSLContexts.custom().loadKeyMaterial(keyStore, certName.toCharArray()).build();
             }
             else {

+ 6 - 5
framework-common/src/main/java/com/mrxu/framework/common/xcx/api/PayService.java

@@ -9,6 +9,7 @@ import com.mrxu.framework.common.util.StrFunc;
 import com.mrxu.framework.common.xcx.WeixinUtil;
 import com.mrxu.framework.common.xcx.bean.*;
 
+import java.io.InputStream;
 import java.util.TreeMap;
 
 public class PayService {
@@ -38,11 +39,11 @@ public class PayService {
     }
 
     // https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_4
-    public static RefundResponse refund(RefundRequest request, String apiKey,String certName) {
-        return request(RefundResponse.class,refund,"POST",request,apiKey,certName);
+    public static RefundResponse refund(RefundRequest request, String apiKey,InputStream certInputStream) {
+        return request(RefundResponse.class,refund,"POST",request,apiKey,certInputStream);
     }
 
-    private static <T extends PayBaseResponse> T request(Class<T> clazz, String requestUrl, String requestMethod, Object requestBean, String apiKey, String certName) {
+    private static <T extends PayBaseResponse> T request(Class<T> clazz, String requestUrl, String requestMethod, Object requestBean, String apiKey,InputStream certInputStream) {
         MrxuAssert.validateBean(requestBean);
         String jsonStr = JSONUtil.toJsonStr(requestBean);
         TreeMap<String, Object> parameters = JSONUtil.toBean(jsonStr,new TreeMap<String, String>().getClass());
@@ -50,7 +51,7 @@ public class PayService {
         String sign = WeixinUtil.createSign(parameters,apiKey);
         parameters.put("sign", sign);
         String requestXML = WeixinUtil.getRequestXml(parameters);
-        String resultStr =  HttpUtil.httpsRequest(requestUrl,requestMethod,requestXML,certName);
+        String resultStr =  HttpUtil.httpsRequest(requestUrl,requestMethod,requestXML,certInputStream);
         MrxuAssert.isNotEmpty(resultStr,"微信未响应");
         System.out.println(resultStr);
         JSONObject resultJson = WeixinUtil.doXMLParse(resultStr);
@@ -102,7 +103,7 @@ public class PayService {
         request.setOut_refund_no(IdFunc.getId("F"));
         request.setTotal_fee(100);
         request.setRefund_fee(10);
-        refund(request,"7616442b20a95c985ae712d72797c4c7","1514682921");
+        // refund(request,"7616442b20a95c985ae712d72797c4c7","1514682921");
     }