Intuit Quickbooks Online API如何在PHP SDK中处理购买响应


Intuit Quickbooks Online API how to handle purchase response in PHP SDK

我正试图从我的QBO查询购买情况。

    $IPP->version(QuickBooks_IPP_IDS::VERSION_3);
    $PurchaseService = new QuickBooks_IPP_Service_Purchase();
    $purchases = $PurchaseService->query($Context, $realm, "SELECT * FROM Purchase");
    //print_r($purchases);
    foreach($purchases as $purchase){
        //$purchase  how to get the details TxnDate, TotalAmount and other 
line object details  from each purchase object.
    }

如果有任何文档解释如何使用php处理响应对象,请提供我的链接。我使用IPP V3 Keith Palmer sdk

从账户查询对象中检索信息的方法如下所示。

$accounts = $AccountService->query($Context, $realm, "SELECT * FROM Account");
    foreach ($accounts as $Account)
    {
        print('Account Id=' . $Account->getId() . ' is named: ' . $Account->getFullyQualifiedName() . '<br>');
        print_r($Account);
    }

我正在寻找类似的方法来处理购买响应对象

我检查了quickbooks上的采购实体文档,但它没有提供如何从响应对象中提取数据的详细信息

PHP方法完全镜像Intuit文档中显示的XML节点名称。

例如,Intuit的文档显示了这样一个对象:

<IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2014-04-22T08:58:03.798-07:00">
  <Purchase domain="QBO" sparse="false">
    <Id>603</Id>
    <SyncToken>1</SyncToken>
    <MetaData>
      <CreateTime>2018-07-18T00:00:00-07:00</CreateTime>
      <LastUpdatedTime>2014-04-22T08:57:37-07:00</LastUpdatedTime>
    </MetaData>
    <TxnDate>2018-07-18</TxnDate>
    <CurrencyRef name="United States Dollar">USD</CurrencyRef>
    <PrivateNote>Taxable expense.</PrivateNote>
    <Line>
      <Id>1</Id>
      <Amount>26.00</Amount>

因此,您的Purchase对象将具有镜像此XML结构的方法。例如:

$Id = $PurchaseOrder->getId();
$SyncToken = $PurchaseOrder->getSyncToken();
$MetaDataObject = $PurchaseOrder->getMetaData();
$CreateTime = $PurchaseOrder->getMetaData()->getCreateTime();
$TxnDate = $PurchaseOrder->getTxnDate();

不出所料,还有->set*(...)方法。

$PurchaseOrder->setTxnDate('2014-04-24');

在行项目(可以有多个)的情况下,可以计算Line节点的数量,如下所示:

$number_of_lines = $PurchaseOrder->countLine();

然后循环通过它们:

for ($i = 0; $i < $number_of_lines; $i++)
{
  $Line = $PurchaseOrder->getLine($i);
  print_r($Line);
}

不出所料,Line对象也会为它包含的每个节点都有一个方法:

$line_Id = $Line->getId();
$line_Amount = $Line->getAmount();

作为快捷方式,您还可以使用XPath语句来获取以下数据:

$CreateTime = $Purchase->getXPath('//Purchase/MetaData/CreateTime');