PayPal Payments - similar to Express Checkout in Classic APIs
diff --git a/sample/payments/CreatePaymentUsingCheckoutJs.php b/sample/payments/CreatePaymentUsingCheckoutJs.php
new file mode 100644
index 00000000..79347b94
--- /dev/null
+++ b/sample/payments/CreatePaymentUsingCheckoutJs.php
@@ -0,0 +1,152 @@
+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);
+
+// ### 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")
+ ->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();
+
+
+// Checkout JS https://developer.paypal.com/demo/checkout/#/pattern/server
+// NOTE: The checkout.js script should be added to your head element not directly to the body as shown in the sample here.
+echo '';
+
+// NOTE: As an Alternative you can make a request with paypal.request.post to a page that returns the Payment ID value
+echo "";
+
+
+// NOTE: PLEASE DO NOT USE RESULTPRINTER CLASS IN YOUR ORIGINAL CODE. FOR SAMPLE ONLY
+ ResultPrinter::printResult("Created Payment Using PayPal. Please click the PayPal Checkout button to Approve.", "Payment", $payment->id . "
Click here to Approve the Payment:
", $request, $payment);
+
+return $payment;
diff --git a/sample/payments/CreatePaymentUsingPayPal.php b/sample/payments/CreatePaymentUsingPayPal.php
index 47a7925b..a8a2023a 100644
--- a/sample/payments/CreatePaymentUsingPayPal.php
+++ b/sample/payments/CreatePaymentUsingPayPal.php
@@ -112,6 +112,6 @@
$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", "
$approvalUrl", $request, $payment);
+ResultPrinter::printResult("Created Payment Using PayPal. Please visit the URL to Approve.", "Payment", $payment->id . "
Please visit the URL to Approve:
$approvalUrl", $request, $payment);
return $payment;