0

我已经为 quickbook 安装了 PHP SDK。

我已经配置了,

 AccessTokenSecret
 ConsumerKey
 ConsumerSecret
 RealmID

当我执行文件 create_customer.php

(v3-php-sdk-1.0.0/_Samples/create_customer.php)。

我有这个错误,

致命错误:第 194 行的 D:\wamp\www\QB\Core\RestCalls\SyncRestHandler.php 中找不到类“OAuth”

我找不到类 OAuth 。我有整个 SDK 文件夹,但我找不到。任何人都可以帮助我解决这个问题。

我非常需要它。

提前致谢..!

4

2 回答 2

3

您正在使用来自 Intuit 的未发布代码,但实际上无法正常工作 - 您正在使用的代码已损坏。

不要使用它,而是使用GitHub 上提供的QuickBooks PHP DevKit 。它是开源的并且得到很好的支持,并且可以与 OAuth 和 v3 一起正常工作。

您可以按照QuickBooks PHP IPP v3 快速入门指南开始。您将经历与上述类似的过程,您将在配置中找到您自己的 OAuth 令牌/秘密和应用程序令牌,然后您将能够连接到 QuickBooks。

从那里,您会发现几个示例脚本 - 您添加客户的代码最终看起来像这样(来自 GitHub 存储库的示例:https ://github.com/consolibyte/quickbooks-php/blob/master/docs/example_app_ipp_v3 /example_customer_add.php):

<?php

// Set up the IPP instance
$IPP = new QuickBooks_IPP($dsn);

// Get our OAuth credentials from the database
$creds = $IntuitAnywhere->load($the_username, $the_tenant);

// Tell the framework to load some data from the OAuth store
$IPP->authMode(
    QuickBooks_IPP::AUTHMODE_OAUTH, 
    $the_username, 
    $creds);

// Print the credentials we're using
//print_r($creds);

// This is our current realm
$realm = $creds['qb_realm'];

// Load the OAuth information from the database
if ($Context = $IPP->context())
{
    // Set the IPP version to v3 
    $IPP->version(QuickBooks_IPP_IDS::VERSION_3);

    $CustomerService = new QuickBooks_IPP_Service_Customer();

    $Customer = new QuickBooks_IPP_Object_Customer();
    $Customer->setTitle('Mr');
    $Customer->setGivenName('Keith');
    $Customer->setMiddleName('R');
    $Customer->setFamilyName('Palmer');
    $Customer->setDisplayName('Keith R Palmer Jr ' . mt_rand(0, 1000));

    if ($resp = $CustomerService->add($Context, $realm, $Customer))
    {
        print('Our new customer ID is: [' . $resp . ']');
    }
    else
    {
        print($CustomerService->lastError($Context));
    }

    /*
    print('<br><br><br><br>');
    print("\n\n\n\n\n\n\n\n");
    print('Request [' . $IPP->lastRequest() . ']');
    print("\n\n\n\n");
    print('Response [' . $IPP->lastResponse() . ']');
    print("\n\n\n\n\n\n\n\n\n");
    */
}
else
{
    die('Unable to load a context...?');
}


?>
于 2013-10-24T14:45:40.037 回答
3

我知道这有点晚了,但错误是由于没有正确设置 PECL oauth 引起的。

设置不正确可能有几个原因 1) 未安装 测试:在终端类型中:pecl 列表 如果您在响应中看到 oauth,那么您已经安装了它 如果您没有安装它,您可以按照这个安装指南:http ://sergiopvilar.wordpress.com/2013/05/18/how-to-install-php-oauth-extension/

2) 你没有更新你的 php.ini 文件来使用 oauth 通常你会有多个 php.ini 文件。这是不同位置的好资源。https://askubuntu.com/questions/356968/find-the-correct-php-ini-file

您需要将“extension=oauth.so”添加到 php.ini 文件的末尾,然后重新启动 apache 以使更改生效。

一旦你修复了这个库应该可以工作。

于 2014-01-11T00:44:52.493 回答