使用 QBXML 添加多个请求

问题描述

我正在尝试使用对 Quickbooks Web 连接器的 XML 请求将同一客户的新客户和发票/付款批量添加到 QuickBooks,我对单独客户和发票/付款的请求如下所示。

客户创建

<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="' . $version . '"?>
<QBXML>
    <QBXMLMsgsRq onError="stopOnError">
        <CustomerAddRq requestID="' . $requestID . '">
            <CustomerAdd>
            <Name>'.$data['fullName'].'</Name>
            <CompanyName>'.$data['companyName'].'</CompanyName>
            <FirstName>'.$data['firstName'].'</FirstName>
            <LastName>'.$data['lastName'].'</LastName>
            <BillAddress>
                        <Addr1>'.$data['address1'].'</Addr1>
                        <Addr2>'.$data['address2'].'</Addr2>
                        <City>'.$data['city'].'</City>
                        <State>'.$data['state'].'</State>
                        <PostalCode>'.$data['zipcode'].'</PostalCode>
                        <Country>'.$data['country'].'</Country>
            </BillAddress>
            <ShipAddress>
                        <Addr1>'.$data['ship_address1'].'</Addr1>
                        <Addr2>'.$data['ship_address2'].'</Addr2>
                        <City>'.$data['ship_city'].'</City>
                        <State>'.$data['ship_state'].'</State>
                        <PostalCode>'.$data['ship_zipcode'].'</PostalCode>
                        <Country>'.$data['ship_country'].'</Country>
            </ShipAddress>
            <Phone>'.$data['phoneNumber'].'</Phone>
            <Email>'.$data['userEmail'].'</Email>
            <Contact>'.$data['userEmail'].'</Contact>
            </CustomerAdd>
        </CustomerAddRq>
    </QBXMLMsgsRq>
</QBXML>

发票申请

<?xml version="1.0" encoding="utf-8"?>
        <?qbxml version="'.$version.'"?>
        <QBXML>
          <QBXMLMsgsRq onError="stopOnError">
              <InvoiceAddRq requestID="'.$requestID.'">
              <InvoiceAdd >
                <CustomerRef>
                    <ListID>'.$data['Customer_ListID'].'</ListID>
                  <FullName>'.$data['Customer_FullName'].'</FullName>
                </CustomerRef>
                <TxnDate>'.date('Y-m-d',strtotime($data['TimeModified'])).'</TxnDate>
                <RefNumber>'.$data['RefNumber'].'</RefNumber>
            
            
                <BillAddress>
                  <Addr1>'.$data['Billing_Addr1'].'</Addr1>
                  <City>'.$data['Billing_City'].'</City>
                  <State>'.$data['Billing_State'].'</State>
                  <PostalCode>'.$data['Billing_PostalCode'].'</PostalCode>
                  <Country>'.$data['Billing_Country'].'</Country>
                </BillAddress>
              <DueDate>'.date('Y-m-d',strtotime($data['DueDate'])).'</DueDate>
               <ShipDate>'.date('Y-m-d',strtotime($data['DueDate'])).'</ShipDate>
               <InvoiceLineAdd>
                  <ItemRef>
                   <ListID>'.$item['Item_ListID'].'</ListID>
                    <FullName>'.$item['Item_FullName'].'</FullName>
                  </ItemRef>
                  <Desc>'.$item['Descrip'].'</Desc>
                  <Quantity>'.$item['Quantity'].'</Quantity>
                  <Rate>'.$item['Rate'].'</Rate>
                   <Amount>'.$amount.'</Amount>
                   
                   <SalesTaxCodeRef>
                        <FullName>'.$tax.'</FullName>
                    </SalesTaxCodeRef>
                </InvoiceLineAdd>
                </InvoiceAdd>
            </InvoiceAddRq>
        
          </QBXMLMsgsRq>
        </QBXML>

付款请求

<?xml version="1.0" encoding="utf-8"?>
    <?qbxml version="' . $version . '"?>
    <QBXML>
    <QBXMLMsgsRq onError="stopOnError">
    <ReceivePaymentAddRq requestID="' . $requestID . '">
    <ReceivePaymentAdd>
        <CustomerRef>
            <ListID>' . $indata['Customer_ListID'] . '</ListID>
            <FullName >' . $indata['Customer_FullName'] . '</FullName>
        </CustomerRef>
        <TxnDate>' . date('Y-m-d',strtotime($tdte)) . '</TxnDate>
        <RefNumber>' . $tID . '</RefNumber>
        <TotalAmount>' . ($balance) . '</TotalAmount>
    <PaymentMethodRef>
        <FullName>' . $pmethod . '</FullName>
    </PaymentMethodRef>
    <AppliedToTxnAdd>
    <TxnID>' . $indata['TxnID'] . '</TxnID>
        <PaymentAmount>' . $balance . '</PaymentAmount>
        </AppliedToTxnAdd>

        </ReceivePaymentAdd>
    </ReceivePaymentAddRq>
</QBXMLMsgsRq>
</QBXML>

这里我需要在单个/同步请求中同步和映射所有这些

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)