0

I'm following a tutorial about how to use PayPal-PHP-SDK and i got stuck in somewhere with this error in the console:

[Sun Mar 08 16:11:21.729977 2015] [:error] [pid 4484:tid 1760] [client ::1:4308] PHP Fatal error:  
Uncaught exception 'PayPal\\Exception\\PayPalConnectionException' with message 
'Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/payment.' 
in C:\\UniServerZ\\www\\PayPal\\vendor\\paypal\\rest-api-sdk-php\\lib\\PayPal\\Core\\PayPalHttpConnection.php:176\nStack trace:\n#0 
C:\\UniServerZ\\www\\PayPal\\vendor\\paypal\\rest-api-sdk-php\\lib\\PayPal\\Transport\\PayPalRestCall.php(74): 
PayPal\\Core\\PayPalHttpConnection->execute('{"intent":"sale...')\n#1 
C:\\UniServerZ\\www\\PayPal\\vendor\\paypal\\rest-api-sdk-php\\lib\\PayPal\\Common\\PayPalResourceModel.php(103): 
PayPal\\Transport\\PayPalRestCall->execute(Array, '/v1/payments/pa...', 'POST', '{"intent":"sale...', NULL)\n#2 
C:\\UniServerZ\\www\\PayPal\\vendor\\paypal\\rest-api-sdk-php\\lib\\PayPal\\Api\\Payment.php(424): 
PayPal\\Common\\PayPalResourceModel::executeCall('/v1/payments/pa...', 'POST', '{"intent":"sale...', NULL, Object(PayPal\\Rest\\ApiContext), NULL)\n#3 
C:\\UniServerZ\\www\\PayPal\\member\\payment.php(48): PayPal\\Api\\Payment->create(Object(PayPal\\Rest\\ApiContext))\n#4 {mai in 
C:\\UniServerZ\\www\\PayPal\\vendor\\paypal\\rest-api-sdk-php\\lib\\PayPal\\Core\\PayPalHttpConnection.php on line 176, referer: http://localhost:1313/PayPal/

UPDATE

The new message from the log after try updating the name of the function is:

[Mon Mar 09 23:28:26.612147 2015] [:error] [pid 4344:tid 1772] [client ::1:2189] PHP Fatal error:  Uncaught exception 'PayPal\\Exception\\PayPalConnectionException' with message 'Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/payment.' in C:\\UniServerZ\\www\\PayPal\\vendor\\paypal\\rest-api-sdk-php\\lib\\PayPal\\Core\\PayPalHttpConnection.php:176\nStack trace:\n#0 C:\\UniServerZ\\www\\PayPal\\vendor\\paypal\\rest-api-sdk-php\\lib\\PayPal\\Transport\\PayPalRestCall.php(74): PayPal\\Core\\PayPalHttpConnection->execute('{"intent":"sale...')\n#1 C:\\UniServerZ\\www\\PayPal\\vendor\\paypal\\rest-api-sdk-php\\lib\\PayPal\\Common\\PayPalResourceModel.php(103): PayPal\\Transport\\PayPalRestCall->execute(Array, '/v1/payments/pa...', 'POST', '{"intent":"sale...', NULL)\n#2 C:\\UniServerZ\\www\\PayPal\\vendor\\paypal\\rest-api-sdk-php\\lib\\PayPal\\Api\\Payment.php(424): PayPal\\Common\\PayPalResourceModel::executeCall('/v1/payments/pa...', 'POST', '{"intent":"sale...', NULL, Object(PayPal\\Rest\\ApiContext), NULL)\n#3 C:\\UniServerZ\\www\\PayPal\\member\\payment.php(48): PayPal\\Api\\Payment->create(Object(PayPal\\Rest\\ApiContext))\n#4 {mai in C:\\UniServerZ\\www\\PayPal\\vendor\\paypal\\rest-api-sdk-php\\lib\\PayPal\\Core\\PayPalHttpConnection.php on line 176, referer: http://localhost:1313/PayPal/

This is the code:

<?php

use PayPal\Api\Payer;
use PayPal\Api\Details;
use PayPal\Api\Amount;
use PayPal\Api\Transaction;
use PayPal\Api\Payment;
use PayPal\Api\RedirectUrls;

require '../scr/start.php';

$payer = new Payer();
$details = new Details();
$amount = new Amount();
$transaction = new Transaction();
$payment = new Payment();
$redirectUrls = new RedirectUrls();

// Payer
$payer->setPaymentMethod('paypal');

// Details
$details->setShipping('2.00')
    ->setTax('0.00')
    ->setSubtotal('20.00'); //feed for membership

// Amount
$amount->setCurrency('CLP')
    ->setTotal('22.00') // Shipping + Tax + Subtotal + Everything else you need to charge
    ->setDetails($details);

// Transaction
$transaction->setAmount($amount)
    ->setDescription('Membership');

$payment->setIntent('sale')
    ->setPayer($payer)
    ->setTransactions([$transaction]);

// Redirect URLs
$redirectUrls->setReturnUrl('http://localhost:1313/PayPal/PayPall/Pay.php?approved=true')
    ->setCancelUrl('http://localhost:1313/PayPal/PayPall/Pay.php?approved=false');

$payment->setRedirectUrls($redirectUrls);

try {

    $payment->create($api);

    // Generate and store hash
    // Prepare and execute transaction storage



} catch (PPConnectionException $e) {
    // Perhaps log an error
    header('Location: ../PayPall/error.php');

}

var_dump($payment->getLinks());

?>

Any orientation, question for improve this same question, comment, advice or request of clarification/more info about it, etc[...] than help to reach the solution of the problem would be much appreciated.

1
  • This sort of thing is the reason I developed my own PHP class library for PayPal years ago, and myself and many others (including PayPal integration reps) prefer it over the PayPal SDK. I'd take a look. You could be up and running within minutes. Commented Mar 9, 2015 at 0:31

1 Answer 1

2

Make this code change. PPConnectionException was renamed to PayPalConnectionException. You could also do $e->getData() to retrieve detailed exception message.

} catch (PayPalConnectionException $e) {
    echo $e->getData();
    // Perhaps log an error
    header('Location: ../PayPall/error.php');

}
Sign up to request clarification or add additional context in comments.

4 Comments

Can you please point us to the tutorial that you are following. We can make the fix there too, to remove any future issues.
sure, is in this specifical video youtube.com/watch?v=7Puxyk7cKvY but still have the error, your answer doesn't fix it Any other idea?, thanks in advance
Make sure you are also updating the use statement too. As in PayPal\Exception\PayPalConnectionException
it actually works for me also, thanks a lot, been battling this for hours, as Jaypatel said remmber to use use PayPal\Exception\PayPalConnectionException

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.