2016-06-30 9 views
0

Quickbooksオンラインサンドボックスアカウントで請求書オブジェクトを作成しようとしています。 Invoiceオブジェクトのドキュメントhttps://developer.intuit.com/docs/api/accounting/Invoiceは、請求書オブジェクトの最も単純な構造を定義していますが、それに応じて使用していますが、まだエラーが発生しています。何が欠けている??PHPを使用したAPIを使用したQuickbooksでの請求書作成エラー

$invoiceObj = new \IPPInvoice(); 
$Line = new \IPPLine(); 
$Line->Amount = 30; 
$Line->Description = "Test invoice line item"; 
$Line->DetailType = "SalesItemLineDetail"; 
$Line->AmountSpecified = true; 
$saleItemLineDetail = new \IPPSalesItemLineDetail(); 
$saleItemRefType = new \IPPNameValue(); 
$saleItemRefType->name = "Services"; 
$saleItemRefType->value = "1"; 
$saleItemLineDetail->ItemRef = $saleItemRefType; 
$saleItemLineDetail->ServiceDate = '2016-06-28'; 
$Line->SalesItemLineDetail = $saleItemLineDetail; 
$invoiceObj->Line = $Line; 
//$invoiceObj->DocNumber = '23713'; 
//$invoiceObj->TxnDate = '2016-06-28'; 
$invoiceObj->DueDate = date(strtotime('+5 days')); 
$invoiceObj->AutoDocNumber = true; 

$customerRefType = new \IPPNameValue(); 
$customerRefType->name = "DisplayName969745229"; 
$customerRefType->value = 58; 
$invoiceObj->CustomerRef = $customerRefType; 
$resultingObj = $dataService->Add($invoiceObj); 
echo "Created Invoice Id={$resultingObj->Id}. Reconstructed response body:\n\n"; 
$xmlBody = \XmlObjectSerializer::getPostXmlFromArbitraryEntity($resultingObj, $urlResource); 
    echo $xmlBody . "\n"; 

`

このコードは以下のエラースロー:

IdsException: [0]: Required parameter Line.SalesItemLineDetail is missing in the request 

を任意の助けを大幅に理解されるであろう。ありがとう

+0

var_dump($ saleItemLineDetail)の出力は何ですか? APIは、割り当てようとしている値が空である場合にフィールドが欠落していると言う場合があります。 – theruss

+0

お返事ありがとうございます。私はそれを考え出した。アイテムは欠落していませんが、間違って設定されています。実際のクラスはそのプロパティを設定するために使用する必要がある 'IPPReferenceType'でしたが、私はAPIによって認識されなかった' IPPNameValue'を使用していました。ありがとう –

答えて

0

私はそれを間違ったクラスIPPNameValueを使ってプロパティを設定していましたが、それはIPPReferenceTypeであるはずでした。

これは、今後同じ問題が発生している方のための私の動作コードです。

$invoiceObj = new \IPPInvoice(); 
$Line = new \IPPLine(); 
$Line->Amount = 30; 
$Line->Description = "Test invoice line item"; 
$Line->DetailType = "SalesItemLineDetail"; 
$Line->AmountSpecified = true; 
$saleItemLineDetail = new \IPPSalesItemLineDetail(); 
$saleItemRefType = new \IPPReferenceType(); 
$saleItemRefType->type = "Service"; 
$saleItemRefType->name = "Concrete"; 
$saleItemRefType->value = "1"; 
$saleItemLineDetail->ItemRef = $saleItemRefType; 
$saleItemLineDetail->ServiceDate = '2016-06-28'; 

$Line->SalesItemLineDetail = $saleItemLineDetail; 
$invoiceObj->Line = $Line; 

$invoiceObj->DueDate = date(strtotime('+5 days')); 
$invoiceObj->AutoDocNumber = true; 

$customerRefType = new \IPPReferenceType(); 
$customerRefType->type = 'Customer'; 
$customerRefType->name = "DisplayName969745229"; 
$customerRefType->value = 58; 

$invoiceObj->CustomerRef = $customerRefType; 

$resultingObj = $dataService->Add($invoiceObj); 
// Echo some formatted output 
echo "Created Invoice Id={$resultingObj->Id}. Reconstructed response body:\n\n"; 
     $xmlBody = \XmlObjectSerializer::getPostXmlFromArbitraryEntity($resultingObj, $urlResource); 
     echo $xmlBody . "\n"; 
関連する問題