如何在c#中使用qbxml和qbsdk13修改quickbooks中的发票

本文关键字:quickbooks qbsdk13 修改 qbxml | 更新日期: 2023-09-27 18:13:54

我已经做了一个像这样的InvoiceModquery

<?xml version="1.0" ?> 
  <?qbxml version="6.0"?> 
 <QBXML>
 <QBXMLMsgsRq onError="stopOnError">
 <InvoiceModRq requestID="1">
 <InvoiceMod>
  <TxnID>79-1442638826</TxnID> 
  <EditSequence>1442638826</EditSequence> 
 <CustomerRef>
  <ListID>80000004-1442638803</ListID> 
  <FullName>Chris Evans</FullName> 
  </CustomerRef>
  <TxnDate>2015-09-19</TxnDate> 
  <RefNumber>5461</RefNumber> 
 <InvoiceLineMod>
 <ItemRef>
  <ListID>8000000A-1442469770</ListID> 
  <FullName>Item 1</FullName> 
  </ItemRef>
  <Quantity>1</Quantity> 
  <Rate>100.00</Rate> 
  </InvoiceLineMod>
  <InvoiceLineMod /> 
 <InvoiceLineMod>
 <ItemRef>
  <ListID>8000000B-1442469788</ListID> 
  <FullName>Item 2</FullName> 
  </ItemRef>
  <Quantity>1</Quantity> 
  <Rate>200.00</Rate> 
  </InvoiceLineMod>
  </InvoiceMod>
  </InvoiceModRq>
  </QBXMLMsgsRq>
  </QBXML>

当我将此请求发送到sdk时,我得到一个错误,说quickbooks无法解析提供的xml。

如何在c#中使用qbxml和qbsdk13修改quickbooks中的发票

对于初学者,您需要为QuickBooks提供有效的XML来处理它。您的请求不是有效的XML。

它不是有效的XML,因为你在你的请求中有连字符(我猜你从某个地方复制/粘贴了这个,把破折号):

-<QBXML>
    -<QBXMLMsgsRq onError="stopOnError">
        -<InvoiceModRq requestID="1">

删除连字符,然后重试。

您还应该考虑将XML复制/粘贴到在线找到的任何XML Validator工具中,因为这样会立即显示错误。