mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-12 19:29:52 +08:00
保存汇付支付退款回调记录
This commit is contained in:
@@ -119,6 +119,9 @@ public class OrderService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IMemberInvoiceTitleService memberInvoiceTitleService;
|
private IMemberInvoiceTitleService memberInvoiceTitleService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IAdapayRefundRecordService adapayRefundRecordService;
|
||||||
|
|
||||||
@Value("${adapay.appId}")
|
@Value("${adapay.appId}")
|
||||||
private String ADAPAY_APP_ID;
|
private String ADAPAY_APP_ID;
|
||||||
|
|
||||||
@@ -1365,7 +1368,7 @@ public class OrderService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保存到数据库
|
adapayRefundRecordService.saveAdapayRefundRecord(data);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import cn.hutool.json.JSONUtil;
|
|||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
@@ -150,6 +151,39 @@ public class SpringBootTestController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AdapayCallbackRecordService adapayCallbackRecordService;
|
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
|
@Test
|
||||||
public void testQueryCallback() {
|
public void testQueryCallback() {
|
||||||
AdapayCallbackRecord aaaa = adapayCallbackRecordService.selectByOrderCode("aaaa");
|
AdapayCallbackRecord aaaa = adapayCallbackRecordService.selectByOrderCode("aaaa");
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.jsowell.pile.domain;
|
package com.jsowell.pile.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.jsowell.common.annotation.Excel;
|
import com.jsowell.common.annotation.Excel;
|
||||||
import com.jsowell.common.core.domain.BaseEntity;
|
import com.jsowell.common.core.domain.BaseEntity;
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
@@ -19,6 +20,7 @@ public class AdapayRefundRecord extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 主键id
|
* 主键id
|
||||||
*/
|
*/
|
||||||
|
@JsonIgnore
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -18,4 +18,6 @@ public interface AdapayCallbackRecordMapper {
|
|||||||
int updateByPrimaryKeySelective(AdapayCallbackRecord record);
|
int updateByPrimaryKeySelective(AdapayCallbackRecord record);
|
||||||
|
|
||||||
int updateByPrimaryKey(AdapayCallbackRecord record);
|
int updateByPrimaryKey(AdapayCallbackRecord record);
|
||||||
|
|
||||||
|
AdapayCallbackRecord selectByPaymentId(String paymentId);
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,14 @@
|
|||||||
package com.jsowell.pile.service;
|
package com.jsowell.pile.service;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.jsowell.pile.domain.AdapayCallbackRecord;
|
import com.jsowell.pile.domain.AdapayCallbackRecord;
|
||||||
|
|
||||||
public interface AdapayCallbackRecordService {
|
public interface AdapayCallbackRecordService {
|
||||||
void saveAdapayCallbackRecord(AdapayCallbackRecord callbackRecord);
|
void saveAdapayCallbackRecord(AdapayCallbackRecord callbackRecord);
|
||||||
|
|
||||||
|
void saveAdapayCallbackRecord(String data) throws JsonProcessingException;
|
||||||
|
|
||||||
AdapayCallbackRecord selectByOrderCode(String orderCode);
|
AdapayCallbackRecord selectByOrderCode(String orderCode);
|
||||||
|
|
||||||
|
AdapayCallbackRecord selectByPaymentId(String paymentId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
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;
|
||||||
@@ -58,4 +59,6 @@ public interface IAdapayRefundRecordService {
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deleteAdapayRefundRecordById(Integer id);
|
public int deleteAdapayRefundRecordById(Integer id);
|
||||||
|
|
||||||
|
void saveAdapayRefundRecord(String data) throws JsonProcessingException;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
package com.jsowell.pile.service.impl;
|
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.constant.CacheConstants;
|
||||||
import com.jsowell.common.core.redis.RedisCache;
|
import com.jsowell.common.core.redis.RedisCache;
|
||||||
import com.jsowell.common.util.StringUtils;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordService {
|
public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordService {
|
||||||
@@ -25,6 +32,28 @@ public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordServ
|
|||||||
adapayCallbackRecordMapper.insert(callbackRecord);
|
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
|
* @param orderCode
|
||||||
@@ -52,4 +81,9 @@ public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordServ
|
|||||||
// log.info("查询汇付支付回调记录 orderCode:{}, result:{}", orderCode, JSON.toJSONString(record));
|
// log.info("查询汇付支付回调记录 orderCode:{}, result:{}", orderCode, JSON.toJSONString(record));
|
||||||
return record;
|
return record;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AdapayCallbackRecord selectByPaymentId(String paymentId) {
|
||||||
|
return adapayCallbackRecordMapper.selectByPaymentId(paymentId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,16 @@
|
|||||||
package com.jsowell.pile.service.impl;
|
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.common.util.DateUtils;
|
||||||
|
import com.jsowell.pile.domain.AdapayCallbackRecord;
|
||||||
import com.jsowell.pile.domain.AdapayRefundRecord;
|
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.IAdapayRefundRecordService;
|
import com.jsowell.pile.service.IAdapayRefundRecordService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -20,6 +28,8 @@ public class AdapayRefundRecordServiceImpl implements IAdapayRefundRecordService
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AdapayRefundRecordMapper adapayRefundRecordMapper;
|
private AdapayRefundRecordMapper adapayRefundRecordMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AdapayCallbackRecordService adapayCallbackRecordService;
|
||||||
/**
|
/**
|
||||||
* 查询【请填写功能名称】
|
* 查询【请填写功能名称】
|
||||||
*
|
*
|
||||||
@@ -86,4 +96,23 @@ public class AdapayRefundRecordServiceImpl implements IAdapayRefundRecordService
|
|||||||
public int deleteAdapayRefundRecordById(Integer id) {
|
public int deleteAdapayRefundRecordById(Integer id) {
|
||||||
return adapayRefundRecordMapper.deleteAdapayRefundRecordById(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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,13 @@
|
|||||||
from adapay_callback_record
|
from adapay_callback_record
|
||||||
where del_flag = '0'
|
where del_flag = '0'
|
||||||
and order_code = #{orderCode,jdbcType=VARCHAR}
|
and order_code = #{orderCode,jdbcType=VARCHAR}
|
||||||
|
</select>
|
||||||
|
<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>
|
</select>
|
||||||
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
|
||||||
delete from adapay_callback_record
|
delete from adapay_callback_record
|
||||||
|
|||||||
Reference in New Issue
Block a user