2016-06-08 3 views
0

처음으로 paypallaravel에 통합하고 있습니다. 나는 아이템의 합계와 totaltax와 같은 세부 사항을 추가하려고하는데, 나는이 컨트롤러를 가지고있다. 거래에서 PayPal :: details()를 추가 할 때 Laravel Paypal 오류가 발생했습니다

$payer = PayPal::Payer(); 
$payer->setPaymentMethod('paypal'); 

$item1 = PayPal::item(); 
item1->setName('Item1 name') 
->setDescription('item1 description') 
->setCurrency('USD') 
->setQuantity(1) 
->setPrice(35); 

$item2 = PayPal::item(); 
$item2->setName('Item2 name') 
->setDescription('item2 description') 
->setCurrency('USD') 
->setQuantity(1) 
->setPrice(300); 

$itemList = PayPal::itemList(); 
$itemList->setItems(array($item1,$item2)); 

$details = PayPal::Details(); 
$details->setShipping(1); 
$details->setTax(10);  
$details->setSubtotal(17.5); 

$amount = PayPal::Amount(); 
$amount->setCurrency('USD'); 
$amount->setTotal(335) 
->setDetails($details); 

$transaction = PayPal::Transaction(); 
$transaction->setAmount($amount); 
$transaction->setItemList($itemList); 
$transaction->setDescription('What are you selling?'); 


$redirectUrls = PayPal:: RedirectUrls(); 
$redirectUrls->setReturnUrl(action('paypal_Controller\[email protected]')); 
$redirectUrls->setCancelUrl(action('paypal_Controller\[email protected]')); 


$payment = PayPal::Payment(); 
$payment->setIntent('sale'); 
$payment->setPayer($payer); 
$payment->setRedirectUrls($redirectUrls); 
$payment->setTransactions(array($transaction)); 

$response = $payment->create($this->_apiContext); 
$redirectUrl = $response->links[1]->href; 

return Redirect::to($redirectUrl); 

이 오류가있어 :

PayPalConnectionException in PayPalHttpConnection.php line 177: Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/payment .

을하지만 ->setDetails($details)을 제거 할 때, 그것은 작동하지 않습니다하지만 소계.

답변

0

저는 페이팔이 올바른 계산만을 허용한다는 것을 알아 냈습니다. totaltax를 추가하려면 항목 당 setTax()를 추가해야합니다.

$item1 = PayPal::item(); 
$item1->setName('Item1 Name') 
->setDescription('Item1 Description') 
->setCurrency('USD') 
->setQuantity('2') 
->setTax(2.0) 
->setPrice('350'); 

$item2 = PayPal::item(); 
$item2->setName('Item2 Name') 
->setDescription('Item2 Description') 
->setCurrency('USD') 
->setQuantity('1') 
->setTax(0) 
->setPrice('300'); 

나서 계산 = (2.0 * 2) + 세금 항목 2 = 0 totaltax = 4.0 항목 1 가격 = (350 * 2) + 가격 항목 2 = 300 = 1000 소계

$details = PayPal::details(); 
$details->setShipping('0'); 
$details->setTax(4.0);  
$details->setSubtotal('1000'); 
correct.item1 세금 있어야

$amount = PayPal::Amount(); 
$amount->setCurrency('USD'); 
$amount->setTotal(1004.0); 
$amount->setDetails($details); 

1004.0 그것이 사람을 도움이 될 것입니다 희망 =

운송 + totaltax + 소계. :)