【问题标题】:Quickbooks API PHP how to send invoice email to customerQuickbooks API PHP如何向客户发送发票电子邮件
【发布时间】:2021-12-03 02:50:57
【问题描述】:

这是我的代码:

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

结果

Fatal error: Uncaught QuickBooksOnline\API\Exception\IdsException: [0]: Property ID is not set

  thrown in /var/www/html/vendor/quickbooks/v3-php-sdk/src/DataService/DataService.php on line 1420

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

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

谢谢

【问题讨论】:

    标签: php quickbooks-online


    【解决方案1】:

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

    使用 Select 函数,即使只返回一条记录,您也会收到如下信息:

    数组 ( [0] => QuickBooksOnline\API\Data\IPPInvoice 对象 ( [存款] => [允许IPNPayment] => 假 [允许在线支付] => 假 [AllowOnlineCreditCardPayment] => false(等等)

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

    QuickBooksOnline\API\Data\IPPInvoice 对象 ( [存款] => [允许IPNPayment] => 假 [允许在线支付] => 假 [AllowOnlineCreditCardPayment] => false(等等)

    为了解决这个问题,我刚刚添加了一行提取 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 2016-10-26
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 2020-04-17
      相关资源
      最近更新 更多