Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
<?php
// 1. Autoload the SDK Package. This will include all the files and classes to your autoloader
require __DIR__ . '/PayPal-PHP-SDK/autoload.php';
// 2. Provide your Secret Key. Replace the given one with your app clientId, and Secret
// https://developer.paypal.com/webapps/developer/applications/myapps
$apiContext = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential(
'AYSq3RDGsmBLJE-otTkBtM-jBRd1TCQwFf9RGfwddNXWz0uFU9ztymylOhRS', // ClientID
'EGnHDxD_qRPdaLdZz8iCr8N7_MzF-YHPTkjs6NKYQvQSBngp4PTTVWkPZRbL' // ClientSecret
)
);
// 3. Lets try to create a Payment
// https://developer.paypal.com/docs/api/payments/#payment_create
$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);
// 4. Make a Create Call and print the values
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();
}
@xbaheeg
Copy link

xbaheeg commented Aug 9, 2016

nice

@carloaudino
Copy link

carloaudino commented Apr 20, 2017

Perfect!

@dlepold
Copy link

dlepold commented Jul 14, 2017

Trying this i get an error:
Fatal error: Uncaught exception 'PayPal\Exception\PayPalConfigurationException' with message 'Getter function for 'links' in 'PayPal\Api\CreditCard' class should have a proper return type.' in /srv/www/project/html/pp_sdk/rest-api-sdk-php/l .............. etc-

@nikkolai14
Copy link

nikkolai14 commented Jul 20, 2017

This code is working! Thanks! :)

@vishaldu123
Copy link

vishaldu123 commented Jul 28, 2017

Hi Jay
How can we Configure it for sandbox?

@cyberguroo
Copy link

cyberguroo commented Apr 14, 2018

@vishaldu123

 $apiContext = new \PayPal\Rest\ApiContext(
         new \PayPal\Auth\OAuthTokenCredential(
         'xxxx', // ClientID
         'xxxx'      // ClientSecret
         )
 );
$apiContext->setConfig(
    array(
        'mode' => 'live'
    )
);

More on this here

@PhilippeI
Copy link

PhilippeI commented Jan 21, 2019

Hi , thanks for this code,
I m new on paypal .. i try to implement the server rest solution on web site.
Question : the '\PayPal\Auth\OAuthTokenCredential(' on Sandbox context is for the seller .. ? xxx-facilitator@xxx.xx ?
Or the Buyer credential .. in this case your script is an 'Pay Button' emulation .. isn't it ?

@xicom
Copy link

xicom commented Aug 21, 2019

Hi,
When I am using the api with live credentials it gives me error like "Access token does not have required scope". Is there any setting that I need to do in merchant account?
My code is below -
$apiContext = new \PayPal\Rest\ApiContext(new \PayPal\Auth\OAuthTokenCredential('client id', 'secreat key'));
$apiContext->setConfig(
array(
'mode' => 'live',
)
);

Please help
Thanks

@vonuyvico
Copy link

vonuyvico commented Jan 23, 2021

h

@wgrnihao
Copy link

wgrnihao commented Jul 8, 2021

666

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment