当我使用'邮递员'运行Quickbooks Online API时,它工作正常。邮差自动生成nonce和oauth_signature的值。但是当我使用PHP运行API时,我遇到了以下错误。Quickbooks Online API中的ApplicationAuthenticationFailed错误
message = ApplicationAuthenticationFailed;错误码= 003200; 的StatusCode = 401 SignatureBaseString:POST & HTTPS%3A%2F%2Fsandbox-quickbooks.api.intuit.com%2Fv3%2Fcompany%2F193514525%2Faccount & oauth_consumer_key%3DqyprdH7kq5iG34sV2fSaj9tKC1KzXG%26oauth_nonce%3DFWXxbP%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1491976910 %26oauth_token%3DqyprdDXeKDQonYAz8O0OSnyewIsg34HjxZyH0X4Dk5dNE5LC%26oauth_version%3D1.0
我认为这可能与产生签名值。我已经使用PHP'$ oauth-> generateSignature()'函数来生成签名。它会产生价值。但授权错误仍然存在。请帮我解决这个问题。
这里我提供了我使用的代码。
$ar = array(
'authorization: OAuth oauth_consumer_key="'.OAUTH_CONSUMER_KEY.'",oauth_token="'.ACCESS_TOKEN_SECRET.'",oauth_signature_method="HMAC-SHA1",oauth_timestamp="'.$time.'",oauth_nonce="'.$randomvalue.'",oauth_version="1.0",oauth_signature="'.$signaturevalue.'"',
"cache-control: no-cache",
"content-type: application/json",
"Accept: application/json"
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://sandbox- quickbooks.api.intuit.com/v3/company/{{companyid}}/account",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\n \"AccountType\": \"Accounts Receivable\",\n \"Name\": \"MyJobs\"\n}",
CURLOPT_HTTPHEADER => $ar,
));
$response = curl_exec($curl);
这是我用于创建帐户的代码。 我用下面的代码来生成签名。
$oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
$signature = $oauth->generateSignature('POST','https://sandbox-quickbooks.api.intuit.com/v3',$params);
在定义这种情况下,$参数数组如下
$params = array(
'oauth_consumer_key' => OAUTH_CONSUMER_KEY,
'oauth_nonce' => $randomvalue,
'oauth_signature_method' => 'HMAC-SHA1',
'oauth_timestamp' => $time,
'oauth_version' => '1.0',
'oauth_token' => ACCESS_TOKEN
);
投票关闭问题已经被问过了,你没有提供任何代码,这样我们实际上可以复制/帮助你在这里。 –
@KeithPalmerJr。对不起,不提供代码。在这里,我编辑我的问题,包括代码。轻松进行查看? –