2013-05-09 78 views
2

我想從我的網絡應用程序在線添加快速支付。這是我送的xml:快速書籍在線recievepaymentadd

  <?xml version="1.0" encoding="utf-8"?> 
      <?qbxml version="6.0"?> 
      <QBXML> 
       <SignonMsgsRq> 
         <SignonTicketRq> 
          <ClientDateTime>2013-05-09T01:37:58</ClientDateTime> 
          <SessionTicket>V1-115-Q04ffswegvh9uzxaw8qrud:689712285</SessionTicket> 
          <Language>English</Language> 
          <AppID>688664435</AppID> 
          <AppVer>1</AppVer> 
         </SignonTicketRq> 
       </SignonMsgsRq> 
       <QBXMLMsgsRq onError="stopOnError"> 
         <ReceivePaymentAddRq> 
          <ReceivePaymentAdd defMacro="MACROTYPE"> <!-- required --> 
            <CustomerRef> <!-- required --> 
             <ListID >5</ListID> <!-- optional --> 
            </CustomerRef> 
            <ARAccountRef> 
             <FullName>Accounts Receivable:Customer Receivables</FullName> 
            </ARAccountRef> 
            <AppliedToTxnAdd> <!-- optional, may repeat --> 
             <TxnID useMacro="MACROTYPE" >143</TxnID> <!-- required --> 
            </AppliedToTxnAdd> 
            <TxnDate >2013-05-09</TxnDate> 
            <RefNumber >123</RefNumber> 
          </ReceivePaymentAdd> 
         </ReceivePaymentAddRq> 
       </QBXMLMsgsRq> 
      </QBXML> 

我得到一個錯誤說:

SAX parser encountered an error parsing request file. 
Exception from other package: 
org.xml.sax.SAXParseException: The content of element type "ReceivePaymentAdd" must match "(CustomerRef,ARAccountRef?,TxnDate?,RefNumber?,TotalAmount?,PaymentMethodRef?,Memo?,DepositToAccountRef?,CreditCardTxnInfo?,(IsAutoApply|AppliedToTxnAdd+) 

我只需要支付應用到發票。付款將始終爲發票的全部金額。

任何想法是什麼錯?

感謝蘭迪

+0

這是一個完全有效的編程API問題,我不知道爲什麼人們投票給你。 – 2013-05-09 03:49:48

回答

2

的標籤qbXML順序重要

因此,如果忒OSR引用您顯示標籤的正確順序是:

<CustomerRef> 
    <ListID>IDTYPE</ListID> 
</CustomerRef> 
<ARAccountRef> 
    <FullName>STRTYPE</FullName> 
</ARAccountRef> 
<TxnDate>DATETYPE</TxnDate> 
<RefNumber>STRTYPE</RefNumber> 
... 
<AppliedToTxnAdd> ... 

你,而不是在這個順序發送代碼

<CustomerRef> 
    <ListID >5</ListID> 
</CustomerRef> 
<ARAccountRef> 
    <FullName>Accounts Receivable:Customer Receivables</FullName> 
</ARAccountRef> 
<AppliedToTxnAdd> 
    <TxnID useMacro="MACROTYPE" >143</TxnID> 
</AppliedToTxnAdd> 
<TxnDate >2013-05-09</TxnDate> 
<RefNumber >123</RefNumber> 

然後你會得到錯誤。

(注意你有TxnDate和的AppliedToTxnAdd標籤,當該規範將其定義爲未來前AppliedToTxnAdd標籤後RefNumber

什麼它試圖在這裏告訴你:

元素類型「ReceivePaymentAdd」的內容必須匹配 「(CustomerRef,ARAccountRef?,TxnDate?,RefNumber?,TotalAmount ?, PaymentMethodRef?,Memo?,DepositToAccountRef?,CreditCardTxnInfo ?,(IsAutoApply | AppliedToTxnAdd +)

它是否按照該順序預期標籤,並且您以不同於預期的順序發送了它們。

如果您修復標籤的順序,它將起作用。

如果有幫助,我們在QuickBooks integration wiki guide上有一些example qbXML requests

+0

謝謝你的工作 – rstewart 2013-05-09 13:33:07