| @@ -57,7 +57,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/secapi/pay/refund"; | |||
| String responseContent = this.postWithKey(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), true); | |||
| WxPayRefundResult result = WxPayBaseResult.fromXML(responseContent, WxPayRefundResult.class); | |||
| result.checkResult(this); | |||
| return result; | |||
| @@ -75,7 +75,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/pay/refundquery"; | |||
| String responseContent = this.post(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), false); | |||
| WxPayRefundQueryResult result = WxPayBaseResult.fromXML(responseContent, WxPayRefundQueryResult.class); | |||
| result.composeRefundRecords(); | |||
| result.checkResult(this); | |||
| @@ -109,7 +109,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| url = this.getPayBaseUrl() + "/mmpaymkttransfers/sendgroupredpack"; | |||
| } | |||
| String responseContent = this.postWithKey(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), true); | |||
| WxPaySendRedpackResult result = WxPayBaseResult.fromXML(responseContent, WxPaySendRedpackResult.class); | |||
| //毋须校验,因为没有返回签名信息 | |||
| // this.checkResult(result); | |||
| @@ -124,7 +124,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/mmpaymkttransfers/gethbinfo"; | |||
| String responseContent = this.postWithKey(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), true); | |||
| WxPayRedpackQueryResult result = WxPayBaseResult.fromXML(responseContent, WxPayRedpackQueryResult.class); | |||
| result.checkResult(this); | |||
| return result; | |||
| @@ -138,7 +138,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/pay/orderquery"; | |||
| String responseContent = this.post(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), false); | |||
| if (StringUtils.isBlank(responseContent)) { | |||
| throw new WxPayException("无响应结果"); | |||
| } | |||
| @@ -160,7 +160,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/pay/closeorder"; | |||
| String responseContent = this.post(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), false); | |||
| WxPayOrderCloseResult result = WxPayBaseResult.fromXML(responseContent, WxPayOrderCloseResult.class); | |||
| result.checkResult(this); | |||
| @@ -172,7 +172,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/pay/unifiedorder"; | |||
| String responseContent = this.post(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), false); | |||
| WxPayUnifiedOrderResult result = WxPayBaseResult.fromXML(responseContent, WxPayUnifiedOrderResult.class); | |||
| result.checkResult(this); | |||
| return result; | |||
| @@ -227,7 +227,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/mmpaymkttransfers/promotion/transfers"; | |||
| String responseContent = this.postWithKey(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), true); | |||
| WxEntPayResult result = WxPayBaseResult.fromXML(responseContent, WxEntPayResult.class); | |||
| result.checkResult(this); | |||
| return result; | |||
| @@ -240,7 +240,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/mmpaymkttransfers/gettransferinfo"; | |||
| String responseContent = this.postWithKey(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), true); | |||
| WxEntPayQueryResult result = WxPayBaseResult.fromXML(responseContent, WxEntPayQueryResult.class); | |||
| result.checkResult(this); | |||
| return result; | |||
| @@ -293,7 +293,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/payitil/report"; | |||
| String responseContent = this.post(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), false); | |||
| WxPayCommonResult result = WxPayBaseResult.fromXML(responseContent, WxPayCommonResult.class); | |||
| result.checkResult(this); | |||
| } | |||
| @@ -309,7 +309,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/pay/downloadbill"; | |||
| String responseContent = this.post(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), false); | |||
| if (responseContent.startsWith("<")) { | |||
| WxPayCommonResult result = WxPayBaseResult.fromXML(responseContent, WxPayCommonResult.class); | |||
| result.checkResult(this); | |||
| @@ -396,7 +396,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/pay/micropay"; | |||
| String responseContent = this.post(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), false); | |||
| WxPayMicropayResult result = WxPayBaseResult.fromXML(responseContent, WxPayMicropayResult.class); | |||
| result.checkResult(this); | |||
| return result; | |||
| @@ -407,7 +407,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/secapi/pay/reverse"; | |||
| String responseContent = this.postWithKey(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), true); | |||
| WxPayOrderReverseResult result = WxPayBaseResult.fromXML(responseContent, WxPayOrderReverseResult.class); | |||
| result.checkResult(this); | |||
| return result; | |||
| @@ -418,7 +418,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/tools/shorturl"; | |||
| String responseContent = this.post(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), false); | |||
| WxPayShorturlResult result = WxPayBaseResult.fromXML(responseContent, WxPayShorturlResult.class); | |||
| result.checkResult(this); | |||
| return result.getShortUrl(); | |||
| @@ -434,7 +434,7 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = this.getPayBaseUrl() + "/tools/authcodetoopenid"; | |||
| String responseContent = this.post(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), false); | |||
| WxPayAuthcode2OpenidResult result = WxPayBaseResult.fromXML(responseContent, WxPayAuthcode2OpenidResult.class); | |||
| result.checkResult(this); | |||
| return result.getOpenid(); | |||
| @@ -451,57 +451,42 @@ public class WxPayServiceImpl implements WxPayService { | |||
| request.checkAndSign(this.getConfig()); | |||
| String url = "https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey"; | |||
| String responseContent = this.post(url, request.toXML()); | |||
| String responseContent = this.post(url, request.toXML(), false); | |||
| WxPaySandboxSignKeyResult result = WxPayBaseResult.fromXML(responseContent, WxPaySandboxSignKeyResult.class); | |||
| result.checkResult(this); | |||
| return result.getSandboxSignKey(); | |||
| } | |||
| /** | |||
| * 执行post请求 | |||
| * | |||
| * @param url 请求地址 | |||
| * @param xmlParam 请求字符串 | |||
| * @return 返回请求结果 | |||
| */ | |||
| private String post(String url, String xmlParam) throws WxPayException { | |||
| HttpRequest request = HttpRequest | |||
| .post(url) | |||
| .timeout(this.config.getHttpTimeout()) | |||
| .connectionTimeout(this.config.getHttpConnectionTimeout()) | |||
| .body(new String(xmlParam.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1)); | |||
| String responseString = this.getResponseString(request.send()); | |||
| this.log.info("\n【请求地址】: {}\n【请求参数】:{}\n【响应数据】:{}", url, xmlParam, responseString); | |||
| return responseString; | |||
| } | |||
| /** | |||
| * 带证书发送post请求 | |||
| * 发送post请求 | |||
| * | |||
| * @param url 请求地址 | |||
| * @param requestStr 请求信息 | |||
| * @param useKey 是否使用证书 | |||
| * @return 返回请求结果字符串 | |||
| */ | |||
| private String postWithKey(String url, String requestStr) throws WxPayException { | |||
| private String post(String url, String requestStr, boolean useKey) throws WxPayException { | |||
| try { | |||
| SSLContext sslContext = this.getConfig().getSslContext(); | |||
| if (null == sslContext) { | |||
| sslContext = this.getConfig().initSSLContext(); | |||
| } | |||
| HttpRequest request = HttpRequest | |||
| .post(url) | |||
| .timeout(this.config.getHttpTimeout()) | |||
| .connectionTimeout(this.config.getHttpConnectionTimeout()) | |||
| .withConnectionProvider(new SSLSocketHttpConnectionProvider(sslContext)) | |||
| .bodyText(requestStr); | |||
| if (useKey) { | |||
| SSLContext sslContext = this.getConfig().getSslContext(); | |||
| if (null == sslContext) { | |||
| sslContext = this.getConfig().initSSLContext(); | |||
| } | |||
| request.withConnectionProvider(new SSLSocketHttpConnectionProvider(sslContext)); | |||
| } | |||
| String responseString = this.getResponseString(request.send()); | |||
| this.log.info("\n【请求地址】: {}\n【请求参数】:{}\n【响应数据】:{}", url, requestStr, responseString); | |||
| this.log.info("\n【请求地址】:{}\n【请求数据】:{}\n【响应数据】:{}", url, requestStr, responseString); | |||
| return responseString; | |||
| } catch (Exception e) { | |||
| this.log.error("\n【请求地址】: {}\n【请求参数】:{}\n【异常信息】:{}", url, requestStr, e.getMessage()); | |||
| this.log.error("\n【请求地址】:{}\n【请求数据】:{}\n【异常信息】:{}", url, requestStr, e.getMessage()); | |||
| throw new WxPayException(e.getMessage(), e); | |||
| } | |||
| } | |||