繁体   English   中英

如何使用PHP集成Quickbooks Online API?

[英]How to integrate Quickbooks Online API using PHP?

我是Quickbooks API的新手。 我在Quickbooks的API Exolorer链接下找到了API列表。 他们显示了进行API调用所需的Request URI和Request Header。 我能理解 但是,没有确切说明如何调用该URI或如何将该API与PHP集成。 我试图调用URI并使用curl获得结果,但是没有成功。 我为此整合浪费了很多时间。 我已经以所有可能的方式搜索过google。 但是大多数结果与PHP SDK有关。 但是我需要集成Quickbooks Online API。

用于创建实体的请求URI如下所示。

https://开头{{baseURL时}} / V3 /公司/ {{companyid}} /帐户

请帮我解决这个问题。

正如大多数人建议的那样,使用PHP SDK将是将QuickBooks Online与PHP集成的更简便方法: https : //github.com/intuit/Quickuits-V3-PHP-SDK

但是,也可以使用普通的PHP cURL,但是在进行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中的companyid,将其放在URL上。

2)基本网址

在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;
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM