Am使用Laravel 6。我正在尝试将PayPal支付网关集成到我的项目中。我遵循PayPal PHP Sdk的示例源代码。
我有沙盒个人&买方账户。
当我从PayPal复制代码时,支付和交易工作PHP支付示例。但每当我试图添加多个项目和subTotal时,它就会生成错误。
下面的代码:PayPal Sdk示例中的静态数据。
$item1 = new Item();
$item1->setName('Ground Coffee 40 oz')
->setCurrency('USD')
->setQuantity(1)
->setSku("22222") // Similar to `item_number` in Classic API
->setPrice(7.5);
$item2 = new Item();
$item2->setName('Granola bars')
->setCurrency('USD')
->setQuantity(5)
->setSku("852520") // Similar to `item_number` in Classic API
->setPrice(2);
$iteamArr = [$item1,$item2];
$itemList = new ItemList();
$itemList->setItems($iteamArr);
下面的默认示例付款详细信息:
以及What am try to make dynamic。
以下代码:
$details = new Details();
$details->setShipping(7.5)
->setTax(5.0)
->setSubtotal(17.50);
$amount = new Amount();
$amount->setCurrency("USD")
->setTotal(30)
->setDetails($details);
我的动态过程是:
for($loop=1;$loop<3;$loop++){
$item = new Item();
$itemInfo[]=$item->setName('Dynamic Name '.$loop)
->setCurrency('USD')
->setQuantity(1)
->setSku(rand(1111,9999).$loop) // Similar to `item_number` in Classic API
->setPrice(2);
}
根据我的动态代码,付款详细信息如下:
$details = new Details();
$details->setShipping(7.5)
->setTax(5.0)
->setSubtotal(4);
$amount = new Amount();
$amount->setCurrency("USD")
->setTotal(16.5)
->setDetails($details);
在这之后,我从PayPal得到回复返回
Got Http response code 400 when accessing
https://api.sandbox.paypal.com/v1/payments/payment.
注意:当我从那里克隆PayPal项目信息文档它成功工作。
我认为问题可能应该是->setTotal(16.5)
这条线也应该是动态的,因为总价格在结账车的基础上是动态的
我将给你举一个例子,我的paypal PaymentController的一部分代码:
$totalPayment = ($request->get('actual_participants') * $trip->price);
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$item = new Item();
$item->setName($trip->title) /** item name **/
->setCurrency($trip->currency->currency_type)
->setQuantity('1')
->setPrice($totalPayment); /** unit price **/
$itemList = new ItemList();
$itemList->setItems(array($item));
$amount = new Amount();
$amount->setCurrency($trip->currency->currency_type)
->setTotal($totalPayment);
11个月后,我认为你已经解决了这个问题,但我祝其他开发者好运,因为我理解贝宝集成的困难:(