From 456c479f7a44280fffc8395b9e213ae7f4280efe Mon Sep 17 00:00:00 2001 From: xiangwb Date: Tue, 27 Mar 2018 17:43:41 +0800 Subject: [PATCH] merge --- .../com/xwbing/demo/CreateOrderNoDemo.java | 21 +++--- ...yParam.java => AliPayBarCodePayParam.java} | 4 +- ...esult.java => AliPayBarCodePayResult.java} | 4 +- ...yBaseResult.java => AliPayBaseResult.java} | 2 +- ...lipayConstant.java => AliPayConstant.java} | 2 +- ...ueryResult.java => AliPayQueryResult.java} | 4 +- ...efundParam.java => AliPayRefundParam.java} | 6 +- ...undResult.java => AliPayRefundResult.java} | 4 +- ...usEnum.java => AliPayTradeStatusEnum.java} | 4 +- ...{AlipayService.java => AliPayService.java} | 63 ++++++++-------- .../xwbing/service/other/WxPayService.java | 72 ++++++------------- .../src/main/resources/pay.properties | 8 +-- 12 files changed, 84 insertions(+), 110 deletions(-) rename boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/{AlipayBarCodePayParam.java => AliPayBarCodePayParam.java} (90%) rename boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/{AlipayBarCodePayResult.java => AliPayBarCodePayResult.java} (92%) rename boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/{AlipayBaseResult.java => AliPayBaseResult.java} (93%) rename boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/{AlipayConstant.java => AliPayConstant.java} (96%) rename boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/{AlipayQueryResult.java => AliPayQueryResult.java} (78%) rename boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/{AlipayRefundParam.java => AliPayRefundParam.java} (89%) rename boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/{AlipayRefundResult.java => AliPayRefundResult.java} (91%) rename boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/{AlipayTradeStatusEnum.java => AliPayTradeStatusEnum.java} (87%) rename boot-service/src/main/java/com/xwbing/service/other/{AlipayService.java => AliPayService.java} (85%) diff --git a/boot-service/src/main/java/com/xwbing/demo/CreateOrderNoDemo.java b/boot-service/src/main/java/com/xwbing/demo/CreateOrderNoDemo.java index 941ea3e..cfe54d7 100644 --- a/boot-service/src/main/java/com/xwbing/demo/CreateOrderNoDemo.java +++ b/boot-service/src/main/java/com/xwbing/demo/CreateOrderNoDemo.java @@ -15,24 +15,25 @@ import java.util.List; public class CreateOrderNoDemo { public synchronized static String getNo() { - String sequence = ""; + String sequence; SimpleDateFormat sdf = new SimpleDateFormat("YYYY_MM_DD"); String date = sdf.format(new Date()); - StringBuffer sql = new StringBuffer("select * from order_table"); + StringBuilder sql = new StringBuilder("select * from order_table"); sql.append(" where order_no like '" + date + "%'"); sql.append(" order by create_time desc"); - List list=queryList(); - if(CollectionUtils.isNotEmpty(list)){ + List list = queryList(); + if (CollectionUtils.isNotEmpty(list)) { String orderNo = list.get(0).getOrderNo(); long newOrderNo = Long.valueOf(orderNo.substring(8, 18)) + 1; String sequ = new DecimalFormat("0000000000").format(newOrderNo); sequence = date + sequ; - }else { + } else { sequence = date + "0000000000"; } return sequence; } - class Order{//模拟订单类 + + class Order {//模拟订单类 String orderNo; public String getOrderNo() { @@ -42,13 +43,15 @@ public class CreateOrderNoDemo { public void setOrderNo(String orderNo) { this.orderNo = orderNo; } - + } - public static List queryList(){//模拟查询 + + public static List queryList() {//模拟查询 return null; } + public static void main(String[] args) { - long a=12356; + long a = 12356; String sequ = new DecimalFormat("0000000000").format(a); System.out.println(sequ); } diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBarCodePayParam.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayBarCodePayParam.java similarity index 90% rename from boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBarCodePayParam.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayBarCodePayParam.java index 19c79ab..78d8ebc 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBarCodePayParam.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayBarCodePayParam.java @@ -10,7 +10,7 @@ import lombok.Data; * 作者: xiangwb */ @Data -public class AlipayBarCodePayParam { +public class AliPayBarCodePayParam { /** * 本系统订单号 */ @@ -35,7 +35,7 @@ public class AlipayBarCodePayParam { @JSONField(name = "total_amount") private float totalAmount; - public AlipayBarCodePayParam(String outTradeNo, String authCode, String subject, float totalAmount) { + public AliPayBarCodePayParam(String outTradeNo, String authCode, String subject, float totalAmount) { this.outTradeNo = outTradeNo; this.authCode = authCode; this.subject = subject; diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBarCodePayResult.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayBarCodePayResult.java similarity index 92% rename from boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBarCodePayResult.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayBarCodePayResult.java index a228fa3..9707c58 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBarCodePayResult.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayBarCodePayResult.java @@ -15,7 +15,7 @@ import java.util.List; */ @EqualsAndHashCode(callSuper = true) @Data -public class AlipayBarCodePayResult extends AlipayBaseResult { +public class AliPayBarCodePayResult extends AliPayBaseResult { public static final String HASPAYED = "ACQ.TRADE_HAS_SUCCESS"; /** @@ -55,7 +55,7 @@ public class AlipayBarCodePayResult extends AlipayBaseResult { */ private String discountGoodsDetail; - public AlipayBarCodePayResult(boolean isSuccess) { + public AliPayBarCodePayResult(boolean isSuccess) { this.setSuccess(isSuccess); } diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBaseResult.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayBaseResult.java similarity index 93% rename from boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBaseResult.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayBaseResult.java index 9e1857d..ded3253 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayBaseResult.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayBaseResult.java @@ -9,7 +9,7 @@ import lombok.Data; * 作者: xiangwb */ @Data -public class AlipayBaseResult { +public class AliPayBaseResult { /** * 是否成功 */ diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayConstant.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayConstant.java similarity index 96% rename from boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayConstant.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayConstant.java index f48ecd8..b1cf3b0 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayConstant.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayConstant.java @@ -7,7 +7,7 @@ package com.xwbing.domain.entity.pay.alipay; * 作者: xiangwb */ -public class AlipayConstant { +public class AliPayConstant { /** * 接口调用成功 */ diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayQueryResult.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayQueryResult.java similarity index 78% rename from boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayQueryResult.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayQueryResult.java index 359c879..652776f 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayQueryResult.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayQueryResult.java @@ -11,13 +11,13 @@ import lombok.EqualsAndHashCode; */ @EqualsAndHashCode(callSuper = true) @Data -public class AlipayQueryResult extends AlipayBaseResult { +public class AliPayQueryResult extends AliPayBaseResult { /** * 交易支付状态 */ private String tradeStatus; - public AlipayQueryResult(boolean success) { + public AliPayQueryResult(boolean success) { this.setSuccess(success); } } diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayRefundParam.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayRefundParam.java similarity index 89% rename from boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayRefundParam.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayRefundParam.java index 6a1eb5a..340e00f 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayRefundParam.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayRefundParam.java @@ -10,7 +10,7 @@ import lombok.Data; * 作者: xiangwb */ @Data -public class AlipayRefundParam { +public class AliPayRefundParam { /** * 本系统订单号 订单号和支付宝交易号2选1 */ @@ -37,14 +37,14 @@ public class AlipayRefundParam { @JSONField(name = "refund_reason") private String refundReason; - public AlipayRefundParam(String outRequestNo, String outTradeNo, float refundAmount, String refundReason) { + public AliPayRefundParam(String outRequestNo, String outTradeNo, float refundAmount, String refundReason) { this.outRequestNo = outRequestNo; this.outTradeNo = outTradeNo; this.refundAmount = refundAmount; this.refundReason = refundReason; } - public AlipayRefundParam(String outRequestNo, String tradeNo, String refundReason, float refundAmount) { + public AliPayRefundParam(String outRequestNo, String tradeNo, String refundReason, float refundAmount) { this.outRequestNo = outRequestNo; this.tradeNo = tradeNo; this.refundAmount = refundAmount; diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayRefundResult.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayRefundResult.java similarity index 91% rename from boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayRefundResult.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayRefundResult.java index 0a675e4..6243dfc 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayRefundResult.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayRefundResult.java @@ -14,7 +14,7 @@ import java.util.Date; */ @EqualsAndHashCode(callSuper = true) @Data -public class AlipayRefundResult extends AlipayBaseResult { +public class AliPayRefundResult extends AliPayBaseResult { /** * 支付宝交易号 */ @@ -51,7 +51,7 @@ public class AlipayRefundResult extends AlipayBaseResult { @JSONField(name = "buyer_user_id") private String buyerUserId; - public AlipayRefundResult(boolean isSuccess) { + public AliPayRefundResult(boolean isSuccess) { this.setSuccess(isSuccess); } } diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayTradeStatusEnum.java b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayTradeStatusEnum.java similarity index 87% rename from boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayTradeStatusEnum.java rename to boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayTradeStatusEnum.java index 4a956aa..ef6c661 100644 --- a/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AlipayTradeStatusEnum.java +++ b/boot-service/src/main/java/com/xwbing/domain/entity/pay/alipay/AliPayTradeStatusEnum.java @@ -6,7 +6,7 @@ package com.xwbing.domain.entity.pay.alipay; * 创建时间: 2017/5/10 17:39 * 作者: xiangwb */ -public enum AlipayTradeStatusEnum { +public enum AliPayTradeStatusEnum { WAIT_BUYER_PAY("交易创建,等待买家付款", "WAIT_BUYER_PAY"), TRADE_CLOSED("未付款交易超时关闭,或支付完成后全额退款", "TRADE_CLOSED"), TRADE_SUCCESS("交易支付成功", "TRADE_SUCCESS"), @@ -15,7 +15,7 @@ public enum AlipayTradeStatusEnum { private String code; private String name; - private AlipayTradeStatusEnum(String name, String code) { + private AliPayTradeStatusEnum(String name, String code) { this.code = code; this.name = 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 similarity index 85% rename from boot-service/src/main/java/com/xwbing/service/other/AlipayService.java rename to boot-service/src/main/java/com/xwbing/service/other/AliPayService.java index 35411d9..404287f 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 @@ -25,33 +25,33 @@ import java.util.Objects; /** * 说明: 支付宝支付接口实现 * 项目名称: spring-demo - * 创建时间: 2017/5/10 17:30 + * 创建时间: 2017/5/10 17:50 * 作者: xiangwb */ @Service @PropertySource("classpath:pay.properties") -public class AlipayService { - private final Logger logger = LoggerFactory.getLogger(AlipayService.class); +public class AliPayService { + private final Logger logger = LoggerFactory.getLogger(AliPayService.class); /** * 支付宝分配给开发者的应用ID */ - @Value("${alipay.appId}") - private static String appId; + @Value("${aliPay.appId}") + private String appId; /** * 私钥 */ - @Value("${alipay.rsaPrivateKey}") - private static String privateKey; + @Value("${aliPay.rsaPrivateKey}") + private String privateKey; /** * 公钥 */ - @Value("${alipay.rsaPublicKey}") - private static String publicKey; + @Value("${aliPay.rsaPublicKey}") + private String publicKey; /** * 请求url */ - @Value("${alipay.requestUrl}") - private static String requestUrl; + @Value("${aliPay.requestUrl}") + private String requestUrl; /** * 条形码扫码付 @@ -59,10 +59,10 @@ public class AlipayService { * @param param * @return */ - public AlipayBarCodePayResult barCodePay(AlipayBarCodePayParam param) { + public AliPayBarCodePayResult barCodePay(AliPayBarCodePayParam param) { //设置条码支付 param.setScene("bar_code"); - AlipayBarCodePayResult result = new AlipayBarCodePayResult(false); + AliPayBarCodePayResult result = new AliPayBarCodePayResult(false); String checkArgument = checkArgument(param); if (StringUtils.isNotEmpty(checkArgument)) { result.setMessage(checkArgument); @@ -81,7 +81,8 @@ public class AlipayService { logger.error(e.getMessage()); throw new PayException("扫码支付异常"); } - result.setSuccess(response.isSuccess()); //源码StringUtils.isEmpty(this.subCode) + //源码StringUtils.isEmpty(this.subCode) + result.setSuccess(response.isSuccess()); //根据response中的结果继续业务逻辑处理:subCode不为空,表示接口调用失败|code为10000,代表接口调用成功,subCode为空 if (StringUtils.isEmpty(response.getSubCode())) { result.setCode(response.getCode()); @@ -101,7 +102,7 @@ public class AlipayService { result.setFundBillList(response.getFundBillList()); result.setBuyerUserId(response.getBuyerUserId()); result.setDiscountGoodsDetail(response.getDiscountGoodsDetail()); - logger.info("result = " + result); + logger.info("result = {}", result); return result; } @@ -111,12 +112,11 @@ public class AlipayService { * @param param * @return */ - public AlipayRefundResult refund(AlipayRefundParam param) { - AlipayRefundResult result = new AlipayRefundResult(false); + 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; try { response = alipayClient.execute(request); @@ -125,7 +125,6 @@ public class AlipayService { throw new PayException("退款异常"); } result.setSuccess(response.isSuccess()); - //如果subCode存在,代表调用接口失败 if (StringUtils.isNotEmpty(response.getSubCode())) { logger.error(response.getSubMsg()); result.setCode(response.getSubCode()); @@ -142,23 +141,23 @@ public class AlipayService { result.setRefundFee(response.getRefundFee()); result.setGmtRefundPay(response.getGmtRefundPay()); result.setBuyerUserId(response.getBuyerUserId()); - logger.info("result = " + result); + logger.info("result = {}", result); return result; } /** * 根据订单号 交易号查询 只需要一个即可 - * 如果isSuccess,根据tradeStatus,遍历AlipayTradeStatusEnum获取对应支付状态 + * 如果isSuccess,根据tradeStatus,遍历AliPayTradeStatusEnum获取对应支付状态 * * @param outTradeNo 订单号 * @param tradeNo 交易号(推荐) * @return */ - public AlipayQueryResult queryOrder(String outTradeNo, String tradeNo) { + public AliPayQueryResult queryOrder(String outTradeNo, String tradeNo) { if (StringUtils.isEmpty(outTradeNo) && StringUtils.isEmpty(tradeNo)) { throw new PayException("订单号和交易号不能同时为空!"); } - AlipayQueryResult result = new AlipayQueryResult(false); + AliPayQueryResult result = new AliPayQueryResult(false); AlipayClient alipayClient = new DefaultAlipayClient(requestUrl, appId, privateKey, "json", "UTF-8", publicKey, "RSA2"); AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); JSONObject jsonObject = new JSONObject(); @@ -169,7 +168,6 @@ public class AlipayService { jsonObject.put("trade_no", tradeNo); } request.setBizContent(jsonObject.toString()); - //通过aliPayClient调用API,获得对应的response类 AlipayTradeQueryResponse response; try { response = alipayClient.execute(request); @@ -194,11 +192,11 @@ public class AlipayService { * @param outRequestNo 退款请求号 * @return */ - public AlipayQueryResult queryRefund(String outTradeNo, String tradeNo, String outRequestNo) { + public AliPayQueryResult queryRefund(String outTradeNo, String tradeNo, String outRequestNo) { if (StringUtils.isEmpty(outTradeNo) && StringUtils.isEmpty(tradeNo)) { throw new PayException("订单号和交易号不能同时为空!"); } - AlipayQueryResult result = new AlipayQueryResult(false); + AliPayQueryResult result = new AliPayQueryResult(false); AlipayClient alipayClient = new DefaultAlipayClient(requestUrl, appId, privateKey, "json", "UTF-8", publicKey, "RSA2"); AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); JSONObject jsonObject = new JSONObject(); @@ -210,7 +208,6 @@ public class AlipayService { jsonObject.put("trade_no", tradeNo); } request.setBizContent(jsonObject.toString()); - //通过aliPayClient调用API,获得对应的response类 AlipayTradeQueryResponse response; try { response = alipayClient.execute(request); @@ -229,7 +226,7 @@ public class AlipayService { * * @return */ - private void checkSubCode(AlipayQueryResult result, AlipayTradeQueryResponse response) { + private void checkSubCode(AliPayQueryResult result, AlipayTradeQueryResponse response) { if (StringUtils.isNotEmpty(response.getSubCode())) { result.setCode(response.getSubCode()); result.setMessage(response.getSubMsg()); @@ -245,7 +242,7 @@ public class AlipayService { * * @return */ - private String checkArgument(AlipayBarCodePayParam param) { + private String checkArgument(AliPayBarCodePayParam param) { String message; if (StringUtils.isEmpty(param.getOutTradeNo())) { message = "订单号为空"; @@ -263,7 +260,7 @@ public class AlipayService { public static void main(String[] args) { //刷卡支付 - AlipayService alipayBuilder = new AlipayService(); + AliPayService alipayBuilder = new AliPayService(); String orderNo = "201705180202"; // String authCode = "286796667181427987"; // AlipayBarCodePayParam codePayParam = new AlipayBarCodePayParam(orderNo, authCode, "test", 0.1f); @@ -272,12 +269,12 @@ public class AlipayService { //查询订单 String tradeNo = "2017051221001004630289850336"; - AlipayQueryResult queryResult = alipayBuilder.queryOrder(orderNo, tradeNo); + AliPayQueryResult queryResult = alipayBuilder.queryOrder(orderNo, tradeNo); if (!queryResult.isSuccess()) { throw new BusinessException(queryResult.getMessage()); } String tradeStatus = queryResult.getTradeStatus(); - for (AlipayTradeStatusEnum status : AlipayTradeStatusEnum.values()) { + for (AliPayTradeStatusEnum status : AliPayTradeStatusEnum.values()) { if (Objects.equals(tradeStatus, status.getCode())) { System.out.println(status.getName()); break; @@ -285,7 +282,7 @@ public class AlipayService { } // //退款操作 - AlipayRefundParam refundParam = new AlipayRefundParam("201505129999", orderNo, 0.05f, "test"); + AliPayRefundParam refundParam = new AliPayRefundParam("201505129999", orderNo, 0.05f, "test"); // AlipayRefundResult refundResult = alipayBuilder.refund(refundParam); // System.out.println(refundResult.getMessage()); 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 73b14a3..bcbd980 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 @@ -42,37 +42,37 @@ public class WxPayService { * 商户支付密钥 生成签名时用 */ @Value("${wx.apiKey}") - private static String apiKey; + private String apiKey; /** * 公众账号ID(企业号corpid) */ @Value("${wx.appId}") - private static String appId; + private String appId; /** * 商户号 */ @Value("${wx.mchId}") - private static String mchId; + private String mchId; /** * 刷卡支付url */ @Value("${wx.barCodePayUrl}") - private static String barCodePayUrl; + private String barCodePayUrl; /** * 申请退款url */ @Value("${wx.refundUrl}") - private static String refundUrl; + private String refundUrl; /** * 查询订单url */ @Value("${wx.orderQueryUrl}") - private static String orderQueryUrl; + private String orderQueryUrl; /** * 退款查询url */ @Value("${wx.refundQueryUrl}") - private static String refundQueryUrl; + private String refundQueryUrl; /** * 条形码扫码付 @@ -95,15 +95,14 @@ public class WxPayService { HttpEntity entity = response.getEntity(); //返回结果为strXml String content = EntityUtils.toString(entity, "UTF-8"); - // 解析返回值 - Map returnMap; - returnMap = XmlUtil.doXMLParse(content); + //解析返回值 + Map returnMap = XmlUtil.doXMLParse(content); //返回状态码SUCCESS/FAIL result.setResultCode(returnMap.get("return_code")); - //返回信息 非空,为错误原因 + //返回信息:非空,为错误原因 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; } @@ -157,32 +156,24 @@ public class WxPayService { public WxRefundResult refund(WxRefundParam param) { WxRefundResult result = new WxRefundResult(false); HttpPost post = new HttpPost(refundUrl); - //输入参数为转为strXml String reqBody = buildRefundBarCodeRequestBody(param); post.setEntity(new StringEntity(reqBody, "UTF-8")); CloseableHttpClient httpclient; try { - //根据mchId读取微信证书,SSL创建安全连接 httpclient = ClientCustomSSL.getCloseableHttpClient(mchId); CloseableHttpResponse response = httpclient.execute(post); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { - //返回结果为strXml HttpEntity entity = response.getEntity(); String content = EntityUtils.toString(entity, "UTF-8"); - // 解析返回值 - Map returnMap; - returnMap = com.xwbing.util.payWxpay.XmlUtil.doXMLParse(content); - //返回状态码SUCCESS/FAIL + Map returnMap = com.xwbing.util.payWxpay.XmlUtil.doXMLParse(content); result.setResultCode(returnMap.get("return_code")); - //返回信息 非空,为错误原因 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; } logger.info("outRefundNo=" + param.getOutTradeNo() + ",err_code=" + returnMap.get("err_code") + ",result_code=" + returnMap.get("result_code") + ",err_code_des=" + returnMap.get("err_code_des")); - //业务结果SUCCESS/FAIL if ("SUCCESS".equals(returnMap.get("result_code"))) { result.setSuccess(true); result.setAppid(returnMap.get("appid")); @@ -232,31 +223,24 @@ public class WxPayService { public WxQueryResult orderQuery(String outTradeNo, String transactionId) { WxQueryResult result = new WxQueryResult(false); HttpPost post = new HttpPost(orderQueryUrl); - //输入参数为转为strXml String reqBody = buildQueryRequestBody(outTradeNo, transactionId); post.setEntity(new StringEntity(reqBody, "UTF-8")); CloseableHttpClient httpclient; try { - //根据mchId读取微信证书,SSL创建安全连接 httpclient = ClientCustomSSL.getCloseableHttpClient(mchId); CloseableHttpResponse response = httpclient.execute(post); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { HttpEntity entity = response.getEntity(); - //返回结果为strXml String content = EntityUtils.toString(entity, "UTF-8"); - // 解析返回值 - Map returnMap; - returnMap = XmlUtil.doXMLParse(content); + Map returnMap = XmlUtil.doXMLParse(content); result.setResultCode(returnMap.get("return_code")); 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; } logger.info("outTradeNo=" + outTradeNo + ",transactionId=" + transactionId); - //业务结果 if ("SUCCESS".equals(returnMap.get("result_code"))) { result.setSuccess(true); //交易状态 @@ -300,24 +284,18 @@ public class WxPayService { public WxQueryResult refundQuery(String outTradeNo, String transactionId, String ouRefundNo, String refundid) { WxQueryResult result = new WxQueryResult(false); HttpPost post = new HttpPost(refundQueryUrl); - //输入参数为转为strXml String reqBody = buildRefundQueryRequestBody(outTradeNo, transactionId, ouRefundNo, refundid); post.setEntity(new StringEntity(reqBody, "UTF-8")); CloseableHttpClient httpclient; try { - //根据mchId读取微信证书,SSL创建安全连接 httpclient = ClientCustomSSL.getCloseableHttpClient(mchId); CloseableHttpResponse response = httpclient.execute(post); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { HttpEntity entity = response.getEntity(); - //返回结果为strXml String content = EntityUtils.toString(entity, "UTF-8"); - // 解析返回值 - Map returnMap; - returnMap = XmlUtil.doXMLParse(content); + Map returnMap = XmlUtil.doXMLParse(content); result.setResultCode(returnMap.get("return_code")); result.setMessage(returnMap.get("return_msg")); - //此字段是通信标识,非交易标识 if ("FAIL".equalsIgnoreCase(returnMap.get("return_code"))) { logger.error("wx barCodePay failed!"); result.setSuccess(false); @@ -361,7 +339,7 @@ public class WxPayService { * @return */ private String buildBarCodeRequestBody(WxBarCodePayParam param) { - Map params = new HashMap(); + Map params = new HashMap<>(); params.put("appid", appId); params.put("mch_id", mchId); String nonceStr = RandomKit.buildRandom(32); @@ -382,7 +360,6 @@ public class WxPayService { reqBody.append("<").append(key).append(">").append(value).append(""); } reqBody.append(""); - logger.info(reqBody + "~~~------------"); return reqBody.toString(); } @@ -421,12 +398,11 @@ public class WxPayService { reqBody.append("<").append(key).append(">").append(value).append(""); } reqBody.append(""); - logger.info(reqBody + "~~~------------"); return reqBody.toString(); } /** - * 查询封装参数 + * 构建订单查询参数 * * @param outTradeNo 商户订单号 * @param transactionId 微信订单号 @@ -457,12 +433,11 @@ public class WxPayService { reqBody.append("<").append(key).append(">").append(value).append(""); } reqBody.append(""); - logger.info(reqBody + "~~~------------"); return reqBody.toString(); } /** - * 查询封装参数 + * 构建退款查询参数 * * @param outTradeNo 商户订单号 * @param transactionId 微信订单号 @@ -501,17 +476,16 @@ public class WxPayService { reqBody.append("<").append(key).append(">").append(value).append(""); } reqBody.append(""); - logger.info(reqBody + "~~~------------"); return reqBody.toString(); } public static void main(String[] args) { WxPayService wxPayBuilder = new WxPayService(); //刷卡支付 -// String authCode = "130203463134616871"; -// WxBarCodePayParam payParam = new WxBarCodePayParam("2017051200", "127.0.0.0", authCode, "test", 1); -// WxBarCodePayResult result = wxPayBuilder.barCodePay(payParam); -// System.out.println(result.isSuccess() + result.getMessage()); + String authCode = "130203463134616871"; + WxBarCodePayParam payParam = new WxBarCodePayParam("2017051200", "127.0.0.0", authCode, "test", 1); + WxBarCodePayResult result = wxPayBuilder.barCodePay(payParam); + System.out.println(result.isSuccess() + result.getMessage()); //查询订单 String outTradeNo = "2017051200"; diff --git a/boot-service/src/main/resources/pay.properties b/boot-service/src/main/resources/pay.properties index f61ee01..c755db9 100644 --- a/boot-service/src/main/resources/pay.properties +++ b/boot-service/src/main/resources/pay.properties @@ -12,10 +12,10 @@ wx.refundQueryUrl=https://api.mch.weixin.qq.com/pay/refundquery ###payAlipay pay set start## -alipay.appId=2017051807273744 -alipay.requestUrl=https://openapi.alipay.com/gateway.do -alipay.rsaPublicKey=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsa1COluDzLH7GhYCWZp4HclR9x2nJ51UNVx7nmDwjr4Gg4miAOiEHYjZ4ILOUavo2EPN0/pcGRhMa8U87xICWcHQr26Q8cYkZgIfb5DC7l2b8MROxUYzdk82Y+3c8mbZ/6I5LfJeztDWtnXLQUZihTqaI2hPeGL9WEeMxqxaXMge1ho1BF4LfylUlO0WOle9grWYv0Xqpz0zKz6kCiVj2gdvNpL6ULj/C8BHZtY+aHd0Pd1dOdFPft8c+uTs7ESpAwClvoS9Go2LXJGPZUNGd0FnzRSyjpbi905rOjDQbUlUdcSbcg/qiFHaH1+GF3yRD4RAIO8pgzTj8RLsrbj/MQIDAQAB -alipay.rsaPrivateKey=MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCxrUI6W4PMsfsaFgJZmngdyVH3HacnnVQ1XHueYPCOvgaDiaIA6IQdiNnggs5Rq+jYQ83T+lwZGExrxTzvEgJZwdCvbpDxxiRmAh9vkMLuXZvwxE7FRjN2TzZj7dzyZtn/ojkt8l7O0Na2dctBRmKFOpojaE94Yv1YR4zGrFpcyB7WGjUEXgt/KVSU7RY6V72CtZi/ReqnPTMrPqQKJWPaB282kvpQuP8LwEdm1j5od3Q93V050U9+3xz65OzsRKkDAKW+hL0ajYtckY9lQ0Z3QWfNFLKOluL3Tms6MNBtSVR1xJtyD+qIUdofX4YXfJEPhEAg7ymDNOPxEuytuP8xAgMBAAECggEAJ3k2nYB3Z6KjBsic/Qs0ZGm1rBEKceKiMri5PhaLWysch1ysgUcnEui0fwyQidSHhoSJ1e5pR6n+UHMhdnupygclNdR6nzxGGeOe2EpxBEQHwRXb6jgOdtpiWxEdZT00cXa4/Vw7c/cxvJeu8HGSscazN+qUvUpAvrwmqnzgFnx/9jnji+tpPPahBD9uqJuKEg4cfvuR7sOtkcV4OyTfV1ASpec4Fsu0SXUSugP7ApSpKRZqIIpYIT/G8jqTxZ73tf2tnj6f9PoxzpbgN7kocxAzELxRpZi5G+CTqtc1AX6DKh173BhNqnAlfW7rGbF2IfUEsqbtsOksSor3+BRlgQKBgQDvf0QoG1CqO7xTokHFO1MWjYsfFxDQ7PeJtMdr/Jp2dYNpUT9B4Yl09DcLSEwDwn15VR4/NYlpiJvlOIrpYDWI0/ZvkSPy6hQmOP6WYTH1cdUwxSetX+MNBsi5PHUUa9ObvXBYZWOVLAuHieSJDcmJuDiGFdJvo2X+0ul68piVgwKBgQC963sDPk9mLgxD/en/1cQu4HxdS4MCelBqogRD24TV1DWkLFPBeK8QMLCvwd5BSN2kTXdTEEyHPCwBbe3hyQ6cKHmM5SUujomXnzOgbNWshCU3A7eHHjQjyK+eqSWDTsK4kX7q1A4Pi5MftTEiBUI5EwVHsXLNtcVhHTC24bsuOwKBgBb6jv+KH2M1+AvONaFG3+H6Eq8Y93QUSGvd/IRP6EIVZFZmhTs8+INQKzfZ5/E0Z/WMRSqraFPH161Wj310za4jKDHsKxbTfrtsHIExMinqkhnr0LLB0Hcff4LGWjVrYxI+StkwYS2e3DxU7qh3ui6Mjl/PGDG967tXYS96t0khAoGAXEuY322jlmugaFZ4Jm1TRtivd4Nf6o9Yj0mnOvbuaiAT5XHpTieBJCQVaYSUpzNrCxLef053cm0qkZNDvKtB31/IGlGtrR91/GpQ45CgkpMxpre2tAJYol9AAaH/6f0XoiyK+kINhz50RD+A3iCiGyyEL2AsA45nmpdd+jJfDcsCgYEA3ZPASHIfbnflQkWzzvUbzKLFqZB/NulDJTK4QvHne2canOac2oyOivBXQBgio9sqTolQo5W+6SxH9YqpH8GjPcPMsEF9PVsn4o/Gm3hY68sf2gSgpVfQzLM6KYDJ6asO93ZmJ6z0fu6qwUGdACpcSlZzCy0QQ6+QhHVobR2Uma8= +aliPay.appId=2017051807273744 +aliPay.requestUrl=https://openapi.alipay.com/gateway.do +aliPay.rsaPublicKey=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsa1COluDzLH7GhYCWZp4HclR9x2nJ51UNVx7nmDwjr4Gg4miAOiEHYjZ4ILOUavo2EPN0/pcGRhMa8U87xICWcHQr26Q8cYkZgIfb5DC7l2b8MROxUYzdk82Y+3c8mbZ/6I5LfJeztDWtnXLQUZihTqaI2hPeGL9WEeMxqxaXMge1ho1BF4LfylUlO0WOle9grWYv0Xqpz0zKz6kCiVj2gdvNpL6ULj/C8BHZtY+aHd0Pd1dOdFPft8c+uTs7ESpAwClvoS9Go2LXJGPZUNGd0FnzRSyjpbi905rOjDQbUlUdcSbcg/qiFHaH1+GF3yRD4RAIO8pgzTj8RLsrbj/MQIDAQAB +aliPay.rsaPrivateKey=MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCxrUI6W4PMsfsaFgJZmngdyVH3HacnnVQ1XHueYPCOvgaDiaIA6IQdiNnggs5Rq+jYQ83T+lwZGExrxTzvEgJZwdCvbpDxxiRmAh9vkMLuXZvwxE7FRjN2TzZj7dzyZtn/ojkt8l7O0Na2dctBRmKFOpojaE94Yv1YR4zGrFpcyB7WGjUEXgt/KVSU7RY6V72CtZi/ReqnPTMrPqQKJWPaB282kvpQuP8LwEdm1j5od3Q93V050U9+3xz65OzsRKkDAKW+hL0ajYtckY9lQ0Z3QWfNFLKOluL3Tms6MNBtSVR1xJtyD+qIUdofX4YXfJEPhEAg7ymDNOPxEuytuP8xAgMBAAECggEAJ3k2nYB3Z6KjBsic/Qs0ZGm1rBEKceKiMri5PhaLWysch1ysgUcnEui0fwyQidSHhoSJ1e5pR6n+UHMhdnupygclNdR6nzxGGeOe2EpxBEQHwRXb6jgOdtpiWxEdZT00cXa4/Vw7c/cxvJeu8HGSscazN+qUvUpAvrwmqnzgFnx/9jnji+tpPPahBD9uqJuKEg4cfvuR7sOtkcV4OyTfV1ASpec4Fsu0SXUSugP7ApSpKRZqIIpYIT/G8jqTxZ73tf2tnj6f9PoxzpbgN7kocxAzELxRpZi5G+CTqtc1AX6DKh173BhNqnAlfW7rGbF2IfUEsqbtsOksSor3+BRlgQKBgQDvf0QoG1CqO7xTokHFO1MWjYsfFxDQ7PeJtMdr/Jp2dYNpUT9B4Yl09DcLSEwDwn15VR4/NYlpiJvlOIrpYDWI0/ZvkSPy6hQmOP6WYTH1cdUwxSetX+MNBsi5PHUUa9ObvXBYZWOVLAuHieSJDcmJuDiGFdJvo2X+0ul68piVgwKBgQC963sDPk9mLgxD/en/1cQu4HxdS4MCelBqogRD24TV1DWkLFPBeK8QMLCvwd5BSN2kTXdTEEyHPCwBbe3hyQ6cKHmM5SUujomXnzOgbNWshCU3A7eHHjQjyK+eqSWDTsK4kX7q1A4Pi5MftTEiBUI5EwVHsXLNtcVhHTC24bsuOwKBgBb6jv+KH2M1+AvONaFG3+H6Eq8Y93QUSGvd/IRP6EIVZFZmhTs8+INQKzfZ5/E0Z/WMRSqraFPH161Wj310za4jKDHsKxbTfrtsHIExMinqkhnr0LLB0Hcff4LGWjVrYxI+StkwYS2e3DxU7qh3ui6Mjl/PGDG967tXYS96t0khAoGAXEuY322jlmugaFZ4Jm1TRtivd4Nf6o9Yj0mnOvbuaiAT5XHpTieBJCQVaYSUpzNrCxLef053cm0qkZNDvKtB31/IGlGtrR91/GpQ45CgkpMxpre2tAJYol9AAaH/6f0XoiyK+kINhz50RD+A3iCiGyyEL2AsA45nmpdd+jJfDcsCgYEA3ZPASHIfbnflQkWzzvUbzKLFqZB/NulDJTK4QvHne2canOac2oyOivBXQBgio9sqTolQo5W+6SxH9YqpH8GjPcPMsEF9PVsn4o/Gm3hY68sf2gSgpVfQzLM6KYDJ6asO93ZmJ6z0fu6qwUGdACpcSlZzCy0QQ6+QhHVobR2Uma8= ###payAlipay end set start##