Commit 8e38b431977d5619b50b6692c5c550a3f68be53a
1 parent
3bd524e9
cashier sql scripts added
Showing
4 changed files
with
22 additions
and
12 deletions
cashier-boss/src/main/java/com/diligrp/cashier/boss/controller/CashierDeskController.java
| @@ -94,7 +94,7 @@ public class CashierDeskController { | @@ -94,7 +94,7 @@ public class CashierDeskController { | ||
| 94 | } | 94 | } |
| 95 | 95 | ||
| 96 | @RequestMapping(value = "/orderRefund") | 96 | @RequestMapping(value = "/orderRefund") |
| 97 | - public Message<?> requestRefund(@RequestBody OnlineRefundDTO request) { | 97 | + public Message<?> orderRefund(@RequestBody OnlineRefundDTO request) { |
| 98 | AssertUtils.notEmpty(request.getTradeId(), "tradeId missed"); | 98 | AssertUtils.notEmpty(request.getTradeId(), "tradeId missed"); |
| 99 | AssertUtils.notNull(request.getAmount(), "amount missed"); | 99 | AssertUtils.notNull(request.getAmount(), "amount missed"); |
| 100 | AssertUtils.isTrue(request.getAmount() > 0, "Invalid amount"); | 100 | AssertUtils.isTrue(request.getAmount() > 0, "Invalid amount"); |
cashier-boss/src/main/java/com/diligrp/cashier/boss/domain/CashierOrderVO.java
| @@ -74,10 +74,10 @@ public class CashierOrderVO { | @@ -74,10 +74,10 @@ public class CashierOrderVO { | ||
| 74 | // 支付渠道名称 | 74 | // 支付渠道名称 |
| 75 | private final String channelName; | 75 | private final String channelName; |
| 76 | 76 | ||
| 77 | - public PaymentPipeline(Long pipelineId, ChannelType channelType) { | 77 | + public PaymentPipeline(Long pipelineId, ChannelType channelType, String channelName) { |
| 78 | this.pipelineId = pipelineId; | 78 | this.pipelineId = pipelineId; |
| 79 | this.channelId = channelType.getCode(); | 79 | this.channelId = channelType.getCode(); |
| 80 | - this.channelName = channelType.getName(); | 80 | + this.channelName = channelName; |
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | public Long getPipelineId() { | 83 | public Long getPipelineId() { |
cashier-boss/src/main/java/com/diligrp/cashier/boss/service/impl/CashierDeskServiceImpl.java
| @@ -90,7 +90,7 @@ public class CashierDeskServiceImpl implements ICashierDeskService { | @@ -90,7 +90,7 @@ public class CashierDeskServiceImpl implements ICashierDeskService { | ||
| 90 | Merchant merchant = merchantService.loadCashierMerchant(trade.getMchId()); | 90 | Merchant merchant = merchantService.loadCashierMerchant(trade.getMchId()); |
| 91 | List<PaymentPipeline> pipelines = paymentPipelineManager.listPipelines(orderToken.getMchId(), PaymentPipeline.class); | 91 | List<PaymentPipeline> pipelines = paymentPipelineManager.listPipelines(orderToken.getMchId(), PaymentPipeline.class); |
| 92 | List<CashierOrderVO.PaymentPipeline> pipelineList = pipelines.stream().map(pipeline -> | 92 | List<CashierOrderVO.PaymentPipeline> pipelineList = pipelines.stream().map(pipeline -> |
| 93 | - new CashierOrderVO.PaymentPipeline(pipeline.pipelineId(), pipeline.supportedChannel())).toList(); | 93 | + new CashierOrderVO.PaymentPipeline(pipeline.pipelineId(), pipeline.supportedChannel(), pipeline.name())).toList(); |
| 94 | return new CashierOrderVO(merchant.getMchId(), merchant.getName(), orderToken.getTradeId(), orderToken.getUserId(), | 94 | return new CashierOrderVO(merchant.getMchId(), merchant.getName(), orderToken.getTradeId(), orderToken.getUserId(), |
| 95 | trade.getGoods(), trade.getMaxAmount(), orderToken.getRedirectUrl(), pipelineList); | 95 | trade.getGoods(), trade.getMaxAmount(), orderToken.getRedirectUrl(), pipelineList); |
| 96 | } | 96 | } |
scripts/cashier-data.sql
| 1 | INSERT INTO dili_cashier.upay_merchant(mch_id, name, param, address, linkman, telephone, state, created_time, modified_time) | 1 | INSERT INTO dili_cashier.upay_merchant(mch_id, name, param, address, linkman, telephone, state, created_time, modified_time) |
| 2 | -VALUES (1001, '安徽省中瑞农副产品有限责任公司', '{"cashier":{"miniProUrl": "https://cashier.pay.gszdtop.com/merchant/mp"}}', '安徽省濉溪县南环路中瑞农产品批发市场', '赵静', '0561-6863420', 1, now(), now()); | 2 | +VALUES (1001, '安徽省中瑞农副产品有限责任公司', '{"cashier":{"miniProUrl": "https://cashier.test.gszdtop.com/pages/merchant/mp"}}', '安徽省濉溪县南环路中瑞农产品批发市场', '赵静', '0561-6863420', 1, now(), now()); |
| 3 | 3 | ||
| 4 | --- 根据环境配置不同的回调地址 | ||
| 5 | -INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time) | ||
| 6 | -VALUES (1001, 10011, 10, 10, '中瑞微信服务商支付通道', 'https://api.mch.weixin.qq.com', '{"subMchId":"1679224186", "subAppId":"wxad27b69b888b6dc9", "appSecret":"9c254c0ab932b3c30292a05679a688f7", "notifyUrl": "https://cashier.test.gszdtop.com"}', 1, now(), now()); | ||
| 7 | -INSERT INTO `dili_cashier`.upay_wechat_param(pipeline_id, mch_id, app_id, app_secret, serial_no, private_key, wechat_serial_no, wechat_public_key, api_v3_key, type, created_time) | ||
| 8 | -VALUES(10011, '1679223106', 'wxca99d56a6ab15f29', '9c254c0ab932b3c30292a05679a688f7', '60C2877836D1D618D2E40186995BB00299D92F44','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', 'RSfFvEBBQiHz8GZyDcP2eSUlZJgKjdxk', 2, now()); | 4 | +-- 中瑞微信支付服务商通道, 根据环境配置不同的参数(服务地址、回调地址等) |
| 5 | +-- INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time) | ||
| 6 | +-- VALUES (1001, 10011, 10, 10, '微信支付', 'https://api.mch.weixin.qq.com', '{"subMchId":"1679224186", "subAppId":"wxad27b69b888b6dc9", "appSecret":"9c254c0ab932b3c30292a05679a688f7", "notifyUrl": "https://cashier.test.gszdtop.com"}', 1, now(), now()); | ||
| 7 | +-- INSERT INTO `dili_cashier`.upay_wechat_param(pipeline_id, mch_id, app_id, app_secret, serial_no, private_key, wechat_serial_no, wechat_public_key, api_v3_key, type, created_time) | ||
| 8 | +-- VALUES(10011, '1679223106', 'wxca99d56a6ab15f29', '9c254c0ab932b3c30292a05679a688f7', '60C2877836D1D618D2E40186995BB00299D92F44','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', 'RSfFvEBBQiHz8GZyDcP2eSUlZJgKjdxk', 2, now()); | ||
| 9 | 9 | ||
| 10 | +-- 中瑞农商行聚合支付通道, 根据环境配置不同的参数(服务地址、回调地址等) | ||
| 10 | INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time) | 11 | INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time) |
| 11 | -VALUES (1001, 10014, 29, 2, '中瑞农商行聚合支付通道', 'https://epos.ahrcu.com:3443', '{"merchantNo": "94734065411016B", "terminalNo": "19A03301", "appId": "wx6f15ee0bd788c744", "appSecret": "4ab4152adf21da99c629fe7f3ce6b571", "key": "45913E42F86C18F512BEF54C2F0FE5BF", "notifyUrl": "https://cashier.test.gszdtop.com"}', 1, now(), now()); | 12 | +VALUES (1001, 10014, 29, 2, '微信支付', 'https://epos.ahrcu.com:3443', '{"merchantNo": "94734065411016B", "terminalNo": "19A03301", "appId": "wx6f15ee0bd788c744", "appSecret": "4ab4152adf21da99c629fe7f3ce6b571", "key": "45913E42F86C18F512BEF54C2F0FE5BF", "notifyUrl": "https://cashier.test.gszdtop.com"}', 1, now(), now()); |
| 13 | + | ||
| 14 | +-- 中瑞园区卡支付通道, 根据环境配置不同的参数(服务地址、回调地址等) | ||
| 12 | 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) |
| 13 | -VALUES (1001, 10012, 19, 2, '中瑞园区卡支付通道', 'http://gateway.dev.nong12.com/pay-service', '{"outMchId": 9, "accountId": 118924}', 1, now(), now()); | 16 | +VALUES (1001, 10012, 19, 2, '园区卡支付', 'http://gateway.dev.nong12.com/pay-service', '{"outMchId": 9, "accountId": 118924}', 1, now(), now()); |
| 17 | + | ||
| 18 | +-- 高斯智达微信支付直连通道, 根据环境配置不同的参数(服务地址、回调地址等) | ||
| 19 | +-- INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time) | ||
| 20 | +-- VALUES (1001, 10013, 10, 10, '微信支付', 'https://api.mch.weixin.qq.com', '{"notifyUrl": "https://cashier.test.gszdtop.com"}', 1, now(), now()); | ||
| 21 | +-- INSERT INTO `dili_cashier`.upay_wechat_param (pipeline_id, mch_id, app_id, app_secret, serial_no, private_key, wechat_serial_no, wechat_public_key, api_v3_key, type, created_time) | ||
| 22 | +-- VALUES (10013, '1710148119', 'wx5e3c1166921039e4', '6501cbb2f4ececdcf0ef84bc43f6a710', '43D78972EC26DD5E05DB57D837E7EA6078ECD784', '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', 't3sH85QcVkAsPgvdTyWHuCLpFwEtbEG8', 1, now()); | ||
| 23 | + |