对于那些有类似问题的人,我找到了一种解决方法并分享给其他人,如果他们愿意的话:
打开文件quickbook_sdk\QuickBooks\IPP\Service.php
找到如下函数protected function _query($Context, $realmID, $query)
替换以下代码
$return = $IPP->IDS($Context, $realmID, null, QuickBooks_IPP_IDS::OPTYPE_QUERY, urlencode($query));
与
$query = urlencode($query);
$query .= "&minorversion=4";
$return = $IPP->IDS($Context, $realmID, null, QuickBooks_IPP_IDS::OPTYPE_QUERY, $query);
注意:我正在查询项目,因此此解决方法可能仅在通过查询获取数据的情况下有用。
更新:
如果您想在线添加/更新项目类型为 NonInventory 的 QuickBooks,您需要在 quickbook_sdk/QuickBooks/IPP.php 文件中修改以下代码。
找到名为function _IDS_v3的函数并在该函数中找到以下条件
if ($optype == QuickBooks_IPP_IDS::OPTYPE_ADD or $optype == QuickBooks_IPP_IDS::OPTYPE_MOD)
{
$post = true;
$url = $this->baseURL() . '/company/' . $realm . '/' . strtolower($resource);
$xml = $xml_or_query;
}
替换为
if ($optype == QuickBooks_IPP_IDS::OPTYPE_ADD or $optype == QuickBooks_IPP_IDS::OPTYPE_MOD)
{
$post = true;
$url = $this->baseURL() . '/company/' . $realm . '/' . strtolower($resource);
$xml = $xml_or_query;
$url .= "?minorversion=4"; // this is the only addition
}