Commit aff9aac3e81ad46ce1db4a828ef105302678a71e
1 parent
ea0f8e2c
check trade order api supported
Showing
6 changed files
with
41 additions
and
2 deletions
cashier-boss/src/main/java/com/diligrp/cashier/boss/controller/CashierDeskController.java
| @@ -53,6 +53,12 @@ public class CashierDeskController { | @@ -53,6 +53,12 @@ public class CashierDeskController { | ||
| 53 | return Message.success(cashierDeskService.getCashierOrderByToken(token)); | 53 | return Message.success(cashierDeskService.getCashierOrderByToken(token)); |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | + @RequestMapping("/checkOrder") | ||
| 57 | + public Message<?> checkOrder(@RequestParam("tradeId") String tradeId) { | ||
| 58 | + cashierDeskService.checkTradeOrder(tradeId); | ||
| 59 | + return Message.success(); | ||
| 60 | + } | ||
| 61 | + | ||
| 56 | @RequestMapping("/orderPayment") | 62 | @RequestMapping("/orderPayment") |
| 57 | public Message<?> orderPayment(@RequestBody CashierPayment request) { | 63 | public Message<?> orderPayment(@RequestBody CashierPayment request) { |
| 58 | // 基本参数校验 | 64 | // 基本参数校验 |
cashier-boss/src/main/java/com/diligrp/cashier/boss/service/ICashierDeskService.java
| @@ -24,6 +24,11 @@ public interface ICashierDeskService { | @@ -24,6 +24,11 @@ public interface ICashierDeskService { | ||
| 24 | CashierOrderVO getCashierOrderByToken(String token); | 24 | CashierOrderVO getCashierOrderByToken(String token); |
| 25 | 25 | ||
| 26 | /** | 26 | /** |
| 27 | + * 检查交易订单是否能进行支付 | ||
| 28 | + */ | ||
| 29 | + void checkTradeOrder(String tradeId); | ||
| 30 | + | ||
| 31 | + /** | ||
| 27 | * 提交收银台支付 | 32 | * 提交收银台支付 |
| 28 | * | 33 | * |
| 29 | * @param payment - 支付信息 | 34 | * @param payment - 支付信息 |
cashier-boss/src/main/java/com/diligrp/cashier/boss/service/impl/CashierDeskServiceImpl.java
| @@ -98,6 +98,11 @@ public class CashierDeskServiceImpl implements ICashierDeskService { | @@ -98,6 +98,11 @@ public class CashierDeskServiceImpl implements ICashierDeskService { | ||
| 98 | trade.getGoods(), trade.getMaxAmount(), orderToken.getRedirectUrl(), pipelineList); | 98 | trade.getGoods(), trade.getMaxAmount(), orderToken.getRedirectUrl(), pipelineList); |
| 99 | } | 99 | } |
| 100 | 100 | ||
| 101 | + @Override | ||
| 102 | + public void checkTradeOrder(String tradeId) { | ||
| 103 | + cashierPaymentService.checkTradeOrder(tradeId); | ||
| 104 | + } | ||
| 105 | + | ||
| 101 | /** | 106 | /** |
| 102 | * 提交收银台支付 | 107 | * 提交收银台支付 |
| 103 | * | 108 | * |
cashier-trade/src/main/java/com/diligrp/cashier/trade/service/ICashierPaymentService.java
| @@ -17,6 +17,11 @@ public interface ICashierPaymentService { | @@ -17,6 +17,11 @@ public interface ICashierPaymentService { | ||
| 17 | String doSubmit(Merchant merchant, CashierOrder cashierOrder); | 17 | String doSubmit(Merchant merchant, CashierOrder cashierOrder); |
| 18 | 18 | ||
| 19 | /** | 19 | /** |
| 20 | + * 检查交易订单是否能进行支付 | ||
| 21 | + */ | ||
| 22 | + void checkTradeOrder(String tradeId); | ||
| 23 | + | ||
| 24 | + /** | ||
| 20 | * 收银台支付 | 25 | * 收银台支付 |
| 21 | * | 26 | * |
| 22 | * @param cashierPayment - 支付信息 | 27 | * @param cashierPayment - 支付信息 |
| @@ -38,7 +43,7 @@ public interface ICashierPaymentService { | @@ -38,7 +43,7 @@ public interface ICashierPaymentService { | ||
| 38 | void closeTradeOrder(String tradeId); | 43 | void closeTradeOrder(String tradeId); |
| 39 | 44 | ||
| 40 | /** | 45 | /** |
| 41 | - * 查询交易订单状态 | 46 | + * 查询支付状态 |
| 42 | */ | 47 | */ |
| 43 | OnlinePaymentResult queryPaymentState(String paymentId, String mode); | 48 | OnlinePaymentResult queryPaymentState(String paymentId, String mode); |
| 44 | 49 |
cashier-trade/src/main/java/com/diligrp/cashier/trade/service/impl/CashierPaymentServiceImpl.java
| @@ -103,6 +103,24 @@ public class CashierPaymentServiceImpl implements ICashierPaymentService { | @@ -103,6 +103,24 @@ public class CashierPaymentServiceImpl implements ICashierPaymentService { | ||
| 103 | return tradeId; | 103 | return tradeId; |
| 104 | } | 104 | } |
| 105 | 105 | ||
| 106 | + @Override | ||
| 107 | + public void checkTradeOrder(String tradeId) { | ||
| 108 | + TradeOrder tradeOrder = tradeAssistantService.findByTradeId(tradeId); | ||
| 109 | + if (TradeState.PENDING.equalTo(tradeOrder.getState())) { | ||
| 110 | + return; | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + if (TradeState.SUCCESS.equalTo(tradeOrder.getState()) || TradeState.REFUND.equalTo(tradeOrder.getState())) { | ||
| 114 | + throw new TradePaymentException(ErrorCode.OPERATION_NOT_ALLOWED, "订单已交易成功,不能重复支付"); | ||
| 115 | + } | ||
| 116 | + if (TradeState.FAILED.equalTo(tradeOrder.getState())) { | ||
| 117 | + throw new TradePaymentException(ErrorCode.OPERATION_NOT_ALLOWED, "订单已完成,不能进行支付"); | ||
| 118 | + } | ||
| 119 | + if (TradeState.CLOSED.equalTo(tradeOrder.getState())) { | ||
| 120 | + throw new TradePaymentException(ErrorCode.OPERATION_NOT_ALLOWED, "订单已关闭,不能进行支付"); | ||
| 121 | + } | ||
| 122 | + } | ||
| 123 | + | ||
| 106 | /** | 124 | /** |
| 107 | * 收银台支付 | 125 | * 收银台支付 |
| 108 | * | 126 | * |
scripts/cashier-data.sql
| @@ -13,7 +13,7 @@ VALUES (1001, 10014, 29, 2, '微信支付', 'https://epos.ahrcu.com:3443', '{"me | @@ -13,7 +13,7 @@ VALUES (1001, 10014, 29, 2, '微信支付', 'https://epos.ahrcu.com:3443', '{"me | ||
| 13 | 13 | ||
| 14 | -- 中瑞园区卡支付通道, 根据环境配置不同的参数(服务地址、回调地址等) | 14 | -- 中瑞园区卡支付通道, 根据环境配置不同的参数(服务地址、回调地址等) |
| 15 | INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time) | 15 | INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time) |
| 16 | -VALUES (1001, 10012, 19, 2, '园区卡支付', 'https://gateway.zr.zrgyl.com/pay-service', '{"outMchId": 9, "accountId": 118924}', 1, now(), now()); | 16 | +VALUES (1001, 10012, 19, 2, '园区卡支付', 'https://gateway.zr.zrgyl.com/pay-service', '{"outMchId": 9, "accountId": 133005}', 1, now(), now()); |
| 17 | 17 | ||
| 18 | -- 高斯智达微信支付直连通道, 根据环境配置不同的参数(服务地址、回调地址等) | 18 | -- 高斯智达微信支付直连通道, 根据环境配置不同的参数(服务地址、回调地址等) |
| 19 | -- INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time) | 19 | -- INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time) |