将多个项目发送到 paypal rest api 的正确方法是什么?我已经通读了文档和示例,据我所知:
声明交易
->添加交易详情
声明新的 ItemList
循环订单
->为每个订单声明一个新项目
->添加项目详细信息
结束循环
将项目添加到项目列表
将 ItemList 添加到交易
添加到交易
这是我一直在使用的代码,但我遇到了常见的 paypal 重定向错误,这是付款不正确时的标准错误。
foreach ($orders as $unitcost)
{
$totalamount = $totalamount + ($unitcost['price'] * $unitcost['quantity']);
}
$transaction = new Transaction();
$transaction->setamount($totalamount);
$transaction->setDescription('Order from Shop');
$itemList = new ItemList();
foreach($orders as $unpaid)
{
$itemid = $unpaid['itemid'];
$stmt = $db->prepare("SELECT name FROM `items` WHERE id = ?");
$stmt->bindValue(1, $itemid);
$stmt->execute();
$name = $stmt->fetchColumn();
$items = new Item();
$items->setQuantity('1');
$items->setName($name);
$items->setPrice($unpaid['price']);
$items->setCurrency($currency);
}
$itemList->setItems(array($items));
$transaction->setItemList($itemList);
我可以使用 amount 和 amountdetails 类成功发送单个项目,它只是添加了我正在努力处理的多个项目。
最佳答案
知道了!
$i =0;
foreach($orders as $unpaid)
{
$itemid = $unpaid['itemid'];
$stmt = $db->prepare("SELECT name FROM `items` WHERE id = ?");
$stmt->bindValue(1, $itemid);
$stmt->execute();
$name = $stmt->fetchColumn();
$items[$i] = new Item();
$items[$i]->setQuantity($unitcost['quantity'])->setName($name)->setPrice($unpaid['price'])->setCurrency($currency);
$i++;
}
$itemList = new ItemList();
$itemList->setItems($items);
$transaction->setItemList($itemList);
$transaction->setamount($amount)
;
关于php - 在 PHP 中将多个项目发送到 paypal rest api 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23195952/