Я следую учебнику о том, как использовать PayPal-PHP-SDK, и я застрял где-то с этой ошибкой в консоли:
[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/
ОБНОВИТЬ
Новое сообщение из журнала после попытки обновить имя функции:
[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/
Это код:
<?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());
?>
Будем весьма благодарны за любую направленность, вопрос об улучшении этого же вопроса, комментарий, совет или просьбу о разъяснении / дополнительной информации и т. Д., И т. Д., Которые помогут решить проблему.
Сделайте этот код изменения. PPConnectionException
был переименован в PayPalConnectionException
, Вы могли бы также сделать $e->getData()
получить подробное сообщение об исключении.
} catch (PayPalConnectionException $e) {
echo $e->getData();
// Perhaps log an error
header('Location: ../PayPall/error.php');
}
Других решений пока нет …