Я использую PHP API IPP для создания счетов. Я создаю счет, используя следующий код:
public function create_invoice($data) {
$this->_getClientByID($data['clientId']);
$invoice = new IPPInvoice();
$invoice->AllowIPNPayment = "false";
$invoice->AllowOnlinePayment = "false";
$invoice->AllowOnlineCreditCardPayment = "false";
$invoice->AllowOnlineACHPayment = "false";
$invoice->ApplyTaxAfterDiscount = "false";
$invoice->CustomerRef = $data['clientId'];
$invoice->BillAddr = $this->_client[0]->BillAddr;
$invoice->ShipAddr = $this->_client[0]->ShipAddr;
$invoice->DueDate = Date('Y-m-d');
$invoice->PrintStatus = "NotSet";
$invoice->EmailStatus = "EmailSent";
$invoice->BillEmail = array('id'=>'', 'address'=>$data['email'],'default'=>'','tag'=>'');
$invoice->TxnDate = Date('Y-m-d');
$invoice->CurrencyRef = "USD";
$lineItems = array();
$invoiceTotal = 0;
foreach ($data['invoice_items'] as $line) {
$lineItem = new IPPLine();
$invoiceTotal = $invoiceTotal + $line->amount;
$lineItem->Description = $line->service_name;
$lineItem->Amount = $line->amount;
$salesLineItem = new IPPSalesItemLineDetail();
$salesLineItem->ItemRef = 1;
$salesLineItem->UnitPrice = $line->amount;
$salesLineItem->Qty = 1;
$lineItem->DetailType = "SalesItemLineDetail";
$lineItem->SalesItemLineDetail = $salesLineItem;
$lineItems[] = $lineItem;
}
$lineItem = new IPPLine();
$lineItem->DetailType = "SubTotalLineDetail";
$lineItem->Amount = $invoiceTotal;
$lineItems[] = $lineItem;
$invoice->Line = $lineItems;
$invoice->TotalAmt = $invoiceTotal;
$invoice->Balance = $invoiceTotal;
$result = $this->_dataService->Add($invoice);
}
Что, в моем примере, дает следующие данные:
{
Deposit:"",
AllowIPNPayment:"false",
AllowOnlinePayment:"false",
AllowOnlineCreditCardPayment:"false",
AllowOnlineACHPayment:"false",
EInvoiceStatus:"",
ECloudStatusTimeStamp:"",
InvoiceEx:"",
AutoDocNumber:"",
CustomerRef:"889",
CustomerMemo:"",
BillAddr:{
Id:"5438",
Line1:"2021E Pulasky Highway",
Line2:"",
Line3:"",
Line4:"",
Line5:"",
City:"Havre de Grace",
Country:"US",
CountryCode:"",
CountrySubDivisionCode:"MD",
PostalCode:"21078",
PostalCodeSuffix:"",
Lat:"",
Long:"",
Tag:"",
Note:""
},
ShipAddr:{
Id:"5438",
Line1:"2021E Pulasky Highway",
Line2:"",
Line3:"",
Line4:"",
Line5:"",
City:"Havre de Grace",
Country:"US",
CountryCode:"",
CountrySubDivisionCode:"MD",
PostalCode:"21078",
PostalCodeSuffix:"",
Lat:"",
Long:"",
Tag:"",
Note:""
},
RemitToRef:"",
ClassRef:"",
SalesTermRef:"",
DueDate:"2014-08-28",
SalesRepRef:"",
PONumber:"",
FOB:"",
ShipMethodRef:"",
ShipDate:"",
TrackingNum:"",
GlobalTaxCalculation:"",
TotalAmt:"44.85",
HomeTotalAmt:"",
ApplyTaxAfterDiscount:"false",
TemplateRef:"",
PrintStatus:"NotSet",
EmailStatus:"EmailSent",
BillEmail:{
id:"",
address:"",
default:"",
tag:""
},
ARAccountRef:"",
Balance:"44.85",
FinanceCharge:"",
PaymentMethodRef:"",
PaymentRefNum:"",
PaymentType:"",
CheckPayment:"",
CreditCardPayment:"",
DepositToAccountRef:"",
DeliveryInfo:"",
DocNumber:"",
TxnDate:"2014-08-28",
DepartmentRef:"",
CurrencyRef:"USD",
ExchangeRate:"",
PrivateNote:"",
TxnStatus:"",
LinkedTxn:"",
Line:{
0:{
Id:"",
LineNum:"",
Description:"Hosting - Standard",
Amount:"14.95",
LinkedTxn:"",
DetailType:"SalesItemLineDetail",
PaymentLineDetail:"",
DiscountLineDetail:"",
TaxLineDetail:"",
SalesItemLineDetail:{
ServiceDate:"",
TaxInclusiveAmt:"",
SalesItemLineDetailEx:"",
ItemRef:"1",
ClassRef:"",
UnitPrice:"14.95",
RatePercent:"",
PriceLevelRef:"",
MarkupInfo:"",
Qty:"1",
UOMRef:"",
ItemAccountRef:"",
InventorySiteRef:"",
TaxCodeRef:""
},
DescriptionLineDetail:"",
ItemBasedExpenseLineDetail:"",
AccountBasedExpenseLineDetail:"",
DepositLineDetail:"",
PurchaseOrderItemLineDetail:"",
SalesOrderItemLineDetail:"",
ItemReceiptLineDetail:"",
JournalEntryLineDetail:"",
GroupLineDetail:"",
SubTotalLineDetail:"",
CustomField:"",
LineEx:""
},
1:{
Id:"",
LineNum:"",
Description:"Hosting - Standard",
Amount:"14.95",
LinkedTxn:"",
DetailType:"SalesItemLineDetail",
PaymentLineDetail:"",
DiscountLineDetail:"",
TaxLineDetail:"",
SalesItemLineDetail:{
ServiceDate:"",
TaxInclusiveAmt:"",
SalesItemLineDetailEx:"",
ItemRef:"1",
ClassRef:"",
UnitPrice:"14.95",
RatePercent:"",
PriceLevelRef:"",
MarkupInfo:"",
Qty:"1",
UOMRef:"",
ItemAccountRef:"",
InventorySiteRef:"",
TaxCodeRef:""
},
DescriptionLineDetail:"",
ItemBasedExpenseLineDetail:"",
AccountBasedExpenseLineDetail:"",
DepositLineDetail:"",
PurchaseOrderItemLineDetail:"",
SalesOrderItemLineDetail:"",
ItemReceiptLineDetail:"",
JournalEntryLineDetail:"",
GroupLineDetail:"",
SubTotalLineDetail:"",
CustomField:"",
LineEx:""
},
2:{
Id:"",
LineNum:"",
Description:"Hosting - Standard",
Amount:"14.95",
LinkedTxn:"",
DetailType:"SalesItemLineDetail",
PaymentLineDetail:"",
DiscountLineDetail:"",
TaxLineDetail:"",
SalesItemLineDetail:{
ServiceDate:"",
TaxInclusiveAmt:"",
SalesItemLineDetailEx:"",
ItemRef:"1",
ClassRef:"",
UnitPrice:"14.95",
RatePercent:"",
PriceLevelRef:"",
MarkupInfo:"",
Qty:"1",
UOMRef:"",
ItemAccountRef:"",
InventorySiteRef:"",
TaxCodeRef:""
},
DescriptionLineDetail:"",
ItemBasedExpenseLineDetail:"",
AccountBasedExpenseLineDetail:"",
DepositLineDetail:"",
PurchaseOrderItemLineDetail:"",
SalesOrderItemLineDetail:"",
ItemReceiptLineDetail:"",
JournalEntryLineDetail:"",
GroupLineDetail:"",
SubTotalLineDetail:"",
CustomField:"",
LineEx:""
},
3:{
Id:"",
LineNum:"",
Description:"",
Amount:"44.85",
LinkedTxn:"",
DetailType:"SubTotalLineDetail",
PaymentLineDetail:"",
DiscountLineDetail:"",
TaxLineDetail:"",
SalesItemLineDetail:"",
DescriptionLineDetail:"",
ItemBasedExpenseLineDetail:"",
AccountBasedExpenseLineDetail:"",
DepositLineDetail:"",
PurchaseOrderItemLineDetail:"",
SalesOrderItemLineDetail:"",
ItemReceiptLineDetail:"",
JournalEntryLineDetail:"",
GroupLineDetail:"",
SubTotalLineDetail:"",
CustomField:"",
LineEx:""
}
},
TxnTaxDetail:"",
TxnSource:"",
Id:"",
SyncToken:"",
MetaData:"",
CustomField:"",
AttachableRef:"",
domain:"",
status:"",
sparse:""
}
Однако, когда мой код запускается, он выходит из строя в строке $result = $this->_dataService->Add($invoice);
и вызывает следующую ошибку.
Fatal error: Uncaught IdsException: [0]: 2014-08-28 13:24:33 - /var/www/emoxie.com/vendor/emoxie/quickbooks-sdk/src/DataService/DataService.php - 335 - CheckNullResponseAndThrowException - Response Null or Empty thrown in /var/www/emoxie.com/vendor/emoxie/quickbooks-sdk/src/Core/CoreHelper.php on line 95
DataService.php Строка 335 CoreHelper :: CheckNullResponseAndThrowException ($ responseBody);
Кто-нибудь когда-нибудь сталкивался с этим и исправлял?
echo $data['clientId'];
что-нибудь возвращает? - person Alex Szabó   schedule 05.09.2014