Paypal支付REST API更新支付添加项目


Paypal Payments REST API Updating Payment to Add Item

我正试图通过PatchRequest添加第二个项目到创建的支付,但似乎无法弄清楚。

下面是我的代码:
$patch = new 'PayPal'Api'Patch();
$patch->setOp('add');
$patch->setPath('/transactions/0/item_list/items/1');
$json = '
    {
        "description":"Testartikel",
        "price":"50.00",
        "currency":"EUR",
        "quantity":1
    }';
$data = json_decode($json);
$patch->setValue($data);
$patches[] = $patch;
$patchRequest = new 'PayPal'Api'PatchRequest();
$patchRequest->setPatches($patches);
$payment->update($patchRequest, $apiContext);

所以请求看起来像这样:

[{"op":"add","path":"/transactions/0/item_list/items/1","value":{"description":"Testartikel","price":"50.00","currency":"EUR","quantity":1}}]

我得到这个错误:

{"name":"MALFORMED_REQUEST","message":"MALFORMED_REQUEST","information_link":"https://developer.paypal.com/docs/api/#MALFORMED_REQUEST","debug_id":"682441321797"}

我猜路径/transactions/0/item_list/items/1可能是错误的,但我不知道什么是正确的。我已经尝试了/transactions/0/item_list/transactions/0/item_list/items与相同的结果。

任何帮助都将非常感激。

我有同样的错误消息。

问题是JSON周围缺少方括号。

正确的路径是'/transactions/0/item_list/items'。

$json = '
[
  {
    "description":"Testartikel",
    "price":"50.00",
    "currency":"EUR",
    "quantity":1
  }
]';
$patchAdd = new 'PayPal'Api'Patch();
$patchAdd->setOp('add')
    ->setPath('/transactions/0/item_list/items')
    ->setValue(json_decode($json));
$patchRequest = new 'PayPal'Api'PatchRequest();
$patchRequest->setPatches(array($patchAdd);