在PHP中将多个项目发送到paypal rest api的正确方法

时间:2014-04-21 10:54:29

标签: php rest paypal

将多个项目发送到paypal rest api的正确方法是什么?我已经阅读了文档和示例,据我所知:

声明交易

- >添加交易明细

声明New ItemList

循环订单

- >为每个订单声明一个新项目

- >添加商品详情

结束循环

将项目添加到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类成功发送单个项目,它只是添加了我正在努力的多个项目。

1 个答案:

答案 0 :(得分:2)

知道了!

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