【问题标题】:Is there a problem with my code or the API I am using?我的代码或我使用的 API 有问题吗?
【发布时间】:2019-12-05 19:11:27
【问题描述】:

我正在尝试向 API 提交项目,请求通过但返回时 API 返回的项目构造不正确。

代码编译并运行没有问题,不幸的是构造的项目不正确。 我正在使用的 API:https://www.clover.com/api_docs/#!/inventory/CreateItem

如果上述链接不起作用,请导航至库存 -> 物品 -> 创建库存物品。

我已经尝试过发送到服务器的内容,但我的问题在于 API 的 tags 参数。无论我将“标签”字段设置为什么,返回的项目都不会有标签字段。我还有一个 UI,我可以看到所有项目的属性。 “标签”始终为空。

这是我提供给 API 的内容:

{
    "name":"test_item_with_label",
    "sku":"1234",
    "code":"959",
    "price":1698,
    "tags":[
        {
            "id":"Z1JC35RHV6PFP", 
            "name":"Sewing",
            "showInReporting":false
        }
    ],
    "priceType":"FIXED",
    "defaultTaxRates":true,
    "hidden":false,
    "revenue":true
}

这是请求后项目的属性:

{
    "id": "FCMS6MSAFYK1E", 
    "hidden": false, 
    "name": "test_item_with_label", 
    "code": "959", 
    "sku": "1234", 
    "price": 1698, 
    "priceType": "FIXED", 
    "defaultTaxRates": true, 
    "isRevenue": true, 
    "modifiedTime": 1564272103000
}

我希望通过带有标签的 API 正确构建项目。

这是可供参考的标签。

  "elements": [ {
      "id": "Z1JC35RHV6PFP", 
      "name": "Sewing", 
      "showInReporting": false
    }, {
      "id": "STBVZXTVHDYK6", 
      "name": "Compass Industries", 
      "showInReporting": false
    }, {
      "id": "SSWR290EAK8RM", 
      "name": "Savor Jerky", 
      "showInReporting": false
    }, {
      "id": "GCENM7Y4RBJE2", 
      "name": "Triple K", 
      "showInReporting": false
    }, {
      "id": "E9H3YC70T4D6W", 
      "name": "Sabre/Security Equipment Co.", 
      "showInReporting": false
    }, {
      "id": "4ANVQMMFK7MNR", 
      "name": "Lansky Sharpeners", 
      "showInReporting": false
    }, {
      "id": "1H66V1ZK7Y84Y", 
      "name": "Nebo/ True Utility", 
      "showInReporting": false
    }, {
      "id": "0PZ5R8VV61QDJ", 
      "name": "Victorinox Swiss Army", 
      "showInReporting": false
    }]

【问题讨论】:

  • tags 是可扩展字段,您是否将其添加到扩展字段内容中?您是在使用他们的 GUI 还是以其他方式发送请求?
  • 因为你不是动态创建标签,你应该只是通过 id 来引用它们,所以值应该是一个简单的 id 数组,例如"tags":["Z1JC35RHV6PFP","1H66V1ZK7Y84Y","SSWR290EAK8RM"]
  • @RaulSauco 我是通过 Java 库“OkHttp”来做的。
  • @Andreas 您的方法导致:java.lang.RuntimeException:响应返回错误代码:400

标签: java clover-payment


【解决方案1】:

找到答案了!

把它留在这里,以防其他人在使用 Clover PoS API 时遇到这个问题。

基本上他们的 API 是错误的!它说您可以在文档中提供所有这些参数,但您首先必须创建项目,然后返回并通过 ID 使用正确的标签标记项目。

在这里找到答案:https://community.clover.com/questions/1822/can-somebody-tell-me-the-use-of-v3merchantsmidtag.html

【讨论】:

  • 如果您将链接添加到您在问题上直接找到信息的位置,这可能会很有用。
  • @RaulSauco 编辑它现在包含答案信息。
猜你喜欢
  • 1970-01-01
  • 2019-02-26
  • 2021-12-25
  • 1970-01-01
  • 2020-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多