.net - QBXML 错误:信用卡到期年份的 StatusCode 3020“无效日期”
问题描述
我正在使用 QBXML 的 QBFC .Net 包装器。我正在尝试从我的 .Net Winforms 应用程序中将客户添加到 Quickbooks,但我不断收到错误消息,说我的“信用卡到期年份”有一个“无效日期”。
我正在使用 SDK 版本 13:
SpecVersion 当前使用的 qbXML 版本:13.0
这是来自 qbsdklog.txt 的错误
CustomerStorage::DoAdd 未能设置客户信用卡到期年份:2015 > QuickBooks 错误消息:无效日期。HRESULT=0x80040506
我尝试了各种整数(15、2015、2020、2021 等),但它根本不接受任何东西,每次都会抛出相同的错误。
这是我在 CusotmerAdd 中使用的代码:
//设置ExpirationMonth的字段值 CustomerAdd.CreditCardInfo.ExpirationMonth.SetValue(10); //设置ExpirationYear的字段值 CustomerAdd.CreditCardInfo.ExpirationYear.SetValue(2015);
我已经完成了重启 QB、我的 IDE 和我的 PC 等基本操作,但无济于事。另请注意,如果我使用公司文件以及提供的示例文件,也会出现同样的问题。
如果我删除添加信用卡的代码,客户就会被正确添加。它似乎特定于这个信用卡到期年份。
有没有其他人遇到过这个?看起来很简单,我觉得我缺少一些基本的东西,但我尝试过的任何东西都没有显示任何结果。
谢谢!
解决方案
好的,这是非常基本的问题,但不完整的 Quickbooks 错误消息并没有帮助。当我了解到我也可以在桌面客户端中重现该问题时,导致我找到解决方案的原因。为此,只需提供小于当前年份的信用卡到期年份。然后 Quickbooks 应该抛出以下错误: **注意 1文本没有说明最小年份值,只有最大值 2037,但如果该值低于当前年份,仍然不允许用户编辑年份。
联系了 Quickbooks 支持,代表确认您不能添加低于当前年份的到期年份。在桌面应用程序中测试该逻辑似乎证明了这一点。然后我将相同的逻辑应用到我的应用程序中,果然我可以添加使用信用卡的客户。
**注意 2,在我的测试中尝试添加大于当前年份的到期年份时,我仍然失败(正如我的问题中所引用的那样)。我相信这些失败是由于我的缓存保留了糟糕的(2015 年)年份值。
推荐阅读
- lua - 创建一个组合列表?Lua/伪代码
- jquery - 如何使用jquery美化html标签
- c - 在不同迭代中执行任务的计数器循环
- php - org.json.JSONException:java.lang.String 类型的值连接无法转换为 JSONArray
- tomcat - 如何监控 JMX
- c# - 文件匹配模式如何使用 Asterisk 准确工作?
- python - 如何计算语音信号的短时自相关?
- angular - 如何仅升级primeng的特定组件
- javascript - 如何根据条件添加自定义 HTML 验证错误?
- amazon-web-services - 这将允许 EC2 实例在没有凭据的情况下访问另一个 EC2 实例吗?