From 9a16b34370247ff7958aebb2e02fb9807b5034a8 Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Thu, 27 Jul 2023 15:37:45 +0800 Subject: [PATCH] update --- .../com/jsowell/service/OrderService.java | 37 ++++++------------- .../service/IAdapayRefundRecordService.java | 7 +++- .../impl/AdapayRefundRecordServiceImpl.java | 16 +++++++- 3 files changed, 30 insertions(+), 30 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 d604d138b..d9f399c67 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -912,8 +912,6 @@ public class OrderService { String data = request.getParameter("data"); //验签请参sign String sign = request.getParameter("sign"); - // type - String type = request.getParameter("type"); //验签请参publicKey String publicKey = AdapayCore.PUBLIC_KEY; @@ -925,12 +923,15 @@ public class OrderService { return; } + // type + String type = request.getParameter("type"); + // 根据type执行不同逻辑 if (AdapayEventEnum.payment_succeeded.getValue().equals(type)) { // 支付成功 paymentSucceeded(data); } else if (AdapayEventEnum.refund_succeeded.getValue().equals(type)) { // 退款成功 - adapayRefundRecordService.saveAdapayRefundRecord(data); + refundSucceeded(data); } else if (AdapayEventEnum.corp_member_failed.getValue().equals(type)) { // 开户失败 删除 corpMemberFailed(data); @@ -941,7 +942,6 @@ public class OrderService { // 支付撤销成功 } - } /** @@ -1012,7 +1012,14 @@ public class OrderService { dto.setUpdatePrincipalBalance(amount); memberBasicInfoService.updateMemberBalance(dto); } + } + /** + * 汇付退款成功 + */ + private void refundSucceeded(String data) { + // 保存退款回调记录 + adapayRefundRecordService.saveAdapayRefundRecord(data); } /** @@ -1051,26 +1058,4 @@ public class OrderService { adapayMemberAccountService.updateAdapayMemberAccountByMemberId(adapayMemberAccount); } - /** - * 汇付支付 退款回调 - * @param request - * @throws Exception - */ - public void adapayRefundCallback(HttpServletRequest request) throws Exception { - //验签请参data - String data = request.getParameter("data"); - //验签请参sign - String sign = request.getParameter("sign"); - //验签请参publicKey - String publicKey = AdapayCore.PUBLIC_KEY; - log.info("汇付支付退款回调验签请参data={}, sign={}", data, sign); - //验签标记 - boolean checkSign = AdapaySign.verifySign(data, sign, publicKey); - if (!checkSign) { - log.info("汇付支付退款回调验签失败:{}", data); - return; - } - adapayRefundRecordService.saveAdapayRefundRecord(data); - } - } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IAdapayRefundRecordService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IAdapayRefundRecordService.java index 77356344d..d2a97d095 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IAdapayRefundRecordService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IAdapayRefundRecordService.java @@ -1,6 +1,5 @@ package com.jsowell.pile.service; -import com.fasterxml.jackson.core.JsonProcessingException; import com.jsowell.pile.domain.AdapayRefundRecord; import java.util.List; @@ -60,5 +59,9 @@ public interface IAdapayRefundRecordService { */ public int deleteAdapayRefundRecordById(Integer id); - void saveAdapayRefundRecord(String data) throws JsonProcessingException; + /** + * 保存汇付退款回调记录 + * @param data + */ + void saveAdapayRefundRecord(String data); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/AdapayRefundRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/AdapayRefundRecordServiceImpl.java index c3caa60ca..9e62aa3f4 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/AdapayRefundRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/AdapayRefundRecordServiceImpl.java @@ -12,6 +12,7 @@ import com.jsowell.pile.domain.AdapayRefundRecord; import com.jsowell.pile.mapper.AdapayRefundRecordMapper; import com.jsowell.pile.service.AdapayCallbackRecordService; import com.jsowell.pile.service.IAdapayRefundRecordService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -23,6 +24,7 @@ import java.util.List; * @author jsowell * @date 2023-05-31 */ +@Slf4j @Service public class AdapayRefundRecordServiceImpl implements IAdapayRefundRecordService { @Autowired @@ -97,13 +99,23 @@ public class AdapayRefundRecordServiceImpl implements IAdapayRefundRecordService return adapayRefundRecordMapper.deleteAdapayRefundRecordById(id); } + /** + * 保存汇付退款回调记录 + * @param data + */ @Override - public void saveAdapayRefundRecord(String data) throws JsonProcessingException { + public void saveAdapayRefundRecord(String data){ JSONObject jsonObject = JSON.parseObject(data); ObjectMapper mapper = new ObjectMapper(); mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - AdapayRefundRecord adapayRefundRecord = mapper.readValue(jsonObject.toJSONString(), AdapayRefundRecord.class); + AdapayRefundRecord adapayRefundRecord = null; + try { + adapayRefundRecord = mapper.readValue(jsonObject.toJSONString(), AdapayRefundRecord.class); + } catch (JsonProcessingException e) { + log.error("保存汇付退款回调记录发生异常data:{}", data, e); + return; + } adapayRefundRecord.setRefundId(jsonObject.getString("id")); AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByPaymentId(adapayRefundRecord.getPaymentId());