integration - QuickBooks在线接收付款添加

标签 integration quickbooks-online

我正在尝试从我的网络应用程序向 Quickbooks 在线添加付款。这是我发送的 xml:

          <?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+)

我只需将付款应用于发票即可。付款将始终为发票的全额。

有什么问题吗?

谢谢兰迪

最佳答案

qbXML 中标签的顺序很重要

因此,如果 Intuit 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>

然后你就会收到错误。

(请注意,当规范将其定义为位于 AppliedToTxnAdd 标记之前时,TxnDate 和 RefNumber 位于 AppliedToTxnAdd 标记之后)

它想告诉你什么:

The content of element type "ReceivePaymentAdd" must match "(CustomerRef,ARAccountRef?,TxnDate?,RefNumber?,TotalAmount?,PaymentMethodRef?,Memo?,DepositToAccountRef?,CreditCardTxnInfo?,(IsAutoApply|AppliedToTxnAdd+)

它是否期望按该顺序标记,而您以与预期不同的顺序发送它们。

如果你修复标签的顺序,它就会起作用。

我们有一些example qbXML requests在我们的 QuickBooks integration wiki guide如果有帮助的话。

关于integration - QuickBooks在线接收付款添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16453062/

相关文章:

facebook - 社交媒体链接

python - 如何在单个 Flask 应用程序中使用 Plotly-Dash 创建多个仪表板?

php - 快速手册 PHP API : Refresh OAuth 2 Token Failed

c# - 如何使用 C# 中的 QBO API v3 将付款应用于发票?

ruby-on-rails - rails 3 : Integrating QBO and QBD in rails 3. 2 应用程序

python - 集成依赖于两个数组的函数

django - 功能测试=集成测试?在django中

java - 将交易下载到 QuickBooks 中

java - 从 Java 调用 R - 比 RCaller 更快的替代方法

java - Quickbooks Online Rest API 报告 Java 错误