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 リストでインストールするためのガイド: http://sergiopvilar.wordpress.com/2013/05/18/how-to-install-php-oauth-extension/

2) oauth を使用するように php.ini ファイルを更新していない 多くの場合、複数の php.ini ファイルが存在します。これは、さまざまな場所の優れたリソースです。https://askubuntu.com/questions/356968/find-the-correct-php-ini-file

php.ini ファイルの末尾に「extension=oauth.so」を追加してから、Apache を再起動して変更を有効にする必要があります。

修正したら、ライブラリが機能するはずです。

于 2014-01-11T00:44:52.493 に答える