Skip to content

Commit d409619

Browse files
committed
新增订单关闭方法
1 parent 76a27a0 commit d409619

15 files changed

Lines changed: 226 additions & 18 deletions

File tree

pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import com.egzosn.pay.ali.bean.OrderSettle;
3232
import com.egzosn.pay.common.api.BasePayService;
3333
import com.egzosn.pay.common.bean.BillType;
34+
import com.egzosn.pay.common.bean.CloseOrder;
3435
import com.egzosn.pay.common.bean.MethodType;
3536
import com.egzosn.pay.common.bean.NoticeParams;
3637
import com.egzosn.pay.common.bean.Order;
@@ -130,7 +131,7 @@ public boolean verify(NoticeParams noticeParams) {
130131
return false;
131132
}
132133

133-
return signVerify(params, (String) params.get(SIGN)) && verifySource((String) params.get("notify_id"));
134+
return signVerify(params, (String) params.get(SIGN));
134135
}
135136

136137

@@ -182,15 +183,6 @@ public String getAliPayCertSN(java.util.Map<String, Object> respMap) {
182183
return (String) respMap.get(ALIPAY_CERT_SN_FIELD);
183184
}
184185

185-
/**
186-
* 校验数据来源
187-
*
188-
* @param id 业务id, 数据的真实性.
189-
* @return true通过
190-
*/
191-
protected boolean verifySource(String id) {
192-
return true;
193-
}
194186

195187

196188
/**
@@ -484,6 +476,17 @@ public Map<String, Object> close(String tradeNo, String outTradeNo) {
484476
return secondaryInterface(tradeNo, outTradeNo, AliTransactionType.CLOSE);
485477
}
486478

479+
/**
480+
* 交易关闭接口
481+
*
482+
* @param closeOrder 关闭订单
483+
* @return 返回支付方交易关闭后的结果
484+
*/
485+
@Override
486+
public Map<String, Object> close(CloseOrder closeOrder){
487+
return secondaryInterface(closeOrder.getTradeNo(), closeOrder.getOutTradeNo(), AliTransactionType.CLOSE);
488+
}
489+
487490
/**
488491
* 支付交易返回失败或支付系统超时,调用该接口撤销交易。
489492
* 如果此订单用户支付失败,支付宝系统会将此订单关闭;如果用户支付成功,支付宝系统会将此订单资金退还给用户。

pay-java-baidu/src/main/java/com/egzosn/pay/baidu/api/BaiduPayService.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.egzosn.pay.common.api.BasePayService;
2626
import com.egzosn.pay.common.bean.BaseRefundResult;
2727
import com.egzosn.pay.common.bean.BillType;
28+
import com.egzosn.pay.common.bean.CloseOrder;
2829
import com.egzosn.pay.common.bean.CurType;
2930
import com.egzosn.pay.common.bean.MethodType;
3031
import com.egzosn.pay.common.bean.NoticeParams;
@@ -438,7 +439,16 @@ public Map<String, Object> query(String tradeNo, String outTradeNo) {
438439
public Map<String, Object> close(String tradeNo, String outTradeNo) {
439440
throw new UnsupportedOperationException("不支持该操作");
440441
}
441-
442+
/**
443+
* 交易关闭接口
444+
*
445+
* @param closeOrder 关闭订单
446+
* @return 返回支付方交易关闭后的结果
447+
*/
448+
@Override
449+
public Map<String, Object> close(CloseOrder closeOrder){
450+
throw new UnsupportedOperationException("不支持该操作");
451+
}
442452

443453
/**
444454
* 退款

pay-java-common/src/main/java/com/egzosn/pay/common/api/PayService.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.Map;
77

88
import com.egzosn.pay.common.bean.BillType;
9+
import com.egzosn.pay.common.bean.CloseOrder;
910
import com.egzosn.pay.common.bean.MethodType;
1011
import com.egzosn.pay.common.bean.NoticeParams;
1112
import com.egzosn.pay.common.bean.NoticeRequest;
@@ -218,8 +219,17 @@ public interface PayService<PC extends PayConfigStorage> {
218219
* @param tradeNo 支付平台订单号
219220
* @param outTradeNo 商户单号
220221
* @return 返回支付方交易关闭后的结果
222+
* @see #close(CloseOrder)
221223
*/
224+
@Deprecated
222225
Map<String, Object> close(String tradeNo, String outTradeNo);
226+
/**
227+
* 交易关闭接口
228+
*
229+
* @param closeOrder 关闭订单
230+
* @return 返回支付方交易关闭后的结果
231+
*/
232+
Map<String, Object> close(CloseOrder closeOrder);
223233

224234

225235
/**
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package com.egzosn.pay.common.bean;
2+
3+
import java.util.Map;
4+
5+
/**
6+
* 关闭订单
7+
* @author Egan
8+
* @email egan@egzosn.com
9+
* @date 2021/10/6
10+
*/
11+
public class CloseOrder implements Order {
12+
13+
/**
14+
* 支付平台订单号,交易号
15+
*/
16+
private String tradeNo;
17+
/**
18+
* 商户单号
19+
*/
20+
private String outTradeNo;
21+
22+
23+
/**
24+
* 订单附加信息,可用于预设未提供的参数,这里会覆盖以上所有的订单信息,
25+
*/
26+
private Map<String, Object> attr;
27+
28+
public CloseOrder() {
29+
}
30+
31+
public CloseOrder(String outTradeNo) {
32+
this.outTradeNo = outTradeNo;
33+
}
34+
35+
36+
37+
/**
38+
* 添加订单信息
39+
*
40+
* @param key key
41+
* @param value 值
42+
*/
43+
@Override
44+
public void addAttr(String key, Object value) {
45+
attr.put(key, value);
46+
}
47+
48+
/**
49+
* 获取属性 这里可用做覆盖已设置的信息属性,订单信息在签名前进行覆盖。
50+
*
51+
* @return 属性
52+
*/
53+
@Override
54+
public Map<String, Object> getAttrs() {
55+
return attr;
56+
}
57+
58+
/**
59+
* 获取属性 这里可用做覆盖已设置的订单信息属性,订单信息在签名前进行覆盖。
60+
*
61+
* @param key 属性名
62+
* @return 属性
63+
*/
64+
@Override
65+
public Object getAttr(String key) {
66+
return attr.get(key);
67+
}
68+
69+
public String getTradeNo() {
70+
return tradeNo;
71+
}
72+
73+
public void setTradeNo(String tradeNo) {
74+
this.tradeNo = tradeNo;
75+
}
76+
77+
public String getOutTradeNo() {
78+
return outTradeNo;
79+
}
80+
81+
public void setOutTradeNo(String outTradeNo) {
82+
this.outTradeNo = outTradeNo;
83+
}
84+
85+
public Map<String, Object> getAttr() {
86+
return attr;
87+
}
88+
89+
public void setAttr(Map<String, Object> attr) {
90+
this.attr = attr;
91+
}
92+
}

pay-java-common/src/main/java/com/egzosn/pay/common/bean/OrderParaStructure.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package com.egzosn.pay.common.bean;
22

3+
import java.util.Date;
34
import java.util.Map;
45

6+
import com.egzosn.pay.common.util.DateUtils;
57
import com.egzosn.pay.common.util.str.StringUtils;
68

79
/**
810
* 订单参数构造器
11+
*
912
* @author Egan
1013
* <pre>
1114
* email egzosn@gmail.com
@@ -32,4 +35,9 @@ public static Map<String, Object> loadParameters(Map<String, Object> parameters,
3235
return parameters;
3336
}
3437

38+
public static Map<String, Object> loadDateParameters(Map<String, Object> parameters, String key, Order order, String datePattern) {
39+
return OrderParaStructure.loadParameters(parameters, key, DateUtils.formatDate((Date) order.getAttr(key), datePattern));
40+
}
41+
42+
3543
}

pay-java-common/src/main/java/com/egzosn/pay/common/bean/PayOrder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,12 @@ public class PayOrder implements Order {
4848
/**
4949
* 设备信息
5050
*/
51+
@Deprecated
5152
private String deviceInfo;
5253
/**
5354
* 支付创建ip
5455
*/
56+
@Deprecated
5557
private String spbillCreateIp;
5658
/**
5759
* 付款条码串,人脸凭证,有关支付代码相关的,

pay-java-common/src/main/java/com/egzosn/pay/common/util/DateUtils.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public static void clearThreadLocal() {
5858
}
5959

6060
public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
61+
public static final String YYYY_MM_DD_T_HH_MM_SS = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
6162
public static final String YYYY_MM_DD = "yyyy-MM-dd";
6263
public static final String YYYYMMDD = "yyyyMMdd";
6364
public static final String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";

pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.alibaba.fastjson.JSONObject;
1111
import com.egzosn.pay.common.api.BasePayService;
1212
import com.egzosn.pay.common.bean.BillType;
13+
import com.egzosn.pay.common.bean.CloseOrder;
1314
import com.egzosn.pay.common.bean.MethodType;
1415
import com.egzosn.pay.common.bean.NoticeParams;
1516
import com.egzosn.pay.common.bean.PayMessage;
@@ -412,7 +413,16 @@ public Map<String, Object> query(String tradeNo, String outTradeNo) {
412413
public Map<String, Object> close(String tradeNo, String outTradeNo) {
413414
return Collections.EMPTY_MAP;
414415
}
415-
416+
/**
417+
* 交易关闭接口
418+
*
419+
* @param closeOrder 关闭订单
420+
* @return 返回支付方交易关闭后的结果
421+
*/
422+
@Override
423+
public Map<String, Object> close(CloseOrder closeOrder){
424+
throw new UnsupportedOperationException("不支持该操作");
425+
}
416426

417427
/**
418428
* 申请退款接口

pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/api/PayoneerPayService.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import com.egzosn.pay.common.api.BasePayService;
1818
import com.egzosn.pay.common.bean.BaseRefundResult;
1919
import com.egzosn.pay.common.bean.BillType;
20+
import com.egzosn.pay.common.bean.CloseOrder;
2021
import com.egzosn.pay.common.bean.CurType;
2122
import com.egzosn.pay.common.bean.DefaultCurType;
2223
import com.egzosn.pay.common.bean.MethodType;
@@ -305,7 +306,16 @@ public Map<String, Object> query(String tradeNo, String outTradeNo) {
305306
public Map<String, Object> close(String tradeNo, String outTradeNo) {
306307
return secondaryInterface(tradeNo, outTradeNo, PayoneerTransactionType.CHARGE_CANCEL);
307308
}
308-
309+
/**
310+
* 交易关闭接口
311+
*
312+
* @param closeOrder 关闭订单
313+
* @return 返回支付方交易关闭后的结果
314+
*/
315+
@Override
316+
public Map<String, Object> close(CloseOrder closeOrder){
317+
return secondaryInterface(closeOrder.getTradeNo(), closeOrder.getOutTradeNo(), PayoneerTransactionType.CHARGE_CANCEL);
318+
}
309319
/**
310320
* 交易交易撤销
311321
*

pay-java-paypal/src/main/java/com/egzosn/pay/paypal/api/PayPalPayService.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.egzosn.pay.common.api.BasePayService;
2222
import com.egzosn.pay.common.bean.BaseRefundResult;
2323
import com.egzosn.pay.common.bean.BillType;
24+
import com.egzosn.pay.common.bean.CloseOrder;
2425
import com.egzosn.pay.common.bean.CurType;
2526
import com.egzosn.pay.common.bean.DefaultCurType;
2627
import com.egzosn.pay.common.bean.MethodType;
@@ -271,7 +272,16 @@ public Map<String, Object> close(String tradeNo, String outTradeNo) {
271272
return null;
272273
}
273274

274-
275+
/**
276+
* 交易关闭接口
277+
*
278+
* @param closeOrder 关闭订单
279+
* @return 返回支付方交易关闭后的结果
280+
*/
281+
@Override
282+
public Map<String, Object> close(CloseOrder closeOrder){
283+
throw new UnsupportedOperationException("不支持该操作");
284+
}
275285
/**
276286
* 申请退款接口
277287
*

0 commit comments

Comments
 (0)