diff --git a/boot-service/pom.xml b/boot-service/pom.xml index 7971e6e..27ccedd 100644 --- a/boot-service/pom.xml +++ b/boot-service/pom.xml @@ -116,12 +116,13 @@ jdom 2.0.2 + com.alipay.sdk alipay 1.0 - + commons-httpclient commons-httpclient diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayBarCodePayParam.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBarCodePayParam.java similarity index 92% rename from boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayBarCodePayParam.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBarCodePayParam.java index 7ee395c..19c79ab 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayBarCodePayParam.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBarCodePayParam.java @@ -1,11 +1,11 @@ -package com.xwbing.domain.entity.alipay; +package com.xwbing.domain.entity.pay.alipay; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; /** * 说明: 支付宝扫码支付参数 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:34 * 作者: xiangwb */ diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayBarCodePayResult.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBarCodePayResult.java similarity index 91% rename from boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayBarCodePayResult.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBarCodePayResult.java index ea7f729..a228fa3 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayBarCodePayResult.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBarCodePayResult.java @@ -1,4 +1,4 @@ -package com.xwbing.domain.entity.alipay; +package com.xwbing.domain.entity.pay.alipay; import com.alipay.api.domain.TradeFundBill; import lombok.Data; @@ -9,7 +9,7 @@ import java.util.List; /** * 说明: 条形码支付结果 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:36 * 作者: xiangwb */ @@ -62,6 +62,6 @@ public class AlipayBarCodePayResult extends AlipayBaseResult { @Override public boolean isSuccess() { //如果已支付过也认为是成功 - return super.getCode().equals("10000"); + return "10000".equals(super.getCode()); } } \ No newline at end of file diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayBaseResult.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBaseResult.java similarity index 83% rename from boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayBaseResult.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBaseResult.java index 1c97f1f..9e1857d 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayBaseResult.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBaseResult.java @@ -1,10 +1,10 @@ -package com.xwbing.domain.entity.alipay; +package com.xwbing.domain.entity.pay.alipay; import lombok.Data; /** * 说明: 支付宝接口基础类 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:35 * 作者: xiangwb */ diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayConstant.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayConstant.java similarity index 90% rename from boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayConstant.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayConstant.java index beb3619..f48ecd8 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayConstant.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayConstant.java @@ -1,8 +1,8 @@ -package com.xwbing.domain.entity.alipay; +package com.xwbing.domain.entity.pay.alipay; /** * 说明: 支付宝返回状态码 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:37 * 作者: xiangwb */ diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayQueryResult.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayQueryResult.java similarity index 57% rename from boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayQueryResult.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayQueryResult.java index 186b443..359c879 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayQueryResult.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayQueryResult.java @@ -1,11 +1,16 @@ -package com.xwbing.domain.entity.alipay; +package com.xwbing.domain.entity.pay.alipay; + +import lombok.Data; +import lombok.EqualsAndHashCode; /** * 说明: 支付宝查询状态 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:38 * 作者: xiangwb */ +@EqualsAndHashCode(callSuper = true) +@Data public class AlipayQueryResult extends AlipayBaseResult { /** * 交易支付状态 @@ -15,13 +20,5 @@ public class AlipayQueryResult extends AlipayBaseResult { public AlipayQueryResult(boolean success) { this.setSuccess(success); } - - public String getTradeStatus() { - return tradeStatus; - } - - public void setTradeStatus(String tradeStatus) { - this.tradeStatus = tradeStatus; - } } diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayRefundParam.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayRefundParam.java similarity index 94% rename from boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayRefundParam.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayRefundParam.java index 2f5a8ce..6a1eb5a 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayRefundParam.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayRefundParam.java @@ -1,11 +1,11 @@ -package com.xwbing.domain.entity.alipay; +package com.xwbing.domain.entity.pay.alipay; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; /** * 说明: 支付宝退款参数 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:38 * 作者: xiangwb */ diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayRefundResult.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayRefundResult.java similarity index 93% rename from boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayRefundResult.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayRefundResult.java index e25978d..0a675e4 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayRefundResult.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayRefundResult.java @@ -1,4 +1,4 @@ -package com.xwbing.domain.entity.alipay; +package com.xwbing.domain.entity.pay.alipay; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; @@ -8,7 +8,7 @@ import java.util.Date; /** * 说明: 支付宝退款结果 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:39 * 作者: xiangwb */ diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayTradeStatusEnum.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayTradeStatusEnum.java similarity index 90% rename from boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayTradeStatusEnum.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayTradeStatusEnum.java index f8ce39c..4a956aa 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/alipay/AlipayTradeStatusEnum.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayTradeStatusEnum.java @@ -1,8 +1,8 @@ -package com.xwbing.domain.entity.alipay; +package com.xwbing.domain.entity.pay.alipay; /** * 说明: 支付宝交易状态 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:39 * 作者: xiangwb */ diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxBarCodePayParam.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxBarCodePayParam.java similarity index 92% rename from boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxBarCodePayParam.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxBarCodePayParam.java index e781de1..dc6f871 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxBarCodePayParam.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxBarCodePayParam.java @@ -1,11 +1,11 @@ -package com.xwbing.domain.entity.wxpay; +package com.xwbing.domain.entity.pay.wxpay; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; /** * 说明: 微信扫码支付接口参数 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:41 * 作者: xiangwb */ @@ -40,5 +40,4 @@ public class WxBarCodePayParam { this.body = body; this.totalFee = totalFee; } - } diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxBarCodePayResult.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxBarCodePayResult.java similarity index 91% rename from boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxBarCodePayResult.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxBarCodePayResult.java index ad2cfff..7e4e52f 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxBarCodePayResult.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxBarCodePayResult.java @@ -1,18 +1,18 @@ -package com.xwbing.domain.entity.wxpay; +package com.xwbing.domain.entity.pay.wxpay; import lombok.Data; import lombok.EqualsAndHashCode; /** * 说明: 微信扫码支付接口结果 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:42 * 作者: xiangwb */ @EqualsAndHashCode(callSuper = true) @Data public class WxBarCodePayResult extends WxBaseResult { - public static final String HASPAYED = "ORDERPAID"; + public static final String HAS_PAYED = "ORDERPAID"; /** * 公众账号ID */ diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxBaseResult.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxBaseResult.java similarity index 57% rename from boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxBaseResult.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxBaseResult.java index 48cae96..b46aea2 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxBaseResult.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxBaseResult.java @@ -1,14 +1,15 @@ -package com.xwbing.domain.entity.wxpay; +package com.xwbing.domain.entity.pay.wxpay; +import lombok.Data; import org.apache.commons.lang3.StringUtils; /** * 说明: 微信支付结果基础类 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:42 * 作者: xiangwb */ - +@Data public class WxBaseResult { /** * 返回状态码 @@ -25,31 +26,11 @@ public class WxBaseResult { public boolean isSuccess() { if (StringUtils.isNotEmpty(resultCode)) { - return resultCode.equals("SUCCESS"); + return ("SUCCESS".equals(resultCode)); } return isSuccess; } - public void setSuccess(boolean success) { - isSuccess = success; - } - - public String getResultCode() { - return resultCode; - } - - public void setResultCode(String resultCode) { - this.resultCode = resultCode; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - @Override public String toString() { return "BaseResult{" + "resultCode='" + resultCode + '\'' + ", message='" + message + '\'' + ", isSuccess=" + isSuccess + '}'; diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxQueryResult.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxQueryResult.java similarity index 85% rename from boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxQueryResult.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxQueryResult.java index d5399fb..0d1afd0 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxQueryResult.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxQueryResult.java @@ -1,11 +1,11 @@ -package com.xwbing.domain.entity.wxpay; +package com.xwbing.domain.entity.pay.wxpay; import lombok.Data; import lombok.EqualsAndHashCode; /** * 说明: 微信查询状态 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:43 * 作者: xiangwb */ diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxRefundParam.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxRefundParam.java similarity index 94% rename from boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxRefundParam.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxRefundParam.java index aa80f3e..7d97833 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxRefundParam.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxRefundParam.java @@ -1,10 +1,10 @@ -package com.xwbing.domain.entity.wxpay; +package com.xwbing.domain.entity.pay.wxpay; import lombok.Data; /** * 说明: 微信退款参数 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:43 * 作者: xiangwb */ diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxRefundResult.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxRefundResult.java similarity index 95% rename from boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxRefundResult.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxRefundResult.java index a831832..1f6142e 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxRefundResult.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxRefundResult.java @@ -1,4 +1,4 @@ -package com.xwbing.domain.entity.wxpay; +package com.xwbing.domain.entity.pay.wxpay; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; @@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode; /** * 说明: 退款返回结果 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:44 * 作者: xiangwb */ diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxRefundStatusEnum.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxRefundStatusEnum.java similarity index 86% rename from boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxRefundStatusEnum.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxRefundStatusEnum.java index 468c432..a160954 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxRefundStatusEnum.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxRefundStatusEnum.java @@ -1,8 +1,8 @@ -package com.xwbing.domain.entity.wxpay; +package com.xwbing.domain.entity.pay.wxpay; /** * 说明: 微信退款状态 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/12 10:05 * 作者: xiangwb */ @@ -12,7 +12,6 @@ public enum WxRefundStatusEnum { REFUNDCLOSE("退款关闭", "REFUNDCLOSE"), PROCESSING("退款处理中", "PROCESSING"), CHANGE("退款失败", "CHANGE"); - // 成员变量 private String code; private String name; diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxTradeStatusEnum.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxTradeStatusEnum.java similarity index 88% rename from boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxTradeStatusEnum.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxTradeStatusEnum.java index 91b13e3..1118ea2 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/wxpay/WxTradeStatusEnum.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/wxpay/WxTradeStatusEnum.java @@ -1,8 +1,8 @@ -package com.xwbing.domain.entity.wxpay; +package com.xwbing.domain.entity.pay.wxpay; /** * 说明: 微信支付结果状态 - * 项目名称: spring-demo + * 项目名称: boot-module-demo * 创建时间: 2017/5/10 17:44 * 作者: xiangwb */ @@ -15,7 +15,6 @@ public enum WxTradeStatusEnum { REVOKED("已撤销(刷卡支付)", "REVOKED"), USERPAYING("用户支付中", "USERPAYING"), PAYERROR("支付失败", "PAYERROR"); - // 成员变量 private String code; private String name; diff --git a/boot-service/src/main/java/com/xwbing/service/other/AlipayService.java b/boot-service/src/main/java/com/xwbing/service/other/AlipayService.java index 0553792..35411d9 100644 --- a/boot-service/src/main/java/com/xwbing/service/other/AlipayService.java +++ b/boot-service/src/main/java/com/xwbing/service/other/AlipayService.java @@ -10,7 +10,7 @@ import com.alipay.api.request.AlipayTradeRefundRequest; import com.alipay.api.response.AlipayTradePayResponse; import com.alipay.api.response.AlipayTradeQueryResponse; import com.alipay.api.response.AlipayTradeRefundResponse; -import com.xwbing.domain.entity.alipay.*; +import com.xwbing.domain.entity.pay.alipay.*; import com.xwbing.exception.BusinessException; import com.xwbing.exception.PayException; import org.apache.commons.lang3.StringUtils; @@ -59,43 +59,38 @@ public class AlipayService { * @param param * @return */ - public AlipayBarCodePayResult barCodePay(AlipayBarCodePayParam param) throws PayException { - param.setScene("bar_code");//设置条码支付 + public AlipayBarCodePayResult barCodePay(AlipayBarCodePayParam param) { + //设置条码支付 + param.setScene("bar_code"); AlipayBarCodePayResult result = new AlipayBarCodePayResult(false); String checkArgument = checkArgument(param); if (StringUtils.isNotEmpty(checkArgument)) { result.setMessage(checkArgument); return result; } - //获得初始化的AlipayClient + //获得初始化的aliPayClient AlipayClient alipayClient = new DefaultAlipayClient(requestUrl, appId, privateKey, "json", "UTF-8", publicKey, "RSA2"); //创建API对应的request类 AlipayTradePayRequest request = new AlipayTradePayRequest(); request.setBizContent(JSONObject.toJSONString(param)); - //通过alipayClient调用API,获得对应的response类 - AlipayTradePayResponse response = null; + //通过aliPayClient调用API,获得对应的response类 + AlipayTradePayResponse response; try { response = alipayClient.execute(request); } catch (AlipayApiException e) { - logger.info(e.getMessage()); - result.setMessage(e.getMessage()); - return result; - } - if (response==null) { - logger.info("alipay response is null!"); - result.setMessage("alipay response is null!"); - return result; + logger.error(e.getMessage()); + throw new PayException("扫码支付异常"); } result.setSuccess(response.isSuccess()); //源码StringUtils.isEmpty(this.subCode) //根据response中的结果继续业务逻辑处理:subCode不为空,表示接口调用失败|code为10000,代表接口调用成功,subCode为空 - if (StringUtils.isNotEmpty(response.getSubCode())) { - result.setCode(response.getSubCode()); - result.setMessage(response.getSubMsg()); - logger.info(response.getSubMsg()); - return result; - } else { + if (StringUtils.isEmpty(response.getSubCode())) { result.setCode(response.getCode()); result.setMessage(response.getMsg()); + } else { + result.setCode(response.getSubCode()); + result.setMessage(response.getSubMsg()); + logger.error(response.getSubMsg()); + return result; } result.setTradeNo(response.getTradeNo()); result.setOutTradeNo(response.getOutTradeNo()); @@ -116,31 +111,25 @@ public class AlipayService { * @param param * @return */ - public AlipayRefundResult refund(AlipayRefundParam param) throws PayException { + public AlipayRefundResult refund(AlipayRefundParam param) { AlipayRefundResult result = new AlipayRefundResult(false); AlipayClient alipayClient = new DefaultAlipayClient(requestUrl, appId, privateKey, "json", "UTF-8", publicKey, "RSA2"); AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); request.setBizContent(JSONObject.toJSONString(param)); - //通过alipayClient调用API,获得对应的response类 - AlipayTradeRefundResponse response = null; + //通过aliPayClient调用API,获得对应的response类 + AlipayTradeRefundResponse response; try { response = alipayClient.execute(request); } catch (AlipayApiException e) { - logger.info(e.getMessage()); - result.setMessage(e.getMessage()); - return result; - } - if (response==null) { - logger.info("alipay response is null!"); - result.setMessage("alipay response is null!"); - return result; + logger.error(e.getMessage()); + throw new PayException("退款异常"); } result.setSuccess(response.isSuccess()); - //如果subCode存在,代表调用接接口失败 + //如果subCode存在,代表调用接口失败 if (StringUtils.isNotEmpty(response.getSubCode())) { + logger.error(response.getSubMsg()); result.setCode(response.getSubCode()); result.setMessage(response.getSubMsg()); - logger.info(response.getSubMsg()); return result; } else { result.setCode(response.getCode()); @@ -165,7 +154,7 @@ public class AlipayService { * @param tradeNo 交易号(推荐) * @return */ - public AlipayQueryResult queryOrder(String outTradeNo, String tradeNo) throws PayException { + public AlipayQueryResult queryOrder(String outTradeNo, String tradeNo) { if (StringUtils.isEmpty(outTradeNo) && StringUtils.isEmpty(tradeNo)) { throw new PayException("订单号和交易号不能同时为空!"); } @@ -180,48 +169,32 @@ public class AlipayService { jsonObject.put("trade_no", tradeNo); } request.setBizContent(jsonObject.toString()); - //通过alipayClient调用API,获得对应的response类 - AlipayTradeQueryResponse response = null; + //通过aliPayClient调用API,获得对应的response类 + AlipayTradeQueryResponse response; try { response = alipayClient.execute(request); } catch (AlipayApiException e) { - logger.info(e.getMessage()); - result.setMessage(e.getMessage()); - return result; - } - if (response==null) { - logger.info("alipay response is null!"); - result.setMessage("alipay response is null!"); - return result; + logger.error(e.getMessage()); + throw new PayException("查询订单异常"); } result.setSuccess(response.isSuccess()); - //如果subCode存在,代表调用接接口失败 - if (StringUtils.isNotEmpty(response.getSubCode())) { - result.setCode(response.getSubCode()); - result.setMessage(response.getSubMsg()); - logger.info(response.getSubMsg()); - return result; - } else { - result.setCode(response.getCode()); - result.setMessage(response.getMsg()); - } - //返回支付状态,业务调用时,遍历AlipayTradeStatusEnum与tradeStatus做比较 + //如果subCode存在,代表调用接口失败 + checkSubCode(result, response); + //返回支付状态,业务调用时,遍历AliPayTradeStatusEnum与tradeStatus做比较 result.setTradeStatus(response.getTradeStatus()); - logger.info(response.getTradeStatus()); return result; } /** - * 退款查询 没有tradeStatus,isSuccess即为成功 + * 退款查询 没有tradeStatus,isSuccess即为成功 * 订单号和交易号2选1 * * @param outTradeNo 订单号 * @param tradeNo 交易号(推荐) * @param outRequestNo 退款请求号 * @return - * @throws PayException */ - public AlipayQueryResult queryRefund(String outTradeNo, String tradeNo, String outRequestNo) throws PayException { + public AlipayQueryResult queryRefund(String outTradeNo, String tradeNo, String outRequestNo) { if (StringUtils.isEmpty(outTradeNo) && StringUtils.isEmpty(tradeNo)) { throw new PayException("订单号和交易号不能同时为空!"); } @@ -237,32 +210,34 @@ public class AlipayService { jsonObject.put("trade_no", tradeNo); } request.setBizContent(jsonObject.toString()); - //通过alipayClient调用API,获得对应的response类 - AlipayTradeQueryResponse response = null; + //通过aliPayClient调用API,获得对应的response类 + AlipayTradeQueryResponse response; try { response = alipayClient.execute(request); } catch (AlipayApiException e) { - logger.info(e.getMessage()); - result.setMessage(e.getMessage()); - return result; - } - if (response==null) { - logger.info("alipay response is null!"); - result.setMessage("alipay response is null!"); - return result; + logger.error(e.getMessage()); + throw new PayException("退款查询异常"); } result.setSuccess(response.isSuccess()); - //如果subCode存在,代表调用接接口失败。业务调用时只需判断result是否为success即可 + //如果subCode存在,代表调用接口失败 + checkSubCode(result, response); + return result; + } + + /** + * 查询接口校验subCode是否存在。如果subCode存在,代表调用接口失败。业务调用时只需判断result是否为success即可 + * + * @return + */ + private void checkSubCode(AlipayQueryResult result, AlipayTradeQueryResponse response) { if (StringUtils.isNotEmpty(response.getSubCode())) { result.setCode(response.getSubCode()); result.setMessage(response.getSubMsg()); - logger.info(response.getSubMsg()); + logger.error(response.getSubMsg()); } else { result.setCode(response.getCode()); result.setMessage(response.getMsg()); - logger.info(response.getMsg()); } - return result; } /** @@ -270,15 +245,15 @@ public class AlipayService { * * @return */ - private String checkArgument(AlipayBarCodePayParam parma) { + private String checkArgument(AlipayBarCodePayParam param) { String message; - if (StringUtils.isEmpty(parma.getOutTradeNo())) { + if (StringUtils.isEmpty(param.getOutTradeNo())) { message = "订单号为空"; - } else if (StringUtils.isEmpty(parma.getAuthCode())) { + } else if (StringUtils.isEmpty(param.getAuthCode())) { message = "授权码为空"; - } else if (StringUtils.isEmpty(parma.getSubject())) { + } else if (StringUtils.isEmpty(param.getSubject())) { message = "产品名称为空"; - } else if (0 >= parma.getTotalAmount()) { + } else if (0 >= param.getTotalAmount()) { message = "金额必须大于0"; } else { message = StringUtils.EMPTY; diff --git a/boot-service/src/main/java/com/xwbing/service/other/WxPayService.java b/boot-service/src/main/java/com/xwbing/service/other/WxPayService.java index 6bc51f7..73b14a3 100644 --- a/boot-service/src/main/java/com/xwbing/service/other/WxPayService.java +++ b/boot-service/src/main/java/com/xwbing/service/other/WxPayService.java @@ -1,6 +1,6 @@ package com.xwbing.service.other; -import com.xwbing.domain.entity.wxpay.*; +import com.xwbing.domain.entity.pay.wxpay.*; import com.xwbing.exception.BusinessException; import com.xwbing.exception.PayException; import com.xwbing.util.payWxpay.ClientCustomSSL; @@ -76,14 +76,14 @@ public class WxPayService { /** * 条形码扫码付 + * * @param param * @return - * @throws PayException */ - public WxBarCodePayResult barCodePay(WxBarCodePayParam param) throws PayException { + public WxBarCodePayResult barCodePay(WxBarCodePayParam param) { WxBarCodePayResult result = new WxBarCodePayResult(false); HttpPost post = new HttpPost(barCodePayUrl); - //输入参数为转为strxml + //输入参数为转为strXml String reqBody = buildBarCodeRequestBody(param); post.setEntity(new StringEntity(reqBody, "UTF-8")); CloseableHttpClient httpclient; @@ -93,9 +93,8 @@ public class WxPayService { CloseableHttpResponse response = httpclient.execute(post); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { HttpEntity entity = response.getEntity(); - //返回结果为strxml + //返回结果为strXml String content = EntityUtils.toString(entity, "UTF-8"); - logger.info(content + "===========++++"); // 解析返回值 Map returnMap; returnMap = XmlUtil.doXMLParse(content); @@ -151,14 +150,14 @@ public class WxPayService { /** * 退款 + * * @param param * @return - * @throws PayException */ - public WxRefundResult refund(WxRefundParam param) throws PayException { + public WxRefundResult refund(WxRefundParam param) { WxRefundResult result = new WxRefundResult(false); HttpPost post = new HttpPost(refundUrl); - //输入参数为转为strxml + //输入参数为转为strXml String reqBody = buildRefundBarCodeRequestBody(param); post.setEntity(new StringEntity(reqBody, "UTF-8")); CloseableHttpClient httpclient; @@ -167,10 +166,9 @@ public class WxPayService { httpclient = ClientCustomSSL.getCloseableHttpClient(mchId); CloseableHttpResponse response = httpclient.execute(post); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { - //返回结果为strxml + //返回结果为strXml HttpEntity entity = response.getEntity(); String content = EntityUtils.toString(entity, "UTF-8"); - logger.info(content + "===========++++"); // 解析返回值 Map returnMap; returnMap = com.xwbing.util.payWxpay.XmlUtil.doXMLParse(content); @@ -231,10 +229,10 @@ public class WxPayService { * @param transactionId 微信的订单号(推荐) * @return */ - public WxQueryResult oderQuery(String outTradeNo, String transactionId) throws PayException { + public WxQueryResult orderQuery(String outTradeNo, String transactionId) { WxQueryResult result = new WxQueryResult(false); HttpPost post = new HttpPost(orderQueryUrl); - //输入参数为转为strxml + //输入参数为转为strXml String reqBody = buildQueryRequestBody(outTradeNo, transactionId); post.setEntity(new StringEntity(reqBody, "UTF-8")); CloseableHttpClient httpclient; @@ -244,9 +242,8 @@ public class WxPayService { CloseableHttpResponse response = httpclient.execute(post); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { HttpEntity entity = response.getEntity(); - //返回结果为strxml + //返回结果为strXml String content = EntityUtils.toString(entity, "UTF-8"); - logger.info(content + "===========++++"); // 解析返回值 Map returnMap; returnMap = XmlUtil.doXMLParse(content); @@ -299,12 +296,11 @@ public class WxPayService { * @param ouRefundNo 商户退款单号(推荐) * @param refundid 微信退款单号(推荐) * @return - * @throws PayException */ - public WxQueryResult refundQuery(String outTradeNo, String transactionId, String ouRefundNo, String refundid) throws PayException { + public WxQueryResult refundQuery(String outTradeNo, String transactionId, String ouRefundNo, String refundid) { WxQueryResult result = new WxQueryResult(false); HttpPost post = new HttpPost(refundQueryUrl); - //输入参数为转为strxml + //输入参数为转为strXml String reqBody = buildRefundQueryRequestBody(outTradeNo, transactionId, ouRefundNo, refundid); post.setEntity(new StringEntity(reqBody, "UTF-8")); CloseableHttpClient httpclient; @@ -314,9 +310,8 @@ public class WxPayService { CloseableHttpResponse response = httpclient.execute(post); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { HttpEntity entity = response.getEntity(); - //返回结果为strxml + //返回结果为strXml String content = EntityUtils.toString(entity, "UTF-8"); - logger.info(content + "===========++++"); // 解析返回值 Map returnMap; returnMap = XmlUtil.doXMLParse(content); @@ -324,7 +319,7 @@ public class WxPayService { result.setMessage(returnMap.get("return_msg")); //此字段是通信标识,非交易标识 if ("FAIL".equalsIgnoreCase(returnMap.get("return_code"))) { - logger.info("wx barCodePay failed!"); + logger.error("wx barCodePay failed!"); result.setSuccess(false); return result; } @@ -369,8 +364,8 @@ public class WxPayService { Map params = new HashMap(); params.put("appid", appId); params.put("mch_id", mchId); - String nonce_str = RandomKit.buildRandom(32); - params.put("nonce_str", nonce_str); + String nonceStr = RandomKit.buildRandom(32); + params.put("nonce_str", nonceStr); params.put("body", param.getBody()); params.put("out_trade_no", param.getOutTradeNo()); //单位分 @@ -380,7 +375,7 @@ public class WxPayService { //签名放最后的 String sign = WxSignKit.buildSign(params, apiKey); params.put("sign", sign); - StringBuffer reqBody = new StringBuffer(); + StringBuilder reqBody = new StringBuilder(); reqBody.append(""); for (String key : params.keySet()) { String value = params.get(key); @@ -398,11 +393,11 @@ public class WxPayService { * @return */ private String buildRefundBarCodeRequestBody(WxRefundParam param) { - Map params = new HashMap(); + Map params = new HashMap<>(); params.put("appid", appId); params.put("mch_id", mchId); - String nonce_str = RandomKit.buildRandom(32); - params.put("nonce_str", nonce_str); + String nonceStr = RandomKit.buildRandom(32); + params.put("nonce_str", nonceStr); if (StringUtils.isEmpty(param.getTransactionId()) && StringUtils.isEmpty(param.getOutTradeNo())) { throw new PayException("商户订单号和微信订单号不能同时为空!"); } @@ -419,7 +414,7 @@ public class WxPayService { String sign = WxSignKit.buildSign(params, apiKey); params.put("sign", sign); //签名放最后的 - StringBuffer reqBody = new StringBuffer(); + StringBuilder reqBody = new StringBuilder(); reqBody.append(""); for (String key : params.keySet()) { String value = params.get(key); @@ -438,7 +433,7 @@ public class WxPayService { * @return */ private String buildQueryRequestBody(String outTradeNo, String transactionId) { - Map params = new HashMap(); + Map params = new HashMap<>(); params.put("appid", appId); params.put("mch_id", mchId); if (StringUtils.isEmpty(transactionId) && StringUtils.isEmpty(outTradeNo)) { @@ -450,12 +445,12 @@ public class WxPayService { if (StringUtils.isNotEmpty(outTradeNo)) { params.put("out_trade_no", outTradeNo); } - String nonce_str = RandomKit.buildRandom(32); - params.put("nonce_str", nonce_str); + String nonceStr = RandomKit.buildRandom(32); + params.put("nonce_str", nonceStr); //签名放最后的 String sign = WxSignKit.buildSign(params, apiKey); params.put("sign", sign); - StringBuffer reqBody = new StringBuffer(); + StringBuilder reqBody = new StringBuilder(); reqBody.append(""); for (String key : params.keySet()) { String value = params.get(key); @@ -476,7 +471,7 @@ public class WxPayService { * @return */ private String buildRefundQueryRequestBody(String outTradeNo, String transactionId, String ouRefundNo, String refundid) { - Map params = new HashMap(); + Map params = new HashMap<>(); params.put("appid", appId); params.put("mch_id", mchId); if (StringUtils.isEmpty(transactionId) && StringUtils.isEmpty(outTradeNo) && StringUtils.isEmpty(ouRefundNo) && StringUtils.isEmpty(refundid)) { @@ -494,12 +489,12 @@ public class WxPayService { if (StringUtils.isNotEmpty(refundid)) { params.put("refund_id", refundid); } - String nonce_str = RandomKit.buildRandom(32); - params.put("nonce_str", nonce_str); + String nonceStr = RandomKit.buildRandom(32); + params.put("nonce_str", nonceStr); //签名放最后的 String sign = WxSignKit.buildSign(params, apiKey); params.put("sign", sign); - StringBuffer reqBody = new StringBuffer(); + StringBuilder reqBody = new StringBuilder(); reqBody.append(""); for (String key : params.keySet()) { String value = params.get(key); @@ -521,7 +516,7 @@ public class WxPayService { //查询订单 String outTradeNo = "2017051200"; String transactionId = "4001082001201705120512385115"; - WxQueryResult queryResult = wxPayBuilder.oderQuery(outTradeNo, transactionId); + WxQueryResult queryResult = wxPayBuilder.orderQuery(outTradeNo, transactionId); if (!queryResult.isSuccess()) { throw new BusinessException(queryResult.getMessage()); } diff --git a/boot-service/src/main/resources/druid.properties b/boot-service/src/main/resources/druid.properties index 56026a5..83f4cbf 100644 --- a/boot-service/src/main/resources/druid.properties +++ b/boot-service/src/main/resources/druid.properties @@ -2,7 +2,7 @@ jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/springboot2?useUnicode=true&characterEncoding=utf8 jdbc.username=root -jdbc.password= +jdbc.password=xwbing # 初始化大小,最小,最大 jdbc.initSize=1 jdbc.minIdle=3