I'm using the paypal rest API, but I am getting an error. Here is my code:
function makePaymentUsingPayPal($total, $currency, $paymentDesc, $returnUrl, $cancelUrl) {
// set billing address
$addr = new Address();
$addr->setLine1('fh52 N Main ST');
$addr->setCity('Johnstownfhf');
$addr->setCountry_code('UK');
$addr->setPostal_code('35345');
$addr->setState('DF');
// set credit card information
$card = new CreditCard();
$card->setNumber('4111111111111111');
$card->setType('visa');
$card->setExpire_month('12');
$card->setExpire_year('2015');
$card->setCvv2('123');
$card->setFirst_name('dgdg');
$card->setLast_name('dgdgdShopper');
$card->setBilling_address($addr);
$fi = new FundingInstrument();
$fi->setCredit_card($card);
$payer = new Payer();
$payer->setPaymentMethod("paypal");
//$payer = new Payer();
//$payer->setPayment_method('credit_card');
//$payer->setFunding_instruments(array($fi));
// Specify the payment amount.
$amountDetails = new Details();
$amountDetails->setSubtotal('57.41');
$amountDetails->setTax('0.06');
$amountDetails->setShipping('0.06');
$amount = new Amount();
$amount->setCurrency('USD');
$amount->setTotal('5.47');
$amount->setDetails($amountDetails);
// ###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('sdgdfg This is the payment transaction description.');
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl($returnUrl);
$redirectUrls->setCancelUrl($cancelUrl);
$payment = new Payment();
$payment->setRedirectUrls($redirectUrls);
$payment->setIntent("buy");
$payment->setPayer($payer);
$payment->setTransactions(array($transaction));
//print_r($payment);exit;
$payment->create($apiContext);
// return $payment;
}
Everything works fine until I call $payment->create($apiContext);
Then it shows this error:
0 - Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/payment.
If you wrap your call in a try/catch block and catch the PPConnectionException, you can examine the data to see exactly what the error is:
// ...
try {
$response = $pp_payment->create();
} catch (PayPal\Exception\PPConnectionException $pce) {
// Don't spit out errors or use "exit" like this in production code
echo '<pre>';print_r(json_decode($pce->getData()));exit;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With