www in docker support
This commit is contained in:
parent
539a848e95
commit
c227fce036
2145 changed files with 399596 additions and 58 deletions
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue