diff options
Diffstat (limited to 'vendor/paypal/paypal-checkout-sdk/samples/PatchOrder.php')
-rw-r--r-- | vendor/paypal/paypal-checkout-sdk/samples/PatchOrder.php | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/vendor/paypal/paypal-checkout-sdk/samples/PatchOrder.php b/vendor/paypal/paypal-checkout-sdk/samples/PatchOrder.php new file mode 100644 index 0000000..cba8152 --- /dev/null +++ b/vendor/paypal/paypal-checkout-sdk/samples/PatchOrder.php @@ -0,0 +1,82 @@ +<?php + +namespace Sample; + +require __DIR__ . '/../vendor/autoload.php'; + +use PayPalCheckoutSdk\Orders\OrdersPatchRequest; +use PayPalCheckoutSdk\Orders\OrdersGetRequest; +use Sample\AuthorizeIntentExamples\CreateOrder; + +class PatchOrder +{ + private static function buildRequestBody() + { + return array ( + 0 => + array ( + 'op' => 'replace', + 'path' => '/intent', + 'value' => 'CAPTURE', + ), + 1 => + array ( + 'op' => 'replace', + 'path' => '/purchase_units/@reference_id==\'PUHF\'/amount', + 'value' => + array ( + 'currency_code' => 'USD', + 'value' => '200.00', + 'breakdown' => + array ( + 'item_total' => + array ( + 'currency_code' => 'USD', + 'value' => '180.00', + ), + 'tax_total' => + array ( + 'currency_code' => 'USD', + 'value' => '20.00', + ), + ), + ), + ), + ); + } + + public static function patchOrder($orderId) + { + + $client = PayPalClient::client(); + + $request = new OrdersPatchRequest($orderId); + $request->body = PatchOrder::buildRequestBody(); + $client->execute($request); + + $response = $client->execute(new OrdersGetRequest($orderId)); + + 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"; + } + + print "Gross Amount: {$response->result->purchase_units[0]->amount->currency_code} {$response->result->purchase_units[0]->amount->value}\n"; + + // To toggle printing the whole response body comment/uncomment below line + echo json_encode($response->result, JSON_PRETTY_PRINT), "\n"; + } +} + +if (!count(debug_backtrace())) +{ + print "Before PATCH:\n"; + $createdOrder = CreateOrder::createOrder(true)->result; + print "\nAfter PATCH (Changed Intent and Amount):\n"; + PatchOrder::patchOrder($createdOrder->id); +}
\ No newline at end of file |