【功能优化】支付:支付应用,增加 appKey 标识,用于不同接入方的标识

This commit is contained in:
YunaiV 2024-08-18 17:17:46 +08:00
parent b632726a69
commit e850fbf675
4 changed files with 13 additions and 9 deletions

View File

@ -113,7 +113,7 @@ public class PayRefundServiceImpl implements PayRefundService {
// 2.1 插入退款单
String no = noRedisDAO.generate(payProperties.getRefundNoPrefix());
refund = PayRefundConvert.INSTANCE.convert(reqDTO)
.setNo(no).setOrderId(order.getId()).setOrderNo(order.getNo())
.setNo(no).setAppId(app.getId()).setOrderId(order.getId()).setOrderNo(order.getNo())
.setChannelId(order.getChannelId()).setChannelCode(order.getChannelCode())
// 商户相关的字段
.setNotifyUrl(app.getRefundNotifyUrl())

View File

@ -243,6 +243,9 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
// mock 数据
PayOrderDO dbOrder = randomPojo(PayOrderDO.class, o -> o.setAppId(1L).setMerchantOrderId("10"));
orderMapper.insert(dbOrder);
// mock 方法
PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L).setOrderNotifyUrl("http://127.0.0.1"));
when(appService.validPayApp(eq(reqDTO.getAppKey()))).thenReturn(app);
// 调用
Long orderId = orderService.createOrder(reqDTO);

View File

@ -212,7 +212,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
o -> o.setAppKey("demo"));
// mock 方法app
PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
when(appService.validPayApp(eq(1L))).thenReturn(app);
when(appService.validPayApp(eq("demo"))).thenReturn(app);
// 调用并断言异常
assertServiceException(() -> refundService.createPayRefund(reqDTO),
@ -235,7 +235,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
o -> o.setAppKey("demo").setMerchantOrderId("100"));
// mock 方法app
PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
when(appService.validPayApp(eq(1L))).thenReturn(app);
when(appService.validPayApp(eq("demo"))).thenReturn(app);
// mock 数据order
PayOrderDO order = randomPojo(PayOrderDO.class, o -> o.setStatus(status));
when(orderService.getOrder(eq(1L), eq("100"))).thenReturn(order);
@ -252,7 +252,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
o -> o.setAppKey("demo").setMerchantOrderId("100").setPrice(10));
// mock 方法app
PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
when(appService.validPayApp(eq(1L))).thenReturn(app);
when(appService.validPayApp(eq("demo"))).thenReturn(app);
// mock 数据order
PayOrderDO order = randomPojo(PayOrderDO.class, o ->
o.setStatus(PayOrderStatusEnum.REFUND.getStatus())
@ -271,7 +271,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
o -> o.setAppKey("demo").setMerchantOrderId("100").setPrice(10));
// mock 方法app
PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
when(appService.validPayApp(eq(1L))).thenReturn(app);
when(appService.validPayApp(eq("demo"))).thenReturn(app);
// mock 数据order
PayOrderDO order = randomPojo(PayOrderDO.class, o ->
o.setStatus(PayOrderStatusEnum.REFUND.getStatus())
@ -294,7 +294,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
o -> o.setAppKey("demo").setMerchantOrderId("100").setPrice(9));
// mock 方法app
PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
when(appService.validPayApp(eq(1L))).thenReturn(app);
when(appService.validPayApp(eq("demo"))).thenReturn(app);
// mock 数据order
PayOrderDO order = randomPojo(PayOrderDO.class, o ->
o.setStatus(PayOrderStatusEnum.REFUND.getStatus())
@ -319,7 +319,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
.setMerchantRefundId("200").setReason("测试退款"));
// mock 方法app
PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
when(appService.validPayApp(eq(1L))).thenReturn(app);
when(appService.validPayApp(eq("demo"))).thenReturn(app);
// mock 数据order
PayOrderDO order = randomPojo(PayOrderDO.class, o ->
o.setStatus(PayOrderStatusEnum.REFUND.getStatus())
@ -351,7 +351,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
.setMerchantRefundId("200").setReason("测试退款"));
// mock 方法app
PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
when(appService.validPayApp(eq(1L))).thenReturn(app);
when(appService.validPayApp(eq("demo"))).thenReturn(app);
// mock 数据order
PayOrderDO order = randomPojo(PayOrderDO.class, o ->
o.setStatus(PayOrderStatusEnum.REFUND.getStatus())
@ -395,7 +395,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
.setMerchantRefundId("200").setReason("测试退款"));
// mock 方法app
PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
when(appService.validPayApp(eq(1L))).thenReturn(app);
when(appService.validPayApp(eq("demo"))).thenReturn(app);
// mock 数据order
PayOrderDO order = randomPojo(PayOrderDO.class, o ->
o.setStatus(PayOrderStatusEnum.REFUND.getStatus())

View File

@ -1,5 +1,6 @@
CREATE TABLE IF NOT EXISTS "pay_app" (
"id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"app_key" varchar(64) NOT NULL,
"name" varchar(64) NOT NULL,
"status" tinyint NOT NULL,
"remark" varchar(255) DEFAULT NULL,