From 4f71f419a7025fba0a564ac53c98f655e2bfc11d Mon Sep 17 00:00:00 2001 From: "felord.cn" Date: Tue, 9 Mar 2021 23:44:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=9C=A8=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E6=97=B6=E5=AF=B9=E9=9D=9E2xx=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E8=BF=94=E5=9B=9E=E7=9A=84=E5=85=83=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=8C=85=E8=A3=85=E6=96=B9=E4=BE=BF=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户需要判断非空 Closes #16 --- .../java/cn/felord/payment/PayException.java | 14 +++++++++++++ .../payment/wechat/v3/WechatPayClient.java | 21 +++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/PayException.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/PayException.java index 8d605ec..ea1723b 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/PayException.java +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/PayException.java @@ -18,11 +18,17 @@ */ package cn.felord.payment; +import org.springframework.http.ResponseEntity; + /** * @author felord.cn * @since 1.0.0.RELEASE */ public class PayException extends RuntimeException { + /** + * response maybe null + */ + private ResponseEntity response; public PayException() { } @@ -42,4 +48,12 @@ public class PayException extends RuntimeException { public PayException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } + + public ResponseEntity getResponse() { + return response; + } + + public void setResponse(ResponseEntity response) { + this.response = response; + } } diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayClient.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayClient.java index 8c76203..0ce7876 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayClient.java +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayClient.java @@ -178,13 +178,14 @@ public class WechatPayClient { WechatRequestEntity wechatRequestEntity = WechatRequestEntity.of(requestEntity, this.responseBodyConsumer); return this.doDownload(this.header(wechatRequestEntity)); } + /** * Download string. * * @return the string * @since 1.0.6.RELEASE */ - public ResponseEntity resource() { + public ResponseEntity resource() { RequestEntity requestEntity = this.requestEntityBiFunction.apply(this.wechatPayV3Type, this.model); WechatRequestEntity wechatRequestEntity = WechatRequestEntity.of(requestEntity, this.responseBodyConsumer); return this.doResource(this.header(wechatRequestEntity)); @@ -253,7 +254,9 @@ public class WechatPayClient { // 微信请求id String requestId = headers.getFirst("Request-ID"); if (!statusCode.is2xxSuccessful()) { - throw new PayException("wechat pay server error, Request-ID " + requestId + " , statusCode " + statusCode + ",result : " + body); + PayException payException = new PayException("wechat pay server error, Request-ID " + requestId + " , statusCode " + statusCode + ",result : " + body); + payException.setResponse(responseEntity); + throw payException; } ResponseSignVerifyParams params = new ResponseSignVerifyParams(); @@ -276,7 +279,9 @@ public class WechatPayClient { responseConsumer.accept(responseEntity); } } else { - throw new PayException("wechat pay signature verify failed, Request-ID " + requestId); + PayException payException = new PayException("wechat pay signature verify failed, Request-ID " + requestId); + payException.setResponse(responseEntity); + throw payException; } } @@ -295,7 +300,9 @@ public class WechatPayClient { // 微信请求id String requestId = requestEntity.getHeaders().getFirst("Request-ID"); if (!statusCode.is2xxSuccessful()) { - throw new PayException("wechat pay server error, Request-ID " + requestId + " , statusCode " + statusCode + ",result : " + responseEntity); + PayException payException = new PayException("wechat pay server error, Request-ID " + requestId + " , statusCode " + statusCode + ",result : " + responseEntity); + payException.setResponse(responseEntity); + throw payException; } return Optional.ofNullable(responseEntity.getBody()).orElse(""); } @@ -309,7 +316,7 @@ public class WechatPayClient { * @return the resource * @since 1.0.6.RELEASE */ - private ResponseEntity doResource(WechatRequestEntity requestEntity) { + private ResponseEntity doResource(WechatRequestEntity requestEntity) { ResponseEntity responseEntity = restOperations.exchange(requestEntity, Resource.class); @@ -317,7 +324,9 @@ public class WechatPayClient { // 微信请求id String requestId = requestEntity.getHeaders().getFirst("Request-ID"); if (!statusCode.is2xxSuccessful()) { - throw new PayException("wechat pay server error, Request-ID " + requestId + " , statusCode " + statusCode + ",result : " + responseEntity); + PayException payException = new PayException("wechat pay server error, Request-ID " + requestId + " , statusCode " + statusCode + ",result : " + responseEntity); + payException.setResponse(responseEntity); + throw payException; } return responseEntity; }