Commit 76f3c2f621126691b8faeb8f9604e171832ea712
1 parent
3622f86a
update:支付修改
Showing
4 changed files
with
47 additions
and
174 deletions
etrade-order/src/main/java/com/diligrp/etrade/order/domain/OrderWeChatPayBatch.java
1 | package com.diligrp.etrade.order.domain; | 1 | package com.diligrp.etrade.order.domain; |
2 | 2 | ||
3 | import jakarta.validation.Valid; | 3 | import jakarta.validation.Valid; |
4 | +import jakarta.validation.constraints.NotBlank; | ||
4 | import jakarta.validation.constraints.NotEmpty; | 5 | import jakarta.validation.constraints.NotEmpty; |
5 | import jakarta.validation.constraints.NotNull; | 6 | import jakarta.validation.constraints.NotNull; |
6 | import jakarta.validation.constraints.Size; | 7 | import jakarta.validation.constraints.Size; |
@@ -18,13 +19,12 @@ public class OrderWeChatPayBatch { | @@ -18,13 +19,12 @@ public class OrderWeChatPayBatch { | ||
18 | private List<String> codes; | 19 | private List<String> codes; |
19 | 20 | ||
20 | /** 市场自增主键 */ | 21 | /** 市场自增主键 */ |
21 | - @NotNull(message = "市场id不能为空") | ||
22 | private Long marketId; | 22 | private Long marketId; |
23 | 23 | ||
24 | /** 付款人客户id */ | 24 | /** 付款人客户id */ |
25 | @NotNull(message = "买家客户id不能为空") | 25 | @NotNull(message = "买家客户id不能为空") |
26 | private Long payerCustomerId; | 26 | private Long payerCustomerId; |
27 | - @NotEmpty(message = "买家客户code不能为空") | 27 | + @NotBlank(message = "买家客户code不能为空") |
28 | private String payerCustomerCode; | 28 | private String payerCustomerCode; |
29 | 29 | ||
30 | /** 付款常客id */ | 30 | /** 付款常客id */ |
@@ -43,13 +43,6 @@ public class OrderWeChatPayBatch { | @@ -43,13 +43,6 @@ public class OrderWeChatPayBatch { | ||
43 | @NotNull(message = "付款金额不能为空") | 43 | @NotNull(message = "付款金额不能为空") |
44 | private BigDecimal totlePayAmount; | 44 | private BigDecimal totlePayAmount; |
45 | 45 | ||
46 | - @NotNull(message = "openId不能为空") | ||
47 | - private String openId; | ||
48 | - | ||
49 | - private String subAppid; | ||
50 | - | ||
51 | - private String subOpenId; | ||
52 | - | ||
53 | @NotNull(message = "店铺不能为空") | 46 | @NotNull(message = "店铺不能为空") |
54 | private Long shopId; | 47 | private Long shopId; |
55 | 48 | ||
@@ -61,6 +54,9 @@ public class OrderWeChatPayBatch { | @@ -61,6 +54,9 @@ public class OrderWeChatPayBatch { | ||
61 | @Valid | 54 | @Valid |
62 | private OrderDeliveryDto delivery; | 55 | private OrderDeliveryDto delivery; |
63 | 56 | ||
57 | + @NotBlank(message = "登陆编码不能为空") | ||
58 | + private String code; | ||
59 | + | ||
64 | public String getPayType() { | 60 | public String getPayType() { |
65 | return payType; | 61 | return payType; |
66 | } | 62 | } |
@@ -149,30 +145,6 @@ public class OrderWeChatPayBatch { | @@ -149,30 +145,6 @@ public class OrderWeChatPayBatch { | ||
149 | this.payerCustomerCode = payerCustomerCode; | 145 | this.payerCustomerCode = payerCustomerCode; |
150 | } | 146 | } |
151 | 147 | ||
152 | - public String getOpenId() { | ||
153 | - return openId; | ||
154 | - } | ||
155 | - | ||
156 | - public void setOpenId(String openId) { | ||
157 | - this.openId = openId; | ||
158 | - } | ||
159 | - | ||
160 | - public String getSubAppid() { | ||
161 | - return subAppid; | ||
162 | - } | ||
163 | - | ||
164 | - public void setSubAppid(String subAppid) { | ||
165 | - this.subAppid = subAppid; | ||
166 | - } | ||
167 | - | ||
168 | - public String getSubOpenId() { | ||
169 | - return subOpenId; | ||
170 | - } | ||
171 | - | ||
172 | - public void setSubOpenId(String subOpenId) { | ||
173 | - this.subOpenId = subOpenId; | ||
174 | - } | ||
175 | - | ||
176 | public String getCustomerAbbr() { | 148 | public String getCustomerAbbr() { |
177 | return customerAbbr; | 149 | return customerAbbr; |
178 | } | 150 | } |
@@ -204,4 +176,12 @@ public class OrderWeChatPayBatch { | @@ -204,4 +176,12 @@ public class OrderWeChatPayBatch { | ||
204 | public void setDelivery(OrderDeliveryDto delivery) { | 176 | public void setDelivery(OrderDeliveryDto delivery) { |
205 | this.delivery = delivery; | 177 | this.delivery = delivery; |
206 | } | 178 | } |
179 | + | ||
180 | + public String getCode() { | ||
181 | + return code; | ||
182 | + } | ||
183 | + | ||
184 | + public void setCode(String code) { | ||
185 | + this.code = code; | ||
186 | + } | ||
207 | } | 187 | } |
etrade-order/src/main/java/com/diligrp/etrade/order/service/impl/OrderServiceImpl.java
@@ -763,13 +763,12 @@ public class OrderServiceImpl implements OrderService { | @@ -763,13 +763,12 @@ public class OrderServiceImpl implements OrderService { | ||
763 | } | 763 | } |
764 | List<String> paymentIdList = orderPaymentService.checkNotPayPaymentOrder(orderWeChatPayBatch.getCodes()); | 764 | List<String> paymentIdList = orderPaymentService.checkNotPayPaymentOrder(orderWeChatPayBatch.getCodes()); |
765 | if(paymentIdList!=null&&paymentIdList.size()>=1){ | 765 | if(paymentIdList!=null&&paymentIdList.size()>=1){ |
766 | - Message message= wxChatPayClose(paymentIdList,orderWeChatPayBatch.getMarketId(),orderWeChatPayBatch.getOpenId()); | 766 | + Message message= wxChatPayClose(paymentIdList,orderWeChatPayBatch.getMarketId()); |
767 | if(message!=null){ | 767 | if(message!=null){ |
768 | return message; | 768 | return message; |
769 | } | 769 | } |
770 | } | 770 | } |
771 | 771 | ||
772 | - List<OrderPayment> orderPaymentList = new ArrayList<>(); | ||
773 | WeChatPayTradeDto weChatPayTradeDto = new WeChatPayTradeDto(); | 772 | WeChatPayTradeDto weChatPayTradeDto = new WeChatPayTradeDto(); |
774 | //效验店铺 | 773 | //效验店铺 |
775 | ShopVo shop = orderGoodsService.checkShop(orderWeChatPayBatch.getShopId()); | 774 | ShopVo shop = orderGoodsService.checkShop(orderWeChatPayBatch.getShopId()); |
@@ -778,16 +777,11 @@ public class OrderServiceImpl implements OrderService { | @@ -778,16 +777,11 @@ public class OrderServiceImpl implements OrderService { | ||
778 | } | 777 | } |
779 | //构建微信支付参数 | 778 | //构建微信支付参数 |
780 | weChatPayTradeDto.setAmount(orderWeChatPayBatch.getTotlePayAmount().multiply(NumberTransform.ONE_HUNDERD).longValue()); | 779 | weChatPayTradeDto.setAmount(orderWeChatPayBatch.getTotlePayAmount().multiply(NumberTransform.ONE_HUNDERD).longValue()); |
781 | - weChatPayTradeDto.setPayType(orderWeChatPayBatch.getPayType()); | ||
782 | - weChatPayTradeDto.setType(WeChatPayType.TRADE.getCode()); | ||
783 | - weChatPayTradeDto.setFees(null); | ||
784 | - weChatPayTradeDto.setAccountId(null); | ||
785 | - weChatPayTradeDto.setSerialNo(orderWeChatPayBatch.getCodes().get(0)); | 780 | + weChatPayTradeDto.setType(orderWeChatPayBatch.getPayType()); |
781 | + weChatPayTradeDto.setCode(orderWeChatPayBatch.getCode()); | ||
782 | + weChatPayTradeDto.setOutTradeNo(orderWeChatPayBatch.getCodes().get(0)); | ||
786 | weChatPayTradeDto.setGoodsDesc(shop.getName()); | 783 | weChatPayTradeDto.setGoodsDesc(shop.getName()); |
787 | - weChatPayTradeDto.setOpenId(orderWeChatPayBatch.getOpenId()); | ||
788 | - weChatPayTradeDto.setSubMchId(shop.getWxMerchantNumber()); | ||
789 | weChatPayTradeDto.setNotifyUrl(OrderConstant.WECHATPAY_BACK_API); | 784 | weChatPayTradeDto.setNotifyUrl(OrderConstant.WECHATPAY_BACK_API); |
790 | - weChatPayTradeDto.setMarketId(orderWeChatPayBatch.getMarketId()); | ||
791 | weChatPayTradeDto.setDescription("电子结算微信交易"); | 785 | weChatPayTradeDto.setDescription("电子结算微信交易"); |
792 | WeChatPayTradeBackDto weChatPayTradeBackDto = orderPaymentService.WeChatPay(weChatPayTradeDto); | 786 | WeChatPayTradeBackDto weChatPayTradeBackDto = orderPaymentService.WeChatPay(weChatPayTradeDto); |
793 | if(weChatPayTradeBackDto == null){ | 787 | if(weChatPayTradeBackDto == null){ |
@@ -810,8 +804,7 @@ public class OrderServiceImpl implements OrderService { | @@ -810,8 +804,7 @@ public class OrderServiceImpl implements OrderService { | ||
810 | ,orderWeChatPayBatch.getPayerStoreCustomerId(),orderWeChatPayBatch.getPayerCustomerName(),orderWeChatPayBatch.getPayerPhone() | 804 | ,orderWeChatPayBatch.getPayerStoreCustomerId(),orderWeChatPayBatch.getPayerCustomerName(),orderWeChatPayBatch.getPayerPhone() |
811 | ,null,null,null,null,orderWeChatPayBatch.getOperateId(),orderWeChatPayBatch.getOperateName() | 805 | ,null,null,null,null,orderWeChatPayBatch.getOperateId(),orderWeChatPayBatch.getOperateName() |
812 | ,null,null,null,orderWeChatPayBatch.getCustomerAbbr(),weChatPayTradeBackDto.getPaymentId()); | 806 | ,null,null,null,orderWeChatPayBatch.getCustomerAbbr(),weChatPayTradeBackDto.getPaymentId()); |
813 | - OrderPayVo payVo = orderPaymentService.createOrderPayment(order, orderPayDto, identityType,shop); | ||
814 | - orderPaymentList.add(payVo.getOrderPayment()); | 807 | + orderPaymentService.createOrderPayment(order, orderPayDto, identityType,shop); |
815 | }catch (PlatformServiceException pe){ | 808 | }catch (PlatformServiceException pe){ |
816 | LOGGER.info("微信支付异常,支付订单号:{},异常信息{}",orderWeChatPayBatch.getCodes(),pe.getMessage()); | 809 | LOGGER.info("微信支付异常,支付订单号:{},异常信息{}",orderWeChatPayBatch.getCodes(),pe.getMessage()); |
817 | wxChatPayCloseOnly(weChatPayTradeBackDto.getPaymentId(),orderWeChatPayBatch.getMarketId(),null); | 810 | wxChatPayCloseOnly(weChatPayTradeBackDto.getPaymentId(),orderWeChatPayBatch.getMarketId(),null); |
@@ -827,14 +820,12 @@ public class OrderServiceImpl implements OrderService { | @@ -827,14 +820,12 @@ public class OrderServiceImpl implements OrderService { | ||
827 | //扣减库存T | 820 | //扣减库存T |
828 | orderGoodsService.deductBatch(orderList,orderWeChatPayBatch.getPayerCustomerId(),orderWeChatPayBatch.getPayerCustomerName()); | 821 | orderGoodsService.deductBatch(orderList,orderWeChatPayBatch.getPayerCustomerId(),orderWeChatPayBatch.getPayerCustomerName()); |
829 | 822 | ||
830 | - //保存待支付单 | ||
831 | - //orderPaymentService.saveBatch(orderPaymentList); | ||
832 | //返回数据,由小程序发起微信支付。 | 823 | //返回数据,由小程序发起微信支付。 |
833 | return Message.success(weChatPayTradeBackDto); | 824 | return Message.success(weChatPayTradeBackDto); |
834 | } | 825 | } |
835 | 826 | ||
836 | @Transactional(rollbackFor = Exception.class) | 827 | @Transactional(rollbackFor = Exception.class) |
837 | - public Message wxChatPayClose(List<String> paymentIds, Long marketId, String openId) { | 828 | + public Message wxChatPayClose(List<String> paymentIds, Long marketId) { |
838 | for(String paymentId: paymentIds){ | 829 | for(String paymentId: paymentIds){ |
839 | RLock lock = redissonClient.getLock(OrderConstant.OrderLock + paymentId); | 830 | RLock lock = redissonClient.getLock(OrderConstant.OrderLock + paymentId); |
840 | try{ | 831 | try{ |
etrade-rpc/src/main/java/com/diligrp/etrade/rpc/dto/WeChatPayTradeDto.java
@@ -11,22 +11,12 @@ import java.util.List; | @@ -11,22 +11,12 @@ import java.util.List; | ||
11 | * @Date 2024-3-25 | 11 | * @Date 2024-3-25 |
12 | */ | 12 | */ |
13 | public class WeChatPayTradeDto { | 13 | public class WeChatPayTradeDto { |
14 | - /** | ||
15 | - * 交易类型 | ||
16 | - * 当前只支持10-充值 12-缴费 | ||
17 | - */ | ||
18 | - @NotNull(message = "type should not be null") | ||
19 | - private Integer type; | 14 | + |
20 | /** | 15 | /** |
21 | * 支付方式-JSAPI, NATIVE等 | 16 | * 支付方式-JSAPI, NATIVE等 |
22 | */ | 17 | */ |
23 | @NotNull(message = "payType should not be null") | 18 | @NotNull(message = "payType should not be null") |
24 | - private String payType; | ||
25 | - /** | ||
26 | - * 资金账号 | ||
27 | - */ | ||
28 | - private Long accountId; | ||
29 | - | 19 | + private String type; |
30 | /** | 20 | /** |
31 | * 微信商品描述-微信扫码支付时显示-不超过128个字符 | 21 | * 微信商品描述-微信扫码支付时显示-不超过128个字符 |
32 | */ | 22 | */ |
@@ -40,7 +30,11 @@ public class WeChatPayTradeDto { | @@ -40,7 +30,11 @@ public class WeChatPayTradeDto { | ||
40 | /** | 30 | /** |
41 | * 业务单号 | 31 | * 业务单号 |
42 | */ | 32 | */ |
43 | - private String serialNo; | 33 | + private String outTradeNo; |
34 | + /** | ||
35 | + * 小程序登陆凭证 | ||
36 | + */ | ||
37 | + private String code; | ||
44 | /** | 38 | /** |
45 | * 支付结果通知URL | 39 | * 支付结果通知URL |
46 | */ | 40 | */ |
@@ -50,81 +44,16 @@ public class WeChatPayTradeDto { | @@ -50,81 +44,16 @@ public class WeChatPayTradeDto { | ||
50 | */ | 44 | */ |
51 | private String description; | 45 | private String description; |
52 | 46 | ||
53 | - /** | ||
54 | - * 买卖家手续费 | ||
55 | - */ | ||
56 | - private List<FeeDto> fees; | ||
57 | - | ||
58 | - /** | ||
59 | - * 微信用户标识-JSAPI使用 | ||
60 | - */ | ||
61 | - private String openId; | ||
62 | - | ||
63 | - /** | ||
64 | - * 服务商的AppID | ||
65 | - */ | ||
66 | - private String subMchId; | ||
67 | - | ||
68 | - /** | ||
69 | - * 服务商模式下,服务商APPID下的openId | ||
70 | - */ | ||
71 | - private String subMchIdopenId; | ||
72 | - | ||
73 | - /** | ||
74 | - * 优惠卷信息 | ||
75 | - */ | ||
76 | - private List<DeductFeesDto> deductFees; | ||
77 | - | ||
78 | - /** | ||
79 | - * 市场id | ||
80 | - */ | ||
81 | private Long marketId; | 47 | private Long marketId; |
82 | 48 | ||
83 | - /** | ||
84 | - * | ||
85 | - */ | ||
86 | - private String paymentId; | ||
87 | - | ||
88 | - public String getPaymentId() { | ||
89 | - return paymentId; | ||
90 | - } | ||
91 | - | ||
92 | - public void setPaymentId(String paymentId) { | ||
93 | - this.paymentId = paymentId; | ||
94 | - } | ||
95 | - | ||
96 | - public Long getMarketId() { | ||
97 | - return marketId; | ||
98 | - } | ||
99 | - | ||
100 | - public void setMarketId(Long marketId) { | ||
101 | - this.marketId = marketId; | ||
102 | - } | ||
103 | - | ||
104 | - public Integer getType() { | 49 | + public String getType() { |
105 | return type; | 50 | return type; |
106 | } | 51 | } |
107 | 52 | ||
108 | - public void setType(Integer type) { | 53 | + public void setType(String type) { |
109 | this.type = type; | 54 | this.type = type; |
110 | } | 55 | } |
111 | 56 | ||
112 | - public String getPayType() { | ||
113 | - return payType; | ||
114 | - } | ||
115 | - | ||
116 | - public void setPayType(String payType) { | ||
117 | - this.payType = payType; | ||
118 | - } | ||
119 | - | ||
120 | - public Long getAccountId() { | ||
121 | - return accountId; | ||
122 | - } | ||
123 | - | ||
124 | - public void setAccountId(Long accountId) { | ||
125 | - this.accountId = accountId; | ||
126 | - } | ||
127 | - | ||
128 | public String getGoodsDesc() { | 57 | public String getGoodsDesc() { |
129 | return goodsDesc; | 58 | return goodsDesc; |
130 | } | 59 | } |
@@ -141,12 +70,20 @@ public class WeChatPayTradeDto { | @@ -141,12 +70,20 @@ public class WeChatPayTradeDto { | ||
141 | this.amount = amount; | 70 | this.amount = amount; |
142 | } | 71 | } |
143 | 72 | ||
144 | - public String getSerialNo() { | ||
145 | - return serialNo; | 73 | + public String getOutTradeNo() { |
74 | + return outTradeNo; | ||
75 | + } | ||
76 | + | ||
77 | + public void setOutTradeNo(String outTradeNo) { | ||
78 | + this.outTradeNo = outTradeNo; | ||
146 | } | 79 | } |
147 | 80 | ||
148 | - public void setSerialNo(String serialNo) { | ||
149 | - this.serialNo = serialNo; | 81 | + public String getCode() { |
82 | + return code; | ||
83 | + } | ||
84 | + | ||
85 | + public void setCode(String code) { | ||
86 | + this.code = code; | ||
150 | } | 87 | } |
151 | 88 | ||
152 | public String getNotifyUrl() { | 89 | public String getNotifyUrl() { |
@@ -165,43 +102,11 @@ public class WeChatPayTradeDto { | @@ -165,43 +102,11 @@ public class WeChatPayTradeDto { | ||
165 | this.description = description; | 102 | this.description = description; |
166 | } | 103 | } |
167 | 104 | ||
168 | - public List<FeeDto> getFees() { | ||
169 | - return fees; | ||
170 | - } | ||
171 | - | ||
172 | - public void setFees(List<FeeDto> fees) { | ||
173 | - this.fees = fees; | ||
174 | - } | ||
175 | - | ||
176 | - public String getOpenId() { | ||
177 | - return openId; | ||
178 | - } | ||
179 | - | ||
180 | - public void setOpenId(String openId) { | ||
181 | - this.openId = openId; | ||
182 | - } | ||
183 | - | ||
184 | - public String getSubMchId() { | ||
185 | - return subMchId; | ||
186 | - } | ||
187 | - | ||
188 | - public void setSubMchId(String subMchId) { | ||
189 | - this.subMchId = subMchId; | ||
190 | - } | ||
191 | - | ||
192 | - public String getSubMchIdopenId() { | ||
193 | - return subMchIdopenId; | ||
194 | - } | ||
195 | - | ||
196 | - public void setSubMchIdopenId(String subMchIdopenId) { | ||
197 | - this.subMchIdopenId = subMchIdopenId; | ||
198 | - } | ||
199 | - | ||
200 | - public List<DeductFeesDto> getDeductFees() { | ||
201 | - return deductFees; | 105 | + public Long getMarketId() { |
106 | + return marketId; | ||
202 | } | 107 | } |
203 | 108 | ||
204 | - public void setDeductFees(List<DeductFeesDto> deductFees) { | ||
205 | - this.deductFees = deductFees; | 109 | + public void setMarketId(Long marketId) { |
110 | + this.marketId = marketId; | ||
206 | } | 111 | } |
207 | } | 112 | } |
etrade-rpc/src/main/java/com/diligrp/etrade/rpc/resolver/WeChatPayRpcResolver.java
@@ -29,11 +29,11 @@ public class WeChatPayRpcResolver { | @@ -29,11 +29,11 @@ public class WeChatPayRpcResolver { | ||
29 | /** 支付系统token */ | 29 | /** 支付系统token */ |
30 | public static final String PAYMENT_TOKEN = "abcd2010"; | 30 | public static final String PAYMENT_TOKEN = "abcd2010"; |
31 | /** 创建预支付 */ | 31 | /** 创建预支付 */ |
32 | - public static final String PAY_STATE_PREPARE ="wechat.payment.service:prepare"; | 32 | + public static final String PAY_STATE_PREPARE ="hzbank.payment.service:prepay"; |
33 | /** 微信支付状态查询 */ | 33 | /** 微信支付状态查询 */ |
34 | - public static final String PAY_STATE_CHECK ="wechat.payment.service:state"; | 34 | + public static final String PAY_STATE_CHECK ="hzbank.payment.service:state"; |
35 | /** 微信支付关闭订单 */ | 35 | /** 微信支付关闭订单 */ |
36 | - public static final String PAY_STATE_CLOSE ="wechat.payment.service:close"; | 36 | + public static final String PAY_STATE_CLOSE ="hzbank.payment.service:close"; |
37 | // /** 微信支付历史交易查询 */ | 37 | // /** 微信支付历史交易查询 */ |
38 | // public static final String PAY_STATE_INFO ="wechat.payment.service:statement"; | 38 | // public static final String PAY_STATE_INFO ="wechat.payment.service:statement"; |
39 | // /** 微信支付退款 */ | 39 | // /** 微信支付退款 */ |
@@ -54,9 +54,6 @@ public class WeChatPayRpcResolver { | @@ -54,9 +54,6 @@ public class WeChatPayRpcResolver { | ||
54 | //创建提交单 | 54 | //创建提交单 |
55 | weChatPayTradeDto.setNotifyUrl(backBaseUrl+weChatPayTradeDto.getNotifyUrl()); | 55 | weChatPayTradeDto.setNotifyUrl(backBaseUrl+weChatPayTradeDto.getNotifyUrl()); |
56 | weChatPayTradeDto.setDescription(weChatPayTradeDto.getDescription()==null?"电子交易结算":weChatPayTradeDto.getDescription()); | 56 | weChatPayTradeDto.setDescription(weChatPayTradeDto.getDescription()==null?"电子交易结算":weChatPayTradeDto.getDescription()); |
57 | - if(weChatPayTradeDto.getAccountId()==null){ | ||
58 | - weChatPayTradeDto.setAccountId(1L); | ||
59 | - } | ||
60 | //组装headers | 57 | //组装headers |
61 | HttpHeaders prepareHeaders = creatHeader(weChatPayTradeDto.getMarketId().toString(),PAY_STATE_PREPARE); | 58 | HttpHeaders prepareHeaders = creatHeader(weChatPayTradeDto.getMarketId().toString(),PAY_STATE_PREPARE); |
62 | Message<WeChatPayTradeBackDto> prepareJsonObject = payRpc.wechatPay(weChatPayTradeDto, prepareHeaders); | 59 | Message<WeChatPayTradeBackDto> prepareJsonObject = payRpc.wechatPay(weChatPayTradeDto, prepareHeaders); |