【问题标题】:Modify customer in Quick book through Webconnector通过 Webconnector 在 Quick book 中修改客户
【发布时间】:2014-09-05 07:59:18
【问题描述】:

我正在使用 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 中的客户

【问题讨论】:

    标签: php xml soap quickbooks intuit


    【解决方案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>
    

    【讨论】:

    • 非常感谢。我包含了验证节点,现在它可以成功运行了。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      相关资源
      最近更新 更多