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 | 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 | 62 | @RequestMapping("/orderPayment") |
| 57 | 63 | public Message<?> orderPayment(@RequestBody CashierPayment request) { |
| 58 | 64 | // 基本参数校验 | ... | ... |
cashier-boss/src/main/java/com/diligrp/cashier/boss/service/ICashierDeskService.java
cashier-boss/src/main/java/com/diligrp/cashier/boss/service/impl/CashierDeskServiceImpl.java
| ... | ... | @@ -98,6 +98,11 @@ public class CashierDeskServiceImpl implements ICashierDeskService { |
| 98 | 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 | 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 | 27 | * @param cashierPayment - 支付信息 |
| ... | ... | @@ -38,7 +43,7 @@ public interface ICashierPaymentService { |
| 38 | 43 | void closeTradeOrder(String tradeId); |
| 39 | 44 | |
| 40 | 45 | /** |
| 41 | - * 查询交易订单状态 | |
| 46 | + * 查询支付状态 | |
| 42 | 47 | */ |
| 43 | 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 | 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 | 13 | |
| 14 | 14 | -- 中瑞园区卡支付通道, 根据环境配置不同的参数(服务地址、回调地址等) |
| 15 | 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 | 19 | -- INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time) | ... | ... |