0

我目前正在将应用程序与 Sage One API 集成,但遇到了问题。API 说发票行可能不是空的,但数据在那里。我究竟做错了什么?

这是我获取订单项的方法:

$lineItems = [];
    foreach ($invoiceItems as $invoiceItem){
      $lineItems[] =
        [
          "SelectionId" => "35175771",
          "TaxTypeId" => "6194291",
          "Description" => $invoiceItem->name,
          "Quantity" => $invoiceItem->duration,
          "UnitPriceExclusive" => $invoiceItem->total_excl_vat
        ];
    }

    foreach ($invoiceOtherItems as $invoiceOtherItem){
      $lineItems[] =
        [
           "SelectionId" => "35175771",
          "TaxTypeId" => "6194291",
          "Description" => $invoiceOtherItem->otherItem->name,
          "Quantity" => $invoiceOtherItem->quantity,
          "UnitPriceExclusive" => $invoiceOtherItem->total_excl_vat
        ];
    }

//dd($lineItems)

这是将发票项目发布到 API 的发布数据中的一部分(为简洁起见,此处删除了大多数项目):

$invoice = [
      "Date" => Carbon::now()->toDateString(),
      "Lines" => $lineItems,
      "DueDate" => "2021-08-29"
    ];

在我评论 dd 的地方执行转储和死亡会返回所有数组,但 API 告诉我需要行。我做错什么了吗?代码对我来说似乎是正确的,我在这件事上找不到任何帮助。

4

1 回答 1

0

对于可能遇到此问题的任何人,这是解决方案:

在您的回复中,像这样定义您的标题:

'headers' => ['Content-Type' => 'application/json', 'Accept' => 'application/json']

并且不要使用form_params,而是使用它:

'body' => json_encode($invoice)
于 2021-07-31T10:13:07.093 回答