setPayment_method("paypal"); // ### Amount // Let's you specify a payment amount. $amount = new Amount(); $amount->setCurrency("USD"); $amount->setTotal("1.00"); // ### Transaction // A transaction defines the contract of a // payment - what is the payment for and who // is fulfilling it. Transaction is created with // a `Payee` and `Amount` types $transaction = new Transaction(); $transaction->setAmount($amount); $transaction->setDescription("This is the payment description."); // ### Redirect urls // Set the urls that the buyer must be redirected to after // payment approval/ cancellation. $baseUrl = getBaseUrl(); $redirectUrls = new RedirectUrls(); $redirectUrls->setReturn_url("$baseUrl/ExecutePayment.php?success=true"); $redirectUrls->setCancel_url("$baseUrl/ExecutePayment.php?success=false"); // ### Payment // A Payment Resource; create one using // the above types and intent as 'sale' $payment = new Payment(); $payment->setIntent("sale"); $payment->setPayer($payer); $payment->setRedirect_urls($redirectUrls); $payment->setTransactions(array($transaction)); // ### Api Context // Pass in a `ApiContext` object to authenticate // the call and to send a unique request id // (that ensures idempotency). The SDK generates // a request id if you do not pass one explicitly. $apiContext = new ApiContext($cred, 'Request' . time()); // ### Create Payment // Create a payment by posting to the APIService // using a valid apiContext // The return object contains the status and the // url to which the buyer must be redirected to // for payment approval try { $payment->create($apiContext); } catch (\PPConnectionException $ex) { echo "Exception: " . $ex->getMessage() . PHP_EOL; var_dump($ex->getData()); exit(1); } // ### Redirect buyer to paypal // Retrieve buyer approval url from the `payment` object. foreach($payment->getLinks() as $link) { if($link->getRel() == 'approval_url') { $redirectUrl = $link->getHref(); } } // It is not really a great idea to store the payment id // in the session. In a real world app, please store the // payment id in a database. $_SESSION['paymentId'] = $payment->getId(); if(isset($redirectUrl)) { header("Location: $redirectUrl"); exit; }