Skip to content

Commit 7cc3488

Browse files
committed
Merge branches 'dev' and 'master' of https://github.com/egzosn/pay-java-parent
2 parents 35bb30e + 9a6d262 commit 7cc3488

81 files changed

Lines changed: 6167 additions & 413 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<dependency>
2222
<groupId>com.egzosn</groupId>
2323
<artifactId>{module-name}</artifactId>
24-
<version>2.13.2</version>
24+
<version>2.13.3</version>
2525
</dependency>
2626

2727
```
@@ -63,8 +63,12 @@ android 例子 [pay-java-android](https://gitee.com/egzosn/pay-java-android)
6363

6464
非常欢迎和感谢对本项目发起Pull Request的同学,不过本项目基于git flow开发流程,因此在发起Pull Request的时候请选择develop分支。
6565

66+
作者公众号(每周输出)
67+
![公众号](https://egzosn.gitee.io/pay-java-parent/gzh.png "gzh.png")
68+
6669
E-Mail:egzosn@gmail.com
6770

6871
QQ群:542193977
6972

70-
微信群: ![微信群](https://www.egzosn.com/images/wx.jpg "wx.jpg")
73+
微信群:
74+
![微信群](https://egzosn.gitee.io/pay-java-parent/wx.jpg "wx.jpg")

pay-java-ali/README.md

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
## 支付宝支付简单例子
44

55
#### 支付配置
6-
6+
##### 普通公钥
77
```java
8-
9-
8+
9+
1010
AliPayConfigStorage aliPayConfigStorage = new AliPayConfigStorage();
1111
aliPayConfigStorage.setPid("合作者id");
1212
aliPayConfigStorage.setAppid("应用id");
@@ -21,6 +21,30 @@
2121
aliPayConfigStorage.setTest(true);
2222

2323
```
24+
##### 证书公钥
25+
```java
26+
27+
28+
AliPayConfigStorage aliPayConfigStorage = new AliPayConfigStorage();
29+
aliPayConfigStorage.setPid("合作者id");
30+
aliPayConfigStorage.setAppid("应用id");
31+
aliPayConfigStorage.setKeyPrivate("应用私钥");
32+
//设置为证书方式
33+
aliPayConfigStorage.setCertSign(true);
34+
//设置证书存储方式,这里为路径
35+
aliPayConfigStorage.setCertStoreType(CertStoreType.PATH);
36+
aliPayConfigStorage.setMerchantCert("请填写您的应用公钥证书文件路径,例如:d:/appCertPublicKey_2019051064521003.crt");
37+
aliPayConfigStorage.setAliPayCert("请填写您的支付宝公钥证书文件路径,例如:d:/alipayCertPublicKey_RSA2.crt");
38+
aliPayConfigStorage.setAliPayRootCert("请填写您的支付宝根证书文件路径,例如:d:/alipayRootCert.crt");
39+
aliPayConfigStorage.setNotifyUrl("异步回调地址");
40+
aliPayConfigStorage.setReturnUrl("同步回调地址");
41+
aliPayConfigStorage.setSignType("签名方式");
42+
aliPayConfigStorage.setSeller("收款账号");
43+
aliPayConfigStorage.setInputCharset("utf-8");
44+
//是否为测试账号,沙箱环境
45+
aliPayConfigStorage.setTest(true);
46+
47+
```
2448

2549

2650
#### 网络请求配置
@@ -85,7 +109,7 @@
85109
```java
86110

87111
//支付订单基础信息
88-
PayOrder payOrder = new PayOrder("订单title", "摘要", new BigDecimal(0.01) , UUID.randomUUID().toString().replace("-", ""));
112+
PayOrder payOrder = new PayOrder("订单title", "摘要", BigDecimal.valueOf(0.01) , UUID.randomUUID().toString().replace("-", ""));
89113

90114
```
91115

@@ -236,7 +260,7 @@
236260
RefundOrder order = new RefundOrder("支付宝单号", "我方系统单号", "退款金额", "订单总金额");
237261
//非必填, 根据业务需求而定,可用于多次退款
238262
order.setRefundNo("退款单号")
239-
Map result = service.refund(order);
263+
AliRefundResult result = service.refund(order);
240264

241265
```
242266

pay-java-ali/pom.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>pay-java-parent</artifactId>
77
<groupId>com.egzosn</groupId>
8-
<version>2.13.2</version>
8+
<version>2.13.3</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111
<artifactId>pay-java-ali</artifactId>
@@ -19,7 +19,11 @@
1919
<artifactId>pay-java-common</artifactId>
2020
</dependency>
2121
<!-- /pay-java -->
22-
22+
<dependency>
23+
<groupId>org.bouncycastle</groupId>
24+
<artifactId>bcprov-jdk15on</artifactId>
25+
<version>1.59</version>
26+
</dependency>
2327
</dependencies>
2428

2529

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

Lines changed: 105 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
11
package com.egzosn.pay.ali.api;
22

3+
import java.io.IOException;
4+
import java.io.InputStream;
5+
6+
import com.egzosn.pay.ali.bean.CertEnvironment;
37
import com.egzosn.pay.common.api.BasePayConfigStorage;
8+
import com.egzosn.pay.common.api.CertStore;
9+
import com.egzosn.pay.common.bean.result.PayException;
10+
import com.egzosn.pay.common.exception.PayErrorException;
411

512
/**
613
* 支付配置存储
714
*
815
* @author egan
9-
* <p>
10-
* email egzosn@gmail.com
11-
* date 2016-5-18 14:09:01
16+
* <p>
17+
* email egzosn@gmail.com
18+
* date 2016-5-18 14:09:01
19+
* </p>
20+
* 以下证书签名相关触发前提是 {@link BasePayConfigStorage#isCertSign}等于true的情况。不然走的就是普通的方式
1221
*/
1322
public class AliPayConfigStorage extends BasePayConfigStorage {
1423

24+
/**
25+
* ISV代商户代用,指定appAuthToken
26+
*/
27+
private String appAuthToken;
1528
/**
1629
* 商户应用id
1730
*/
@@ -27,6 +40,39 @@ public class AliPayConfigStorage extends BasePayConfigStorage {
2740
private String seller;
2841

2942

43+
/**
44+
* 应用公钥证书
45+
*/
46+
private Object merchantCert;
47+
48+
/**
49+
* 支付宝公钥证书
50+
*/
51+
private Object aliPayCert;
52+
/**
53+
* 支付宝CA证书,根证书
54+
*/
55+
private Object aliPayRootCert;
56+
57+
/**
58+
* 证书存储类型
59+
*/
60+
private CertStore certStoreType;
61+
62+
/**
63+
* 证书信息
64+
*/
65+
private CertEnvironment certEnvironment;
66+
67+
68+
public String getAppAuthToken() {
69+
return appAuthToken;
70+
}
71+
72+
public void setAppAuthToken(String appAuthToken) {
73+
this.appAuthToken = appAuthToken;
74+
}
75+
3076
public void setAppid(String appid) {
3177
this.appid = appid;
3278
}
@@ -55,5 +101,61 @@ public void setSeller(String seller) {
55101
this.seller = seller;
56102
}
57103

104+
public Object getMerchantCert() {
105+
return merchantCert;
106+
}
107+
108+
public void setMerchantCert(Object merchantCert) {
109+
this.merchantCert = merchantCert;
110+
}
111+
112+
public Object getAliPayCert() {
113+
return aliPayCert;
114+
}
115+
116+
public void setAliPayCert(Object aliPayCert) {
117+
this.aliPayCert = aliPayCert;
118+
}
119+
120+
public Object getAliPayRootCert() {
121+
return aliPayRootCert;
122+
}
123+
124+
public void setAliPayRootCert(Object aliPayRootCert) {
125+
this.aliPayRootCert = aliPayRootCert;
126+
}
127+
128+
public CertStore getCertStoreType() {
129+
return certStoreType;
130+
}
131+
132+
public void setCertStoreType(CertStore certStoreType) {
133+
this.certStoreType = certStoreType;
134+
}
135+
136+
public CertEnvironment getCertEnvironment() {
137+
return certEnvironment;
138+
}
139+
140+
public void setCertEnvironment(CertEnvironment certEnvironment) {
141+
this.certEnvironment = certEnvironment;
142+
}
143+
144+
/**
145+
* 初始化证书信息
146+
*/
147+
public void loadCertEnvironment() {
148+
if (!isCertSign() || null != this.certEnvironment) {
149+
return;
150+
}
151+
try (InputStream merchantCertStream = certStoreType.getInputStream(merchantCert);
152+
InputStream aliPayCertStream = certStoreType.getInputStream(aliPayCert);
153+
InputStream aliPayRootCertStream = certStoreType.getInputStream(aliPayRootCert)) {
154+
this.certEnvironment = new CertEnvironment(merchantCertStream, aliPayCertStream, aliPayRootCertStream);
155+
} catch (IOException e) {
156+
throw new PayErrorException(new PayException("读取证书异常", e.getMessage()));
157+
}
158+
}
159+
58160

59161
}

0 commit comments

Comments
 (0)