用户能拿到发票吗?

2024-10-04 03:25:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图计算多少项目和成本的每个子帐户。我读了这篇文章。它显示如何使用“getNextInvoiceTopLevelBillingItems”(http://knowledgelayer.softlayer.com/procedure/how-extract-user-billing-information-using-softlayers-api)。你知道吗

但是,帐单项目与发票不同。例如,计费项目仅显示vCPU总金额,不显示RAM和磁盘以及NIC金额。如果我想得到所有的发票,功能将是getInvoices在SoftLayer\u帐户下。你知道吗

您是否可以查看与发票相关的项目?或者只是获取所有发票,但发票如何与用户关联?你知道吗


Tags: 项目comhttpextract帐户发票how成本
1条回答
网友
1楼 · 发布于 2024-10-04 03:25:50

是的,他们可以。您阅读的文章可以了解下一张发票上每个SoftLayer_Billing_Item总重复次数和相关的用户。考虑到发票中的项目可能是由不同的用户订购的。你知道吗

如果您想获得帐户中所有发票的相同信息,您需要使用getInvoices方法来使用相同的想法,但首先您需要了解它的结构。一个Softlayer_Billing_Invoice对象有一个SoftLayer_Billing_Invoice_Item项的列表,每个项都与一个SoftLayer_Billing_item对象相关联,如您所见,这就是您所要求的关系。你知道吗

下面是可以使用getInvoices方法获取与每个发票上的用户关联的帐单项目的对象掩码:

object_mask="mask[id,items[id,description,billingItem[id,orderItem[id,order[id,status,userRecord[id,firstName,lastName]]],invoiceItem[id,totalRecurringAmount]]]]"

但是要考虑到一张发票上可能有成百上千的项目,并且您可能因此而超时或服务器内部错误。为了避免它们,我建议您使用result limits。你知道吗

下面是一个完整的python示例。你知道吗

import SoftLayer
from pprint import pprint as pp

user_name = 'set-me'
user_key = 'set-me'    

client = SoftLayer.create_client_from_env(username=user_name, api_key=user_key)

object_mask = "mask[id,items[id,description,billingItem[id,orderItem[id," \
              "order[id,status,userRecord[id,firstName,lastName]]]," \
              "invoiceItem[id,totalRecurringAmount]]]]";

user_bill = client['Account'].getInvoices(mask=object_mask, limit=10, offset=0)

pp(user_bill)

相关问题 更多 >