Commit e850fbf675336c9ad46b84ea2d0dc5c5988f9561
1 parent
b632726a
【功能优化】支付:支付应用,增加 appKey 标识,用于不同接入方的标识
Showing
4 changed files
with
13 additions
and
9 deletions
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceImpl.java
| @@ -113,7 +113,7 @@ public class PayRefundServiceImpl implements PayRefundService { | @@ -113,7 +113,7 @@ public class PayRefundServiceImpl implements PayRefundService { | ||
| 113 | // 2.1 插入退款单 | 113 | // 2.1 插入退款单 |
| 114 | String no = noRedisDAO.generate(payProperties.getRefundNoPrefix()); | 114 | String no = noRedisDAO.generate(payProperties.getRefundNoPrefix()); |
| 115 | refund = PayRefundConvert.INSTANCE.convert(reqDTO) | 115 | refund = PayRefundConvert.INSTANCE.convert(reqDTO) |
| 116 | - .setNo(no).setOrderId(order.getId()).setOrderNo(order.getNo()) | 116 | + .setNo(no).setAppId(app.getId()).setOrderId(order.getId()).setOrderNo(order.getNo()) |
| 117 | .setChannelId(order.getChannelId()).setChannelCode(order.getChannelCode()) | 117 | .setChannelId(order.getChannelId()).setChannelCode(order.getChannelCode()) |
| 118 | // 商户相关的字段 | 118 | // 商户相关的字段 |
| 119 | .setNotifyUrl(app.getRefundNotifyUrl()) | 119 | .setNotifyUrl(app.getRefundNotifyUrl()) |
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java
| @@ -243,6 +243,9 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest { | @@ -243,6 +243,9 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest { | ||
| 243 | // mock 数据 | 243 | // mock 数据 |
| 244 | PayOrderDO dbOrder = randomPojo(PayOrderDO.class, o -> o.setAppId(1L).setMerchantOrderId("10")); | 244 | PayOrderDO dbOrder = randomPojo(PayOrderDO.class, o -> o.setAppId(1L).setMerchantOrderId("10")); |
| 245 | orderMapper.insert(dbOrder); | 245 | orderMapper.insert(dbOrder); |
| 246 | + // mock 方法 | ||
| 247 | + PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L).setOrderNotifyUrl("http://127.0.0.1")); | ||
| 248 | + when(appService.validPayApp(eq(reqDTO.getAppKey()))).thenReturn(app); | ||
| 246 | 249 | ||
| 247 | // 调用 | 250 | // 调用 |
| 248 | Long orderId = orderService.createOrder(reqDTO); | 251 | Long orderId = orderService.createOrder(reqDTO); |
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java
| @@ -212,7 +212,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | @@ -212,7 +212,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | ||
| 212 | o -> o.setAppKey("demo")); | 212 | o -> o.setAppKey("demo")); |
| 213 | // mock 方法(app) | 213 | // mock 方法(app) |
| 214 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); | 214 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); |
| 215 | - when(appService.validPayApp(eq(1L))).thenReturn(app); | 215 | + when(appService.validPayApp(eq("demo"))).thenReturn(app); |
| 216 | 216 | ||
| 217 | // 调用,并断言异常 | 217 | // 调用,并断言异常 |
| 218 | assertServiceException(() -> refundService.createPayRefund(reqDTO), | 218 | assertServiceException(() -> refundService.createPayRefund(reqDTO), |
| @@ -235,7 +235,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | @@ -235,7 +235,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | ||
| 235 | o -> o.setAppKey("demo").setMerchantOrderId("100")); | 235 | o -> o.setAppKey("demo").setMerchantOrderId("100")); |
| 236 | // mock 方法(app) | 236 | // mock 方法(app) |
| 237 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); | 237 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); |
| 238 | - when(appService.validPayApp(eq(1L))).thenReturn(app); | 238 | + when(appService.validPayApp(eq("demo"))).thenReturn(app); |
| 239 | // mock 数据(order) | 239 | // mock 数据(order) |
| 240 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> o.setStatus(status)); | 240 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> o.setStatus(status)); |
| 241 | when(orderService.getOrder(eq(1L), eq("100"))).thenReturn(order); | 241 | when(orderService.getOrder(eq(1L), eq("100"))).thenReturn(order); |
| @@ -252,7 +252,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | @@ -252,7 +252,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | ||
| 252 | o -> o.setAppKey("demo").setMerchantOrderId("100").setPrice(10)); | 252 | o -> o.setAppKey("demo").setMerchantOrderId("100").setPrice(10)); |
| 253 | // mock 方法(app) | 253 | // mock 方法(app) |
| 254 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); | 254 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); |
| 255 | - when(appService.validPayApp(eq(1L))).thenReturn(app); | 255 | + when(appService.validPayApp(eq("demo"))).thenReturn(app); |
| 256 | // mock 数据(order) | 256 | // mock 数据(order) |
| 257 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> | 257 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> |
| 258 | o.setStatus(PayOrderStatusEnum.REFUND.getStatus()) | 258 | o.setStatus(PayOrderStatusEnum.REFUND.getStatus()) |
| @@ -271,7 +271,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | @@ -271,7 +271,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | ||
| 271 | o -> o.setAppKey("demo").setMerchantOrderId("100").setPrice(10)); | 271 | o -> o.setAppKey("demo").setMerchantOrderId("100").setPrice(10)); |
| 272 | // mock 方法(app) | 272 | // mock 方法(app) |
| 273 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); | 273 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); |
| 274 | - when(appService.validPayApp(eq(1L))).thenReturn(app); | 274 | + when(appService.validPayApp(eq("demo"))).thenReturn(app); |
| 275 | // mock 数据(order) | 275 | // mock 数据(order) |
| 276 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> | 276 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> |
| 277 | o.setStatus(PayOrderStatusEnum.REFUND.getStatus()) | 277 | o.setStatus(PayOrderStatusEnum.REFUND.getStatus()) |
| @@ -294,7 +294,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | @@ -294,7 +294,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | ||
| 294 | o -> o.setAppKey("demo").setMerchantOrderId("100").setPrice(9)); | 294 | o -> o.setAppKey("demo").setMerchantOrderId("100").setPrice(9)); |
| 295 | // mock 方法(app) | 295 | // mock 方法(app) |
| 296 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); | 296 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); |
| 297 | - when(appService.validPayApp(eq(1L))).thenReturn(app); | 297 | + when(appService.validPayApp(eq("demo"))).thenReturn(app); |
| 298 | // mock 数据(order) | 298 | // mock 数据(order) |
| 299 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> | 299 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> |
| 300 | o.setStatus(PayOrderStatusEnum.REFUND.getStatus()) | 300 | o.setStatus(PayOrderStatusEnum.REFUND.getStatus()) |
| @@ -319,7 +319,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | @@ -319,7 +319,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | ||
| 319 | .setMerchantRefundId("200").setReason("测试退款")); | 319 | .setMerchantRefundId("200").setReason("测试退款")); |
| 320 | // mock 方法(app) | 320 | // mock 方法(app) |
| 321 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); | 321 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); |
| 322 | - when(appService.validPayApp(eq(1L))).thenReturn(app); | 322 | + when(appService.validPayApp(eq("demo"))).thenReturn(app); |
| 323 | // mock 数据(order) | 323 | // mock 数据(order) |
| 324 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> | 324 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> |
| 325 | o.setStatus(PayOrderStatusEnum.REFUND.getStatus()) | 325 | o.setStatus(PayOrderStatusEnum.REFUND.getStatus()) |
| @@ -351,7 +351,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | @@ -351,7 +351,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | ||
| 351 | .setMerchantRefundId("200").setReason("测试退款")); | 351 | .setMerchantRefundId("200").setReason("测试退款")); |
| 352 | // mock 方法(app) | 352 | // mock 方法(app) |
| 353 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); | 353 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); |
| 354 | - when(appService.validPayApp(eq(1L))).thenReturn(app); | 354 | + when(appService.validPayApp(eq("demo"))).thenReturn(app); |
| 355 | // mock 数据(order) | 355 | // mock 数据(order) |
| 356 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> | 356 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> |
| 357 | o.setStatus(PayOrderStatusEnum.REFUND.getStatus()) | 357 | o.setStatus(PayOrderStatusEnum.REFUND.getStatus()) |
| @@ -395,7 +395,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | @@ -395,7 +395,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest { | ||
| 395 | .setMerchantRefundId("200").setReason("测试退款")); | 395 | .setMerchantRefundId("200").setReason("测试退款")); |
| 396 | // mock 方法(app) | 396 | // mock 方法(app) |
| 397 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); | 397 | PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L)); |
| 398 | - when(appService.validPayApp(eq(1L))).thenReturn(app); | 398 | + when(appService.validPayApp(eq("demo"))).thenReturn(app); |
| 399 | // mock 数据(order) | 399 | // mock 数据(order) |
| 400 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> | 400 | PayOrderDO order = randomPojo(PayOrderDO.class, o -> |
| 401 | o.setStatus(PayOrderStatusEnum.REFUND.getStatus()) | 401 | o.setStatus(PayOrderStatusEnum.REFUND.getStatus()) |
yudao-module-pay/yudao-module-pay-biz/src/test/resources/sql/create_tables.sql
| 1 | CREATE TABLE IF NOT EXISTS "pay_app" ( | 1 | CREATE TABLE IF NOT EXISTS "pay_app" ( |
| 2 | "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, | 2 | "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, |
| 3 | + "app_key" varchar(64) NOT NULL, | ||
| 3 | "name" varchar(64) NOT NULL, | 4 | "name" varchar(64) NOT NULL, |
| 4 | "status" tinyint NOT NULL, | 5 | "status" tinyint NOT NULL, |
| 5 | "remark" varchar(255) DEFAULT NULL, | 6 | "remark" varchar(255) DEFAULT NULL, |