Skip to content

Commit 8c6303e

Browse files
Merge pull request #305 from andreagostinho-meli/master
Feature: Order
2 parents 3bcf619 + ae15524 commit 8c6303e

File tree

79 files changed

+3156
-83
lines changed

Some content is hidden

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

79 files changed

+3156
-83
lines changed

.pre-commit-config.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
repos:
22
# Websec hook is MANDATORY, DO NOT comment it.
33
- repo: https://github.com/melisource/fury_websec-git-hooks
4-
rev: v1.1.0
4+
rev: v2.0.0
55
hooks:
66
- id: pre_commit_hook
77
stages: [commit]
@@ -10,8 +10,9 @@ repos:
1010

1111
# Datasec hook is MANDATORY, DO NOT comment it.
1212
- repo: https://github.com/melisource/fury_datasec-git-hooks
13-
rev: 1.0.3
13+
rev: 1.2.2
1414
hooks:
1515
- id: pre_commit_hook
1616
stages: [commit]
17-
verbose: true
17+
- id: post_commit_hook
18+
stages: [post-commit]

README.md

Lines changed: 49 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ already.
2020
<dependency>
2121
<groupId>com.mercadopago</groupId>
2222
<artifactId>sdk-java</artifactId>
23-
<version>2.1.29</version>
23+
<version>2.2.0</version>
2424
</dependency>
2525
```
2626

@@ -36,44 +36,62 @@ That's it! Mercado Pago SDK has been successfully installed.
3636
Simple usage looks like:
3737

3838
```java
39-
import com.mercadopago.*;
40-
41-
import com.mercadopago.client.payment.PaymentClient;
42-
import com.mercadopago.client.payment.PaymentCreateRequest;
43-
import com.mercadopago.client.payment.PaymentPayerRequest;
39+
import com.mercadopago.MercadoPagoConfig;
40+
import com.mercadopago.client.order.*;
41+
import com.mercadopago.core.MPRequestOptions;
4442
import com.mercadopago.exceptions.MPApiException;
4543
import com.mercadopago.exceptions.MPException;
46-
import com.mercadopago.resources.payment.Payment;
47-
import java.math.BigDecimal;
44+
import com.mercadopago.resources.order.Order;
45+
46+
import java.util.ArrayList;
47+
import java.util.HashMap;
48+
import java.util.List;
49+
import java.util.Map;
4850

4951
public class Example {
5052

5153
public static void main(String[] args) {
52-
MercadoPagoConfig.setAccessToken("YOUR_ACCESS_TOKEN");
54+
MercadoPagoConfig.setAccessToken("{{ACCESS_TOKEN}}");
5355

54-
PaymentClient client = new PaymentClient();
56+
OrderClient client = new OrderClient();
5557

56-
PaymentCreateRequest createRequest =
57-
PaymentCreateRequest.builder()
58-
.transactionAmount(new BigDecimal(1000))
59-
.token("your_cardtoken")
60-
.description("description")
58+
OrderPaymentRequest payment = OrderPaymentRequest.builder()
59+
.amount("10.00")
60+
.paymentMethod(OrderPaymentMethodRequest.builder()
61+
.id("master")
62+
.type("credit_card")
63+
.token("{{CARD_TOKEN}}")
6164
.installments(1)
62-
.paymentMethodId("visa")
63-
.payer(PaymentPayerRequest.builder().email("dummy_email").build())
64-
.build();
65-
65+
.build())
66+
.build();
67+
68+
List<OrderPaymentRequest> payments = new ArrayList<>();
69+
payments.add(payment);
70+
71+
OrderCreateRequest request = OrderCreateRequest.builder()
72+
.type("online")
73+
.totalAmount("10.00")
74+
.externalReference("ext_ref")
75+
.payer(OrderPayerRequest.builder().email("{{EMAIL}}").build())
76+
.transactions(OrderTransactionRequest.builder()
77+
.payments(payments)
78+
.build())
79+
.build();
80+
81+
Map<String, String> headers = new HashMap<>();
82+
headers.put("X-Idempotency-Key", "{{IDEMPOTENCY_KEY}}");
83+
84+
MPRequestOptions requestOptions = MPRequestOptions.builder()
85+
.customHeaders(headers)
86+
.build();
6687
try {
67-
Payment payment = client.create(createRequest);
68-
System.out.println(payment);
69-
} catch (MPApiException ex) {
70-
System.out.printf(
71-
"MercadoPago Error. Status: %s, Content: %s%n",
72-
ex.getApiResponse().getStatusCode(), ex.getApiResponse().getContent());
73-
} catch (MPException ex) {
74-
ex.printStackTrace();
88+
Order order = client.create(request, requestOptions);
89+
System.out.println("Order created: " + order.getId());
90+
} catch (MPApiException | MPException e) {
91+
System.out.println("Error creating order: " + e.getMessage());
7592
}
7693
}
94+
7795
}
7896
```
7997

@@ -86,7 +104,7 @@ custom timeouts or even any custom headers you want, like an idempotency key for
86104
public class Example {
87105

88106
public static void main(String[] args) {
89-
PaymentClient client = new PaymentClient();
107+
OrderClient client = new OrderClient();
90108

91109
Map<String, String> customHeaders = new HashMap<>();
92110
customHeaders.put("x-idempotency-key", "...");
@@ -100,9 +118,10 @@ public class Example {
100118
.customHeaders(customHeaders)
101119
.build();
102120

121+
OrderCreateRequest createRequest = OrderCreateRequest.builder().build();
103122
try {
104-
Payment payment = client.create(createRequest, requestOptions);
105-
System.out.println(payment);
123+
Order order = client.create(createRequest, requestOptions);
124+
System.out.println(order);
106125
} catch (MPException | MPApiException ex) {
107126
ex.printStackTrace();
108127
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.mercadopago</groupId>
66
<artifactId>sdk-java</artifactId>
7-
<version>2.1.29</version>
7+
<version>2.2.0</version>
88
<packaging>jar</packaging>
99

1010
<name>Mercadopago SDK</name>

src/main/java/com/mercadopago/MercadoPagoConfig.java

Lines changed: 43 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,13 @@
1515
/** Mercado Pago configuration class. */
1616
public class MercadoPagoConfig {
1717

18-
public static final String CURRENT_VERSION = "2.1.29";
18+
public static final String CURRENT_VERSION = "2.2.0";
1919

2020
public static final String PRODUCT_ID = "BC32A7VTRPP001U8NHJ0";
2121

22-
public static final String TRACKING_ID =
23-
String.format(
24-
"platform:%s,type:SDK%s,so;",
25-
MercadoPagoConfig.getJavaVersion(), MercadoPagoConfig.CURRENT_VERSION);
22+
public static final String TRACKING_ID = String.format(
23+
"platform:%s,type:SDK%s,so;",
24+
MercadoPagoConfig.getJavaVersion(), MercadoPagoConfig.CURRENT_VERSION);
2625

2726
public static final String BASE_URL = "https://api.mercadopago.com";
2827

@@ -38,36 +37,60 @@ public class MercadoPagoConfig {
3837

3938
private static final Level DEFAULT_LOGGING_LEVEL = Level.OFF;
4039

41-
@Getter @Setter private static volatile String accessToken;
40+
@Getter
41+
@Setter
42+
private static volatile String accessToken;
4243

43-
@Getter @Setter private static volatile String platformId;
44+
@Getter
45+
@Setter
46+
private static volatile String platformId;
4447

45-
@Getter @Setter private static volatile String corporationId;
48+
@Getter
49+
@Setter
50+
private static volatile String corporationId;
4651

47-
@Getter @Setter private static volatile String integratorId;
52+
@Getter
53+
@Setter
54+
private static volatile String integratorId;
4855

49-
@Getter @Setter private static volatile StreamHandler loggingHandler;
56+
@Getter
57+
@Setter
58+
private static volatile StreamHandler loggingHandler;
5059

51-
@Getter @Setter private static volatile String metricsScope = DEFAULT_METRICS_SCOPE;
60+
@Getter
61+
@Setter
62+
private static volatile String metricsScope = DEFAULT_METRICS_SCOPE;
5263

53-
@Getter @Setter private static volatile Level loggingLevel = DEFAULT_LOGGING_LEVEL;
64+
@Getter
65+
@Setter
66+
private static volatile Level loggingLevel = DEFAULT_LOGGING_LEVEL;
5467

55-
@Getter @Setter private static volatile int maxConnections = DEFAULT_MAX_CONNECTIONS;
68+
@Getter
69+
@Setter
70+
private static volatile int maxConnections = DEFAULT_MAX_CONNECTIONS;
5671

57-
@Getter @Setter private static volatile int connectionTimeout = DEFAULT_CONNECTION_TIMEOUT_MS;
72+
@Getter
73+
@Setter
74+
private static volatile int connectionTimeout = DEFAULT_CONNECTION_TIMEOUT_MS;
5875

59-
@Getter @Setter
76+
@Getter
77+
@Setter
6078
private static volatile int connectionRequestTimeout = DEFAULT_CONNECTION_REQUEST_TIMEOUT_MS;
6179

62-
@Getter @Setter private static volatile int socketTimeout = DEFAULT_SOCKET_TIMEOUT_MS;
80+
@Getter
81+
@Setter
82+
private static volatile int socketTimeout = DEFAULT_SOCKET_TIMEOUT_MS;
6383

64-
@Setter private static volatile MPHttpClient httpClient;
84+
@Setter
85+
private static volatile MPHttpClient httpClient;
6586

66-
@Getter(onMethod_ = {@Synchronized})
67-
@Setter(onMethod_ = {@Synchronized})
87+
@Getter(onMethod_ = { @Synchronized })
88+
@Setter(onMethod_ = { @Synchronized })
6889
private static HttpHost proxy;
6990

70-
@Getter @Setter private static HttpRequestRetryHandler retryHandler;
91+
@Getter
92+
@Setter
93+
private static HttpRequestRetryHandler retryHandler;
7194

7295
/**
7396
* Verifies which http client use.

src/main/java/com/mercadopago/client/common/AddressRequest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,19 @@ public class AddressRequest {
1515

1616
/** Street number. */
1717
private final String streetNumber;
18+
19+
/** Neighborhood. */
20+
private final String neighborhood;
21+
22+
/** City. */
23+
private final String city;
24+
25+
/** State. */
26+
private final String state;
27+
28+
/** Complement. */
29+
private final String complement;
30+
31+
/** Floor. */
32+
private final String floor;
1833
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.mercadopago.client.common;
2+
3+
4+
import lombok.Builder;
5+
import lombok.Getter;
6+
7+
/** InvoicePeriod class. */
8+
@Getter
9+
@Builder
10+
public class InvoicePeriod {
11+
12+
/** Invoice type. */
13+
private String type;
14+
15+
/** Invoice period. */
16+
private Integer period;
17+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.mercadopago.client.common;
2+
3+
import lombok.Builder;
4+
import lombok.Getter;
5+
6+
/** SubscriptionSequence class. */
7+
@Getter
8+
@Builder
9+
public class SubscriptionSequence {
10+
11+
/** Subscription sequence number. */
12+
private Integer number;
13+
14+
/** Subscription sequence total */
15+
private Integer total;
16+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.mercadopago.client.order;
2+
3+
import lombok.Builder;
4+
import lombok.Getter;
5+
6+
// API version: 1ff4822a-2dfd-4393-800e-a562edb3fe32
7+
8+
/** OrderAutomaticPaymentsRequest class. */
9+
@Getter
10+
@Builder
11+
public class OrderAutomaticPaymentsRequest {
12+
13+
/** Payment profile ID. */
14+
private String paymentProfileId;
15+
16+
/** Retries. */
17+
private Integer retries;
18+
19+
/** Schedule date. */
20+
private String scheduleDate;
21+
22+
/** Due date. */
23+
private String dueDate;
24+
}

0 commit comments

Comments
 (0)