From c3d3c9eb9b307ad2de2148b21199def56948dd3e Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Fri, 3 Nov 2023 16:07:28 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=94=AF=E4=BB=98=20=E5=8D=A0?= =?UTF-8?q?=E6=A1=A9=E8=AE=A2=E5=8D=95=20=E5=90=8E=E9=9D=A2=E6=8B=BC?= =?UTF-8?q?=E4=B8=8A=E6=97=B6=E9=97=B4=E6=88=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/SpringBootTestController.java | 12 +++++ .../jsowell/adapay/service/AdapayService.java | 52 +++++++++++++++++-- .../impl/OrderBasicInfoServiceImpl.java | 3 ++ 3 files changed, 64 insertions(+), 3 deletions(-) diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index 81bd118d4..3fb27bcc0 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -16,6 +16,7 @@ import com.huifu.adapay.model.Payment; import com.huifu.adapay.model.PaymentReverse; import com.huifu.adapay.model.Refund; import com.jsowell.JsowellApplication; +import com.jsowell.adapay.common.AdaPayment; import com.jsowell.adapay.config.AbstractAdapayConfig; import com.jsowell.adapay.dto.QueryAcctFlowDTO; import com.jsowell.adapay.dto.QueryPaymentConfirmDTO; @@ -238,6 +239,17 @@ public class SpringBootTestController { @Autowired private TempService tempService; + @Test + public void queryPaymentByOrderNoTest() { + String orderNo = "C44903356969"; + try { + List adaPayments = adapayService.queryPaymentByOrderNo(orderNo); + System.out.println(JSON.toJSONString(adaPayments)); + } catch (BaseAdaPayException e) { + throw new RuntimeException(e); + } + } + @Test public void checkPaymentTest() { QueryOrderDTO dto = new QueryOrderDTO(); diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java index 91b461924..29c1865b5 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java @@ -25,6 +25,7 @@ import com.jsowell.common.enums.DelFlagEnum; import com.jsowell.common.enums.adapay.AdapayStatusEnum; import com.jsowell.common.enums.adapay.MerchantDelayModeEnum; import com.jsowell.common.enums.ykc.ReturnCodeEnum; +import com.jsowell.common.enums.ykc.ScenarioEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.AdapayUtil; import com.jsowell.common.util.DateUtils; @@ -106,20 +107,27 @@ public class AdapayService { } String openId = memberBasicInfo.getOpenId(); + // 支付场景 + String type = dto.getType(); + // 封装对象 String amount = AdapayUtil.formatAmount(dto.getPayAmount()); // 用户支付金额 - // String payMode = Constants.ADAPAY_PAY_MODE_DELAY; // 汇付延时分账 String delayMode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId()); String payMode = MerchantDelayModeEnum.getAdapayPayMode(delayMode); CreateAdaPaymentParam createAdaPaymentParam = new CreateAdaPaymentParam(); - createAdaPaymentParam.setOrder_no(dto.getOrderCode() + "_" +DateUtils.dateTimeNow()); + // 请求订单号 + String orderNo = dto.getOrderCode(); + if (ScenarioEnum.OCCUPY.getValue().equals(type)) { + orderNo = orderNo + "_" + DateUtils.dateTimeNow(); + } + createAdaPaymentParam.setOrder_no(orderNo); createAdaPaymentParam.setPay_amt(amount); createAdaPaymentParam.setApp_id(config.getAdapayAppId()); createAdaPaymentParam.setPay_channel("wx_lite"); // todo 如果以后有支付宝等别的渠道,这里需要做修改,判断是什么渠道的请求 createAdaPaymentParam.setGoods_title(dto.getGoodsTitle()); createAdaPaymentParam.setGoods_desc(dto.getGoodsDesc()); // 这个字段是微信支付凭证的商品名 Map map = Maps.newHashMap(); - map.put("type", dto.getType()); + map.put("type", type); map.put("orderCode", dto.getOrderCode()); map.put("payMode", payMode); map.put("memberId", dto.getMemberId()); @@ -1131,4 +1139,42 @@ public class AdapayService { } while (hasMore); return resultList; } + + /** + * 查询支付列表 + */ + public List queryPaymentByOrderNo(String orderNo) throws BaseAdaPayException { + List resultList = Lists.newArrayList(); + String wechatAppId = "wxbb3e0d474569481d"; + String appId = "app_d0c80cb1-ffc8-48cb-a030-fe9bec823aaa"; + + int pageNum = 0; // 页面容量,取值范围 1~20,默认值为 10 + int pageSize = 20; // 页面容量,取值范围 1~20,默认值为 10 + + boolean hasMore; + do { + pageNum += 1; + // 根据时间段查询支付对象列表 + Map queryListParam = Maps.newHashMap(); + queryListParam.put("app_id", appId); + queryListParam.put("page_index", pageNum); + queryListParam.put("page_size", pageSize); + queryListParam.put("order_no", orderNo); + + System.out.println("查询支付对象列表请求参数:" + JSON.toJSONString(queryListParam)); + Map paymentListResult = Payment.queryList(queryListParam, wechatAppId); + if (paymentListResult == null) { + break; + } + String jsonString = JSON.toJSONString(paymentListResult); + System.out.println("查询支付对象列表result:" + jsonString); + + JSONObject jsonObject = JSON.parseObject(jsonString); + List list = jsonObject.getList("payments", AdaPayment.class, JSONReader.Feature.FieldBased); + resultList.addAll(list); + + hasMore = jsonObject.getBoolean("has_more"); + } while (hasMore); + return resultList; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index c6faa43bd..478d40a76 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -2012,6 +2012,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { for (OrderBasicInfo orderBasicInfo : orderList) { this.cleanCacheByOrderCode(orderBasicInfo.getOrderCode(), orderBasicInfo.getTransactionCode()); + + // 通过订单号查询汇付有没有支付单 + } } return orderList.size();