2017-05-24 43 views
0

我試圖添加一個使用默認工作模板的發票。但是,當我將Other1和Other2添加到它返回的XML時:PHP Quickbooks SDK - AddInvoice XML問題

處理的錯誤:0x80040400:QuickBooks解析提供的XML文本流時發現錯誤。 (handler返回:)

這裏是我通過發送XML生成錯誤:

<?xml version="1.0" encoding="utf-8"?> 
<?qbxml version="2.0"?> 
<QBXML> 
    <QBXMLMsgsRq onError="stopOnError"> 
      <InvoiceAddRq> 
        <InvoiceAdd> 
         <CustomerRef> 
           <ListID>{customer_id}</ListID> 
         </CustomerRef> 
         <TxnDate>'.date('Y-m-d').'</TxnDate> 
         <RefNumber>'.$ID.'</RefNumber>   
         <Memo>Generated via Sys</Memo> 
         <InvoiceLineAdd> 
           <ItemRef> 
            <FullName>Purchase</FullName> 
           </ItemRef> 
           <Desc>Rental of 3 Days</Desc> 
           <Quantity>3</Quantity> 
           <Rate>200</Rate> 
           <Other1 >STRTYPE</Other1> 
           <Other2 >STRTYPE</Other2> 
         </InvoiceLineAdd> 

        </InvoiceAdd> 
      </InvoiceAddRq> 
    </QBXMLMsgsRq> 
</QBXML> 

不管我投入其他1和其它2這是行不通的。但第二個我刪除它們,然後它創建發票沒有問題。 (IM使用的是Mac開發和團隊觀衆進行測試,那麼你的任何機會知道Mac的一個XML驗證的?)

回答

0

如果你看一下QuickBooks的OSR:

你會看到Other1Other2字段之前,不支持qbXML 6.0版本:

enter image description here

而你使用的版本:

<?qbxml version="2.0"?>

更改您正在使用的版本。

另外,下載一個免費的VM工具,並將Windows安裝到您的Mac上的虛擬機中。然後安裝QuickBooks SDK。然後,您將可以訪問XML Validator工具,該工具可以告訴您此類情況下的確切情況。

+0

太棒了,非常感謝。這樣一個簡單的修復! – ChrisF