From 34495cb655b5a38baeb3ed4ee232110a9dbfeffa Mon Sep 17 00:00:00 2001 From: f00lish Date: Tue, 8 Dec 2020 13:35:58 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=BE=AE=E4=BF=A1=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E3=80=91=E7=94=B5=E5=95=86=E6=94=B6=E4=BB=98=E9=80=9A=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3=E6=8A=9B=E5=87=BA=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E6=97=B6=E5=8A=A0=E5=85=A5=E7=8A=B6=E6=80=81=E7=A0=81=E7=AD=89?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxPayServiceApacheHttpImpl.java | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceApacheHttpImpl.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceApacheHttpImpl.java index 6b9adf289..aad6880fe 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceApacheHttpImpl.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceApacheHttpImpl.java @@ -2,6 +2,7 @@ package com.github.binarywang.wxpay.service.impl; import com.github.binarywang.wxpay.bean.WxPayApiData; import com.github.binarywang.wxpay.exception.WxPayException; +import com.google.gson.JsonElement; import com.google.gson.JsonObject; import me.chanjar.weixin.common.util.json.GsonParser; import org.apache.commons.lang3.StringUtils; @@ -106,11 +107,11 @@ public class WxPayServiceApacheHttpImpl extends BaseWxPayServiceImpl { } else { //有错误提示信息返回 JsonObject jsonObject = GsonParser.parse(responseString); - throw new WxPayException(jsonObject.get("message").getAsString()); + throw convertException(jsonObject); } } catch (Exception e) { this.log.error("\n【请求地址】:{}\n【请求数据】:{}\n【异常信息】:{}", url, requestStr, e.getMessage()); - throw new WxPayException(e.getMessage(), e); + throw (e instanceof WxPayException) ? (WxPayException)e : new WxPayException(e.getMessage(), e); } finally { httpPost.releaseConnection(); } @@ -141,12 +142,12 @@ public class WxPayServiceApacheHttpImpl extends BaseWxPayServiceImpl { } else { //有错误提示信息返回 JsonObject jsonObject = GsonParser.parse(responseString); - throw new WxPayException(jsonObject.get("message").getAsString()); + throw convertException(jsonObject); } } catch (Exception e) { this.log.error("\n【请求地址】:{}\n【请求数据】:{}\n【异常信息】:{}", url, requestStr, e.getMessage()); e.printStackTrace(); - throw new WxPayException(e.getMessage(), e); + throw (e instanceof WxPayException) ? (WxPayException)e : new WxPayException(e.getMessage(), e); } finally { httpPost.releaseConnection(); } @@ -172,11 +173,11 @@ public class WxPayServiceApacheHttpImpl extends BaseWxPayServiceImpl { } else { //有错误提示信息返回 JsonObject jsonObject = GsonParser.parse(responseString); - throw new WxPayException(jsonObject.get("message").getAsString()); + throw convertException(jsonObject); } } catch (Exception e) { this.log.error("\n【请求地址】:{}\n【异常信息】:{}", url, e.getMessage()); - throw new WxPayException(e.getMessage(), e); + throw (e instanceof WxPayException) ? (WxPayException)e : new WxPayException(e.getMessage(), e); } finally { httpPost.releaseConnection(); } @@ -198,11 +199,11 @@ public class WxPayServiceApacheHttpImpl extends BaseWxPayServiceImpl { } else { //有错误提示信息返回 JsonObject jsonObject = GsonParser.parse(responseString); - throw new WxPayException(jsonObject.get("message").getAsString()); + throw convertException(jsonObject); } } catch (Exception e) { this.log.error("\n【请求地址】:{}\n【异常信息】:{}", url, e.getMessage()); - throw new WxPayException(e.getMessage(), e); + throw (e instanceof WxPayException) ? (WxPayException)e : new WxPayException(e.getMessage(), e); } finally { httpGet.releaseConnection(); } @@ -223,11 +224,11 @@ public class WxPayServiceApacheHttpImpl extends BaseWxPayServiceImpl { //有错误提示信息返回 String responseString = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8); JsonObject jsonObject = GsonParser.parse(responseString); - throw new WxPayException(jsonObject.get("message").getAsString()); + throw convertException(jsonObject); } } catch (Exception e) { this.log.error("\n【请求地址】:{}\n【异常信息】:{}", url, e.getMessage()); - throw new WxPayException(e.getMessage(), e); + throw (e instanceof WxPayException) ? (WxPayException)e : new WxPayException(e.getMessage(), e); } finally { httpGet.releaseConnection(); } @@ -291,4 +292,16 @@ public class WxPayServiceApacheHttpImpl extends BaseWxPayServiceImpl { httpClientBuilder.setSSLSocketFactory(connectionSocketFactory); } + + private WxPayException convertException(JsonObject jsonObject) { + //todo 这里考虑使用新的适用于V3的异常 + JsonElement codeElement = jsonObject.get("code"); + String code = codeElement == null ? null : codeElement.getAsString(); + String message = jsonObject.get("message").getAsString(); + WxPayException wxPayException = new WxPayException(message); + wxPayException.setErrCode(code); + wxPayException.setErrCodeDes(message); + return wxPayException; + } + }