【问题标题】:Multiple items with PayPal REST API使用 PayPal REST API 的多个项目
【发布时间】:2015-08-01 16:36:36
【问题描述】:

我有一个动态订单表单/购物车,它通过 ajax 将 Json 发送到 PHP,然后通过 PayPal rest api 进行处理。用户可以一次购买多个产品。

我基本上克隆了这个例子:http://paypal.github.io/PayPal-PHP-SDK/sample/doc/payments/CreatePaymentUsingPayPal.html,然后我让它处理硬编码的项目/变量。

一些PHP:

$data = json_decode(file_get_contents('php://input'), true);

$items = array();
$arr_length = count($data);
for ($i=0;$i<$arr_length;$i++) {
   $item[$i] = new Item();
   $item[$i]->setName($data[$i]['productName'])
                 ->setCurrency($data[$i]['currency'])
                 ->setQuantity($data[$i]['quantity'])
                 ->setPrice($data[$i]['price'])
                 ->setSku(uniqid());

    $items[] = $item[$i];
}

$itemList = new ItemList();
$itemList->setItems($items);

json 是这样传递的:

$.ajax({
            url: "process.php",
            type: 'POST',
            data: jsonData,
            success: function(data){
              // location = data;
              console.log(data);
        },
        error:function(){
            $("#status").html('There is error while submit');
        }
        });

这是 var_dump($items); 的结果

<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalResourceModel.php</b> on line <b>45</b><br />
array(3) {
  [0]=>
  object(PayPal\Api\Item)#8 (1) {
    ["_propMap":"PayPal\Common\PayPalModel":private]=>
    array(5) {
      ["name"]=>
      string(15) "Product1"
      ["currency"]=>
      string(3) "EUR"
      ["quantity"]=>
      int(1)
      ["price"]=>
      string(2) "99"
      ["sku"]=>
      string(13) "555c79be1c489"
    }
  }
  [1]=>
  object(PayPal\Api\Item)#9 (1) {
    ["_propMap":"PayPal\Common\PayPalModel":private]=>
    array(5) {
      ["name"]=>
      string(15) "Product2"
      ["currency"]=>
      string(3) "EUR"
      ["quantity"]=>
      string(2) "21"
      ["price"]=>
      string(4) "2079"
      ["sku"]=>
      string(13) "555c79be1c4b3"
    }
  }
  [2]=>
  object(PayPal\Api\Item)#10 (1) {
    ["_propMap":"PayPal\Common\PayPalModel":private]=>
    array(5) {
      ["name"]=>
      string(15) "Product3"
      ["currency"]=>
      string(3) "EUR"
      ["quantity"]=>
      int(1)
      ["price"]=>
      string(2) "99"
      ["sku"]=>
      string(13) "555c79be1c4d2"
    }
  }
}

不知道问题出在哪里。当我转发实际的 $approvalUrl = $payment->getApprovalLink() 时,我进入了重定向循环。

【问题讨论】:

  • 您能否对 create() 方法返回的数据进行打印。我认为问题不在于输入,而在于您得到的响应。

标签: php json rest paypal


【解决方案1】:

为 foreach() 提供的参数无效 在\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalResourceModel.php 在第 45 行

当然不是正确的错误消息。

错误已经出现在结帐表单的 javascript 部分中。小计价格不正确,最终在 PayPal 方面没有正确总结。

【讨论】:

    猜你喜欢
    • 2014-05-30
    • 2016-11-01
    • 2015-12-11
    • 2013-08-06
    • 2014-06-08
    • 2016-11-25
    • 2015-07-19
    • 2013-08-03
    • 2011-04-30
    相关资源
    最近更新 更多