2016-05-12 15 views
0

SoftLayerコントロールパネルの[アカウント] - [販売] - [オーダー]に移動したときに表示されるSoftLayer注文IDがあります。そして私はアカウントの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)から情報が取り込まれます。

しかし、API(上記のAPI(注文ID 7787659))を呼び出すと、以前の請求書(請求書ID 8206439)の情報が取り込まれます。

注文IDを含む最新請求書から注文IDが選択されないのはなぜですか? 「新しい」請求書が注文アイテムを含む最新の請求書である場合、APIはこの「新しい」請求書からアイテムの請求書情報を取得する必要があります。 「RECURRING」請求書が注文アイテムを含む最新の請求書である場合、APIはこの「RECURRING」請求書からアイテムの請求書情報を取得する必要があります。

ご注文IDがあれば、私が探しているような請求情報をどのAPIとオブジェクトマスクで得ることができますか?

これらの仮想サーバーの両方を示すこの「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"は役に立ちました。私はgetAllObjects()の代わりにgetObject()を使う必要があると思います。また、initialInvoice、account.invoices、およびaccount.latestRecurringInvoiceでいくつかの他のobjectMaskを使用し、billingItem.idをマッチングさせると、私はそれらのデータを使って必要なものを見つけることができると思います。 – KHP

+0

あなたは大歓迎です:) – mcruz

関連する問題