从数据库动态创建的 PayPal SDK (PHP) 项目
Posted
技术标签:
【中文标题】从数据库动态创建的 PayPal SDK (PHP) 项目【英文标题】:PayPal SDK (PHP) items creating dynamically from database 【发布时间】:2017-08-05 21:45:10 【问题描述】:我正在使用 PayPal SDK (php)。我正在尝试从数据库动态创建项目。所有计算将由动态完成。但我失败了。谁能帮我?这里代码:
$item_1 = new Item();
$item_1->setName('Item 1') /** item name **/
->setCurrency('USD')
->setQuantity(1)
->setPrice($request->get('amount')); /** unit price **/
$item_list = new ItemList();
$item_list->setItems(array($item_1));
$amount = new Amount();
$amount->setCurrency('USD')
->setTotal($request->get('amount'));
$transaction = new Transaction();
$transaction->setAmount($amount)
->setItemList($item_list)
->setDescription('Your transaction description')
【问题讨论】:
【参考方案1】:$order_subtotal = $order->invoice->sub_total;
$ship_tax = 0;
$ship_cost = 0;
$shipping_discount = $order->invoice->discount;
$total = $order_subtotal + $ship_tax + $ship_cost - $shipping_discount;
$items = [];
foreach($order->invoice->products as $product)
$item = new Item();
$item->setName($product->name)
->setPrice($product->price)
->setCurrency('USD')
->setQuantity($product->qty);
$items[] = $item;
$itemList = new ItemList();
$itemList->setItems($items);
$details = new Details();
$details->setSubtotal($order_subtotal)
->setTax($ship_tax)
->setShipping($ship_cost)
->setShippingDiscount(- $shipping_discount);
$amount = new Amount();
$amount->setCurrency('USD')
->setDetails($details)
->setTotal($total);
【讨论】:
【参考方案2】:$order_discount = $order->invoice->discount;
$order_subtotal = $order->invoice->sub_total;
$order_grandtotal = $order->invoice->grand_total;
$i = 1;
$order_items = array();
foreach ($order->invoice->products as $product)
$order_items[$i] = new Item();
$order_items[$i]->setName($product->name)
->setCurrency('USD')
->setQuantity($product->qty)
->setPrice($product->price);
$i++;
if ($order->order_discount > 0)
$order_items[$i] = new Item();
$order_items[$i]->setName('Discount')
->setCurrency('USD')
->setQuantity(1)
->setPrice('-' . $order_discount);
$item_list = new ItemList();
$item_list->setItems($order_items);
$amount_details = new Details();
$amount_details->setSubtotal($order_subtotal);
$amount = new Amount();
$amount->setCurrency('USD')
->setDetails($amount_details)
->setTotal($order_grandtotal);
$transaction = new Transaction();
$transaction->setAmount($amount)
->setItemList($item_list)
->setDescription('Your transaction description')
->setInvoiceNumber($order->invoice->invoice_no);
【讨论】:
但问题是:PayPalHttpConnection.php 第 154 行中的 PayPalConnectionException:访问api.sandbox.paypal.com/v1/payments/payment 时获得 Http 响应代码 400。以上是关于从数据库动态创建的 PayPal SDK (PHP) 项目的主要内容,如果未能解决你的问题,请参考以下文章
使用 PayPal-PHP-SDK 进行第三方支付的 Paypal 沙盒测试
PayPal PHP SDK - 如何通过 PayPal 传递自定义变量?
发票 PayPal-PHP-SDK 中的 Paypal notify_url
用于 PayPal RESTful API 的 PHP SDK 上线错误