Skip to content

Commit 6fd3f85

Browse files
braintreepsklaguerrePayKiruba Dhayalan
committed
3.45.0
Co-authored-by: Kevin Laguerre <klaguerre@paypal.com> Co-authored-by: Kiruba Dhayalan <kidhayalan@paypal.com>
1 parent 264e555 commit 6fd3f85

17 files changed

Lines changed: 588 additions & 209 deletions
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: Security
2+
3+
on:
4+
pull_request:
5+
branches: [ master ]
6+
workflow_dispatch:
7+
8+
jobs:
9+
dependency-review:
10+
uses: PayPal-Braintree/security-workflows/.github/workflows/dependency-review.yml@main

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## 3.45.0
4+
5+
* Add `achRejectReason` to `Transaction`
6+
* Add `rejectReason` to `AchReturnResponse`
7+
* Add `sender` and `receiver` to `transfer` in `Transaction`
8+
39
## 3.44.0
410
* Add `upcomingRetryDate` to `Transaction`
511
* Add `remainingFileEvidenceStorage` to Dispute

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<modelVersion>4.0.0</modelVersion>
33
<groupId>com.braintreepayments.gateway</groupId>
44
<artifactId>braintree-java</artifactId>
5-
<version>3.44.1-SNAPSHOT</version>
5+
<version>3.45.0-SNAPSHOT</version>
66
<description>Java Client Library for Braintree Payments Gateway</description>
77
<packaging>bundle</packaging>
88
<name>Braintree Gateway Java Client Library</name>
@@ -37,7 +37,7 @@
3737
<developerConnection>
3838
${scmConnection}
3939
</developerConnection>
40-
<tag>3.44.0</tag>
40+
<tag>3.45.0</tag>
4141
</scm>
4242

4343
<developers>

src/main/java/com/braintreegateway/AchReturnResponse.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@ public class AchReturnResponse {
66

77
private String createdAt;
88
private String reasonCode;
9+
private String rejectReason;
910

1011
public AchReturnResponse(NodeWrapper node) {
1112
createdAt = node.findString("created-at");
1213
reasonCode = node.findString("reason-code");
14+
rejectReason = node.findString("reject-reason");
1315
}
1416

1517
public String getCreatedAt() {
@@ -19,4 +21,8 @@ public String getCreatedAt() {
1921
public String getReasonCode() {
2022
return reasonCode;
2123
}
24+
25+
public String getRejectReason() {
26+
return rejectReason;
27+
}
2228
}

src/main/java/com/braintreegateway/Environment.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
public class Environment {
99
/** For Braintree internal development. */
1010
public static final Environment DEVELOPMENT = new Environment(developmentBaseURL() + ":" + developmentPort(), "http://auth.venmo.dev:9292", new String[]{}, "development", developmentGraphQLURL());
11-
public static final Environment QA = new Environment("https://gateway.qa.braintreepayments.com:443", "https://auth.qa.venmo.com", new String[]{"ssl/api_braintreegateway_com.ca.crt", "ssl/payments_braintreeapi_com.ca.crt"}, "qa", "https://payments-qa.dev.braintree-api.com/graphql");
11+
public static final Environment QA = new Environment("https://gateway.qa.braintreepayments.com:443", "https://auth.qa.venmo.com", new String[]{"ssl/api_braintreegateway_com.ca.crt"}, "qa", "https://payments-qa.dev.braintree-api.com/graphql");
1212

1313
/** For production. */
14-
public static final Environment PRODUCTION = new Environment("https://api.braintreegateway.com:443", "https://auth.venmo.com", new String[]{"ssl/api_braintreegateway_com.ca.crt", "ssl/payments_braintreeapi_com.ca.crt"}, "production", "https://payments.braintree-api.com/graphql");
14+
public static final Environment PRODUCTION = new Environment("https://api.braintreegateway.com:443", "https://auth.venmo.com", new String[]{"ssl/api_braintreegateway_com.ca.crt"}, "production", "https://payments.braintree-api.com/graphql");
1515

1616
/** For merchants to use during their development and testing. */
17-
public static final Environment SANDBOX = new Environment("https://api.sandbox.braintreegateway.com:443", "https://auth.sandbox.venmo.com", new String[]{"ssl/api_braintreegateway_com.ca.crt", "ssl/payments_braintreeapi_com.ca.crt"}, "sandbox", "https://payments.sandbox.braintree-api.com/graphql");
17+
public static final Environment SANDBOX = new Environment("https://api.sandbox.braintreegateway.com:443", "https://auth.sandbox.venmo.com", new String[]{"ssl/api_braintreegateway_com.ca.crt"}, "sandbox", "https://payments.sandbox.braintree-api.com/graphql");
1818

1919
private String environmentName;
2020

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package com.braintreegateway;
2+
3+
4+
public class PartyAddressRequest extends AddressRequest {
5+
6+
private PartyInternationalPhoneRequest internationalPhoneRequest;
7+
private PartyRequest parent;
8+
9+
public PartyAddressRequest(PartyRequest parent) {
10+
this.parent = parent;
11+
this.tagName = "address";
12+
}
13+
14+
@Override
15+
public PartyAddressRequest countryCodeAlpha2(String countryCodeAlpha2) {
16+
super.countryCodeAlpha2(countryCodeAlpha2);
17+
return this;
18+
}
19+
20+
@Override
21+
public PartyAddressRequest extendedAddress(String extendedAddress) {
22+
super.extendedAddress(extendedAddress);
23+
return this;
24+
}
25+
26+
@Override
27+
public PartyAddressRequest locality(String locality) {
28+
super.locality(locality);
29+
return this;
30+
}
31+
32+
@Override
33+
public PartyAddressRequest postalCode(String postalCode) {
34+
super.postalCode(postalCode);
35+
return this;
36+
}
37+
38+
@Override
39+
public PartyAddressRequest region(String region) {
40+
super.region(region);
41+
return this;
42+
}
43+
44+
@Override
45+
public PartyAddressRequest streetAddress(String streetAddress) {
46+
super.streetAddress(streetAddress);
47+
return this;
48+
}
49+
50+
@Override
51+
public PartyInternationalPhoneRequest internationalPhone() {
52+
internationalPhoneRequest = new PartyInternationalPhoneRequest(this);
53+
return this.internationalPhoneRequest;
54+
}
55+
56+
public PartyRequest done() {
57+
return parent;
58+
}
59+
60+
@Override
61+
protected RequestBuilder buildRequest(String root) {
62+
RequestBuilder requestBuilder = super.buildRequest(root);
63+
if (internationalPhoneRequest != null) {
64+
requestBuilder = requestBuilder.addElement("internationalPhone", internationalPhoneRequest);
65+
}
66+
return requestBuilder;
67+
}
68+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.braintreegateway;
2+
3+
public class PartyInternationalPhoneRequest extends AddressInternationalPhoneRequest {
4+
private String countryCode;
5+
private String nationalNumber;
6+
private PartyAddressRequest parent;
7+
8+
public PartyInternationalPhoneRequest() {}
9+
10+
11+
public PartyInternationalPhoneRequest(PartyAddressRequest parent) {
12+
super();
13+
this.parent = parent;
14+
}
15+
16+
public PartyAddressRequest done() {
17+
return parent;
18+
}
19+
20+
public PartyInternationalPhoneRequest countryCode(String countryCode) {
21+
this.countryCode = countryCode;
22+
return this;
23+
}
24+
25+
public PartyInternationalPhoneRequest nationalNumber(String nationalNumber) {
26+
this.nationalNumber = nationalNumber;
27+
return this;
28+
}
29+
30+
@Override
31+
public String toXML() {
32+
return buildRequest("internationalPhone").toXML();
33+
}
34+
35+
protected RequestBuilder buildRequest(String root) {
36+
return new RequestBuilder(root)
37+
.addElement("countryCode", countryCode)
38+
.addElement("nationalNumber", nationalNumber);
39+
}
40+
}
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
package com.braintreegateway;
2+
3+
public class PartyRequest extends Request {
4+
private String accountReferenceNumber;
5+
private PartyAddressRequest address;
6+
private String firstName;
7+
private String lastName;
8+
private String taxId;
9+
private TransferRequest parent;
10+
private String tagName = "party";
11+
12+
public PartyRequest(TransferRequest parent, String tagName) {
13+
this.parent = parent;
14+
this.tagName = tagName;
15+
}
16+
17+
public PartyRequest(TransferRequest parent) {
18+
this.parent = parent;
19+
}
20+
21+
public PartyRequest accountReferenceNumber(String accountReferenceNumber) {
22+
this.accountReferenceNumber = accountReferenceNumber;
23+
return this;
24+
}
25+
26+
public PartyAddressRequest address() {
27+
address = new PartyAddressRequest(this);
28+
return address;
29+
}
30+
31+
public PartyRequest firstName(String firstName) {
32+
this.firstName = firstName;
33+
return this;
34+
}
35+
36+
public PartyRequest lastName(String lastName) {
37+
this.lastName = lastName;
38+
return this;
39+
}
40+
41+
public PartyRequest taxId(String taxId) {
42+
this.taxId = taxId;
43+
return this;
44+
}
45+
46+
public TransferRequest done() {
47+
return parent;
48+
}
49+
50+
@Override
51+
public String toXML() {
52+
return buildRequest(tagName).toXML();
53+
}
54+
55+
@Override
56+
public String toQueryString() {
57+
return toQueryString(tagName);
58+
}
59+
60+
@Override
61+
public String toQueryString(String root) {
62+
return buildRequest(root).toQueryString();
63+
}
64+
65+
protected RequestBuilder buildRequest(String root) {
66+
RequestBuilder builder = new RequestBuilder(root);
67+
if (accountReferenceNumber != null) {
68+
builder.addElement("accountReferenceNumber", accountReferenceNumber);
69+
}
70+
if (address != null) {
71+
builder.addElement("address", address);
72+
}
73+
if (firstName != null) {
74+
builder.addElement("firstName", firstName);
75+
}
76+
if (lastName != null) {
77+
builder.addElement("lastName", lastName);
78+
}
79+
if (taxId != null) {
80+
builder.addElement("taxId", taxId);
81+
}
82+
return builder;
83+
}
84+
}

src/main/java/com/braintreegateway/Transaction.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ public String toString() {
139139
}
140140

141141
private boolean accountFundingTransaction;
142+
private String achRejectReason;
142143
private String achReturnCode;
143144
private List<AchReturnResponse> achReturnResponses;
144145
private String acquirerReferenceNumber;
@@ -351,6 +352,7 @@ public Transaction(NodeWrapper node) {
351352
packages.add(new PackageDetails(packageNode));
352353
}
353354

355+
achRejectReason = node.findString("ach-reject-reason");
354356
achReturnCode = node.findString("ach-return-code");
355357
sepaDirectDebitReturnCode = node.findString("sepa-direct-debit-return-code");
356358
planId = node.findString("plan-id");
@@ -709,6 +711,10 @@ public String getNetworkResponseCode() {
709711
return networkResponseCode;
710712
}
711713

714+
public String getAchRejectReason() {
715+
return achRejectReason;
716+
}
717+
712718
public String getAchReturnCode() {
713719
return achReturnCode;
714720
}

src/main/java/com/braintreegateway/TransferRequest.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
public class TransferRequest extends Request {
44

55
private TransactionRequest parent;
6+
private PartyRequest receiver;
7+
private PartyRequest sender;
68
private String type;
79

810
public TransferRequest() {
@@ -12,7 +14,17 @@ public TransferRequest(TransactionRequest parent) {
1214
this.parent = parent;
1315
}
1416

15-
public TransferRequest type(String type ) {
17+
public PartyRequest receiver() {
18+
receiver = new PartyRequest(this, "receiver");
19+
return receiver;
20+
}
21+
22+
public PartyRequest sender() {
23+
sender = new PartyRequest(this, "sender");
24+
return sender;
25+
}
26+
27+
public TransferRequest type(String type) {
1628
this.type = type;
1729
return this;
1830
}
@@ -37,7 +49,13 @@ public String toQueryString(String root) {
3749
}
3850

3951
protected RequestBuilder buildRequest(String root) {
40-
RequestBuilder builder = new RequestBuilder(root);
52+
RequestBuilder builder = new RequestBuilder(root);
53+
if (receiver != null) {
54+
builder.addElement("receiver", receiver);
55+
}
56+
if (sender != null) {
57+
builder.addElement("sender", sender);
58+
}
4159
if (type != null) {
4260
builder.addElement("type", type);
4361
}

0 commit comments

Comments
 (0)