summaryrefslogtreecommitdiffstats
path: root/vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples
diff options
context:
space:
mode:
authorAnton Luka Šijanec <anton@sijanec.eu>2022-01-11 12:35:47 +0100
committerAnton Luka Šijanec <anton@sijanec.eu>2022-01-11 12:35:47 +0100
commit19985dbb8c0aa66dc4bf7905abc1148de909097d (patch)
tree2cd5a5d20d7e80fc2a51adf60d838d8a2c40999e /vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples
download1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.tar
1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.tar.gz
1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.tar.bz2
1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.tar.lz
1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.tar.xz
1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.tar.zst
1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.zip
Diffstat (limited to '')
-rw-r--r--vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples/CaptureOrder.php60
-rw-r--r--vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples/CreateOrder.php178
-rw-r--r--vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples/RunAll.php74
3 files changed, 312 insertions, 0 deletions
diff --git a/vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples/CaptureOrder.php b/vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples/CaptureOrder.php
new file mode 100644
index 0000000..931d5d9
--- /dev/null
+++ b/vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples/CaptureOrder.php
@@ -0,0 +1,60 @@
+<?php
+
+
+namespace Sample\CaptureIntentExamples;
+
+require __DIR__ . '/../../vendor/autoload.php';
+use Sample\PayPalClient;
+use PayPalCheckoutSdk\Orders\OrdersCaptureRequest;
+
+class CaptureOrder
+{
+
+ /**
+ * This function can be used to capture an order payment by passing the approved
+ * order id as argument.
+ *
+ * @param orderId
+ * @param debug
+ * @returns
+ */
+ public static function captureOrder($orderId, $debug=false)
+ {
+ $request = new OrdersCaptureRequest($orderId);
+
+ $client = PayPalClient::client();
+ $response = $client->execute($request);
+ if ($debug)
+ {
+ print "Status Code: {$response->statusCode}\n";
+ print "Status: {$response->result->status}\n";
+ print "Order ID: {$response->result->id}\n";
+ print "Links:\n";
+ foreach($response->result->links as $link)
+ {
+ print "\t{$link->rel}: {$link->href}\tCall Type: {$link->method}\n";
+ }
+ print "Capture Ids:\n";
+ foreach($response->result->purchase_units as $purchase_unit)
+ {
+ foreach($purchase_unit->payments->captures as $capture)
+ {
+ print "\t{$capture->id}";
+ }
+ }
+ // To toggle printing the whole response body comment/uncomment below line
+ echo json_encode($response->result, JSON_PRETTY_PRINT), "\n";
+ }
+
+ return $response;
+ }
+}
+
+/**
+ * This is the driver function which invokes the captureOrder function with
+ * <b>Approved</b> Order Id to capture the order payment.
+ */
+if (!count(debug_backtrace()))
+{
+ CaptureOrder::captureOrder('0F105083N67049335', true);
+} \ No newline at end of file
diff --git a/vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples/CreateOrder.php b/vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples/CreateOrder.php
new file mode 100644
index 0000000..37a8e63
--- /dev/null
+++ b/vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples/CreateOrder.php
@@ -0,0 +1,178 @@
+<?php
+
+namespace Sample\CaptureIntentExamples;
+
+require __DIR__ . '/../../vendor/autoload.php';
+
+
+use Sample\PayPalClient;
+use PayPalCheckoutSdk\Orders\OrdersCreateRequest;
+
+class CreateOrder
+{
+
+ /**
+ * Setting up the JSON request body for creating the Order. The Intent in the
+ * request body should be set as "CAPTURE" for capture intent flow.
+ *
+ */
+ private static function buildRequestBody()
+ {
+ return array(
+ 'intent' => 'CAPTURE',
+ 'application_context' =>
+ array(
+ 'return_url' => 'https://example.com/return',
+ 'cancel_url' => 'https://example.com/cancel',
+ 'brand_name' => 'EXAMPLE INC',
+ 'locale' => 'en-US',
+ 'landing_page' => 'BILLING',
+ 'shipping_preference' => 'SET_PROVIDED_ADDRESS',
+ 'user_action' => 'PAY_NOW',
+ ),
+ 'purchase_units' =>
+ array(
+ 0 =>
+ array(
+ 'reference_id' => 'PUHF',
+ 'description' => 'Sporting Goods',
+ 'custom_id' => 'CUST-HighFashions',
+ 'soft_descriptor' => 'HighFashions',
+ 'amount' =>
+ array(
+ 'currency_code' => 'USD',
+ 'value' => '220.00',
+ 'breakdown' =>
+ array(
+ 'item_total' =>
+ array(
+ 'currency_code' => 'USD',
+ 'value' => '180.00',
+ ),
+ 'shipping' =>
+ array(
+ 'currency_code' => 'USD',
+ 'value' => '20.00',
+ ),
+ 'handling' =>
+ array(
+ 'currency_code' => 'USD',
+ 'value' => '10.00',
+ ),
+ 'tax_total' =>
+ array(
+ 'currency_code' => 'USD',
+ 'value' => '20.00',
+ ),
+ 'shipping_discount' =>
+ array(
+ 'currency_code' => 'USD',
+ 'value' => '10.00',
+ ),
+ ),
+ ),
+ 'items' =>
+ array(
+ 0 =>
+ array(
+ 'name' => 'T-Shirt',
+ 'description' => 'Green XL',
+ 'sku' => 'sku01',
+ 'unit_amount' =>
+ array(
+ 'currency_code' => 'USD',
+ 'value' => '90.00',
+ ),
+ 'tax' =>
+ array(
+ 'currency_code' => 'USD',
+ 'value' => '10.00',
+ ),
+ 'quantity' => '1',
+ 'category' => 'PHYSICAL_GOODS',
+ ),
+ 1 =>
+ array(
+ 'name' => 'Shoes',
+ 'description' => 'Running, Size 10.5',
+ 'sku' => 'sku02',
+ 'unit_amount' =>
+ array(
+ 'currency_code' => 'USD',
+ 'value' => '45.00',
+ ),
+ 'tax' =>
+ array(
+ 'currency_code' => 'USD',
+ 'value' => '5.00',
+ ),
+ 'quantity' => '2',
+ 'category' => 'PHYSICAL_GOODS',
+ ),
+ ),
+ 'shipping' =>
+ array(
+ 'method' => 'United States Postal Service',
+ 'name' =>
+ array(
+ 'full_name' => 'John Doe',
+ ),
+ 'address' =>
+ array(
+ 'address_line_1' => '123 Townsend St',
+ 'address_line_2' => 'Floor 6',
+ 'admin_area_2' => 'San Francisco',
+ 'admin_area_1' => 'CA',
+ 'postal_code' => '94107',
+ 'country_code' => 'US',
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+
+ /**
+ * This is the sample function which can be sued to create an order. It uses the
+ * JSON body returned by buildRequestBody() to create an new Order.
+ */
+ public static function createOrder($debug=false)
+ {
+ $request = new OrdersCreateRequest();
+ $request->headers["prefer"] = "return=representation";
+ $request->body = self::buildRequestBody();
+
+ $client = PayPalClient::client();
+ $response = $client->execute($request);
+ if ($debug)
+ {
+ print "Status Code: {$response->statusCode}\n";
+ print "Status: {$response->result->status}\n";
+ print "Order ID: {$response->result->id}\n";
+ print "Intent: {$response->result->intent}\n";
+ print "Links:\n";
+ foreach($response->result->links as $link)
+ {
+ print "\t{$link->rel}: {$link->href}\tCall Type: {$link->method}\n";
+ }
+ // To toggle printing the whole response body comment/uncomment below line
+ echo json_encode($response->result, JSON_PRETTY_PRINT), "\n";
+ }
+
+
+ return $response;
+ }
+}
+
+
+/**
+ * This is the driver function which invokes the createOrder function to create
+ * an sample order.
+ */
+if (!count(debug_backtrace()))
+{
+ CreateOrder::createOrder(true);
+}
+
+
+
diff --git a/vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples/RunAll.php b/vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples/RunAll.php
new file mode 100644
index 0000000..e576ff0
--- /dev/null
+++ b/vendor/paypal/paypal-checkout-sdk/samples/CaptureIntentExamples/RunAll.php
@@ -0,0 +1,74 @@
+<?php
+
+require __DIR__ . '/../../vendor/autoload.php';
+
+use Sample\CaptureIntentExamples\CreateOrder;
+use Sample\CaptureIntentExamples\CaptureOrder;
+use Sample\RefundOrder;
+
+$order = CreateOrder::createOrder();
+
+print "Creating Order...\n";
+$orderId = "";
+if ($order->statusCode == 201)
+{
+ $orderId = $order->result->id;
+ print "Links:\n";
+ for ($i = 0; $i < count($order->result->links); ++$i)
+ {
+ $link = $order->result->links[$i];
+ print "\t{$link->rel}: {$link->href}\tCall Type: {$link->method}\n";
+ }
+ print "Created Successfully\n";
+ print "Copy approve link and paste it in browser. Login with buyer account and follow the instructions.\nOnce approved hit enter...\n";
+}
+else {
+ exit(1);
+}
+
+$handle = fopen ("php://stdin","r");
+$line = fgets($handle);
+fclose($handle);
+
+print "Capturing Order...\n";
+$response = CaptureOrder::captureOrder($orderId);
+if ($response->statusCode == 201)
+{
+ print "Captured Successfully\n";
+ print "Status Code: {$response->statusCode}\n";
+ print "Status: {$response->result->status}\n";
+ print "Order ID: {$response->result->id}\n";
+ print "Links:\n";
+ for ($i = 0; $i < count($response->result->links); ++$i){
+ $link = $response->result->links[$i];
+ print "\t{$link->rel}: {$link->href}\tCall Type: {$link->method}\n";
+ }
+ foreach($response->result->purchase_units as $purchase_unit)
+ {
+ foreach($purchase_unit->payments->captures as $capture)
+ {
+ $captureId = $capture->id;
+ }
+ }
+}
+else {
+ exit(1);
+}
+
+print "\nRefunding Order...\n";
+$response = RefundOrder::refundOrder($captureId);
+if ($response->statusCode == 201)
+{
+ print "Refunded Successfully\n";
+ print "Status Code: {$response->statusCode}\n";
+ print "Status: {$response->result->status}\n";
+ print "Refund ID: {$response->result->id}\n";
+ print "Links:\n";
+ for ($i = 0; $i < count($response->result->links); ++$i){
+ $link = $response->result->links[$i];
+ print "\t{$link->rel}: {$link->href}\tCall Type: {$link->method}\n";
+ }
+}
+else {
+ exit(1);
+}