Skip to content

Commit fb477c3

Browse files
committed
订单,配置新增自定义属性
1 parent cdfb3bb commit fb477c3

7 files changed

Lines changed: 134 additions & 111 deletions

File tree

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

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,34 @@
11
package com.egzosn.pay.common.api;
22

3+
import java.awt.image.BufferedImage;
4+
import java.io.InputStream;
5+
import java.io.UnsupportedEncodingException;
6+
import java.util.ArrayList;
7+
import java.util.Collections;
8+
import java.util.Date;
9+
import java.util.HashMap;
10+
import java.util.List;
11+
import java.util.Map;
12+
import java.util.TreeMap;
13+
14+
import org.apache.commons.logging.Log;
15+
import org.apache.commons.logging.LogFactory;
16+
317
import com.alibaba.fastjson.JSON;
4-
import com.egzosn.pay.common.bean.*;
18+
import com.egzosn.pay.common.bean.MethodType;
19+
import com.egzosn.pay.common.bean.Order;
20+
import com.egzosn.pay.common.bean.PayMessage;
21+
import com.egzosn.pay.common.bean.PayOrder;
22+
import com.egzosn.pay.common.bean.PayOutMessage;
23+
import com.egzosn.pay.common.bean.RefundOrder;
24+
import com.egzosn.pay.common.bean.TransactionType;
25+
import com.egzosn.pay.common.bean.TransferOrder;
526
import com.egzosn.pay.common.exception.PayErrorException;
627
import com.egzosn.pay.common.http.HttpConfigStorage;
728
import com.egzosn.pay.common.http.HttpRequestTemplate;
829
import com.egzosn.pay.common.util.MatrixToImageWriter;
930
import com.egzosn.pay.common.util.sign.SignUtils;
1031
import com.egzosn.pay.common.util.str.StringUtils;
11-
import org.apache.commons.logging.Log;
12-
import org.apache.commons.logging.LogFactory;
13-
14-
import java.awt.image.BufferedImage;
15-
import java.io.InputStream;
16-
import java.io.UnsupportedEncodingException;
17-
import java.util.*;
1832

1933
/**
2034
* 支付基础服务
@@ -455,6 +469,7 @@ protected Map<String, Object> setParameters(Map<String, Object> parameters, Stri
455469
protected Map<String, Object> setParameters(Map<String, Object> parameters, String key, Order order) {
456470
Object attr = order.getAttr(key);
457471
if (null != attr && !"".equals(attr)) {
472+
order.getAttrs().remove(key);
458473
parameters.put(key, attr);
459474
}
460475
return parameters;
Lines changed: 50 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,154 +1,138 @@
11
package com.egzosn.pay.common.api;
22

3+
import com.egzosn.pay.common.bean.Attrs;
34
import com.egzosn.pay.common.bean.MsgType;
4-
import com.egzosn.pay.common.util.sign.CertDescriptor;
5-
6-
import java.util.concurrent.locks.Lock;
75

86
/**
97
* 支付客户端配置存储
10-
* @author egan
8+
*
9+
* @author egan
1110
* <pre>
1211
* email egzosn@gmail.com
1312
* date 2016-5-18 14:09:01
1413
* </pre>
1514
*/
16-
public interface PayConfigStorage {
15+
public interface PayConfigStorage extends Attrs {
1716

1817
/**
1918
* 附加支付配置
19+
*
2020
* @return 附加信息
2121
*/
22-
Object getAttach();
22+
Object getAttach();
2323

2424
/**
25-
* 获取私钥证书密码
26-
* @return 私钥证书密码
27-
*/
28-
String getKeyPrivateCertPwd();
29-
/**
30-
* 应用id
31-
* @return 应用id
25+
* 应用id
26+
*
27+
* @return 应用id
3228
*/
33-
String getAppid();
29+
String getAppid();
3430

3531
/**
3632
* 合作商唯一标识
37-
* @return 合作商唯一标识
33+
*
34+
* @return 合作商唯一标识
3835
*/
39-
String getPid();
36+
String getPid();
4037

4138
/**
4239
* 获取收款账号
43-
* @return 收款账号
40+
*
41+
* @return 收款账号
4442
*/
45-
String getSeller();
43+
String getSeller();
4644

4745
/**
4846
* 授权令牌
49-
* @return 授权令牌
47+
*
48+
* @return 授权令牌
5049
*/
51-
String getToken();
50+
String getToken();
5251

5352

5453
/**
5554
* 服务端异步回调Url
56-
* @return 异步回调Url
55+
*
56+
* @return 异步回调Url
5757
*/
58-
String getNotifyUrl();
58+
String getNotifyUrl();
59+
5960
/**
6061
* 服务端同步回调Url
61-
* @return 同步回调Url
62+
*
63+
* @return 同步回调Url
6264
*/
63-
String getReturnUrl();
65+
String getReturnUrl();
66+
6467
/**
65-
* 签名方式
66-
* @return 签名方式
68+
* 签名方式
69+
*
70+
* @return 签名方式
6771
*/
68-
String getSignType();
72+
String getSignType();
6973

7074
/**
71-
* 字符编码格式
75+
* 字符编码格式
76+
*
7277
* @return 字符编码
7378
*/
74-
String getInputCharset();
79+
String getInputCharset();
7580

7681
/**
7782
* 支付平台公钥(签名校验使用)
83+
*
7884
* @return 公钥
7985
*/
80-
String getKeyPublic();
86+
String getKeyPublic();
8187

8288
/**
83-
* 应用私钥(生成签名时使用)
89+
* 应用私钥(生成签名时使用)
90+
*
8491
* @return 私钥
8592
*/
86-
String getKeyPrivate();
93+
String getKeyPrivate();
8794

8895
/**
8996
* 支付类型 自定义
9097
* 这里暂定 aliPay 支付宝, wxPay微信支付
98+
*
9199
* @return 支付类型
92100
*/
93-
String getPayType();
101+
String getPayType();
94102

95103
/**
96104
* 消息类型
97-
* @see #getMsgType
98-
* @see MsgType
105+
*
99106
* @return "text" 或者 "xml",json
107+
* @see #getMsgType
108+
* @see MsgType
100109
*/
101-
MsgType getMsgType();
110+
@Deprecated
111+
MsgType getMsgType();
102112

103113

104-
/**
105-
* 获取访问令牌
106-
* @return 访问令牌
107-
*/
108-
String getAccessToken();
109-
110-
/**
111-
* 访问令牌是否过期
112-
* @return true过期
113-
*/
114-
boolean isAccessTokenExpired();
115-
/**
116-
* 获取access token锁
117-
* @return access token锁
118-
*/
119-
Lock getAccessTokenLock();
120-
121-
/**
122-
* 强制将access token过期掉
123-
*/
124-
void expireAccessToken();
125-
/**
126-
* 强制将access token过期掉
127-
* @return 过期时间
128-
*/
129-
long getExpiresTime();
130-
131114
/**
132115
* 应该是线程安全的
133-
* @param accessToken 新的accessToken值
116+
*
117+
* @param accessToken 新的accessToken值
134118
* @param expiresInSeconds 过期时间,以秒为单位 多少秒
135119
*/
136120
void updateAccessToken(String accessToken, int expiresInSeconds);
137121

138122
/**
139123
* 应该是线程安全的
124+
*
140125
* @param accessToken 新的accessToken值
141126
* @param expiresTime 过期时间,时间戳
142127
*/
143128
void updateAccessToken(String accessToken, long expiresTime);
144129

145130
/**
146131
* 是否为测试环境, true测试环境
132+
*
147133
* @return true测试环境
148134
*/
149135
boolean isTest();
150136

151137

152-
153-
154138
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.egzosn.pay.common.bean;
2+
3+
import java.io.Serializable;
4+
import java.util.Map;
5+
6+
/**
7+
* 属性信息
8+
*
9+
* @author Egan
10+
* <pre>
11+
* email egzosn@gmail.com
12+
* date 2020/10/8
13+
* </pre>
14+
*/
15+
public interface Attrs extends Serializable {
16+
17+
/**
18+
* 获取属性 这里可用做覆盖已设置的信息属性,订单信息在签名前进行覆盖。
19+
*
20+
* @return 属性
21+
*/
22+
Map<String, Object> getAttrs();
23+
24+
/**
25+
* 获取属性 这里可用做覆盖已设置的订单信息属性,订单信息在签名前进行覆盖。
26+
*
27+
* @param key 属性名
28+
* @return 属性
29+
*/
30+
Object getAttr(String key);
31+
}

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

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

3-
import java.io.Serializable;
4-
import java.util.Map;
5-
63
/**
74
* 支付订单信息
85
*
@@ -12,22 +9,7 @@
129
* date 2020/01/05 13:34
1310
* </pre>
1411
*/
15-
public interface Order extends Serializable {
16-
17-
/**
18-
* 获取订单属性 这里可用做覆盖已设置的订单信息属性,订单信息在签名前进行覆盖。
19-
*
20-
* @return 属性
21-
*/
22-
Map<String, Object> getAttrs();
23-
24-
/**
25-
* 获取订单属性 这里可用做覆盖已设置的订单信息属性,订单信息在签名前进行覆盖。
26-
*
27-
* @param key 属性名
28-
* @return 属性
29-
*/
30-
Object getAttr(String key);
12+
public interface Order extends Attrs {
3113

3214

3315
/**

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22

33
import java.io.Serializable;
44
import java.math.BigDecimal;
5-
import java.text.ParseException;
6-
import java.text.SimpleDateFormat;
7-
import java.util.Date;
85
import java.util.Map;
96

107
/**
@@ -18,6 +15,7 @@
1815
*/
1916
public class PayMessage implements Serializable {
2017
private Map<String, Object> payMessage = null;
18+
@Deprecated
2119
private String msgType;
2220
private String payType;
2321
private String transactionType;
@@ -50,10 +48,12 @@ protected void setPayMessage(Map<String, Object> payMessage) {
5048
this.payMessage = payMessage;
5149
}
5250

51+
@Deprecated
5352
public String getMsgType() {
5453
return msgType;
5554
}
5655

56+
@Deprecated
5757
public void setMsgType(String msgType) {
5858
this.msgType = msgType;
5959
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public class PayOrder implements Order {
9090
/**
9191
* 订单附加信息,可用于预设未提供的参数,这里会覆盖以上所有的订单信息,
9292
*/
93-
private Map<String, Object> attr;
93+
private volatile Map<String, Object> attr;
9494

9595

9696
public PayOrder() {

0 commit comments

Comments
 (0)