QBXML错误:信用卡到期年份上的StatusCode 3020“无效日期”

时间:2018-07-25 21:55:34

标签: .net winforms quickbooks qbxml qbfc

我正在使用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都无济于事。另请注意,如果我使用公司文件以及提供的示例文件,也会发生相同的问题。

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

有没有其他人遇到过这个?看起来如此简单,我感觉自己缺少一些基本知识,但我尝试过的任何方法都没有显示任何结果。

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,这是一个非常基本的问题,但是由于Quickbooks错误消息不够完整而无法解决。导致我找到该解决方案的原因是,我得知我也可以在Desktop Client中重现该问题。为此,只需提供一个比当前年份短的信用卡到期年份。然后,Quickbook应该会引发以下错误: Error message says you need to be no later that the year 2037, however mentions nothing about a minimum year. ** 注释1 文字没有说明最小年份值,最大最大值为2037,但是如果该值低于当前年份,则仍然不允许用户编辑年份。

联系了Quickbooks支持,并且销售代表确认您不能添加比当前年份短的到期年份。在桌面应用程序中测试该逻辑似乎证明是事实。然后,我对我的应用程序应用了相同的逻辑,并且确定可以使用信用卡添加客户。

** 注释2 ,在我的测试中,尝试添加比当前年份更长的到期年仍然遇到了失败(如我的问题所引用)。我相信这些失败是由于我端保留了糟糕的(2015年)年价值而缓存的。