quickbooks - Consolibyte QuickBooks PHP 库 - XML 验证器不工作
问题描述
我有以下 XML 请求来添加新的 Quickbooks 账单:
<?xml version="1.0" encoding="utf-8"?>
<?qbposxml version="3.0"?>
<QBPOSXML>
<QBPOSXMLMsgsRq onError="stopOnError">
<BillAddRq>
<BillAdd defMacro="MACROTYPE"> <!-- required -->
<VendorRef> <!-- required -->
<ListID>80012448-1569211475</ListID> <!-- optional -->
</VendorRef>
<TxnDate>2019-06-28</TxnDate> <!-- optional -->
<DueDate>2019-06-29</DueDate> <!-- optional -->
<RefNumber>Ref12345</RefNumber> <!-- optional -->
<Memo>Memo12345</Memo> <!-- optional -->
<ExternalGUID>ExternalGUID12345</ExternalGUID> <!-- optional -->
<ExpenseLineAdd defMacro="MACROTYPE"> <!-- optional, may repeat -->
<AccountRef> <!-- optional -->
<FullName>Casual Labor:Moving</FullName> <!-- optional -->
</AccountRef>
<Amount>99.99</Amount> <!-- optional -->
<Memo>VillageMemo12345</Memo> <!-- optional -->
</ExpenseLineAdd>
</BillAdd>
</BillAddRq>
</QBPOSXMLMsgsRq>
</QBPOSXML>
Web 连接器返回上述0x80040400: QuickBooks found an error when parsing the provided XML text stream.
错误。我在 Intuit 的支持论坛上关注了这篇文章,尝试使用内置的 XML 验证器。
当我通过验证器运行我的 XML 请求时,我收到以下错误:
如何解决上述验证器错误?此外,除了使用内置验证器之外,还有其他方法可以验证 QB XML 吗?
解决方案
您在验证器中做出的平台选择需要与您在 XML 中定位的平台选择相匹配。
您选择验证:
- QuickBooks(美国版)
但是您的 qbXML 用于:
<?qbposxml version="3.0"?> <QBPOSXML>
(QuickBooks 销售点)
由于您针对不是您的实际 qbXML 目标的东西进行验证,因此验证当然会失败。它对您选择的内容无效。
如果您正在为销售点进行开发,请针对销售点进行验证。
如果您正在为美国版的 QuickBooks 开发,那么为美国版的 QuickBooks 输入一些 qbXML 并进行验证。
推荐阅读
- artifactory - 如何在 JFrog CLI 搜索和下载命令中使用 --archive-entries 选项
- reactjs - React 不会理解烧瓶发送给它的图像
- asp.net-core - 如何为 serverAndClient 使用响应缓存
- javascript - Nuxt.js 无法使用 auth 模块启动
- javascript - lodsh 过滤器不适用于对象数组
- javascript - 视频聊天反应应用程序:未捕获(承诺中)类型错误:无法读取 null 的属性“附加”
- vue.js - Vuejs:如何实现响应式禁用日期选择器
- azure - Azure 部署问题:未处理的异常:无法加载文件或程序集“Microsoft.Azure.DocumentDB.Core”
- ios - eval 的脚本卡在 react native 版本 0.63.1 (iOS)
- office365 - 通过 APIS 获取我的 O365 订阅的计费详细信息(我没有 Azure 订阅)#Office 365