forked from LiveCarta/PayPal-PHP-SDK
53 lines
2.0 KiB
PHP
53 lines
2.0 KiB
PHP
<?php
|
|
// #Authorize Order Sample
|
|
// To authorize an order payment, pass the orderId in the URI of a POST call. This begins the process of confirming that funds are available until it is time to complete the payment transaction.
|
|
// API used: POST /v1/payments/orders/<Order-Id>/authorize
|
|
|
|
/** @var \PayPal\Api\Payment $payment */
|
|
$payment = require __DIR__ . '/ExecutePayment.php';
|
|
|
|
use PayPal\Api\Amount;
|
|
use PayPal\Api\Authorization;
|
|
|
|
// ### Approval Status
|
|
// Determine if the user approved the payment or not
|
|
if (isset($_GET['success']) && $_GET['success'] == 'true') {
|
|
|
|
// ### Retrieve the order
|
|
// OrderId could be retrieved by parsing the object inside related_resources.
|
|
$transactions = $payment->getTransactions();
|
|
$transaction = $transactions[0];
|
|
$relatedResources = $transaction->getRelatedResources();
|
|
$relatedResource = $relatedResources[0];
|
|
$order = $relatedResource->getOrder();
|
|
|
|
// ### Create Authorization Object
|
|
// with Amount in it
|
|
$authorization = new Authorization();
|
|
$authorization->setAmount(new Amount(
|
|
'{
|
|
"total": "2.00",
|
|
"currency": "USD"
|
|
}'
|
|
));
|
|
|
|
try {
|
|
// ### Authorize Order
|
|
// Authorize the order by passing authorization object we created.
|
|
// We will get a new authorization object back.
|
|
$result = $order->authorize($authorization, $apiContext);
|
|
// NOTE: PLEASE DO NOT USE RESULTPRINTER CLASS IN YOUR ORIGINAL CODE. FOR SAMPLE ONLY
|
|
ResultPrinter::printResult("Authorized Order", "Authorization", $result->getId(), $authorization, $result);
|
|
} catch (Exception $ex) {
|
|
// NOTE: PLEASE DO NOT USE RESULTPRINTER CLASS IN YOUR ORIGINAL CODE. FOR SAMPLE ONLY
|
|
ResultPrinter::printError("Authorized Order", "Authorization", null, $authorization, $ex);
|
|
exit(1);
|
|
}
|
|
|
|
return $result;
|
|
} else {
|
|
// NOTE: PLEASE DO NOT USE RESULTPRINTER CLASS IN YOUR ORIGINAL CODE. FOR SAMPLE ONLY
|
|
ResultPrinter::printResult("User Cancelled the Approval", null);
|
|
exit;
|
|
}
|