2016-05-12 154 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

相关问题