From 1868434dcd4b4ba48104dd9804cf793c3707908c Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Sat, 27 May 2023 16:30:35 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B1=87=E4=BB=98=E6=94=AF=E4=BB=98=20?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/jsowell/api/uniapp/PayController.java | 4 ++-- .../pile/service/impl/OrderBasicInfoServiceImpl.java | 7 +------ 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/PayController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/PayController.java index f2fd95373..ea959d33f 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/PayController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/PayController.java @@ -330,10 +330,10 @@ public class PayController extends BaseController { orderService.adapayRefund(dto); response = new RestApiResponse<>(); } catch (BusinessException e) { - logger.warn("微信退款接口 warn", e); + logger.warn("汇付支付退款接口 warn", e); response = new RestApiResponse<>(e.getCode(), e.getMessage()); } catch (Exception e) { - logger.error("微信退款接口 error", e); + logger.error("汇付支付退款接口 error", e); response = new RestApiResponse<>(ReturnCodeEnum.CODE_WEIXIN_REFUND_ERROR); } return response; 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 11525498e..a294956ad 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 @@ -2,7 +2,6 @@ package com.jsowell.pile.service.impl; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; -import com.alibaba.fastjson2.TypeReference; import com.fasterxml.jackson.core.JsonProcessingException; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -1759,11 +1758,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { refundParams.put("refund_order_no", SnowflakeIdWorker.getSnowflakeId()); Map response = Refund.create(id, refundParams); logger.info("创建退款对象:{}", JSON.toJSONString(response)); - if (response != null && !response.isEmpty()) { - JSONObject jsonObject = JSONObject.parseObject(response.get("expend").toString()); - JSONObject pay_info = jsonObject.getJSONObject("pay_info"); - Map resultMap = JSONObject.parseObject(pay_info.toJSONString(), new TypeReference>() {}); - } + } @Override From 7904c30edc776a4fc60e4ed4824f2b9b92cfdbe5 Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Sat, 27 May 2023 16:58:32 +0800 Subject: [PATCH 2/3] =?UTF-8?q?update=20=E6=B1=87=E4=BB=98=E9=80=80?= =?UTF-8?q?=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jsowell/service/OrderService.java | 9 ++------- .../impl/OrderBasicInfoServiceImpl.java | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index d6365f069..566df6ed4 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -120,17 +120,12 @@ public class OrderService { @Autowired private IMemberInvoiceTitleService memberInvoiceTitleService; - private List stationIdList = Lists.newArrayList("1", "2"); - @Value("${adapay.appId}") private String ADAPAY_APP_ID; @Value("${adapay.callback}") private String ADAPAY_CALLBACK_URL; - @Value("${adapay.refundCallback}") - private String adapay_refund_callback_url; - /** * 生成订单 * @@ -1333,11 +1328,11 @@ public class OrderService { String sign = request.getParameter("sign"); //验签请参publicKey String publicKey = AdapayCore.PUBLIC_KEY; - log.info("汇付支付回调验签请参data={}, sign={}", data, sign); + log.info("汇付支付退款回调验签请参data={}, sign={}", data, sign); //验签标记 boolean checkSign = AdapaySign.verifySign(data, sign, publicKey); if (!checkSign) { - log.info("汇付支付回调验签失败:{}", data); + log.info("汇付支付退款回调验签失败:{}", data); return; } } 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 a294956ad..1d0a9def9 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 @@ -50,6 +50,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -129,6 +130,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { @Autowired private IPileMerchantInfoService pileMerchantInfoService; + @Value("${adapay.refundCallback}") + private String ADAPAY_REFUND_CALLBACK_URL; + /** * 条件查询订单基本信息 * @@ -1756,6 +1760,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { Map refundParams = Maps.newHashMap(); refundParams.put("refund_amt", AdapayUtil.formatAmount(dto.getRefundAmount())); refundParams.put("refund_order_no", SnowflakeIdWorker.getSnowflakeId()); + refundParams.put("notify_url", ADAPAY_REFUND_CALLBACK_URL); Map response = Refund.create(id, refundParams); logger.info("创建退款对象:{}", JSON.toJSONString(response)); @@ -1763,6 +1768,20 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { @Override public void refundForBalanceWithAdapay(WeChatRefundDTO dto) { + // 查会员余额 + MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId()); + if (memberVO == null) { + throw new BusinessException(ReturnCodeEnum.CODE_SELECT_MEMBER_NULL_ERROR); + } + // 校验退款金额 + BigDecimal principalBalance = memberVO.getPrincipalBalance(); + BigDecimal refundAmount = dto.getRefundAmount(); + if (refundAmount.compareTo(principalBalance) > 0) { + throw new BusinessException(ReturnCodeEnum.CODE_REFUND_MEMBER_BALANCE_ERROR); + } + // 查询用户充值余额订单 过滤掉已经退款的充值订单 + + // 也许需要多笔支付订单才够退款 } } From 6aa671d0e16265f23eaba05d37dbb07524b38c4d Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Sat, 27 May 2023 17:00:03 +0800 Subject: [PATCH 3/3] =?UTF-8?q?update=20=E6=B1=87=E4=BB=98=E9=80=80?= =?UTF-8?q?=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jsowell-admin/src/test/java/SpringBootTestController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index b3ced0506..81d0a36c9 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -154,6 +154,7 @@ public class SpringBootTestController { Map refundParams = Maps.newHashMap(); refundParams.put("refund_amt", AdapayUtil.formatAmount(refundAmount)); refundParams.put("refund_order_no", SnowflakeIdWorker.getSnowflakeId()); + refundParams.put("notify_url", "https://api.jsowellcloud.com/uniapp/pay/adapayRefundCallback"); Map response = Refund.create(id, refundParams); System.out.println(JSON.toJSONString(response)); // if (response != null && !response.isEmpty()) {