与QuickBooks集成时出错


Error to integrate with QuickBooks

我正在与PHP集成我的系统,这样我就可以在QuickBooks中启动销售了。为了集成,我使用API提供的此链接https://github.com/consolibyte/quickbooks-php.

按照指示设置一切,但当你抛出销售时,我会出现以下错误:

2020: [Required param missing, need to supply the required value for the API, Required parameter Line.DetailType is missing in the request]

生成发票的类目前如下:

<?php
require_once dirname(__FILE__) . '/config.php';
require_once dirname(__FILE__) . '/views/header.tpl.php';
?>
<pre>
    <?php
    $InvoiceService = new QuickBooks_IPP_Service_Invoice();
    $Invoice        = new QuickBooks_IPP_Object_Invoice();
    $Invoice->setDocNumber('WEB' . mt_rand(0, 10000));
    $Invoice->setTxnDate('2015-12-10');
    $Line = new QuickBooks_IPP_Object_Line();
    $Line->setDetailType('Example');
    $Line->setAmount(12.95 * 2);
    $Line->setDescription('Example');
    $SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
    $SalesItemLineDetail->setItemRef('8');
    $SalesItemLineDetail->setUnitPrice(12.95);
    $SalesItemLineDetail->setQty(2);
    $Line->addSalesItemLineDetail($SalesItemLineDetail);
    $Invoice->addLine($Line);
    $Invoice->setCustomerRef('67');
    if ($resp = $InvoiceService->add($Context, $realm, $Invoice))
    {
        print('Our new Invoice ID is: [' . $resp . ']');
    }
    else
    {        
        print($InvoiceService->lastError());
    }
    ?>
</pre>
<?php
require_once dirname(__FILE__) . '/views/footer.tpl.php';

有人经历过这个问题吗?

我真的需要帮助,因为他们对QuickBooks了解不多。

谢谢,

此错误:

Required parameter Line.DetailType is missing in the request

意味着您的请求中缺少一个名为Line.DetailType的必需参数。更具体地说,在您的情况下,您实际上为该参数发送了一个无效值

$Line->setDetailType('Example');

^^^无效。请花点时间参考Intuit的文档:

  • https://developer.intuit.com/docs/api/accounting/Invoice

并花时间参考示例:

  • https://github.com/consolibyte/quickbooks-php/blob/master/docs/partner_platform/example_app_ipp_v3/example_invoice_add.php#L21

注意,文档/示例显示的正确值为:

// Set to SalesItemLineDetailfor this type of line.
$Line->setDetailType('SalesItemLineDetail');