我有一个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”发票的部分屏幕截图,其中显示了这两个虚拟服务器。
答案 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。