2

コードで約 1000 個の在庫アイテムを作成した後、Square は突然エラーを返すようになりました。

返されたエラーは次のとおりです。

{"type":"bad_request","message":"'name' is required"}

コード例:

$postData = array(
  'id' => 'test_1433281486',
  'name' => 'test',
  'description' => 'test',
  'variations' => array(
    'id' => 'test_v1433281486',
    'name' => 'Regular',
    'price_money' => array(
      'currency_code' => 'USD',
      'amount' => '19800',
    ),
  ),
);
$json = json_encode($postData);

$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $access_token, 'Content-Type: application/json', 'Accept: application/json'));
curl_setopt($curl, CURLOPT_URL, "https://connect.squareup.com/v1/me/items");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLINFO_HEADER_OUT, TRUE);
curl_setopt($curl, CURLOPT_VERBOSE, TRUE);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
$json = curl_exec($curl);
curl_close($curl);

json_encoded 文字列は次のとおりです。

{
  "id":"test_1433281486",
  "name":"test",
  "description":"test",
  "variations": {
    "id":"test_v1433281486",
    "name":"Regular",
    "price_money": {
      "currency_code":"USD",
      "amount":"19800"
    }
  }
}

コードを使用して単純なアイテムの作成を行うために知っていることはすべて試しましたが、機能しなくなりました。常に「名前」が必要というメッセージを返します。画像、料金、カテゴリなどを更新するコードはまだ完全に機能しますが、作成できません。

追加する新しい在庫アイテムがまだ数百あるので、これを機能させることはビジネスに不可欠です。

4

2 に答える 2

1

バリエーションは配列として渡す必要があります。JSON は次のようになります。

{
  "id":"test_1433281486",
  "name":"test",
  "description":"test",
  "variations": [{
    "id":"test_v1433281486",
    "name":"Regular",
    "price_money": {
      "currency_code":"USD",
      "amount":"19800"
    }
  }]
}

ご報告ありがとうございます!バリエーションが配列として渡されない場合、適切なメッセージを送信するようにエラー メッセージを更新します。

于 2015-06-03T21:56:20.150 に答える