通过Webconnector在Quick book中修改客户

时间:2014-09-05 07:59:19

标签: php xml soap quickbooks intuit

我正在使用PHP API for QuickBook WebConnector在Sugar CRM和QuickBook Desktop之间同步数据。 这可以在https://github.com/consolibyte/quickbooks-php上找到。

我的SOAP请求代码更新客户如下。

function _quickbooks_customer_update_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale) {


$arr = mysql_fetch_assoc(mysql_query("SELECT * FROM my_customer_table WHERE id = " . (int) $ID));

$xml = '<?xml version="1.0" encoding="utf-8"?>
        <?qbxml version="2.0"?>
        <QBXML>
            <CustomerModRq>
                <CustomerMod>
                    <ListID>80000001-1409745864</ListID>
                    <EditSequence>1409745864</EditSequence>

                    <Name>' . $arr['name'] . '</Name>
                    <CompanyName>' . $arr['name'] . '</CompanyName>
                    <FirstName>' . $arr['fname'] . '</FirstName>
                    <LastName>' . $arr['lname'] . '</LastName>
                </CustomerMod>
            </CustomerModRq>
        </QBXML>';

return $xml;

}

但是当我点击Webconnector进行更新时,它会出错。 0x80040400:QuickBooks在解析提供的XML文本流时发现错误。

我想念XML中的一些内容,但我无法找到它。

请识别我并帮助我编写准确的XML以在WebConnector中更新客户

2 个答案:

答案 0 :(得分:1)

您应该参考QuickBooks OSR以获取qbXML参考。您还可以使用QuickBooks SDK附带的XML Validator工具来验证这些请求。

此请求的特殊问题是您缺少XML节点。正确的语法是:

<?xml version="1.0" encoding="utf-8"?>
        <?qbxml version="2.0"?>
        <QBXML>

            <!-- **Here is the XML tag you are missing** -->
            <QBXMLMsgsRq onError="stopOnError">

            <CustomerModRq>
                <CustomerMod>
                    <ListID>80000001-1409745864</ListID>
                    <EditSequence>1409745864</EditSequence>

                    <Name>' . $arr['name'] . '</Name>
                    <CompanyName>' . $arr['name'] . '</CompanyName>
                    <FirstName>' . $arr['fname'] . '</FirstName>
                    <LastName>' . $arr['lname'] . '</LastName>
                </CustomerMod>
            </CustomerModRq>

            </QBXMLMsgsRq>
        </QBXML>

答案 1 :(得分:0)

此外,您应该考虑使用较新的QBXML版本,以便获得最新的参考资料。

相关问题