php - 找不到 Quickbooks php sdk 类

标签 php sdk quickbooks quickbooks-online

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

require "vendor/autoload.php";
use QuickBooksOnline\API\DataService\DataService;
use QuickBooksOnline\API\Facades\Invoice;
use QuickBooksOnline\API\Facades\PurchaseOrder;



$dataService = DataService::Configure(array(
         'auth_mode' => 'oauth1',
         'consumerKey' => " ", 
         'consumerSecret' => " ",
         'accessTokenKey' => " ",
         'accessTokenSecret' => " ",
         'QBORealmID' => "",
         'baseUrl' => "https://quickbooks.api.intuit.com/"
));

for($i = 1; $i<= 3; $i ++){
   $LineObj = Line::create([
       "Id" => $i,
       "LineNum" => $i,
       "Description" => "Pest Control Services",
       "Amount" => 35.0,
       "DetailType" => "SalesItemLineDetail",
       "SalesItemLineDetail" => [
           "ItemRef" => [
               "value" => "1",
               "name" => "Pest Control"
           ],
           "UnitPrice" => 35,
           "Qty" => 1,
           "TaxCodeRef" => [
               "value" => "NON"
           ]
       ]
   ]);
   $lineArray[] = $LineObj;
}
//Add a new Invoice
$theResourceObj = PurchaseOrder::create([
     "Line" =>  $lineArray,
    "CustomerRef"=> [
     "value"=> "1"
     ],
      "BillEmail" => [
            "Address" => "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9cdafdf1f5f0f5e5efe8f3eef9dcf5f2e8e9f5e8b2fff3f1" rel="noreferrer noopener nofollow">[email protected]</a>"
      ],
      "BillEmailCc" => [
            "Address" => "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="107150797e646579643e737f7d" rel="noreferrer noopener nofollow">[email protected]</a>"
      ],
      "BillEmailBcc" => [
            "Address" => "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5d2b1d343329283429733e3230" rel="noreferrer noopener nofollow">[email protected]</a>"
      ]
]);
?>

Fatal error: Uncaught Error: Class 'Line' not found in /var/www/html/QuickBooks-V3-PHP-SDK-master/Test2.php:24

purchaseOrder.php:

<?php

//require "vendor/autoload.php";
include('src/config.php');

use QuickBooksOnline\API\DataService\DataService;
use QuickBooksOnline\API\Facades\Invoice;
use QuickBooksOnline\API\Facades\PurchaseOrder;

// OBOT Data service
$dataService = DataService::Configure(array(
       'auth_mode' => 'oauth1',
         'consumerKey' => " ",
         'consumerSecret' => " ",
         'accessTokenKey' => " ",
         'accessTokenSecret' => " ",
         'QBORealmID' => " ",
         'baseUrl' => "https://quickbooks.api.intuit.com/" 
));

$linedet = new IPPPurchaseOrderItemLineDetail();
$linedet->CustomerRef  = 86;

$line = new IPPLine();
$line->Id = 0;
$line->Description = 'test purchase order';
$line->Amount = 2.00;
$line->DetailType= 'ItemBasedExpenseLineDetail ';
$line->ItemBasedExpenseLineDetail = $linedet;
$line->BillableStatus = 'Notbillable';
$line->ItemRef = '19';
$line->UnitPrice = '25';
$line->Qty = '1';

$purchaseOrder = new IPPPurchaseOrder();
$purchaseOrder->Line = $line;
$purchaseOrder->VendorRef = 85;
$purchaseOrder->APAccountRef = 1;
$purchaseOrder->TotalAmt = 200.00;
$result = $dataService->Add($purchaseOrder); //add purchase order

?>

PHP Fatal error: Uncaught Error: Class 'IPPPurchaseOrderItemLineDetail' not found in /var/www/html/QuickBooks-V3-PHP-SDK-master/purchaseOrder.php:20

为什么我会收到这些错误?自动加载功能不起作用吗?我应该直接包含我需要的类文件吗?

最佳答案

关于下面的第一个错误:

Fatal error: Uncaught Error: Class 'Line' not found in /var/www/html/QuickBooks-V3-PHP-SDK-master/Test2.php:24

我没有看到您在 GitHub 页面 here 的任何地方包含 Line 类。我删节了他们的建议:

连接到 QuickBooks Online API

目前以下 API 实体端点支持从数组创建对象:

  • 估计
  • 线条
  • 发票
  • 项目

对于创建/更新上述实体端点,您将导入相应的外观类:

use QuickBooksOnline\API\Facades\{Facade_Class_Name};

因此,您需要更新您的第一个脚本以包含此外观,它应该简单如下:

<?php

require "vendor/autoload.php";

use QuickBooksOnline\API\DataService\DataService;
use QuickBooksOnline\API\Facades\Invoice;
use QuickBooksOnline\API\Facades\PurchaseOrder;
use QuickBooksOnline\API\Facades\Line; // <-- You are missing this line

关于下面的第二个错误:

PHP Fatal error: Uncaught Error: Class 'IPPPurchaseOrderItemLineDetail' not found in /var/www/html/QuickBooks-V3-PHP-SDK-master/purchaseOrder.php:20

通过再次搜索 GitHub 代码库,我可以看到该类被声明为 here 。因此,它应该像在使用它的文件顶部的 use 语句中再次声明它一样简单,如下所示:

<?php

//require "vendor/autoload.php";
include('src/config.php');

use QuickBooksOnline\API\DataService\DataService;
use QuickBooksOnline\API\Facades\Invoice;
use QuickBooksOnline\API\Facades\PurchaseOrder;
use QuickBooksOnline\API\Data\IPPPurchaseOrderItemLineDetail; // <-- You are missing this line

查看其余代码,似乎有很多类没有通过 use 语句声明,例如 PurchaseOrderIPPLineIPPPurchaseOrder 您还需要包含它们。

关于php - 找不到 Quickbooks php sdk 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45221511/

相关文章:

php - VS Code intelephense 显示不正确的错误 : Undefined method 'save'

php - 如何将多个键和值推送到 php 数组中?

javascript - 如何将 PHP 代码写入 JavaScript/Ajax?

android - Facebook SDK - 膨胀类 com.facebook.login.widget.LoginButton 时出错

c# - 如何使用 QuickBooks SDK 13.0 通过我的 Windows 应用程序(C# 或 VB.Net)删除 Quickbook 员工

PHP/MySQL : Check whether email exists in database?

ios - 如果未显示图像,如何在顶部显示的标签上设置自动布局?

Android Studio无法下载SDK

php - 如何使用php将quickbooks桌面数据导入在线mysql服务器