2015-04-23 4 views
0

У меня возникли проблемы с API-интерфейсом PHP Rest Payal PHP.PayPal Rest-API PHP - пустая страница

По какой-то причине он отображается как пустая страница и отображает информацию только через puTTY. Я понятия не имею, что происходит.

Вот мой сценарий:

<?php 
require __DIR__ . '/PayPal-PHP-SDK/autoload.php'; 
use PayPal\Api\Amount; 
use PayPal\Api\Details; 
use PayPal\Api\Item; 
use PayPal\Api\ItemList; 
use PayPal\Api\Payer; 
use PayPal\Api\Payment; 
use PayPal\Api\RedirectUrls; 
use PayPal\Api\Transaction; 
use PayPal\Rest\ApiContext; 
use PayPal\Auth\OAuthTokenCredential; 

$api = new ApiContext(
    new OAuthTokenCredential(
     'yes it is correct',  // ClientID 
     'correct '  // ClientSecret 
    ) 
); 
$api->setConfig([ 
'mode' => 'sandbox', 
'http.ConnectionTimeOut' => 30, 
'log.LogEnabled' => false, 
'log.FileName' => '', 
'log.LogLevel' => 'FINE', 
'validation.level' => 'log' 

]); 


$payer = new Payer(); 
$payer->setPaymentMethod("paypal"); 



$item1 = new Item(); 
$item1->setName('Ground Coffee 40 oz') 
    ->setCurrency('USD') 
    ->setQuantity(1) 
    ->setPrice(7.5); 
$item2 = new Item(); 
$item2->setName('Granola bars') 
    ->setCurrency('USD') 
    ->setQuantity(5) 
    ->setPrice(2); 

$itemList = new ItemList(); 
$itemList->setItems(array($item1, $item2)); 



$details = new Details(); 
$details->setShipping(1.2) 
    ->setTax(1.3) 
    ->setSubtotal(17.50); 

$amount = new Amount(); 
$amount->setCurrency("USD") 
    ->setTotal(20) 
    ->setDetails($details); 

$transaction = new Transaction(); 
$transaction->setAmount($amount) 
    ->setItemList($itemList) 
    ->setDescription("Payment description") 
    ->setInvoiceNumber(uniqid()); 




$redirectUrls = new RedirectUrls(); 
$redirectUrls->setReturnUrl("http://uplayeve.ml/PayPal/ExecutePayment.php?success=true") 
    ->setCancelUrl("http://uplayeve.ml/PayPal//ExecutePayment.php?success=false"); 

$payment = new Payment(); 
$payment->setIntent("sale") 
    ->setPayer($payer) 
    ->setRedirectUrls($redirectUrls) 
    ->setTransactions(array($transaction)); 

$request = clone $payment; 


try { 
    $payment->create($api); 
} catch (Exception $ex) { 
    echo 'Maybe an error or something'; 
    exit(1); 
} 

$approvalUrl = $payment->getApprovalLink(); 

ResultPrinter::printResult("Created Payment Using PayPal. Please visit the URL to Approve.", "Payment", "<a href='$approvalUrl' >$approvalUrl</a>", $request, $payment); 

return $payment; 
    ?> 

Также вот мой текущий phpinfo(): http://uplayeve.ml/PayPal/phpinfo.php

+0

- все ваши сообщения об ошибках включены? – dgig

+0

Да, это - он не работает через Интернет, он работает только с puTTy. У каждого другого PHP-файла у меня есть работы. –

+0

Попробуйте удалить ResultPrinter :: printResult из кода и посмотреть, работает ли он. Код только для образца, и я добавил этот комментарий только сейчас на все образцы страниц, чтобы удалить путаницу. Извиняюсь за это. –

ответ

0

Пустой Page, как правило, в PHP означает, что-то бросил ошибку, но ваша отчетность не включена. Вы можете легко включить это, добавив эти две строки вверху.

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

Это должно потенциально напечатать ошибку сейчас. Кроме того, есть несколько вещей, которые вы должны отметить.

  1. ResultPrinter - образец только кода. Пожалуйста, не обращайте на это внимания и удалите это из своего кода. Это может вызвать ошибку.

  2. Если по какой-либо причине вы хотите поймать и прочитать правильное исключение, добавьте этот метод улова, как показано ниже.

    try { 
        $payment->create($api); 
    } catch (\PayPal\Exception\PayPalConnectionException $ex) { 
        echo $ex->getData(); 
    } 
    

Btw, мы добавляем все больше и больше образцов, вики-страницы, исходные документы и т.д. на http://paypal.github.io/PayPal-PHP-SDK/ позволяет разработчикам интегрировать с REST API быстрее.

+0

Примечание: неопределенная переменная: creditCard в /var/www/PayPal/payment.php в строке 89 Неустранимая ошибка: вызов функции-члена create() для не-объекта в /var/www/PayPal/payment.php on line 89 –

+0

Привет, Харун, я обновил блок catch try. Я имел в виду добавить блок catch для 'PayPalConnectionException', который даст вам подробное сообщение в' $ ex-> getData() ' –

+0

Привет, спасибо за это! Итак, что мне нужно для обновления кода, который заставит его работать? –

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