2015-09-01 2 views
0

Я пытаюсь использовать SDK для разработчиков Paypal для PHP в первый раз. Я следил за учебником по youtube, все хорошо, пока я не попытался выполнить его, и ответ, который я получил, был malformed_request. Запрос JSON не отображает запрос API. Как получить строгу и содержимое объекта JSON, чтобы я мог продолжить исследование? см. код ниже, ошибка возникает при попытке. Я развиваюсь в netbeans 7.4Json данные, как получить содержимое PHP

<?PHP 
//this is copied from this tutorial here on youtube https://www.youtube.com/watch?v=BD1dOWIABe0 
use PayPal\Api\Payer; 
use PayPal\Api\Item; 
use PayPal\Api\ItemList; 
use PayPal\Api\Details; 
use PayPal\Api\Amount; 
use PayPal\Api\Transaction; 
use PayPal\Api\RedirectUrls; 
use PayPal\Api\Payment; 
require '/../app/start.php'; 
$pTotal = 20.00; 
$shipping = 1.00; 
$Total = $pTotal + $shipping ; 
$payer = new Payer(); 
$payer->setPaymentMethod('paypal'); 
$item = new Item(); 
$item->setName("tieThisToSomething") 
->setCurrency('GBP') 
->setQuantity(1) 
->setPrice($pTotal); 
$itemList = new ItemList(); 
$itemList->setItems($item); //I have removed square brackets from here [] 
$details = new Details(); 
$details->setShipping($shipping) 
    ->setSubtotal($pTotal); 
$amount = new Amount(); 
$amount->setCurrency('GBP') 
    ->setTotal($Total) 
    ->setDetails($details); 
$transaction = new Transaction(); 
$transaction->setAmount($amount) 
    ->setItemList($itemList) 
    ->setDescription('Pay for all your santa fun') 
    ->setInvoiceNumber(uniqid());//perhaps tie this to order number? 

$redirectUrls = new RedirectUrls(); 
$redirectUrls->setCancelUrl(SITE_URL . '/pay.php?success=false') 
     ->setReturnUrl(SITE_URL . '/pay.php?success=true'); 

$payment = new Payment(); 
$payment->setPayer($payer) 
    ->setTransactions($transaction) 
    ->setIntent('sale') 
    ->setRedirectUrls($redirectUrls) ; //should [] be needed here? 

//try { 
// $payment->create($paypal); 
//} catch (Exception $e) { 
// die($e); 
//} 

try { 
    $payment->create($paypal); //Error happens here! 
} catch (PayPal\Exception\PayPalConnectionException $ex) { 
    echo $ex->getCode(); // Prints the Error Code 
    echo $ex->getData(); // Prints the detailed error message 
die($ex); 
} catch (Exception $ex) { 
die($ex); 
} 

$approvalUrl = $payment->getApprovalLink(); 
header("Location: {$approvalUrl}"); 
+0

Вы передаете '$ paypal', но это не используется как переменная? Кроме того, по его мнению, вызов 'setItems' должен передаваться массивом. –

+0

Я установил элементы как массив, используя [], но у меня получилось сообщение об ошибке «['expected] – user2247671

+0

Тогда похоже, что вы на PHP 5.3 или ниже? Предположим, что оберните элемент в массив, например. 'array ($ item)' вместо этого. –

ответ

0

Добавление журнала, безусловно, поможет вам разобраться в необработанных деталях сообщения. Вот ссылка для добавления конфигураций, чтобы включить ведение журнала:

https://github.com/paypal/PayPal-PHP-SDK/wiki/Adding-Configurations

Кроме того, есть много sample codes, которые могли бы помочь вам настроить свой код. Вот тот, который показывает создание "Payment with PayPal". Вы можете ввести их локально, следуя instructions here.

Смежные вопросы