Commit 76f3c2f621126691b8faeb8f9604e171832ea712

Authored by fengliang
1 parent 3622f86a

update:支付修改

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);