Quickbooks PHP-qbXML映射TransactionRet(发票)与ItemServiceRet

Quickbooks PHP-qbXML映射TransactionRet(发票)与ItemServiceRet,php,xmlhttprequest,quickbooks,quickbooks-online,qbxml,Php,Xmlhttprequest,Quickbooks,Quickbooks Online,Qbxml,我正在开发一个基于QuickBooks发票将发票存储到本地数据库的例程 使用此qbXML请求: $xml ='<?xml version="1.0" encoding="utf-8"?> <?qbxml version="8.0"?> <QBXML> <QBXMLMsgsRq onError="stopOnError"> <InvoiceQueryRq request

我正在开发一个基于QuickBooks发票将发票存储到本地数据库的例程

使用此qbXML请求:

$xml ='<?xml version="1.0" encoding="utf-8"?>
        <?qbxml version="8.0"?>
        <QBXML>
          <QBXMLMsgsRq onError="stopOnError">
            <InvoiceQueryRq requestID="'.$requestID.'">
            </InvoiceQueryRq>
          </QBXMLMsgsRq>
        </QBXML>';
return $xml;
$xml='1!'
';
返回$xml;
我得到了我想要的结果,例如数据:

<InvoiceRet>
<TxnID>11-1428375941</TxnID>
<TimeCreated>2015-04-06T23:05:41-05:00</TimeCreated>
<TimeModified>2015-04-06T23:05:41-05:00</TimeModified>
<EditSequence>1428375941</EditSequence>
<TxnNumber>5</TxnNumber>
<CustomerRef>
    <ListID>8000005A-1424374192</ListID>
    <FullName>Fake</FullName>
</CustomerRef>
<ARAccountRef>
    <ListID>80000010-1424374182</ListID>
    <FullName>Accounts Receivable</FullName>
</ARAccountRef>
<TemplateRef>
    <ListID>8000000B-1424373504</ListID>
    <FullName>Time &amp; Expense Invoice</FullName>
</TemplateRef>
<TxnDate>2015-04-06</TxnDate>
<RefNumber>3</RefNumber>
<BillAddress>
    <Addr1>Fake </Addr1>
    <Addr2>Fake Address</Addr2>
    <City>Fake City</City>
    <State>ON</State>
    <PostalCode>123 ABC</PostalCode>
</BillAddress>
<BillAddressBlock>
    <Addr1>Fake Address</Addr1>
    <Addr2>Fake Address</Addr2>
    <Addr3>Fake Address</Addr3>
</BillAddressBlock>
<IsPending>false</IsPending>
<IsFinanceCharge>false</IsFinanceCharge>
<TermsRef>
    <ListID>80000006-1424373984</ListID>
    <FullName>Net 30</FullName>
</TermsRef>
<DueDate>2015-05-06</DueDate>
<ShipDate>2015-04-06</ShipDate>
<Subtotal>1299.00</Subtotal>
<SalesTaxPercentage>13.00</SalesTaxPercentage>
<SalesTaxTotal>168.87</SalesTaxTotal>
<AppliedAmount>0.00</AppliedAmount>
<BalanceRemaining>1467.87</BalanceRemaining>
<IsPaid>false</IsPaid>
<IsToBePrinted>true</IsToBePrinted>
<IsToBeEmailed>false</IsToBeEmailed>
<IsTaxIncluded>false</IsTaxIncluded>
<CustomerSalesTaxCodeRef>
    <ListID>80000006-1424373984</ListID>
    <FullName>H</FullName>
</CustomerSalesTaxCodeRef>

11-1428375941
2015-04-06T23:05:41-05:00
2015-04-06T23:05:41-05:00
1428375941
5.
8000005A-1424374192
伪造的

如果您参考QuickBooks OSR:

您将看到此选项:

true

根据以下说明:

此筛选器允许您从查询响应中忽略行项目以获取 一个较小的结果。默认值为false,因此行项目为 默认省略。将IncludeLineItems设置为true以包含行项目 如果你不介意得到更大的结果,请在回答中

因此,如果需要行项目,请将请求更改为:

$xml ='<?xml version="1.0" encoding="utf-8"?>
        <?qbxml version="8.0"?>
        <QBXML>
          <QBXMLMsgsRq onError="stopOnError">
            <InvoiceQueryRq requestID="'.$requestID.'">
              <IncludeLineItems>true</IncludeLineItems>
            </InvoiceQueryRq>
          </QBXMLMsgsRq>
        </QBXML>';
return $xml;
$xml='1!'
真的
';
返回$xml;
$xml ='<?xml version="1.0" encoding="utf-8"?>
        <?qbxml version="8.0"?>
        <QBXML>
          <QBXMLMsgsRq onError="stopOnError">
            <InvoiceQueryRq requestID="'.$requestID.'">
              <IncludeLineItems>true</IncludeLineItems>
            </InvoiceQueryRq>
          </QBXMLMsgsRq>
        </QBXML>';
return $xml;