Quickbooks API PHP如何向客户发送发票电子邮件



这是我的代码:

$sql = 'select * from Invoice where id='."'$id'";
$invoice = $dataService->Query("$sql"); 
print_r($invoice)       
$dataService->SendEmail($invoice , '$email');

结果

Fatal error: Uncaught QuickBooksOnlineAPIExceptionIdsException: [0]: Property ID is not set
thrown in /var/www/html/vendor/quickbooks/v3-php-sdk/src/DataService/DataService.php on line 1420

发票被正确查询,但它似乎在寻找不同的格式或其他值。

请告知该格式或值可能是什么。(或者是否有更好的方法(

谢谢

我花了几天时间进行搜索,因为文档根本没有帮助,但我遇到了与您完全相同的问题,找不到解决方案,所以我想与您分享。问题是Select查询返回的对象与FindById函数略有不同。

使用选择功能,即使只返回一条记录,您也会收到这样的信息:

数组([0]=>QuickBooksOnline\neneneba API \Data\IPPInvoice对象([存款]=>[AllowIPNPayment]=>虚假的[AllowOnlinePayment]=>虚假的[AllowOnlineCreditCardPayment]=>错误

当您通过手动插入ID号来执行FindById时(有效(,返回结果将如下所示:

QuickBooksOnline\neneneba API \Data\IPPInvoice对象([存款]=>[AllowIPNPayment]=>虚假的[AllowOnlinePayment]=>虚假的[AllowOnlineCreditCardPayment]=>错误

为了解决这个问题,我只添加了一行提取0元素:

$this_invoice_trimmed = $this_invoice[0];

我的结果代码现在看起来是这样的:(我使用的是DocNumber而不是ID,因为我没有ID,但概念是一样的(

$dataService->throwExceptionOnError(true);
$this_invoice = $dataService->Query("select * from Invoice where DocNumber='$qbo_doc_number'");
$this_invoice_trimmed = $this_invoice[0];

$result = $dataService->SendEmail($this_invoice_trimmed);

相关内容

最新更新