我已经在生产中使用QuickBooks PHP DevKit一段时间了,没有出现任何问题。
然而,最近我从create_invoice
ajax脚本中吐出以下错误:
if($resp = $InvoiceService->add($Context, $realm, $Invoice)){
//create invoice code here
} else
{
echo $InvoiceService->lastError();
}
我得到以下错误:
3200: [message=ApplicationAuthenticationFailed; errorCode=003200; statusCode=401, ]
我能找到的关于这个错误的唯一文档是错误代码3200的意思是"过期的编辑序列",但我正在创建发票。
那么,为什么会突然出现这个错误呢?
它似乎从7月11日开始给我这个错误。在此之前,一切都很顺利。
我需要刷新我的访问令牌吗?我将如何进行刷新?
我能找到的关于这个错误的唯一文档是错误代码3200的意思是"过期的编辑序列",但我正在创建发票。
错误代码3200(对于qbXML(与错误代码003200(对于IPP/v3(是完全独立的,因此"过时的编辑序列"在这里根本不相关。
那么,为什么会突然出现这个错误呢?
一般来说,"401身份验证失败"错误的含义与它所说的完全一样——针对应用程序的身份验证失败。
这可能是由于以下几个原因:
- 您的OAuth令牌已过期(如果您不续订,它们将在6个月后过期(
- 您的OAuth令牌/连接已断开(这可以在Intuit提供的UI中完成(
- 您不再发送正确的OAuth令牌
您检查了OAuth令牌吗?它们仍然有效吗?你寄的是正确的吗?
我需要刷新我的访问令牌吗?我将如何进行刷新?
也许吧。
您可以返回连接过程(例如,再次单击"连接到QuickBooks"按钮(续订。
如果它们已经过期(例如,您在6个月内没有续订(,您应该实施重新连接呼叫以避免将来出现这种情况:
-
https://github.com/consolibyte/quickbooks-php/blob/master/docs/partner_platform/example_app_ipp_v3/reconnect.php
-
https://github.com/consolibyte/quickbooks-php/blob/master/docs/partner_platform/example_app_ipp_v3/
-
https://github.com/consolibyte/quickbooks-php