Skip to content

Commit c124226

Browse files
authored
Merge pull request #28 from alipay/using_lombok
Using lombok
2 parents 8845aa7 + d5f341a commit c124226

File tree

9 files changed

+108
-67
lines changed

9 files changed

+108
-67
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ https://mvnrepository.com/artifact/com.alipay.global.sdk/global-open-sdk-java
1212
<dependency>
1313
<groupId>com.alipay.global.sdk</groupId>
1414
<artifactId>global-open-sdk-java</artifactId>
15-
<version>2.0.25</version>
15+
<version>2.0.26</version>
1616
</dependency>
1717
```
1818

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<groupId>com.alipay.global.sdk</groupId>
55
<artifactId>global-open-sdk-java</artifactId>
66
<packaging>jar</packaging>
7-
<version>2.0.25</version>
7+
<version>2.0.26</version>
88
<name>global-open-sdk-java</name>
99
<url>https://github.com/alipay/global-open-sdk-java</url>
1010
<description>

src/main/java/com/alipay/global/api/BaseAlipayClient.java

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,14 @@ public abstract class BaseAlipayClient implements AlipayClient {
2929
* alipay public key
3030
*/
3131
private String alipayPublicKey;
32+
/**
33+
* client id
34+
*/
35+
private String clientId;
36+
/**
37+
* is sandbox mode
38+
*/
39+
private boolean isSandboxMode = false;
3240

3341
public BaseAlipayClient() {
3442
}
@@ -39,9 +47,28 @@ public BaseAlipayClient(String gatewayUrl, String merchantPrivateKey, String ali
3947
this.alipayPublicKey = alipayPublicKey;
4048
}
4149

50+
public BaseAlipayClient(String gatewayUrl, String merchantPrivateKey, String alipayPublicKey, String clientId) {
51+
this.gatewayUrl = gatewayUrl;
52+
this.merchantPrivateKey = merchantPrivateKey;
53+
this.alipayPublicKey = alipayPublicKey;
54+
this.clientId = clientId;
55+
56+
// if client id starts with SANDBOX_, set to sandbox mode
57+
if (clientId.startsWith("SANDBOX_")) {
58+
this.isSandboxMode = true;
59+
}
60+
}
61+
4262
public <T extends AlipayResponse> T execute(AlipayRequest<T> alipayRequest) throws AlipayApiException {
4363

44-
checkRequestParam(alipayRequest);
64+
// compatible with old version which clientId does not exist in BaseAlipayClient
65+
alipayRequest.setClientId(alipayRequest.getClientId() == null ? this.clientId : alipayRequest.getClientId());
66+
67+
// replace with sandbox url if needed
68+
adjustSandboxUrl(alipayRequest);
69+
70+
// check request params
71+
checkRequestParams(alipayRequest);
4572

4673
String clientId = alipayRequest.getClientId();
4774
String httpMethod = alipayRequest.getHttpMethod();
@@ -108,22 +135,20 @@ private String genSignValue(String httpMethod, String path, String clientId, Str
108135
try {
109136
signatureValue = SignatureTool.sign(httpMethod, path, clientId, requestTime, reqBody, merchantPrivateKey);
110137
} catch (Exception e) {
111-
throw new AlipayApiException(e);
138+
throw new AlipayApiException("generate signature error", e);
112139
}
113140
return signatureValue;
114141
}
115142

116143
private boolean checkRspSign(String httpMethod, String path, String clientId, String responseTime, String rspBody, String rspSignValue) throws AlipayApiException {
117144
try {
118-
boolean isVerify = SignatureTool.verify(httpMethod, path, clientId, responseTime, rspBody, rspSignValue, alipayPublicKey);
119-
return isVerify;
145+
return SignatureTool.verify(httpMethod, path, clientId, responseTime, rspBody, rspSignValue, alipayPublicKey);
120146
} catch (Exception e) {
121-
throw new AlipayApiException(e);
147+
throw new AlipayApiException("verify signature error", e);
122148
}
123-
124149
}
125150

126-
private void checkRequestParam(AlipayRequest alipayRequest) throws AlipayApiException {
151+
private void checkRequestParams(AlipayRequest alipayRequest) throws AlipayApiException {
127152
if (alipayRequest == null) {
128153
throw new AlipayApiException("alipayRequest can't null");
129154
}
@@ -141,7 +166,7 @@ private void checkRequestParam(AlipayRequest alipayRequest) throws AlipayApiExce
141166
}
142167

143168
if (StringUtils.isBlank(httpMethod)) {
144-
throw new AlipayApiException("httpMehod can't null");
169+
throw new AlipayApiException("httpMethod can't null");
145170
}
146171

147172
if (StringUtils.isBlank(path)) {
@@ -166,6 +191,18 @@ private String genRequestUrl(String path) {
166191

167192
}
168193

194+
/**
195+
* If is sandbox mode, modify the path
196+
*
197+
* @param alipayRequest
198+
*/
199+
private void adjustSandboxUrl(AlipayRequest alipayRequest) {
200+
if (isSandboxMode) {
201+
String originPath = alipayRequest.getPath();
202+
alipayRequest.setPath(originPath.replaceFirst("/ams/api", "/ams/sandbox/api"));
203+
}
204+
}
205+
169206
/**
170207
* Generate required headers
171208
*

src/main/java/com/alipay/global/api/DefaultAlipayClient.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ public DefaultAlipayClient(String gatewayUrl, String merchantPrivateKey, String
1212
super(gatewayUrl, merchantPrivateKey, alipayPublicKey);
1313
}
1414

15+
public DefaultAlipayClient(String gatewayUrl, String merchantPrivateKey, String alipayPublicKey, String clientId) {
16+
super(gatewayUrl, merchantPrivateKey, alipayPublicKey, clientId);
17+
}
18+
1519
@Override
1620
public Map<String, String> buildCustomHeader() {
1721
return null;

src/main/java/com/alipay/global/api/example/excutable/CashierExecutableDemoCode.java

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,9 @@
33
import com.alipay.global.api.AlipayClient;
44
import com.alipay.global.api.DefaultAlipayClient;
55
import com.alipay.global.api.exception.AlipayApiException;
6-
import com.alipay.global.api.model.ams.Amount;
7-
import com.alipay.global.api.model.ams.Buyer;
8-
import com.alipay.global.api.model.ams.Env;
9-
import com.alipay.global.api.model.ams.Order;
10-
import com.alipay.global.api.model.ams.PaymentFactor;
11-
import com.alipay.global.api.model.ams.PaymentMethod;
12-
import com.alipay.global.api.model.ams.ProductCodeType;
13-
import com.alipay.global.api.model.ams.SettlementStrategy;
14-
import com.alipay.global.api.model.ams.TerminalType;
6+
import com.alipay.global.api.model.ams.*;
7+
import com.alipay.global.api.model.constants.AntomPathConstants;
158
import com.alipay.global.api.model.constants.EndPointConstants;
16-
import com.alipay.global.api.model.constants.PathConstants;
179
import com.alipay.global.api.request.ams.pay.AlipayPayQueryRequest;
1810
import com.alipay.global.api.request.ams.pay.AlipayPayRequest;
1911
import com.alipay.global.api.response.ams.pay.AlipayPayQueryResponse;
@@ -25,30 +17,27 @@
2517
public class CashierExecutableDemoCode {
2618

2719

28-
private static final String merchantPrivateKey = "";
20+
private static final String merchantPrivateKey = "";
2921

30-
private static final String alipayPublicKey = "";
22+
private static final String alipayPublicKey = "";
3123

32-
private static final String CLIENT_ID = "";
24+
private static final String CLIENT_ID = "";
3325

3426

35-
36-
37-
public static void main(String[] args){
27+
public static void main(String[] args) {
3828

3929
}
4030

4131

42-
43-
private static void cashierPay(){
32+
private static void cashierPay() {
4433

4534
// Select your gateway address according to the recommendations of the developer center.
4635
AlipayClient defaultAlipayClient = new DefaultAlipayClient(EndPointConstants.SG,
4736
merchantPrivateKey, alipayPublicKey);
4837

4938
AlipayPayRequest alipayPayRequest = new AlipayPayRequest();
5039
alipayPayRequest.setClientId(CLIENT_ID);
51-
alipayPayRequest.setPath(PathConstants.PAY_PROD_PATH);
40+
alipayPayRequest.setPath(AntomPathConstants.PAYMENT_PATH);
5241
alipayPayRequest.setProductCode(ProductCodeType.CASHIER_PAYMENT);
5342

5443
// replace to your paymentRequestId
@@ -116,8 +105,7 @@ private static void cashierPay(){
116105
}
117106

118107

119-
120-
private static void cashierInquiryPayment(){
108+
private static void cashierInquiryPayment() {
121109

122110
AlipayClient defaultAlipayClient = new DefaultAlipayClient(EndPointConstants.SG,
123111
merchantPrivateKey, alipayPublicKey);
@@ -136,8 +124,4 @@ private static void cashierInquiryPayment(){
136124
}
137125

138126

139-
140-
141-
142-
143127
}

src/main/java/com/alipay/global/api/example/excutable/EasyPayExecutableDemoCode.java

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,9 @@
33
import com.alipay.global.api.AlipayClient;
44
import com.alipay.global.api.DefaultAlipayClient;
55
import com.alipay.global.api.exception.AlipayApiException;
6-
import com.alipay.global.api.model.ams.Amount;
7-
import com.alipay.global.api.model.ams.Order;
8-
import com.alipay.global.api.model.ams.PaymentMethod;
9-
import com.alipay.global.api.model.ams.ProductCodeType;
10-
import com.alipay.global.api.model.ams.SettlementStrategy;
6+
import com.alipay.global.api.model.ams.*;
7+
import com.alipay.global.api.model.constants.AntomPathConstants;
118
import com.alipay.global.api.model.constants.EndPointConstants;
12-
import com.alipay.global.api.model.constants.PathConstants;
139
import com.alipay.global.api.model.constants.ProductSceneConstants;
1410
import com.alipay.global.api.request.ams.pay.AlipayPaymentSessionRequest;
1511
import com.alipay.global.api.response.ams.pay.AlipayPaymentSessionResponse;
@@ -19,25 +15,25 @@
1915
public class EasyPayExecutableDemoCode {
2016

2117

22-
private static final String merchantPrivateKey = "";
18+
private static final String merchantPrivateKey = "";
2319

24-
private static final String alipayPublicKey = "";
20+
private static final String alipayPublicKey = "";
2521

26-
private static final String CLIENT_ID = "";
22+
private static final String CLIENT_ID = "";
2723

28-
public static void main(String[] args){
24+
public static void main(String[] args) {
2925

3026

3127
}
3228

3329

34-
public static void easyPaySession(){
30+
public static void easyPaySession() {
3531

3632
AlipayClient defaultAlipayClient = new DefaultAlipayClient(EndPointConstants.SG,
3733
merchantPrivateKey, alipayPublicKey);
3834

3935
AlipayPaymentSessionRequest alipayPaymentSessionRequest = new AlipayPaymentSessionRequest();
40-
alipayPaymentSessionRequest.setPath(PathConstants.CREATE_SESSION_PROD_PATH);
36+
alipayPaymentSessionRequest.setPath(AntomPathConstants.CREATE_SESSION_PATH);
4137
alipayPaymentSessionRequest.setClientId(CLIENT_ID);
4238

4339
alipayPaymentSessionRequest.setProductScene(ProductSceneConstants.EASY_PAY);
@@ -73,7 +69,7 @@ public static void easyPaySession(){
7369
order.setOrderDescription("antom test order");
7470
order.setOrderAmount(amount);
7571

76-
AlipayPaymentSessionResponse alipayPaymentSessionResponse = null;
72+
AlipayPaymentSessionResponse alipayPaymentSessionResponse = null;
7773

7874
try {
7975
alipayPaymentSessionResponse = defaultAlipayClient.execute(alipayPaymentSessionRequest);

src/main/java/com/alipay/global/api/example/excutable/SubscriptionExecutableDemoCode.java

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,9 @@
44
import com.alipay.global.api.AlipayClient;
55
import com.alipay.global.api.DefaultAlipayClient;
66
import com.alipay.global.api.exception.AlipayApiException;
7-
import com.alipay.global.api.model.ams.Amount;
8-
import com.alipay.global.api.model.ams.Env;
9-
import com.alipay.global.api.model.ams.OrderInfo;
10-
import com.alipay.global.api.model.ams.OsType;
11-
import com.alipay.global.api.model.ams.PaymentMethod;
12-
import com.alipay.global.api.model.ams.PeriodRule;
13-
import com.alipay.global.api.model.ams.SettlementStrategy;
14-
import com.alipay.global.api.model.ams.TerminalType;
7+
import com.alipay.global.api.model.ams.*;
8+
import com.alipay.global.api.model.constants.AntomPathConstants;
159
import com.alipay.global.api.model.constants.EndPointConstants;
16-
import com.alipay.global.api.model.constants.PathConstants;
1710
import com.alipay.global.api.request.ams.subscription.AlipaySubscriptionCreateRequest;
1811
import com.alipay.global.api.response.ams.subscription.AlipaySubscriptionCreateResponse;
1912

@@ -22,25 +15,25 @@
2215
public class SubscriptionExecutableDemoCode {
2316

2417

25-
private static final String merchantPrivateKey = "";
18+
private static final String merchantPrivateKey = "";
2619

27-
private static final String alipayPublicKey = "";
20+
private static final String alipayPublicKey = "";
2821

29-
private static final String CLIENT_ID = "";
22+
private static final String CLIENT_ID = "";
3023

31-
public static void main(String[] args){
24+
public static void main(String[] args) {
3225

3326
createSubScription();
3427

3528
}
3629

37-
public static void createSubScription(){
30+
public static void createSubScription() {
3831

3932
AlipayClient defaultAlipayClient = new DefaultAlipayClient(EndPointConstants.SG,
4033
merchantPrivateKey, alipayPublicKey);
4134

4235
AlipaySubscriptionCreateRequest alipaySubscriptionCreateRequest = new AlipaySubscriptionCreateRequest();
43-
alipaySubscriptionCreateRequest.setPath(PathConstants.SUBSCRIPTION_CREATE_PROD_PATH);
36+
alipaySubscriptionCreateRequest.setPath(AntomPathConstants.SUBSCRIPTION_CREATE_PATH);
4437
alipaySubscriptionCreateRequest.setClientId(CLIENT_ID);
4538

4639
String subscriptionRequestId = UUID.randomUUID().toString();
@@ -55,7 +48,7 @@ public static void createSubScription(){
5548
periodRule.setPeriodCount(1);
5649
alipaySubscriptionCreateRequest.setPeriodRule(periodRule);
5750

58-
PaymentMethod paymentMethod =new PaymentMethod();
51+
PaymentMethod paymentMethod = new PaymentMethod();
5952
paymentMethod.setPaymentMethodType("GCASH");
6053
alipaySubscriptionCreateRequest.setPaymentMethod(paymentMethod);
6154

@@ -82,7 +75,7 @@ public static void createSubScription(){
8275
env.setOsType(OsType.ANDROID);
8376
alipaySubscriptionCreateRequest.setEnv(env);
8477

85-
AlipaySubscriptionCreateResponse alipaySubscriptionCreateResponse =null;
78+
AlipaySubscriptionCreateResponse alipaySubscriptionCreateResponse = null;
8679

8780
System.out.println(JSON.toJSON(alipaySubscriptionCreateRequest));
8881

@@ -99,6 +92,4 @@ public static void createSubScription(){
9992
}
10093

10194

102-
103-
10495
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Ant Group
3+
* Copyright (c) 2004-2024 All Rights Reserved.
4+
*/
5+
package com.alipay.global.api.model.constants;
6+
7+
/**
8+
* @author zhangtianren
9+
* @version AntomPathConstants.java, v 0.1 2024年06月13日 下午4:20 zhangtianren
10+
*/
11+
public class AntomPathConstants {
12+
13+
public static final String PAYMENT_PATH = "/ams/api/v1/payments/pay";
14+
public static final String REFUND_PATH = "/ams/api/v1/payments/refund";
15+
public static final String INQUIRY_PATH = "/ams/api/v1/payments/inquiryPayment";
16+
public static final String CAPTURE_PATH = "/ams/api/v1/payments/capture";
17+
public static final String CREATE_SESSION_PATH = "/ams/api/v1/payments/createPaymentSession";
18+
public static final String CANCEL_PATH = "/ams/api/v1/payments/cancel";
19+
public static final String CONSULT_PATH = "/ams/api/v1/payments/consult";
20+
public static final String AUTH_CONSULT_PATH = "/ams/api/v1/authorizations/consult";
21+
public static final String AUTH_APPLY_TOKEN_PATH = "/ams/api/v1/authorizations/applyToken";
22+
public static final String VAULTING_SESSION_PATH = "/ams/api/v1/vaults/createVaultingSession";
23+
public static final String VAULT_PAYMENTMETHOD_PATH = "/ams/api/v1/vaults/createVaultingSession";
24+
public static final String SUBSCRIPTION_CREATE_PATH = "/ams/api/v1/subscriptions/create";
25+
public static final String SUBSCRIPTION_CANCEL_PATH = "/ams/api/v1/subscriptions/cancel";
26+
public static final String SUBSCRIPTION_CHANGE_PATH = "/ams/api/v1/subscriptions/change";
27+
28+
}

src/main/java/com/alipay/global/api/model/constants/PathConstants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.alipay.global.api.model.constants;
22

3+
@Deprecated
34
public class PathConstants {
45

56
public static final String PAY_PROD_PATH = "/ams/api/v1/payments/pay";

0 commit comments

Comments
 (0)