PayPal-PHP-SDK使用异常[Http响应代码400] [英] Exception Using PayPal-PHP-SDK [Http response code 400]

查看:948
本文介绍了PayPal-PHP-SDK使用异常[Http响应代码400]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在跟踪有关如何使用PayPal-PHP-SDK的教程,但由于控制台中的此错误,我陷入了困境:

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/

更新

尝试更新函数名称后,日志中的新消息为:

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/

这是代码:

<?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.

推荐答案

进行此代码更改. PPConnectionException重命名为PayPalConnectionException.您也可以执行$e->getData()来检索详细的异常消息.

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');

}

这篇关于PayPal-PHP-SDK使用异常[Http响应代码400]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆