2013-05-09 76 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