如何获取订单ID

时间:2016-05-12 22:33:20

标签: ibm-cloud-infrastructure

我有一个SoftLayer订单ID,您在转到帐户时会看到 - >销售 - > SoftLayer控制面板中的订单。我有该帐户的SoftLayer API凭证。有没有办法获得此订单的最新帐单或发票信息?我需要什么SoftLayer API和什么对象掩码?

这就是我目前使用的:

$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日生成的此帐户中有最新的定期发票,其中包括我在3月和4月订购的2个小时虚拟服务器以及其他一些存储设备。

当我为另一个订单(订单ID 7317809)进行相同的API调用时,它会从最新发票(定期发票ID 8363665)中获取信息。

但是当我为其中一个订单(订单ID 7787659)进行上述API调用时,它会从早期发票(发票ID 8206439)中获取信息。

为什么某些订单ID不会从包含订单商品的最新发票中提取?如果“新”发票是包含我的订单商品的最新发票,则API应从此“新”发票中获取我的商品的发票信息。如果“RECURRING”发票是包含我的订单商品的最新发票,那么API应该从此“RECURRING”发票中获取我的商品的发票信息。

在给定订单ID的情况下,哪个API和哪个对象掩码会向我提供我要查找的结算信息?

我正在显示这个“RECURRING”发票的部分屏幕截图,其中显示了这两个虚拟服务器。

My Invoice

1 个答案:

答案 0 :(得分: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。