2016-09-13 9 views
0

PatchRequestを使用して作成した支払いに2番目のアイテムを追加しようとしていますが、それを把握できないようです。ここでPaypal Payments REST APIアイテムを追加するために支払いを更新する

が私のコードです:

$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を同じ結果で試してみました。

ご協力いただければ幸いです。

答えて

-1

同じエラーメッセージがありました。

問題は、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); 

これは私に役立ちました。

+0

ああそう、彼らは値として配列を期待しています。:) 今は魅力のように動作します。ありがとうございます。 –

関連する問題