Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,7 @@ public class OrderConfigRequest {

/** Online config. */
private OrderOnlineConfig online;

/** Point config. */
private OrderPointConfig point;
}
20 changes: 20 additions & 0 deletions src/main/java/com/mercadopago/client/order/OrderPointConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.mercadopago.client.order;

import lombok.Builder;
import lombok.Getter;

// API version: 1ff4822a-2dfd-4393-800e-a562edb3fe32
/** OrderPointConfig class. */
@Getter
@Builder
public class OrderPointConfig {

/** Terminal ID for Point integration.*/
private String terminalId;

/** Print on terminal option. */
private String printOnTerminal;

/** Screen time in ISO 8601 duration format*/
private String screenTime;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package com.mercadopago.example.apis.order;

import com.mercadopago.MercadoPagoConfig;
import com.mercadopago.client.order.*;
import com.mercadopago.core.MPRequestOptions;
import com.mercadopago.exceptions.MPApiException;
import com.mercadopago.exceptions.MPException;
import com.mercadopago.resources.order.Order;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/** Example: Create Order with Point Configuration */
public class CreateOrderWithPointConfig {

public static void main(String[] args) {
MercadoPagoConfig.setAccessToken("{{ACCESS_TOKEN}}");

OrderClient client = new OrderClient();

System.out.println("Creating OrderCreateRequest with Point configuration...");

// Configure Point settings
OrderPointConfig pointConfig = OrderPointConfig.builder()
.terminalId("")
.printOnTerminal("seller_ticket")
.screenTime("")
.build();

// Configure Order config with Point
OrderConfigRequest config = OrderConfigRequest.builder()
.point(pointConfig)
.build();

// Create payment request
OrderPaymentRequest payment = OrderPaymentRequest.builder()
.amount("100.00")
.paymentMethod(OrderPaymentMethodRequest.builder()
.id("debit_card")
.type("debit_card")
.installments(1)
.build())
.build();

List<OrderPaymentRequest> payments = new ArrayList<>();
payments.add(payment);

// Create order request
OrderCreateRequest request = OrderCreateRequest.builder()
.type("point")
.processingMode("automatic")
.totalAmount("100.00")
.externalReference("ext_ref_point_1234")
.description("Example Point - Payment")
.config(config)
.payer(OrderPayerRequest.builder().email("{{PAYER_EMAIL}}").build())
.transactions(OrderTransactionRequest.builder()
.payments(payments)
.build())
.build();

System.out.println("Point Terminal ID: " + pointConfig.getTerminalId());
System.out.println("Print on Terminal: " + pointConfig.getPrintOnTerminal());
System.out.println("Screen Time: " + pointConfig.getScreenTime());

Map<String, String> headers = new HashMap<>();
headers.put("X-Idempotency-Key", "{{IDEMPOTENCY_KEY}}");

MPRequestOptions requestOptions = MPRequestOptions.builder()
.customHeaders(headers)
.build();

try {
System.out.println("Attempting to create Point order...");
Order order = client.create(request, requestOptions);
System.out.println("Point Order created: " + order.getId());
System.out.println("Order type: " + order.getType());
System.out.println("Order status: " + order.getStatus());

if (order.getConfig() != null && order.getConfig().getPoint() != null) {
System.out.println("Terminal ID configured: " + order.getConfig().getPoint().getTerminalId());
}
} catch (MPApiException mpApiException) {
System.out.println("Error creating Point order: " + mpApiException.getMessage());
System.out.println("Status Code: " + mpApiException.getStatusCode());
System.out.println("Error Details: " + mpApiException.getApiResponse());
} catch (Exception e) {
e.printStackTrace();
System.out.println("Error creating Point order: " + e.getMessage());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,8 @@ public class OrderConfig {

/** Online config. */
private OrderOnlineConfig online;

/** Point config. */
private OrderPointConfig point;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.mercadopago.resources.order;

import lombok.Getter;

// API version: 1ff4822a-2dfd-4393-800e-a562edb3fe32
/** OrderPointConfig class. */
@Getter
public class OrderPointConfig {

/** Terminal ID for Point integration. */
private String terminalId;

/** Print on terminal option.*/
private String printOnTerminal;

/** Screen time in ISO 8601 duration format. */
private String screenTime;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.mercadopago.client.order;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

/** OrderPointConfigTest class. */
class OrderPointConfigTest {

@Test
void testOrderPointConfigBuilder() {
OrderPointConfig pointConfig = OrderPointConfig.builder()
.terminalId("")
.printOnTerminal("seller_ticket")
.screenTime("")
.build();

assertNotNull(pointConfig);
assertEquals("", pointConfig.getTerminalId());
assertEquals("seller_ticket", pointConfig.getPrintOnTerminal());
assertEquals("", pointConfig.getScreenTime());
}

@Test
void testOrderPointConfigMinimalBuilder() {
OrderPointConfig pointConfig = OrderPointConfig.builder()
.terminalId("")
.build();

assertNotNull(pointConfig);
assertEquals("", pointConfig.getTerminalId());
assertNull(pointConfig.getPrintOnTerminal());
assertNull(pointConfig.getScreenTime());
}
}