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

标签 php rest paypal

将多个项目发送到 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/

相关文章:

php - 如何在 Symfony 中将实体导出为 CSV?

php表显示来自mysql下拉选择的数据

java - Web 服务响应未随数据库交互更新

php - PayPal Express Checkout 始终显示用户 "This transaction has expired."页面,但没有 API 错误

php - 在 Paypal Express Checkout 订单完成后发送电子邮件

javascript - Controller 不向ajax返回数据

php - 我在哪里可以找到 CreateProcess 错误代码的详细信息?

Java Jersey 2 客户端和代理

c# - WCF REST 不异步处理

javascript - paypal自定义确认邮件