2017-04-10 107 views
0

我是Quickbooks API的新手。我已經在Quickbooks中的API Exolorer鏈接下找到API列表。他們已經顯示了請求URI &進行API調用所需的請求頭。我能理解這一點。但是,如何調用該URI或者如何將該API與PHP集成並沒有完全指定。我試圖調用URI並使用curl來獲得結果,但它沒有成功。我已經失去了很多時間來進行這種整合。我以各種方式搜索谷歌。但大部分結果都與PHP SDK相關。但我需要整合Quickbooks Online API。如何使用PHP集成Quickbooks Online API?

用於創建實體的請求URI如下所示。

的https:// {{baseURL時}}/V3 /公司/ {{companyid}} /佔到

請幫我整理了這一點。

+0

使用sdk。 https://developer.intuit.com/docs/0100_quickbooks_online/0400_tools/0005_sdks/0209_php – Augwa

+0

感謝您的回覆。使用SDK很好。但我必須使用我的問題中提到的Quickbooks在線API。 –

+0

SDK使用在線API。 – Augwa

回答

0

正如大多數人建議,使用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; 
    } 
相關問題