This commit is contained in:
2023-07-27 15:37:45 +08:00
parent 65b04da1df
commit 9a16b34370
3 changed files with 30 additions and 30 deletions

View File

@@ -912,8 +912,6 @@ public class OrderService {
String data = request.getParameter("data"); String data = request.getParameter("data");
//验签请参sign //验签请参sign
String sign = request.getParameter("sign"); String sign = request.getParameter("sign");
// type
String type = request.getParameter("type");
//验签请参publicKey //验签请参publicKey
String publicKey = AdapayCore.PUBLIC_KEY; String publicKey = AdapayCore.PUBLIC_KEY;
@@ -925,12 +923,15 @@ public class OrderService {
return; return;
} }
// type
String type = request.getParameter("type");
// 根据type执行不同逻辑
if (AdapayEventEnum.payment_succeeded.getValue().equals(type)) { if (AdapayEventEnum.payment_succeeded.getValue().equals(type)) {
// 支付成功 // 支付成功
paymentSucceeded(data); paymentSucceeded(data);
} else if (AdapayEventEnum.refund_succeeded.getValue().equals(type)) { } else if (AdapayEventEnum.refund_succeeded.getValue().equals(type)) {
// 退款成功 // 退款成功
adapayRefundRecordService.saveAdapayRefundRecord(data); refundSucceeded(data);
} else if (AdapayEventEnum.corp_member_failed.getValue().equals(type)) { } else if (AdapayEventEnum.corp_member_failed.getValue().equals(type)) {
// 开户失败 删除 // 开户失败 删除
corpMemberFailed(data); corpMemberFailed(data);
@@ -941,7 +942,6 @@ public class OrderService {
// 支付撤销成功 // 支付撤销成功
} }
} }
/** /**
@@ -1012,7 +1012,14 @@ public class OrderService {
dto.setUpdatePrincipalBalance(amount); dto.setUpdatePrincipalBalance(amount);
memberBasicInfoService.updateMemberBalance(dto); memberBasicInfoService.updateMemberBalance(dto);
} }
}
/**
* 汇付退款成功
*/
private void refundSucceeded(String data) {
// 保存退款回调记录
adapayRefundRecordService.saveAdapayRefundRecord(data);
} }
/** /**
@@ -1051,26 +1058,4 @@ public class OrderService {
adapayMemberAccountService.updateAdapayMemberAccountByMemberId(adapayMemberAccount); 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);
}
} }

View File

@@ -1,6 +1,5 @@
package com.jsowell.pile.service; package com.jsowell.pile.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.jsowell.pile.domain.AdapayRefundRecord; import com.jsowell.pile.domain.AdapayRefundRecord;
import java.util.List; import java.util.List;
@@ -60,5 +59,9 @@ public interface IAdapayRefundRecordService {
*/ */
public int deleteAdapayRefundRecordById(Integer id); public int deleteAdapayRefundRecordById(Integer id);
void saveAdapayRefundRecord(String data) throws JsonProcessingException; /**
* 保存汇付退款回调记录
* @param data
*/
void saveAdapayRefundRecord(String data);
} }

View File

@@ -12,6 +12,7 @@ import com.jsowell.pile.domain.AdapayRefundRecord;
import com.jsowell.pile.mapper.AdapayRefundRecordMapper; import com.jsowell.pile.mapper.AdapayRefundRecordMapper;
import com.jsowell.pile.service.AdapayCallbackRecordService; import com.jsowell.pile.service.AdapayCallbackRecordService;
import com.jsowell.pile.service.IAdapayRefundRecordService; import com.jsowell.pile.service.IAdapayRefundRecordService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -23,6 +24,7 @@ import java.util.List;
* @author jsowell * @author jsowell
* @date 2023-05-31 * @date 2023-05-31
*/ */
@Slf4j
@Service @Service
public class AdapayRefundRecordServiceImpl implements IAdapayRefundRecordService { public class AdapayRefundRecordServiceImpl implements IAdapayRefundRecordService {
@Autowired @Autowired
@@ -97,13 +99,23 @@ public class AdapayRefundRecordServiceImpl implements IAdapayRefundRecordService
return adapayRefundRecordMapper.deleteAdapayRefundRecordById(id); return adapayRefundRecordMapper.deleteAdapayRefundRecordById(id);
} }
/**
* 保存汇付退款回调记录
* @param data
*/
@Override @Override
public void saveAdapayRefundRecord(String data) throws JsonProcessingException { public void saveAdapayRefundRecord(String data){
JSONObject jsonObject = JSON.parseObject(data); JSONObject jsonObject = JSON.parseObject(data);
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 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")); adapayRefundRecord.setRefundId(jsonObject.getString("id"));
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByPaymentId(adapayRefundRecord.getPaymentId()); AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByPaymentId(adapayRefundRecord.getPaymentId());