mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
保存汇付支付退款回调记录
This commit is contained in:
@@ -119,6 +119,9 @@ public class OrderService {
|
||||
@Autowired
|
||||
private IMemberInvoiceTitleService memberInvoiceTitleService;
|
||||
|
||||
@Autowired
|
||||
private IAdapayRefundRecordService adapayRefundRecordService;
|
||||
|
||||
@Value("${adapay.appId}")
|
||||
private String ADAPAY_APP_ID;
|
||||
|
||||
@@ -1365,7 +1368,7 @@ public class OrderService {
|
||||
return;
|
||||
}
|
||||
|
||||
// 保存到数据库
|
||||
adapayRefundRecordService.saveAdapayRefundRecord(data);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
@@ -150,6 +151,39 @@ public class SpringBootTestController {
|
||||
@Autowired
|
||||
private AdapayCallbackRecordService adapayCallbackRecordService;
|
||||
|
||||
@Autowired
|
||||
private IAdapayRefundRecordService adapayRefundRecordService;
|
||||
|
||||
@Test
|
||||
public void testSaveAdapayCallbackRecord() throws JsonProcessingException {
|
||||
String data = "{\n" +
|
||||
" \"object\": \"refund\",\n" +
|
||||
" \"status\": \"succeeded\",\n" +
|
||||
" \"prod_mode\": \"true\",\n" +
|
||||
" \"id\": \"0022120230531111946980509821471137853440\",\n" +
|
||||
" \"refund_order_no\": \"823725974557265920\",\n" +
|
||||
" \"payment_id\": \"002212023053110524210509814658135928832\",\n" +
|
||||
" \"payment_order_no\": \"C27262970851\",\n" +
|
||||
" \"refund_amt\": \"7.82\",\n" +
|
||||
" \"fee_amt\": \"0.04\",\n" +
|
||||
" \"channel_no\": \"2023053121R064uj\",\n" +
|
||||
" \"created_time\": \"1685503187000\",\n" +
|
||||
" \"succeed_time\": \"1685503199000\",\n" +
|
||||
" \"app_id\": \"app_d0c80cb1-ffc8-48cb-a030-fe9bec823aaa\",\n" +
|
||||
" \"reason\": \"\",\n" +
|
||||
" \"notify_url\": \"https://api.jsowellcloud.com/uniapp/pay/adapayRefundCallback\"\n" +
|
||||
"}";
|
||||
|
||||
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.setRefundId(jsonObject.getString("id"));
|
||||
// 保存到数据库
|
||||
adapayRefundRecordService.insertAdapayRefundRecord(adapayRefundRecord);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryCallback() {
|
||||
AdapayCallbackRecord aaaa = adapayCallbackRecordService.selectByOrderCode("aaaa");
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.jsowell.pile.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.jsowell.common.annotation.Excel;
|
||||
import com.jsowell.common.core.domain.BaseEntity;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
@@ -19,6 +20,7 @@ public class AdapayRefundRecord extends BaseEntity {
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@JsonIgnore
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
|
||||
@@ -18,4 +18,6 @@ public interface AdapayCallbackRecordMapper {
|
||||
int updateByPrimaryKeySelective(AdapayCallbackRecord record);
|
||||
|
||||
int updateByPrimaryKey(AdapayCallbackRecord record);
|
||||
|
||||
AdapayCallbackRecord selectByPaymentId(String paymentId);
|
||||
}
|
||||
@@ -1,9 +1,14 @@
|
||||
package com.jsowell.pile.service;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.jsowell.pile.domain.AdapayCallbackRecord;
|
||||
|
||||
public interface AdapayCallbackRecordService {
|
||||
void saveAdapayCallbackRecord(AdapayCallbackRecord callbackRecord);
|
||||
|
||||
void saveAdapayCallbackRecord(String data) throws JsonProcessingException;
|
||||
|
||||
AdapayCallbackRecord selectByOrderCode(String orderCode);
|
||||
|
||||
AdapayCallbackRecord selectByPaymentId(String paymentId);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.jsowell.pile.service;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.jsowell.pile.domain.AdapayRefundRecord;
|
||||
|
||||
import java.util.List;
|
||||
@@ -58,4 +59,6 @@ public interface IAdapayRefundRecordService {
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteAdapayRefundRecordById(Integer id);
|
||||
|
||||
void saveAdapayRefundRecord(String data) throws JsonProcessingException;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
package com.jsowell.pile.service.impl;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||
import com.jsowell.common.constant.CacheConstants;
|
||||
import com.jsowell.common.core.redis.RedisCache;
|
||||
import com.jsowell.common.util.StringUtils;
|
||||
@@ -10,6 +15,8 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordService {
|
||||
@@ -25,6 +32,28 @@ public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordServ
|
||||
adapayCallbackRecordMapper.insert(callbackRecord);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveAdapayCallbackRecord(String data) throws JsonProcessingException {
|
||||
JSONObject jsonObject = JSON.parseObject(data);
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
||||
AdapayCallbackRecord adapayCallbackRecord = mapper.readValue(jsonObject.toJSONString(), AdapayCallbackRecord.class);
|
||||
adapayCallbackRecord.setExpend(jsonObject.getString("expend"));
|
||||
adapayCallbackRecord.setPaymentId(jsonObject.getString("id"));
|
||||
|
||||
JSONObject descJson = JSON.parseObject(adapayCallbackRecord.getDescription());
|
||||
String type = descJson.getString("type");
|
||||
adapayCallbackRecord.setPayScenario(type);
|
||||
String memberId = descJson.getString("memberId");
|
||||
adapayCallbackRecord.setMemberId(memberId);
|
||||
String orderCode = descJson.getString("orderCode");
|
||||
adapayCallbackRecord.setOrderCode(orderCode);
|
||||
BigDecimal amount = adapayCallbackRecord.getPayAmt();
|
||||
|
||||
// 保存到数据库
|
||||
this.saveAdapayCallbackRecord(adapayCallbackRecord);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单号查询支付回调信息
|
||||
* @param orderCode
|
||||
@@ -52,4 +81,9 @@ public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordServ
|
||||
// log.info("查询汇付支付回调记录 orderCode:{}, result:{}", orderCode, JSON.toJSONString(record));
|
||||
return record;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AdapayCallbackRecord selectByPaymentId(String paymentId) {
|
||||
return adapayCallbackRecordMapper.selectByPaymentId(paymentId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,16 @@
|
||||
package com.jsowell.pile.service.impl;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||
import com.jsowell.common.util.DateUtils;
|
||||
import com.jsowell.pile.domain.AdapayCallbackRecord;
|
||||
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 org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -20,6 +28,8 @@ public class AdapayRefundRecordServiceImpl implements IAdapayRefundRecordService
|
||||
@Autowired
|
||||
private AdapayRefundRecordMapper adapayRefundRecordMapper;
|
||||
|
||||
@Autowired
|
||||
private AdapayCallbackRecordService adapayCallbackRecordService;
|
||||
/**
|
||||
* 查询【请填写功能名称】
|
||||
*
|
||||
@@ -86,4 +96,23 @@ public class AdapayRefundRecordServiceImpl implements IAdapayRefundRecordService
|
||||
public int deleteAdapayRefundRecordById(Integer id) {
|
||||
return adapayRefundRecordMapper.deleteAdapayRefundRecordById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveAdapayRefundRecord(String data) throws JsonProcessingException {
|
||||
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.setRefundId(jsonObject.getString("id"));
|
||||
|
||||
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByPaymentId(adapayRefundRecord.getPaymentId());
|
||||
if (adapayCallbackRecord != null) {
|
||||
adapayRefundRecord.setMemberId(adapayCallbackRecord.getMemberId());
|
||||
adapayRefundRecord.setOrderCode(adapayCallbackRecord.getOrderCode());
|
||||
}
|
||||
|
||||
// 保存到数据库
|
||||
this.insertAdapayRefundRecord(adapayRefundRecord);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,14 @@
|
||||
where del_flag = '0'
|
||||
and order_code = #{orderCode,jdbcType=VARCHAR}
|
||||
</select>
|
||||
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
|
||||
<select id="selectByPaymentId" resultMap="BaseResultMap">
|
||||
select
|
||||
<include refid="Base_Column_List" />
|
||||
from adapay_callback_record
|
||||
where del_flag = '0'
|
||||
and payment_id = #{paymentId,jdbcType=VARCHAR}
|
||||
</select>
|
||||
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
|
||||
delete from adapay_callback_record
|
||||
where id = #{id,jdbcType=VARCHAR}
|
||||
</delete>
|
||||
|
||||
Reference in New Issue
Block a user