【问题标题】:Laravel Paypal error when adding PayPal::details() in transaction在交易中添加 PayPal::details() 时 Laravel Paypal 错误
【发布时间】:2016-10-08 03:37:57
【问题描述】:

第一次在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\paypalctr@getDone'));
$redirectUrls->setCancelUrl(action('paypal_Controller\paypalctr@getCancel'));


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

我收到了这个错误:

PayPalHttpConnection.php 第 177 行中的 PayPalConnectionException: 访问https://api.sandbox.paypal.com/v1/payments/payment时得到Http响应码400。

但是当我删除 ->setDetails($details) 时,它可以工作,但没有小计。

【问题讨论】:

    标签: laravel-5 paypal-sandbox paypal-rest-sdk


    【解决方案1】:

    我发现 Paypal 只接受正确的计算。 如果要添加总税,则需要为每个项目添加 ->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');
    

    那么计算一定是正确的。item1 tax =(2.0 * 2) + item2 tax = 0 totaltax = 4.0 item1 price = (350 * 2) + item2 price = 300 subtotal = 1000。

    $details = PayPal::details();
    $details->setShipping('0');
    $details->setTax(4.0);      
    $details->setSubtotal('1000');
    

    运费 + 总税 + 小计 = 1004.0

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

    希望它会帮助某人。 :)

    【讨论】:

      猜你喜欢
      • 2016-04-11
      • 2017-08-22
      • 1970-01-01
      • 2012-11-16
      • 2021-11-12
      • 1970-01-01
      • 2016-04-17
      • 2020-07-18
      • 2011-09-12
      相关资源
      最近更新 更多