2016-05-12 85 views
0

我有一個SoftLayer訂單ID,您可以在SoftLayer控制面板中進入賬戶 - >銷售 - >訂單時看到。我擁有賬戶的SoftLayer API憑證。有沒有辦法獲取此訂單的最新結算或發票信息?我需要什麼SoftLayer API和什麼對象掩碼?如何通過訂單ID獲取最新的開票發票詳細信息

這是我在用目前:

$slClient = SoftLayer_SoapClient::getClient('SoftLayer_Billing_Order', $baseInfoJSON->slOrderId, $baseInfoJSON->slApiUser, $baseInfoJSON->slApiKey); 
$mask = 'mask[description,hostName,domainName,billingItem.cancellationDate,billingItem.createDate,billingItem.currentHourlyCharge,billingItem.cycleStartDate,billingItem.description,billingItem.hourlyRecurringFee,billingItem.hoursUsed,billingItem.laborFee,billingItem.laborFeeTaxRate,billingItem.modifyDate,billingItem.nextBillDate,billingItem.oneTimeFee,billingItem.oneTimeFeeTaxRate,billingItem.recurringFee,billingItem.recurringFeeTaxRate,billingItem.setupFee,billingItem.setupFeeTaxRate,billingItem.nextInvoiceTotalOneTimeAmount,billingItem.nextInvoiceTotalOneTimeTaxAmount,billingItem.nextInvoiceTotalRecurringAmount,billingItem.nextInvoiceTotalRecurringTaxAmount,billingItem.invoiceItem,billingItem.invoiceItem.description,billingItem.invoiceItem.createDate,billingItem.invoiceItem.hourlyRecurringFee,billingItem.invoiceItem.invoiceId,billingItem.invoiceItem.laborAfterTaxAmount,billingItem.invoiceItem.laborFee,billingItem.invoiceItem.oneTimeAfterTaxAmount,billingItem.invoiceItem.oneTimeFee,billingItem.invoiceItem.recurringAfterTaxAmount,billingItem.invoiceItem.recurringFee,billingItem.invoiceItem.setupAfterTaxAmount,billingItem.invoiceItem.setupFee,billingItem.invoiceItem.invoice,billingItem.invoiceItem.invoice.companyName,billingItem.invoiceItem.invoice.id,billingItem.invoiceItem.invoice.accountId,billingItem.invoiceItem.invoice.typeCode,billingItem.invoiceItem.invoice.statusCode,billingItem.invoiceItem.invoice.amount,billingItem.invoiceItem.invoice.createDate,billingItem.invoiceItem.invoice.closedDate,billingItem.invoiceItem.invoice.endingBalance,billingItem.invoiceItem.invoice.invoiceTotalAmount,billingItem.invoiceItem.invoice.invoiceTotalOneTimeAmount,billingItem.invoiceItem.invoice.invoiceTotalPreTaxAmount,billingItem.invoiceItem.invoice.invoiceTotalRecurringAmount]'; 
$slClient->setObjectMask($mask); 
$result = $slClient->getItems(); 

而且我可以看到我在這個帳戶一個最新的經常性發票這是5月1日產生的,它包括我下的訂單回2個小時虛擬服務器3月和4月以及其他一些存儲設備。

當我爲其他訂單(訂單ID 7317809)進行相同的API調用時,它從最新發票(定期發票ID 8363665)中獲取信息。

但是,當我爲某個訂單(訂單ID 7787659)進行上述API調用時,它從早期發票(發票ID 8206439)中獲取信息。

爲什麼某些訂單ID不能從包含訂單項目的最新發票中提取?如果「新」發票是包含我的訂單商品的最新發票,那麼API應從我們的「新」發票中獲取我的商品的發票信息。如果「RECURRING」發票是包含我的訂單商品的最新發票,那麼API應從此「RECURRING」發票中獲取我的商品的發票信息。

哪個API和什麼對象掩碼會給我這樣的賬單信息,我正在尋找一個訂單ID?

我包含顯示這兩個虛擬服務器的「RECURRING」發票部分屏幕截圖。

My Invoice

回答

0

這個請求可能會幫助您:

https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Billing_Order/getAllObjects?objectMask=mask[id,account[ latestRecurringInvoice[id,statusCode]],createDate, orderApprovalDate, orderTotalAmount,status, initialInvoice[id, invoiceTotalAmount, statusCode],orderTopLevelItems[description] ] 

Method: GET 

其中:

"latestRecurringInvoice"是你正在尋找的屬性。

使用objectFilters,請求可以是:

https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Billing_Order/getAllObjects?objectMask=mask[id,account[ latestRecurringInvoice[id,statusCode]],createDate, orderApprovalDate, orderTotalAmount,status, initialInvoice[id, invoiceTotalAmount, statusCode],orderTopLevelItems[description] ]&objectFilter={ "id": {  "operation": 7787659} } 

Method: GET 

其中:

7787659是ORDER_ID。

+0

謝謝。 「lastRecurringInvoice」很有幫助,我想我需要使用getObject()而不是getAllObjects()。還使用initialInvoice,account.invoices和account.latestRecurringInvoice的其他objectMask,並匹配billingItem.id,我想我可以使用這些數據來找出我需要的。 – KHP

+0

不客氣:) – mcruz

相關問題