首页 > 解决方案 > 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 等基本操作,但无济于事。另请注意,如果我使用公司文件以及提供的示例文件,也会出现同样的问题。

如果我删除添加信用卡的代码,客户就会被正确添加。它似乎特定于这个信用卡到期年份。

有没有其他人遇到过这个?看起来很简单,我觉得我缺少一些基本的东西,但我尝试过的任何东西都没有显示任何结果。

谢谢!

标签: .netwinformsquickbooksqbxmlqbfc

解决方案


好的,这是非常基本的问题,但不完整的 Quickbooks 错误消息并没有帮助。当我了解到我也可以在桌面客户端中重现该问题时,导致我找到解决方案的原因。为此,只需提供小于当前年份的信用卡到期年份。然后 Quickbooks 应该抛出以下错误: 错误消息说您不需要晚于 2037 年,但没有提及最低年份。 **注意 1文本没有说明最小年份值,只有最大值 2037,但如果该值低于当前年份,仍然不允许用户编辑年份。

联系了 Quickbooks 支持,代表确认您不能添加低于当前年份的到期年份。在桌面应用程序中测试该逻辑似乎证明了这一点。然后我将相同的逻辑应用到我的应用程序中,果然我可以添加使用信用卡的客户。

**注意 2,在我的测试中尝试添加大于当前年份的到期年份时,我仍然失败(正如我的问题中所引用的那样)。我相信这些失败是由于我的缓存保留了糟糕的(2015 年)年份值。


推荐阅读