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

时间:2015-09-21 09:58:44

标签: c# sdk quickbooks qbxml

我已经完成了像这样的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。请告诉我出错的地方。

1 个答案:

答案 0 :(得分:0)

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

由于您的请求中包含连字符,因此它不是有效的XML(我猜测您是从插入破折号的地方复制/粘贴此内容):

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

删除连字符,然后重试。

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