2017-01-15 4 views
0

그래서 내 사이트에 페이팔 결제를 통합하려고합니다.Paypal PHP SDK 오류

페이팔에서 바로 페이팔 버튼 양식을 통합하려했지만 문제가 있습니다. 요소를 쉽게 검사하고 price 입력을 변경하여 제품 가격을 변경할 수 있습니다.

필자는 작곡가를 통해 페이팔 PHP SDK를 발견했습니다. 내가 갖고있는 문제는 사용자가 제품 비용을 지불하기를 원할 때입니다.

작성 지불 방법을 복사하여 붙여 넣으면 here입니다. 그러나 나는 점점 오류 해요 :

Notice: Undefined variable: apiContext in C:\xampp\htdocs\paypal\index.php on line 62 

Fatal error: Class 'ResultPrinter' not found in C:\xampp\htdocs\paypal\index.php on line 64 

나는이 변수를 초기화하지 않았기 때문에 나는이 오류를 받고 있어요 알고있다. 나는 그것을 어디에서 만들어야하고이 변수가 포함되어야 하는지를 모른다. 누구든지 완전히 이것을 통합하는 방법을 알고 있습니까?

도움을 주시면 대단히 감사하겠습니다. 고마워요!

이 내 전체 PHP 코드입니다 : 당신이 $apiContext을 정의되지 않은 것 같은

<?php 

require 'vendor/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; 

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

$item1 = new Item(); 
$item1->setName('Ground Coffee 40 oz') 
    ->setCurrency('USD') 
    ->setQuantity(1) 
    ->setSku("123123") // Similar to `item_number` in Classic API 
    ->setPrice(7.5); 
$item2 = new Item(); 
$item2->setName('Granola bars') 
    ->setCurrency('USD') 
    ->setQuantity(5) 
    ->setSku("321321") // Similar to `item_number` in Classic API 
    ->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()); 

//I changed the base url and the return url's to mine. 
$baseUrl = "http://www.localhost/paypal"; 
$redirectUrls = new RedirectUrls(); 
$redirectUrls->setReturnUrl("$baseUrl/ExecutePayment.php?success=true") 
    ->setCancelUrl("$baseUrl/ExecutePayment.php?success=false"); 

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

$request = clone $payment; 

try { 
    $payment->create($apiContext); 
} catch (Exception $ex) { 
    ResultPrinter::printError("Created Payment Using PayPal. Please visit the URL to Approve.", "Payment", null, $request, $ex); 
    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; 

답변

0

것 같습니다. 나는이 SDK에 완전히 익숙하지 않아요하지만 당신이 그렇게 같은 일을 만들 수 있습니다 것 같습니다 : 당신은 $clientId 당신은 페이팔에서 얻은 $clientSecret 당신에 합격해야합니다

$apiContext = new \Paypal\Rest\ApiContext(
    new \PayPal\Auth\AuthTokenCredential(
     $clientId, 
     $clientSecret 
    ) 
); 

reference

.