【问题标题】:can't create an invoice using JSON API (but XML works OK)无法使用 JSON API 创建发票(但 XML 工作正常)
【发布时间】:2015-11-26 14:13:59
【问题描述】:

我可以使用 XML V3 QBO API 创建新发票:

<Invoice xmlns="http://schema.intuit.com/finance/v3">
       <Line>
            <Description>Installation labor</Description>
            <Amount>420.00</Amount>
            <DetailType>SalesItemLineDetail</DetailType>
            <SalesItemLineDetail>
                <ItemRef>1</ItemRef>
            </SalesItemLineDetail>
        </Line>
      <CustomerRef>58</CustomerRef>
</Invoice>

但我无法使用 JSON API 执行相同的操作。 JSON 有效负载是:

{
  "Line": [
    {
      "Amount": 100.00,
      "DetailType": "SalesItemLineDetail",
      "SalesItemLineDetail": {
        "ItemRef": {
          "value": "1",
          "name": "Services"
        }
      }
    }
  ],
  "CustomerRef": {
    "value": "58"
  }
}

JSON 示例返回以下错误:

{"Fault":{"Error":[{"Message":"An application error has occurred while processing your request","Detail":"System Failure Error: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.","code":"10000"}],"type":"SystemFault"},"time":"2015-11-26T06:09:56.540-08:00"}

我正在使用 Intuit 的开发者控制台执行这两项操作。

谢谢

【问题讨论】:

    标签: json quickbooks intuit-partner-platform quickbooks-online intuit


    【解决方案1】:

    我不熟悉 Intuit 的开发人员控制台,但在您的 xml 中,您有一个名为“Invoice”的对象,它没有专门存在于 JSON 对象中,可能是:{"Invoice": {"Line":{...}}}

    【讨论】:

    • 谢谢,我尝试了你的建议,但不幸的是出现了同样的错误。
    【解决方案2】:

    测试 Invoice json 请求时,请在 API Explorer 中将 content-type 更改为 JSON

    【讨论】:

    • 已选择 JSON 内容类型。请注意,错误消息是 JSON 输出。对于 XML 内容类型的错误消息显示为 XML 输出。
    • 不,我的意思是将 content-type 标头字段的文本更改为 application/json。
    • 谢谢!我现在可以按预期创建新发票了。
    猜你喜欢
    • 2012-07-14
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多