我使用此代码创建了发票:https://github.com/intuit/QuickBooks-V3-PHP-SDK/blob/master/src/_Samples/InvoiceCreate.php
但是如何使用 PHP sdk 使这张发票付款?
在这里,我使用纸质支票付款......所以我创建发票只是为了记账,而不是发送给客户。 (不使用QBO支付) 那么当我接收付款时如何使用 php sdk 将发票标记为已付款?
我尝试将“余额”更新为 0,但它没有标记为已付款。
谢谢
我对此不是 100% 确定,但我认为您必须为该发票创建相当于发票全额的付款。要查看有效负载所需的内容,请参阅 https://developer.intuit.com/docs/api/accounting/ payment。
首先,我真的建议您使用 Keith Palmer 为此编写的库,因为 QBO 文档到处都是垃圾。
话虽这么说:
您需要从发票中返回交易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);
要使用 PHP SDK 在 QuickBooks Online 中将发票标记为已付款,您需要创建一个 Payment 对象并将其链接到发票。简单地更新发票余额是行不通的,因为 QuickBooks 维护发票和付款的单独实体。
1-付款对象将使用 LinkedTxn 字段将付款链接到发票。 2 - 指定与发票余额相符的金额。 3-使用 DataService 对象将付款保存到 QuickBooks。
您可以查看此示例代码,它会给您一个概述: 您还可以检查一些外部资源; 发票生成器