www in docker support

This commit is contained in:
MaddoScientisto 2026-04-22 18:41:37 +02:00
commit c227fce036
2145 changed files with 399596 additions and 58 deletions

View file

@ -0,0 +1,48 @@
package com.paypal.AuthorizeIntentExamples;
import com.paypal.PayPalClient;
import com.paypal.http.HttpRequest;
import com.paypal.http.HttpResponse;
import com.paypal.http.serializer.Json;
import com.paypal.orders.Authorization;
import com.paypal.orders.LinkDescription;
import com.paypal.orders.Order;
import com.paypal.orders.OrderRequest;
import com.paypal.orders.OrdersAuthorizeRequest;
import com.paypal.orders.PurchaseUnit;
import java.io.IOException;
import java.util.Objects;
import org.json.JSONObject;
public class AuthorizeOrder extends PayPalClient {
private OrderRequest buildRequestBody() {
return new OrderRequest();
}
public HttpResponse<Order> authorizeOrder(String orderId, boolean debug) throws IOException {
OrdersAuthorizeRequest request = new OrdersAuthorizeRequest(orderId);
request.requestBody(buildRequestBody());
HttpResponse<Order> response = client().execute((HttpRequest)request);
if (debug) {
System.out.println("Authorization Ids:");
((Order)response.result()).purchaseUnits().forEach(purchaseUnit -> {
Objects.requireNonNull(System.out);
purchaseUnit.payments().authorizations().stream().map(authorization -> authorization.id()).forEach(System.out::println);
});
System.out.println("Link Descriptions: ");
for (LinkDescription link : (Iterable<LinkDescription>)((Order)response.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href());
System.out.println("Full response body:");
System.out.println(new JSONObject(new Json().serialize(response.result())).toString(4));
}
return response;
}
public static void main(String[] args) {
try {
new AuthorizeOrder().authorizeOrder("<<REPLACE-WITH-APPROVED-ORDER-ID>>", true);
} catch (Exception e) {
e.printStackTrace();
}
}
}

View file

@ -0,0 +1,43 @@
package com.paypal.AuthorizeIntentExamples;
import com.paypal.PayPalClient;
import com.paypal.http.HttpRequest;
import com.paypal.http.HttpResponse;
import com.paypal.http.serializer.Json;
import com.paypal.orders.OrderRequest;
import com.paypal.payments.AuthorizationsCaptureRequest;
import com.paypal.payments.Capture;
import com.paypal.payments.LinkDescription;
import java.io.IOException;
import org.json.JSONObject;
public class CaptureOrder extends PayPalClient {
public OrderRequest buildRequestBody() {
return new OrderRequest();
}
public HttpResponse<Capture> captureOrder(String authId, boolean debug) throws IOException {
AuthorizationsCaptureRequest request = new AuthorizationsCaptureRequest(authId);
request.requestBody(buildRequestBody());
HttpResponse<Capture> response = client().execute((HttpRequest)request);
if (debug) {
System.out.println("Status Code: " + response.statusCode());
System.out.println("Status: " + ((Capture)response.result()).status());
System.out.println("Capture ID: " + ((Capture)response.result()).id());
System.out.println("Links: ");
for (LinkDescription link : (Iterable<LinkDescription>)((Capture)response.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href() + "\tCall Type: " + link.method());
System.out.println("Full response body:");
System.out.println(new JSONObject(new Json().serialize(response.result())).toString(4));
}
return response;
}
public static void main(String[] args) {
try {
new CaptureOrder().captureOrder("<<REPLACE-WITH-VALID-AUTHORIZATION-ID>>", true);
} catch (Exception e) {
e.printStackTrace();
}
}
}

View file

@ -0,0 +1,132 @@
package com.paypal.AuthorizeIntentExamples;
import com.paypal.PayPalClient;
import com.paypal.http.HttpRequest;
import com.paypal.http.HttpResponse;
import com.paypal.http.exceptions.HttpException;
import com.paypal.http.serializer.Json;
import com.paypal.orders.AddressPortable;
import com.paypal.orders.AmountBreakdown;
import com.paypal.orders.AmountWithBreakdown;
import com.paypal.orders.ApplicationContext;
import com.paypal.orders.Item;
import com.paypal.orders.LinkDescription;
import com.paypal.orders.Money;
import com.paypal.orders.Name;
import com.paypal.orders.Order;
import com.paypal.orders.OrderRequest;
import com.paypal.orders.OrdersCreateRequest;
import com.paypal.orders.PurchaseUnitRequest;
import com.paypal.orders.ShippingDetail;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONObject;
public class CreateOrder extends PayPalClient {
private OrderRequest buildCompleteRequestBody() {
OrderRequest orderRequest = new OrderRequest();
orderRequest.checkoutPaymentIntent("AUTHORIZE");
ApplicationContext applicationContext = new ApplicationContext().brandName("EXAMPLE INC").landingPage("BILLING")
.cancelUrl("https://www.example.com").returnUrl("https://www.example.com").userAction("CONTINUE")
.shippingPreference("SET_PROVIDED_ADDRESS");
orderRequest.applicationContext(applicationContext);
List<PurchaseUnitRequest> purchaseUnitRequests = new ArrayList<>();
PurchaseUnitRequest purchaseUnitRequest = new PurchaseUnitRequest().referenceId("PUHF")
.description("Sporting Goods").customId("CUST-HighFashions").softDescriptor("HighFashions")
.amountWithBreakdown(new AmountWithBreakdown().currencyCode("USD").value("220.00")
.amountBreakdown(new AmountBreakdown().itemTotal(new Money().currencyCode("USD").value("180.00"))
.shipping(new Money().currencyCode("USD").value("20.00"))
.handling(new Money().currencyCode("USD").value("10.00"))
.taxTotal(new Money().currencyCode("USD").value("20.00"))
.shippingDiscount(new Money().currencyCode("USD").value("10.00"))))
.items(new ArrayList<>() {
{
add(new Item().name("T-shirt").description("Green XL").sku("sku01")
.unitAmount(new Money().currencyCode("USD").value("90.00"))
.tax(new Money().currencyCode("USD").value("10.00")).quantity("1")
.category("PHYSICAL_GOODS"));
add(new Item().name("Shoes").description("Running, Size 10.5").sku("sku02")
.unitAmount(new Money().currencyCode("USD").value("45.00"))
.tax(new Money().currencyCode("USD").value("5.00")).quantity("2")
.category("PHYSICAL_GOODS"));
}
}).shippingDetail(new ShippingDetail().name(new Name().fullName("John Doe"))
.addressPortable(new AddressPortable().addressLine1("123 Townsend St").addressLine2("Floor 6")
.adminArea2("San Francisco").adminArea1("CA").postalCode("94107").countryCode("US")));
purchaseUnitRequests.add(purchaseUnitRequest);
orderRequest.purchaseUnits(purchaseUnitRequests);
return orderRequest;
}
private OrderRequest buildMinimumRequestBody() {
OrderRequest orderRequest = new OrderRequest();
orderRequest.checkoutPaymentIntent("AUTHORIZE");
ApplicationContext applicationContext = new ApplicationContext()
.cancelUrl("https://www.example.com").returnUrl("https://www.example.com");
orderRequest.applicationContext(applicationContext);
List<PurchaseUnitRequest> purchaseUnitRequests = new ArrayList<>();
PurchaseUnitRequest purchaseUnitRequest = new PurchaseUnitRequest()
.amountWithBreakdown(new AmountWithBreakdown().currencyCode("USD").value("220.00"));
purchaseUnitRequests.add(purchaseUnitRequest);
orderRequest.purchaseUnits(purchaseUnitRequests);
return orderRequest;
}
public HttpResponse<Order> createOrder(boolean debug) throws IOException {
OrdersCreateRequest request = new OrdersCreateRequest();
request.header("prefer", "return=representation");
request.requestBody(buildCompleteRequestBody());
HttpResponse<Order> response = client().execute((HttpRequest)request);
if (debug &&
response.statusCode() == 201) {
System.out.println("Order with Complete Payload: ");
System.out.println("Status Code: " + response.statusCode());
System.out.println("Status: " + ((Order)response.result()).status());
System.out.println("Order ID: " + ((Order)response.result()).id());
System.out.println("Intent: " + ((Order)response.result()).checkoutPaymentIntent());
System.out.println("Links: ");
for (LinkDescription link : (Iterable<LinkDescription>)((Order)response.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href() + "\tCall Type: " + link.method());
System.out.println("Total Amount: " + ((Order)response.result()).purchaseUnits().get(0).amountWithBreakdown().currencyCode() + " " + ((Order)
response.result()).purchaseUnits().get(0).amountWithBreakdown().value());
System.out.println("Full response body:");
System.out.println(new JSONObject(new Json().serialize(response.result())).toString(4));
}
return response;
}
public HttpResponse<Order> createOrderWithMinimumPayload(boolean debug) throws IOException {
OrdersCreateRequest request = new OrdersCreateRequest();
request.header("prefer", "return=representation");
request.requestBody(buildMinimumRequestBody());
HttpResponse<Order> response = client().execute((HttpRequest)request);
if (debug &&
response.statusCode() == 201) {
System.out.println("Order with Minimum Payload: ");
System.out.println("Status Code: " + response.statusCode());
System.out.println("Status: " + ((Order)response.result()).status());
System.out.println("Order ID: " + ((Order)response.result()).id());
System.out.println("Intent: " + ((Order)response.result()).checkoutPaymentIntent());
System.out.println("Links: ");
for (LinkDescription link : (Iterable<LinkDescription>)((Order)response.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href() + "\tCall Type: " + link.method());
System.out.println("Total Amount: " + ((Order)response.result()).purchaseUnits().get(0).amountWithBreakdown().currencyCode() + " " + ((Order)
response.result()).purchaseUnits().get(0).amountWithBreakdown().value());
System.out.println("Full response body:");
System.out.println(new JSONObject(new Json().serialize(response.result())).toString(4));
}
return response;
}
public static void main(String[] args) {
try {
new CreateOrder().createOrder(true);
new CreateOrder().createOrderWithMinimumPayload(true);
} catch (HttpException e) {
System.out.println(e.getLocalizedMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
}

View file

@ -0,0 +1,50 @@
package com.paypal.AuthorizeIntentExamples;
import com.paypal.PayPalClient;
import com.paypal.http.HttpRequest;
import com.paypal.http.HttpResponse;
import com.paypal.http.serializer.Json;
import com.paypal.payments.CapturesRefundRequest;
import com.paypal.payments.LinkDescription;
import com.paypal.payments.Money;
import com.paypal.payments.Refund;
import com.paypal.payments.RefundRequest;
import java.io.IOException;
import org.json.JSONObject;
public class RefundOrder extends PayPalClient {
public RefundRequest buildRequestBody() {
RefundRequest refundRequest = new RefundRequest();
Money money = new Money();
money.currencyCode("USD");
money.value("20.00");
refundRequest.amount(money);
return refundRequest;
}
public HttpResponse<Refund> refundOrder(String captureId, boolean debug) throws IOException {
CapturesRefundRequest request = new CapturesRefundRequest(captureId);
request.prefer("return=representation");
request.requestBody(buildRequestBody());
HttpResponse<Refund> response = client().execute((HttpRequest)request);
if (debug) {
System.out.println("Status Code: " + response.statusCode());
System.out.println("Status: " + ((Refund)response.result()).status());
System.out.println("Refund Id: " + ((Refund)response.result()).id());
System.out.println("Links: ");
for (LinkDescription link : (Iterable<LinkDescription>)((Refund)response.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href() + "\tCall Type: " + link.method());
System.out.println("Full response body:");
System.out.println(new JSONObject(new Json().serialize(response.result())).toString(4));
}
return response;
}
public static void main(String[] args) {
try {
new RefundOrder().refundOrder("<<REPLACE-WITH-VALID-CAPTURE-ID>>", true);
} catch (Exception e) {
e.printStackTrace();
}
}
}

View file

@ -0,0 +1,59 @@
package com.paypal.AuthorizeIntentExamples;
import com.paypal.http.HttpResponse;
import com.paypal.orders.LinkDescription;
import com.paypal.orders.Order;
import com.paypal.payments.Capture;
import com.paypal.payments.Refund;
public class RunAll {
public static void main(String[] args) {
try {
HttpResponse<Order> orderResponse = new CreateOrder().createOrder(false);
String orderId = "";
System.out.println("Creating Order...");
if (orderResponse.statusCode() == 201) {
orderId = ((Order)orderResponse.result()).id();
System.out.println("Order ID: " + orderId);
System.out.println("Links:");
for (LinkDescription link : (Iterable<LinkDescription>)((Order)orderResponse.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href());
}
System.out.println("Created Successfully\n");
System.out.println("Copy approve link and paste it in browser. Login with buyer account and follow the instructions.\nOnce approved hit enter...");
System.in.read();
System.out.println("Authorizing Order...");
orderResponse = new AuthorizeOrder().authorizeOrder(orderId, false);
String authId = "";
if (orderResponse.statusCode() == 201) {
System.out.println("Authorized Successfully\n");
authId = ((Order)orderResponse.result()).purchaseUnits().get(0).payments().authorizations().get(0).id();
}
System.out.println("Capturing Order...");
HttpResponse<Capture> captureOrderResponse = new CaptureOrder().captureOrder(authId, false);
if (orderResponse.statusCode() == 201) {
System.out.println("Captured Successfully");
System.out.println("Status Code: " + captureOrderResponse.statusCode());
System.out.println("Status: " + ((Capture)captureOrderResponse.result()).status());
System.out.println("Capture ID: " + ((Capture)captureOrderResponse.result()).id());
System.out.println("Links: ");
for (com.paypal.payments.LinkDescription link : (Iterable<com.paypal.payments.LinkDescription>)((Capture)captureOrderResponse.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href() + "\tCall Type: " + link.method());
}
System.out.println();
System.out.println("Refunding Order...");
HttpResponse<Refund> refundHttpResponse = new RefundOrder().refundOrder(((Capture)captureOrderResponse.result()).id(), false);
if (refundHttpResponse.statusCode() == 201) {
System.out.println("Refunded Successfully");
System.out.println("Status Code: " + refundHttpResponse.statusCode());
System.out.println("Status: " + ((Refund)refundHttpResponse.result()).status());
System.out.println("Order ID: " + ((Refund)refundHttpResponse.result()).id());
System.out.println("Links: ");
for (com.paypal.payments.LinkDescription link : (Iterable<com.paypal.payments.LinkDescription>)((Refund)refundHttpResponse.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href() + "\tCall Type: " + link.method());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

View file

@ -0,0 +1,55 @@
package com.paypal.CaptureIntentExamples;
import com.paypal.PayPalClient;
import com.paypal.http.HttpRequest;
import com.paypal.http.HttpResponse;
import com.paypal.http.serializer.Json;
import com.paypal.orders.Capture;
import com.paypal.orders.LinkDescription;
import com.paypal.orders.Order;
import com.paypal.orders.OrderRequest;
import com.paypal.orders.OrdersCaptureRequest;
import com.paypal.orders.Payer;
import com.paypal.orders.PurchaseUnit;
import java.io.IOException;
import org.json.JSONObject;
public class CaptureOrder extends PayPalClient {
public OrderRequest buildRequestBody() {
return new OrderRequest();
}
public HttpResponse<Order> captureOrder(String orderId, boolean debug) throws IOException {
OrdersCaptureRequest request = new OrdersCaptureRequest(orderId);
request.requestBody(buildRequestBody());
HttpResponse<Order> response = client().execute((HttpRequest)request);
if (debug) {
System.out.println("Status Code: " + response.statusCode());
System.out.println("Status: " + ((Order)response.result()).status());
System.out.println("Order ID: " + ((Order)response.result()).id());
System.out.println("Links: ");
for (LinkDescription link : (Iterable<LinkDescription>)((Order)response.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href());
System.out.println("Capture ids:");
for (PurchaseUnit purchaseUnit : (Iterable<PurchaseUnit>)((Order)response.result()).purchaseUnits()) {
for (Capture capture : (Iterable<Capture>)purchaseUnit.payments().captures())
System.out.println("\t" + capture.id());
}
System.out.println("Buyer: ");
Payer buyer = ((Order)response.result()).payer();
System.out.println("\tEmail Address: " + buyer.email());
System.out.println("\tName: " + buyer.name().givenName() + " " + buyer.name().surname());
System.out.println("Full response body:");
System.out.println(new JSONObject(new Json().serialize(response.result())).toString(4));
}
return response;
}
public static void main(String[] args) {
try {
new CaptureOrder().captureOrder("<<REPLACE-WITH-APPROVED-ORDER-ID>>", true);
} catch (Exception e) {
e.printStackTrace();
}
}
}

View file

@ -0,0 +1,93 @@
package com.paypal.CaptureIntentExamples;
import com.paypal.PayPalClient;
import com.paypal.http.HttpRequest;
import com.paypal.http.HttpResponse;
import com.paypal.http.exceptions.HttpException;
import com.paypal.http.serializer.Json;
import com.paypal.orders.AddressPortable;
import com.paypal.orders.AmountBreakdown;
import com.paypal.orders.AmountWithBreakdown;
import com.paypal.orders.ApplicationContext;
import com.paypal.orders.Item;
import com.paypal.orders.LinkDescription;
import com.paypal.orders.Money;
import com.paypal.orders.Name;
import com.paypal.orders.Order;
import com.paypal.orders.OrderRequest;
import com.paypal.orders.OrdersCreateRequest;
import com.paypal.orders.PurchaseUnitRequest;
import com.paypal.orders.ShippingDetail;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONObject;
public class CreateOrder extends PayPalClient {
private OrderRequest buildRequestBody() {
OrderRequest orderRequest = new OrderRequest();
orderRequest.checkoutPaymentIntent("CAPTURE");
ApplicationContext applicationContext = new ApplicationContext().brandName("EXAMPLE INC").landingPage("BILLING")
.cancelUrl("https://www.example.com").returnUrl("https://www.example.com").userAction("CONTINUE")
.shippingPreference("SET_PROVIDED_ADDRESS");
orderRequest.applicationContext(applicationContext);
List<PurchaseUnitRequest> purchaseUnitRequests = new ArrayList<>();
PurchaseUnitRequest purchaseUnitRequest = new PurchaseUnitRequest().referenceId("PUHF")
.description("Sporting Goods").customId("CUST-HighFashions").softDescriptor("HighFashions")
.amountWithBreakdown(new AmountWithBreakdown().currencyCode("USD").value("220.00")
.amountBreakdown(new AmountBreakdown().itemTotal(new Money().currencyCode("USD").value("180.00"))
.shipping(new Money().currencyCode("USD").value("20.00"))
.handling(new Money().currencyCode("USD").value("10.00"))
.taxTotal(new Money().currencyCode("USD").value("20.00"))
.shippingDiscount(new Money().currencyCode("USD").value("10.00"))))
.items(new ArrayList<>() {
{
add(new Item().name("T-shirt").description("Green XL").sku("sku01")
.unitAmount(new Money().currencyCode("USD").value("90.00"))
.tax(new Money().currencyCode("USD").value("10.00")).quantity("1")
.category("PHYSICAL_GOODS"));
add(new Item().name("Shoes").description("Running, Size 10.5").sku("sku02")
.unitAmount(new Money().currencyCode("USD").value("45.00"))
.tax(new Money().currencyCode("USD").value("5.00")).quantity("2")
.category("PHYSICAL_GOODS"));
}
}).shippingDetail(new ShippingDetail().name(new Name().fullName("John Doe"))
.addressPortable(new AddressPortable().addressLine1("123 Townsend St").addressLine2("Floor 6")
.adminArea2("San Francisco").adminArea1("CA").postalCode("94107").countryCode("US")));
purchaseUnitRequests.add(purchaseUnitRequest);
orderRequest.purchaseUnits(purchaseUnitRequests);
return orderRequest;
}
public HttpResponse<Order> createOrder(boolean debug) throws IOException {
OrdersCreateRequest request = new OrdersCreateRequest();
request.header("prefer", "return=representation");
request.requestBody(buildRequestBody());
HttpResponse<Order> response = client().execute((HttpRequest)request);
if (debug &&
response.statusCode() == 201) {
System.out.println("Status Code: " + response.statusCode());
System.out.println("Status: " + ((Order)response.result()).status());
System.out.println("Order ID: " + ((Order)response.result()).id());
System.out.println("Intent: " + ((Order)response.result()).checkoutPaymentIntent());
System.out.println("Links: ");
for (LinkDescription link : (Iterable<LinkDescription>)((Order)response.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href() + "\tCall Type: " + link.method());
System.out.println("Total Amount: " + ((Order)response.result()).purchaseUnits().get(0).amountWithBreakdown().currencyCode() + " " + ((Order)
response.result()).purchaseUnits().get(0).amountWithBreakdown().value());
System.out.println("Full response body:");
System.out.println(new JSONObject(new Json().serialize(response.result())).toString(4));
}
return response;
}
public static void main(String[] args) {
try {
new CreateOrder().createOrder(true);
} catch (HttpException e) {
System.out.println(e.getLocalizedMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
}

View file

@ -0,0 +1,60 @@
package com.paypal.CaptureIntentExamples;
import com.paypal.AuthorizeIntentExamples.RefundOrder;
import com.paypal.http.HttpResponse;
import com.paypal.orders.Capture;
import com.paypal.orders.LinkDescription;
import com.paypal.orders.Order;
import com.paypal.orders.PurchaseUnit;
import com.paypal.payments.Refund;
public class RunAll {
public static void main(String[] args) {
try {
HttpResponse<Order> orderResponse = new CreateOrder().createOrder(false);
String orderId = "";
System.out.println("Creating Order...");
if (orderResponse.statusCode() == 201) {
orderId = ((Order)orderResponse.result()).id();
System.out.println("Links:");
for (LinkDescription link : (Iterable<LinkDescription>)((Order)orderResponse.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href());
}
System.out.println("Created Successfully\n");
System.out.println("Copy approve link and paste it in browser. Login with buyer account and follow the instructions.\nOnce approved hit enter...");
System.in.read();
System.out.println("Capturing Order...");
orderResponse = new CaptureOrder().captureOrder(orderId, false);
String captureId = "";
if (orderResponse.statusCode() == 201) {
System.out.println("Captured Successfully");
System.out.println("Status Code: " + orderResponse.statusCode());
System.out.println("Status: " + ((Order)orderResponse.result()).status());
System.out.println("Order ID: " + ((Order)orderResponse.result()).id());
System.out.println("Links:");
for (LinkDescription link : (Iterable<LinkDescription>)((Order)orderResponse.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href());
System.out.println("Capture ids:");
for (PurchaseUnit purchaseUnit : (Iterable<PurchaseUnit>)((Order)orderResponse.result()).purchaseUnits()) {
for (Capture capture : (Iterable<Capture>)purchaseUnit.payments().captures()) {
System.out.println("\t" + capture.id());
captureId = capture.id();
}
}
}
System.out.println("Refunding Order...");
HttpResponse<Refund> refundResponse = new RefundOrder().refundOrder(captureId, false);
if (refundResponse.statusCode() == 201) {
System.out.println("Refunded Successfully");
System.out.println("Status Code: " + refundResponse.statusCode());
System.out.println("Status: " + ((Refund)refundResponse.result()).status());
System.out.println("Refund ID: " + ((Refund)refundResponse.result()).id());
System.out.println("Links:");
for (com.paypal.payments.LinkDescription link : (Iterable<com.paypal.payments.LinkDescription>)((Refund)refundResponse.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

View file

@ -0,0 +1,59 @@
package com.paypal;
import com.paypal.http.HttpRequest;
import com.paypal.http.HttpResponse;
import com.paypal.http.exceptions.HttpException;
import com.paypal.orders.AmountWithBreakdown;
import com.paypal.orders.OrderRequest;
import com.paypal.orders.OrdersCreateRequest;
import com.paypal.orders.PurchaseUnitRequest;
import java.io.IOException;
import java.util.ArrayList;
import org.json.JSONObject;
public class ErrorSample extends PayPalClient {
public void createError1() {
OrdersCreateRequest request = new OrdersCreateRequest();
request.requestBody(new OrderRequest());
System.out.println("Request Body: {}\n");
System.out.println("Response:");
try {
HttpResponse httpResponse = this.client.execute((HttpRequest)request);
} catch (IOException e) {
HttpException h = (HttpException)e;
JSONObject message = new JSONObject(h.getMessage());
System.out.println(prettyPrint(message, ""));
System.out.println();
}
}
public void createError2() {
OrdersCreateRequest request = new OrdersCreateRequest();
request.requestBody(new OrderRequest()
.checkoutPaymentIntent("INVALID")
.purchaseUnits(new ArrayList<>() {
{
add(new PurchaseUnitRequest().amountWithBreakdown(new AmountWithBreakdown().currencyCode("USD").value("100.00")));
}
}));
System.out.println("Request Body:");
System.out.println("{\n\"intent\": \"INVALID\",\n\"purchase_units\": [\n{\n\"amount\": {\n\"currency_code\": \"USD\",\n\"value\": \"100.00\"\n}\n}\n]\n}\n");
System.out.println("Response:");
try {
HttpResponse httpResponse = this.client.execute((HttpRequest)request);
} catch (IOException e) {
HttpException h = (HttpException)e;
JSONObject message = new JSONObject(h.getMessage());
System.out.println(prettyPrint(message, ""));
System.out.println();
}
}
public static void main(String[] args) {
ErrorSample errorSample = new ErrorSample();
System.out.println("Calling createError1 (Body has no required parameters (intent, purchase_units))");
errorSample.createError1();
System.out.println("Calling createError2 (Body has invalid parameter value for intent)");
errorSample.createError2();
}
}

View file

@ -0,0 +1,24 @@
package com.paypal;
import com.paypal.AuthorizeIntentExamples.CreateOrder;
import com.paypal.http.HttpRequest;
import com.paypal.http.HttpResponse;
import com.paypal.http.serializer.Json;
import com.paypal.orders.Order;
import com.paypal.orders.OrdersGetRequest;
import java.io.IOException;
import org.json.JSONObject;
public class GetOrder extends PayPalClient {
public void getOrder(String orderId) throws IOException {
OrdersGetRequest request = new OrdersGetRequest(orderId);
HttpResponse<Order> response = client().execute((HttpRequest)request);
System.out.println("Full response body:");
System.out.println(new JSONObject(new Json().serialize(response.result())).toString(4));
}
public static void main(String[] args) throws IOException {
HttpResponse<Order> response = new CreateOrder().createOrder(false);
new GetOrder().getOrder(((Order)response.result()).id());
}
}

View file

@ -0,0 +1,55 @@
package com.paypal;
import com.paypal.AuthorizeIntentExamples.CreateOrder;
import com.paypal.http.HttpRequest;
import com.paypal.http.HttpResponse;
import com.paypal.http.serializer.Json;
import com.paypal.orders.AmountBreakdown;
import com.paypal.orders.AmountWithBreakdown;
import com.paypal.orders.LinkDescription;
import com.paypal.orders.Money;
import com.paypal.orders.Order;
import com.paypal.orders.OrdersGetRequest;
import com.paypal.orders.OrdersPatchRequest;
import com.paypal.orders.Patch;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONObject;
public class PatchOrder extends PayPalClient {
private List<Patch> buildRequestBody() throws IOException {
List<Patch> patches = new ArrayList<>();
patches.add(new Patch().op("replace").path("/intent").value("CAPTURE"));
patches.add(new Patch().op("replace").path("/purchase_units/@reference_id=='PUHF'/amount")
.value(new AmountWithBreakdown().currencyCode("USD").value("200.00")
.amountBreakdown(new AmountBreakdown().itemTotal(new Money().currencyCode("USD").value("180.00"))
.taxTotal(new Money().currencyCode("USD").value("20.00")))));
return patches;
}
public void patchOrder(String orderId) throws IOException {
OrdersPatchRequest request = new OrdersPatchRequest(orderId);
request.requestBody(buildRequestBody());
client().execute((HttpRequest)request);
OrdersGetRequest getRequest = new OrdersGetRequest(orderId);
HttpResponse<Order> response = this.client.execute((HttpRequest)getRequest);
System.out.println("After Patch:");
System.out.println("Order ID: " + ((Order)response.result()).id());
System.out.println("Intent: " + ((Order)response.result()).checkoutPaymentIntent());
System.out.println("Links: ");
for (LinkDescription link : (Iterable<LinkDescription>)((Order)response.result()).links())
System.out.println("\t" + link.rel() + ": " + link.href() + "\tCall Type: " + link.method());
System.out.println("Gross Amount: " + ((Order)response.result()).purchaseUnits().get(0).amountWithBreakdown().currencyCode() + " " + ((Order)
response.result()).purchaseUnits().get(0).amountWithBreakdown().value());
System.out.println("Full response body:");
System.out.println(new JSONObject(new Json().serialize(response.result())).toString(4));
}
public static void main(String[] args) throws IOException {
System.out.println("Before PATCH:");
HttpResponse<Order> response = new CreateOrder().createOrder(true);
System.out.println("\nAfter PATCH (Changed Intent and Amount):");
new PatchOrder().patchOrder(((Order)response.result()).id());
}
}

View file

@ -0,0 +1,44 @@
package com.paypal;
import com.paypal.core.PayPalEnvironment;
import com.paypal.core.PayPalHttpClient;
import java.util.Iterator;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
public class PayPalClient {
private PayPalEnvironment environment = new PayPalEnvironment.Sandbox(
(System.getProperty("PAYPAL_CLIENT_ID") != null) ? System.getProperty("PAYPAL_CLIENT_ID") :
"<<PAYPAL-CLIENT-ID>>",
(System.getProperty("PAYPAL_CLIENT_SECRET") != null) ? System.getProperty("PAYPAL_CLIENT_SECRET") :
"<<PAYPAL-CLIENT-SECRET>>");
PayPalHttpClient client = new PayPalHttpClient(this.environment);
public PayPalHttpClient client() {
return this.client;
}
public String prettyPrint(JSONObject jo, String pre) {
Iterator<?> keys = jo.keys();
StringBuilder pretty = new StringBuilder();
while (keys.hasNext()) {
String key = (String)keys.next();
pretty.append(String.format("%s%s: ", pre, StringUtils.capitalize(key)));
if (jo.get(key) instanceof JSONObject) {
pretty.append(prettyPrint(jo.getJSONObject(key), pre + "\t"));
continue;
}
if (jo.get(key) instanceof org.json.JSONArray) {
int sno = 1;
for (Object jsonObject : (Iterable<Object>)jo.getJSONArray(key)) {
pretty.append(String.format("\n%s\t%d:\n", pre, sno++));
pretty.append(prettyPrint((JSONObject)jsonObject, pre + "\t\t"));
}
continue;
}
pretty.append(String.format("%s\n", jo.getString(key)));
}
return pretty.toString();
}
}