Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PayPal Payments - HTTP Response code 400

I'm workin on PayPal Payments in PHP. Everything was fine until i got this error:

Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/payment.

It's thrown when I try to create method for my payment: $payment->create($api);

<?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;
use PayPal\Exception\PayPalConnectionException;

require '../src/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');

// Amount
$amount->setCurrency('GBP')
->setTotal('22.00')
->setDetails($details);

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


// Payment
$payment->setIntent('sale')
->setPayer($payer)
->setTransactions($transaction);

// Redirect urls
$redirectUrls->setReturnUrl($myReturnUrl)
->setCancelUrl($myCancelUrl);

$payment->setRedirectUrls($redirectUrls);

try {

$payment->create($api);


} catch (Exception $e) {
    echo $e->getMessage();
}

Why this is happening? How can I fix that? How eventually I can get more detailed exception message?

like image 280
Marcin Avatar asked Jun 23 '26 13:06

Marcin


1 Answers

// Amount
$amount->setCurrency('GBP')
->setTotal('22.00')
->setDetails($details);

And make sure also your paypal business account whats your primary currency in my case it worked fine with changing the value from 'GBP' to 'USA'

// Amount
$amount->setCurrency('USA')
->setTotal('22.00')
->setDetails($details);
like image 200
sami rehman Avatar answered Jun 26 '26 02:06

sami rehman



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!