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");
//验签请参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);
}
}

View File

@@ -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);
}

View File

@@ -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());