intuit-partner-platform - QBO API v3 .NET SDK 中的特殊字符问题

标签 intuit-partner-platform quickbooks-online

我正在使用 .NET SDK 从另一个接受 UTF-8 数据编码的系统导入客户和交易,但在处理特殊字符时遇到了很多麻烦。是否有 (a) 需要转义哪些字符(如撇号)和 (b) QBO 中不允许使用哪些字符(如冒号)的完整列表?我在在线文档中所能找到的只是“使用反斜杠来转义撇号等特殊字符”。好的,那么与号、长破折号、短破折号、重音符号、锐音符号呢……您明白了。

此问题会影响查询和插入,从而导致各种问题。例如,如果我们按姓名查询客户,并且查询失败(可能是由于无效字符),我们尝试将客户插入到 QBO 中,这当然也会失败,因为客户存在或无效字符。确实,我们通常可以确定查询失败是由于字符错误还是​​记录不存在,但我们需要一个设计时解决方案。有什么建议吗?

最佳答案

如果您使用查询端点,请对查询参数进行 URL 编码。

对于前 -

对于以下查询

select * from Customer where DisplayName='Aülleünte'

URL 请求将是

https://quickbooks.api.intuit.com/v3/company/<relamId>/query?query=select+*+from+Customer+where+DisplayName%3D%27A%C3%BClle%C3%BCnte%27

PN - 某些 QBO 文本字段(例如 - 客户窗口的“描述/注释”)允许输入作为查询响应的一部分返回的控制字符。由于 XML 不支持其中一些字符,因此对象反序列化失败/显示警告。 您应该从 UI 中删除这些字符,或者需要在客户端代码中使用一些 lib/regex 以编程方式删除这些字符。理想情况下,它应该在服务器端处理。

QBO Global UI 当然支持 UTF-8 编码。但看起来,QBO US UI 在处理特殊字符时的行为有所不同。

例如 - 在 QBO US UI 中,如果您输入“你好吗”,那么保存后,它会转换为“”。

编辑

以下是可接受的字符列表:

•字母数字(A-Z、a-z、0-9)

•逗号 (,)

•点或句点 (.)

•问号(?)

•符号(@)

•与号 (&)

•感叹号(!)

•数字/井号 (#)

•单引号 (')

•波形符 (~)

•星号 (*)

•空格 ( )

•下划线(_)

•减号/连字符 (-)

•分号 (;)

•加号(+)

关于intuit-partner-platform - QBO API v3 .NET SDK 中的特殊字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27693578/

相关文章:

java - Intuit Anywhere Java 的 Hello World 发现客户不工作

c# - IPP .NET SDK for QuickBooks v3.0 创建发票错误 - 错误请求

.net - 在 QuickBooks Online 的行对象中的何处添加日记帐分录行详细信息

php - SQL - 查询失败*除非*字符串被分解成数字和字母然后连接起来

quickbooks-online - 使用 UTF-8 字符查询 QuickBook Online

java - 如何在不使用 OAuth 的情况下使用 QuickBooks Online 进行简单例份验证?

oauth - 如何调用intuit connect api(OAuth 1.0)?

intuit-partner-platform - AfCat 中的账户余额日期和交易发布日期

php - 如何使用 php api 访问 Quickbooks 发票行项目

python - QuickBooks 在传递值时解析提供的 XML 文本流时发现错误