This repository has been archived by the owner on Sep 29, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 103
Making First Call
Franz Holzinger edited this page May 12, 2018
·
14 revisions
Once you have completed the Installation, you could make the first call. To write an app that uses the SDK, you will create your first PHP script that will create a PayPal Payment resource.
First, Create file first.php
in our project root location. You could alternatively copy the completed file here : first.php
- Autoload the SDK Package. This will include all the files and classes to your autoloader. Please note, If your downloaded our SDK using composer, replace
PayPal-PHP-SDK
withvendor
. This applies for all sample code in our SDK.
<?php
// 1. Autoload the SDK Package. This will include all the files and classes to your autoloader
// Used for composer based installation
require __DIR__ . '/vendor/autoload.php';
// Use below for direct download installation
// require __DIR__ . '/PayPal-PHP-SDK/autoload.php';
- Provide the ClientId and Secret. Optionally, Replace the given one with your app clientId, and Secret
// After Step 1
$apiContext = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential(
'AYSq3RDGsmBLJE-otTkBtM-jBRd1TCQwFf9RGfwddNXWz0uFU9ztymylOhRS', // ClientID
'EGnHDxD_qRPdaLdZz8iCr8N7_MzF-YHPTkjs6NKYQvQSBngp4PTTVWkPZRbL' // ClientSecret
)
);
- Lets try to create a new Payment as mentioned here
// After Step 2
$payer = new \PayPal\Api\Payer();
$payer->setPaymentMethod('paypal');
$amount = new \PayPal\Api\Amount();
$amount->setTotal('1.00');
$amount->setCurrency('USD');
$transaction = new \PayPal\Api\Transaction();
$transaction->setAmount($amount);
$redirectUrls = new \PayPal\Api\RedirectUrls();
$redirectUrls->setReturnUrl("https://example.com/your_redirect_url.html")
->setCancelUrl("https://example.com/your_cancel_url.html");
$payment = new \PayPal\Api\Payment();
$payment->setIntent('sale')
->setPayer($payer)
->setTransactions(array($transaction))
->setRedirectUrls($redirectUrls);
- Make a Create Call
// After Step 3
try {
$payment->create($apiContext);
echo $payment;
echo "\n\nRedirect user to approval_url: " . $payment->getApprovalLink() . "\n";
}
catch (\PayPal\Exception\PayPalConnectionException $ex) {
// This will print the detailed information on the exception.
//REALLY HELPFUL FOR DEBUGGING
echo $ex->getData();
}
- Run
php -f first.php
from command line. This will successfully create a payment resource. The output would look similar to this:
> php -f first.php
{
"intent": "sale",
"payer": {
"payment_method": "paypal"
},
"transactions": [
{
"amount": {
"total": "1.00",
"currency": "USD"
},
"related_resources": []
}
],
"redirect_urls": {
"return_url": "https://example.com/your_redirect_url.html",
"cancel_url": "https://example.com/your_cancel_url.html"
},
"id": "PAY-3MC96102SY030652JLHXXPMA",
"state": "created",
"create_time": "2017-10-24T17:26:07Z",
"links": [
{
"href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-3MC96102SY030652JLHXXPMA",
"rel": "self",
"method": "GET"
},
{
"href": "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-1NT485541R0509947",
"rel": "approval_url",
"method": "REDIRECT"
},
{
"href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-3MC96102SY030652JLHXXPMA/execute",
"rel": "execute",
"method": "POST"
}
]
}
Redirect user to approval_url: https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-1NT485541R0509947
- That's it. Follow the steps in our developer docs to get approval from user, and execute a sale on above payment object.
- To reduce redundant code and minimize security risks, you could create a file
bootstrap.php
and move step 1 and 2 there, and justinclude
bootstrap.php. - All the calls made currently are defaulted to sandbox environment. Sandbox Environment replicates the exact behavior you get from our PayPal APIs, but here, it allows you to create dummy accounts and test your integration, before running your code on live PayPal APIs. For more information visit Developer Portal
Getting Started
Using Our SDK
Configurations
Extras
External Links