QuickBooks PHP sdk奇数刷新令牌交互

时间:2019-01-14 15:49:47

标签: php api oauth-2.0 sdk quickbooks

我们有一个与QuickBooks Online OAuth2 Workflow连接的应用程序。除了尝试刷新用户的访问密钥时,其他所有内容都处于工作状态。

在PHP SDK文档化之后,在用户与QuickBooks同步之前,我们调用了刷新令牌,如下所示:

$this->data_service = DataService::Configure(array(
                'auth_mode' => 'oauth2',
                'ClientID' => xxx,
                'ClientSecret' => xxx,
                'refreshTokenKey' => xxx,
                'QBORealmID' => xxx,
                'baseUrl' => 'production',
);
$oauth2_login_helper = $this->data_service->getOAuth2LoginHelper();
$refreshed_token_object = $oauth2_login_helper->refreshToken();

// Update DB with new access_token, refresh_token

奇怪的是,如果access_token过期(一个小时或更长时间),则使用这种方法会产生401:invalid_grant。值得一提的是,此行为仅在生产中发生。在我们的本地和开发环境中,以上代码成功更新了oauth2密钥。

经过一番搏斗,我最终将以上内容更改为:

$oauth2_login_helper = new OAuth2LoginHelper(xxx, xxx);
$access_token_object = 
$oauth2_login_helper->refreshAccessTokenWithRefreshToken(
      xxx
);

// Update DB with access_token, refresh_token

足够令人沮丧的是,它可以按预期进行生产。我想伸出手,以防万一我遗漏了一些东西或这里有潜在问题。

0 个答案:

没有答案