正如大多數人建議,使用PHP SDK將是爲QuickBooks的在線與PHP集成更簡單的方法:https://github.com/intuit/QuickBooks-V3-PHP-SDK
然而,使用純PHP捲曲也是可以的,但你需要一些概念理解使得API調用之前:
1)的OAuth 1.0協議
這是大多數開發者感到困惑的。 QuickBooks Online使用OAuth 1.0作爲授權協議。你需要花點時間來了解它是如何工作的。對於文檔,你可以在這裏閱讀:https://developer.intuit.com/docs/0100_quickbooks_online/0100_essentials/000500_authentication_and_authorization/connect_from_within_your_app
但是,我建議你玩OAuth操場,它會給你一個感覺,看你實施它的樣子:https://appcenter.intuit.com/Playground/OAuth/IA/(填寫你的消費者密鑰和祕密,點擊連接到Quickbooks按鈕)
在此過程中,它將返回一個名爲:RealmID。這是QBO的公司ID,將其放在URL上。
2)基本URL
當您創建在developer.intuit.com一個應用程序,鑰匙標籤下,你會看到開發鍵和按鍵生產。右側的相應鍵是你需要爲{baseurl}部分填充的內容(例如,除了開發鍵之外,還有一個叫做「Accounting Sandbox Url」的地方:「sandbox-quickbooks.api.intuit.com」)。對於每個API實體端點,請參閱文檔:https://developer.intuit.com/docs/api/accounting/customer
3)授權頭
你不可能自己來實現它的OAuth 1.0。 Twitter對於如何使用來自步驟1)的訪問令牌和訪問令牌祕密生成簽名具有良好的鏈接:https://dev.twitter.com/oauth/overview/creating-signatures
您將簽名作爲授權頭的一部分。
如果您使用的是POSTMAN,則他們具有OAuth 1.0作爲可用的授權協議。這裏是一個例子
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://sandbox-quickbooks.api.intuit.com/v3/company/193514340994122/account/1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"authorization: OAuth oauth_consumer_key=\"qyprdDjYtPpiEpbwFQZuUoAjubpVqm\",oauth_token=\"lvprdfblXv4LqNVhIv2WH2JebiSZgNs9POiEoCJxMwEhqbgc\",oauth_signature_method=\"HMAC-SHA1\",oauth_timestamp=\"1494441064\",oauth_nonce=\"cfh0b7\",oauth_version=\"1.0\",oauth_signature=\"KqpN9ximPGWnWJBaXg1Vs9urJLY%3D\"",
"cache-control: no-cache",
"postman-token: 7c570691-c6cd-a706-67a0-984c5ddb1e6a"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
使用sdk。 https://developer.intuit.com/docs/0100_quickbooks_online/0400_tools/0005_sdks/0209_php – Augwa
感謝您的回覆。使用SDK很好。但我必須使用我的問題中提到的Quickbooks在線API。 –
SDK使用在線API。 – Augwa