如何使用 quickbooks 在线 sdk 中的 PHP 代码制作已付款发票

How to make an Invoice as paid using PHP code at quickbooks online sdk

我使用以下代码创建了发票:https://github.com/intuit/QuickBooks-V3-PHP-SDK/blob/master/src/_Samples/InvoiceCreate.php

但是如何使用 PHP sdk 将此发票设为已付款?

这里我使用纸质支票收款...所以我创建发票只是为了记账而不是发送给客户。 (不使用 QBO 支付) 所以当我收到付款时如何使用 php sdk 将发票标记为已付款?

我尝试将 "Balance" 更新为 0,但它没有标记为已付款。

谢谢

对此我不是 100% 确定,但我认为您必须为该发票创建金额等于发票全额的付款。要查看有效负载的必需内容,请参阅 https://developer.intuit.com/docs/api/accounting/payment

首先,我真的建议您使用 Keith Palmer 为此编写的库,因为 QBO 文档到处都是垃圾。

话虽这么说:

您需要 return 发票中的交易 ID:

return $resultingObj->TxnId;

然后使用提供的交易 ID 创建付款:

$invoiceId = CreateInvoice(); //returns txnId above

$qbLinkedInvoice = new IPPLinkedTxn();
$qbLinkedInvoice->TxnId = $invoiceId;
$qbLinkedInvoice->TxnType = 'Invoice';

$qbLine = new IPPLine();
$qbLine->Amount = "";//set amount;
$qbLine->LinkedTxn = $qbLinkedInvoice;

$qbPayment = new IPPPayment();
$qbPayment->CustomerRef = "";//customer id
$qbPayment->TotalAmt = "";//I think this must match amount above;
$qbPayment->Line = array($qbLine);

$createdQbPayment = $this->dataService->Add($qbPayment);