尝试使用QB Web连接器实现consolibyte / quickbooks-php

时间:2019-02-21 11:35:39

标签: quickbooks

我尝试通过QB Web连接器实现example_web_connector 我将应用程序添加到QBWC,密码,通过身份验证,但QBWC收到错误消息“ 0x80045242:QBPOSXML:未知请求版本” 我必须在哪一边“观看”?

  1. QB POS 2013
  2. QBSDK 13.0
  3. QBC

    const oldestPilots = pilots => pilots.reduce((oldest, pilot) => { if (!oldest.length || oldest[0].years < pilot.years) return [pilot]; if (oldest[0].years == pilot.years) return [...oldest, pilot]; return oldest; }, [])

    1. 来自http://localhost/的index.php的示例代码

<?xml version="1.0"?>
    <QBWCXML>
    <AppName>QB</AppName>
    <AppID>IDNTS_POS_1</AppID>
    <AppURL>http://localhost/</AppURL>
    <AppDescription>QB</AppDescription>
    <AppSupport>http://localhost/dashboard/</AppSupport>
    <UserName>test</UserName>
    <OwnerID>{A91CC425-ABC4-4972-9FC6-D5F6B90F0472}</OwnerID>
    <FileID>{349C0857-7A5D-428c-B0B9-E0AC9377EE14}</FileID>
    <QBType>QBPOS</QBType>
    <Style>Document</Style>
</QBWCXML>

我也只安装了QB POS服务器工作站

1 个答案:

答案 0 :(得分:0)

您收到以下错误消息:

0x80045242: QBPOSXML: Unknown request version

因为您正在发送错误版本的请求。这些请求:

$xml = '<?xml version="1.0" encoding="utf-8"?>
    <?qbxml version="2.0"?>
    <QBXML>
        <QBXMLMsgsRq onError="stopOnError">
            <CustomerAddRq requestID="' . $requestID . '">
                <CustomerAdd>

适用于QuickBooks Pro / Premier / Enterprise。它们根本不是不是 QuickBooks 销售点请求。 QuickBooks销售点是与QuickBooks Pro / Premier / Enterprise不同的产品系列。

您正在使用的库:

有一个专门针对QuickBooks销售点的示例:

您可以看到请求的结构不同(并且具有不同的版本和XML标头):

// We're just testing, so we'll just use a static test request:
$xml = '
    <?xml version="1.0" encoding="utf-8"?>
    <?qbposxml version="3.0"?>
    <QBPOSXML>
        <QBPOSXMLMsgsRq onError="stopOnError">
            <CustomerAddRq>

您还可以在此处查看说明这些请求的文档:

https://developer.intuit.com/app/developer/qbdesktop/docs/get-started/get-started-with-the-quickbooks-pos-sdk#download-and-install-the-quickbooks-pos-sdk