/application/libraries/PayPal-PHP-SDK/paypal/rest-api-sdk-php/sample/payments/CreateThirdPartyPayment.php
PHP | 125 lines | 62 code | 17 blank | 46 comment | 0 complexity | b1a2231e5dfdc6a033ea37a4d4f449a4 MD5 | raw file
Possible License(s): BitTorrent-1.0
- <?php
- // # Create Third Party Payment using PayPal as payment method
- // This sample code demonstrates how you can process a
- // PayPal Account based Payment with a third party paypal account.
- // API used: /v1/payments/payment
- require __DIR__ . '/../bootstrap.php';
- use PayPal\Api\Amount;
- use PayPal\Api\Details;
- use PayPal\Api\Item;
- use PayPal\Api\ItemList;
- use PayPal\Api\Payee;
- use PayPal\Api\Payer;
- use PayPal\Api\Payment;
- use PayPal\Api\RedirectUrls;
- use PayPal\Api\Transaction;
- // ### Payer
- // A resource representing a Payer that funds a payment
- // For paypal account payments, set payment method
- // to 'paypal'.
- $payer = new Payer();
- $payer->setPaymentMethod("paypal");
- // ### Itemized information
- // (Optional) Lets you specify item wise
- // information
- $item1 = new Item();
- $item1->setName('Ground Coffee 40 oz')
- ->setCurrency('USD')
- ->setQuantity(1)
- ->setSku("123123") // Similar to `item_number` in Classic API
- ->setPrice(7.5);
- $item2 = new Item();
- $item2->setName('Granola bars')
- ->setCurrency('USD')
- ->setQuantity(5)
- ->setSku("321321") // Similar to `item_number` in Classic API
- ->setPrice(2);
- $itemList = new ItemList();
- $itemList->setItems(array($item1, $item2));
- // ### Additional payment details
- // Use this optional field to set additional
- // payment information such as tax, shipping
- // charges etc.
- $details = new Details();
- $details->setShipping(1.2)
- ->setTax(1.3)
- ->setSubtotal(17.50);
- // ### Amount
- // Lets you specify a payment amount.
- // You can also specify additional details
- // such as shipping, tax.
- $amount = new Amount();
- $amount->setCurrency("USD")
- ->setTotal(20)
- ->setDetails($details);
- // ### Payee
- // Specify a payee with that user's email or merchant id
- // Merchant Id can be found at https://www.paypal.com/businessprofile/settings/
- $payee = new Payee();
- $payee->setEmail("stevendcoffey-facilitator@gmail.com");
- // ### Transaction
- // A transaction defines the contract of a
- // payment - what is the payment for and who
- // is fulfilling it.
- $transaction = new Transaction();
- $transaction->setAmount($amount)
- ->setItemList($itemList)
- ->setDescription("Payment description")
- ->setPayee($payee)
- ->setInvoiceNumber(uniqid());
- // ### Redirect urls
- // Set the urls that the buyer must be redirected to after
- // payment approval/ cancellation.
- $baseUrl = getBaseUrl();
- $redirectUrls = new RedirectUrls();
- $redirectUrls->setReturnUrl("$baseUrl/ExecutePayment.php?success=true")
- ->setCancelUrl("$baseUrl/ExecutePayment.php?success=false");
- // ### Payment
- // A Payment Resource; create one using
- // the above types and intent set to 'sale'
- $payment = new Payment();
- $payment->setIntent("sale")
- ->setPayer($payer)
- ->setRedirectUrls($redirectUrls)
- ->setTransactions(array($transaction));
- // For Sample Purposes Only.
- $request = clone $payment;
- // ### Create Payment
- // Create a payment by calling the 'create' method
- // passing it a valid apiContext.
- // (See bootstrap.php for more on `ApiContext`)
- // The return object contains the state and the
- // url to which the buyer must be redirected to
- // for payment approval
- try {
- $payment->create($apiContext);
- } catch (Exception $ex) {
- // NOTE: PLEASE DO NOT USE RESULTPRINTER CLASS IN YOUR ORIGINAL CODE. FOR SAMPLE ONLY
- ResultPrinter::printError("Created Payment Using PayPal. Please visit the URL to Approve.", "Payment", null, $request, $ex);
- exit(1);
- }
- // ### Get redirect url
- // The API response provides the url that you must redirect
- // the buyer to. Retrieve the url from the $payment->getApprovalLink()
- // method
- $approvalUrl = $payment->getApprovalLink();
- // NOTE: PLEASE DO NOT USE RESULTPRINTER CLASS IN YOUR ORIGINAL CODE. FOR SAMPLE ONLY
- ResultPrinter::printResult("Created Payment Using PayPal. Please visit the URL to Approve.", "Payment", "<a href='$approvalUrl' >$approvalUrl</a>", $request, $payment);
- return $payment;