更新时间:2024-11-13 GMT+08:00

查询按需产品价格

功能介绍

伙伴在销售平台按照条件查询按需产品的价格。

如果购买该产品的租户享受折扣,可以在查询结果中返回折扣金额以及扣除折扣后的最后成交价。

如果该租户享受多种折扣,系统会优先返回客户享受的商务折扣的折扣金额和最终成交价。

  • 华为云根据云服务类型、资源类型、云服务区和资源规格四个条件来查询产品,查询时请确认这4个查询条件均输入正确,否则该接口会返回无法找到产品的错误。
  • 如果只是临时查询产品价格,可以到价格计算器查询。
  • 询价Api入参参数product_infos取值可以参考价格计算器查询入参,详情见按需询价示例

接口约束

该接口可以使用伙伴置换子客户的Token调用,置换前需伙伴申请客户授权客户给伙伴创建委托

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

POST /v2/bills/ratings/on-demand-resources

请求消息

请求参数

参数

是否必选

参数类型

取值范围

描述

project_id

String

最大长度:64

项目ID。

说明:

product_infos

List<DemandProductInfo>

最大个数:100

产品信息列表,询价时要询价产品的信息的列表,具体参见表1

inquiry_precision

Integer

-

查询价格结果的精度模式。此参数默认值为“0:询价结果默认精度截取”。

  • 0:询价结果默认精度截取,即最长保留到元后6位小数点,如0.000001元
  • 1:询价结果保留10位精度,即最长保留到元后10位小数点,如1.0000000001元
说明:

如果询价结果只到元后2位或者3位,那么价格也只到元后2位或者3位,不管传0或者传1都一样,只有询价结果到了小数点后面6位以上,传0和传1才有区别。

表1 DemandProductInfo

参数

是否必选

参数类型

取值范围

描述

id

String

最大长度:64

ID标识,同一次询价中不能重复,用于标识返回询价结果和请求的映射关系。

cloud_service_type

String

最大长度:400

云服务类型编码,例如OBS的云服务类型编码为“hws.service.type.obs”。您可以调用查询云服务类型列表接口获取。

resource_type

String

最大长度:400

资源类型编码,例如ECS的VM为“hws.resource.type.vm”。您可以调用查询资源类型列表接口获取。

ResourceType是CloudServiceType中的一种资源,CloudServiceType由多种ResourceType组合提供。

resource_spec

String

最大长度:400

云服务类型的资源规格。详情请参见各云服务官方文档。

部分云服务类型和资源规格举例如下:

  • 弹性云服务器:

    根据操作系统类型在云服务器规格的ID后添加“.win”或“.linux”,例如“s2.small.1.linux”。云服务器规格的ID字段,您可以调用查询规格详情和规格扩展信息列表接口获取。

  • 带宽:
    • 12_bgp:动态BGP按流量计费带宽
    • 12_sbgp:静态BGP按流量计费带宽
    • 19_bgp:动态BGP按带宽计费带宽
    • 19_sbgp:静态BGP按带宽计费带宽
    • 19_share:按带宽计费共享带宽
  • IP:
    • 5_bgp:动态BGP公网IP
    • 5_sbgp:静态BGP公网IP
  • 云硬盘:
    • SATA:普通IO云硬盘
    • SAS:高IO云硬盘
    • GPSSD:通用型SSD云硬盘
    • SSD:超高IO云硬盘
    • ESSD:极速型SSD云硬盘
    • GPSSD2.storage:通用型SSD V2云硬盘容量
    • GPSSD2.iops:通用型SSD V2云硬盘IOPS
    • GPSSD2.throughput:通用型SSD V2云硬盘吞吐量

region

String

最大长度:64

云服务区编码,例如:“ap-southeast-1”。具体请参见地区和终端节点对应云服务的“区域”列的值。

usage_factor

String

最大长度:64

使用量因子编码,大小写不敏感,取值和话单中的使用量因子一致,云服务和使用量因子对应关系举例如下:

  • 云服务器:Duration
  • 云硬盘:Duration
  • 弹性IP:Duration
  • 带宽:Duration或upflow
  • 市场镜像:Duration

您可以调用查询使用量类型列表接口获取响应参数表3中参数code的取值,即每种云服务对应的计费因子。

usage_value

BigDecimal

-

使用量值。

例如按小时询价,使用量值为1,使用量单位为小时。

usage_measure_id

Integer

最大长度:4

使用量度量单位,您可以调用查询度量单位列表接口获取。

例如按小时询价,使用量值为1,使用量单位为小时。

subscription_num

Integer

[1-10000]

订购数量。

available_zone

String

最大长度:64

可用区标识。大小写不敏感。

此参数不携带或携带值为空串或携带值为null时,不作为筛选条件。

resource_size

Integer

[1-214783647]

资源容量大小,例如购买的卷大小或带宽大小。

线性产品时此参数必填。线性产品为包括硬盘,带宽等在订购时需要指定大小的产品。例如硬盘在订购时需选择10G、20G等不同大小。

非线性产品时此参数不携带或者携带值为null时,不作为筛选条件。

size_measure_id

Integer

最大长度:4

资源容量度量标识,枚举值如下:

  • 15:Mbps(购买带宽时使用)
  • 17:GB(购买云硬盘时使用)
  • 14:个(次)

该字段随resource_size字段一起填写或不填写。

线性产品为包括硬盘,带宽等在订购时需要指定大小的产品。例如硬盘在订购时需选择10G、20G等不同大小。

非线性产品时此参数不携带或者携带值为null时,不作为筛选条件。

请求示例

POST https://bss-intl.myhuaweicloud.com/v2/bills/ratings/on-demand-resources HTTP/1.1
Content-Type: application/json
X-Auth-TokenMIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ
{
    "project_id": "06488a********832f55c016b0e337d7",
    "product_infos": [
        {
            "id": "1",
            "cloud_service_type": "hws.service.type.ec2",
            "resource_type": "hws.resource.type.vm",
            "resource_spec": "c3.3xlarge.2.linux",
            "region": "ap-southeast-1",
            "usage_factor": "Duration",
            "usage_value": 2,
            "usage_measure_id": 4,
            "subscription_num": 1,
            "available_zone": null
        },
        {
            "id": "2",
            "cloud_service_type": "hws.service.type.ebs",
            "resource_type": "hws.resource.type.volume",
            "resource_spec": "SSD",
            "region": "ap-southeast-1",
            "usage_factor": "Duration",
            "usage_value": 2,
            "usage_measure_id": 4,
            "subscription_num": 1,
            "resource_size": 10,
            "size_measure_id": 17
        },
        {
            "id": "3",
            "cloud_service_type": "hws.service.type.vpc",
            "resource_type": "hws.resource.type.ip",
            "resource_spec": "5_bgp",
            "region": "ap-southeast-1",
            "usage_factor": "Duration",
            "usage_value": 3,
            "usage_measure_id": 4,
            "subscription_num": 1,
            "available_zone": null
        },
        {
            "id": "4",
            "cloud_service_type": "hws.service.type.vpc",
            "resource_type": "hws.resource.type.bandwidth",
            "resource_spec": "12_sbgp",
            "region": "ap-southeast-1",
            "usage_factor": "upflow",
            "usage_value": 4,
            "usage_measure_id": 10,
            "subscription_num": 1,
            "available_zone": "cn-north-1a",
            "resource_size": 1,
            "size_measure_id": 15
        }
    ],
    "inquiry_precision": 1
}

响应消息

响应参数

参数

参数类型

取值范围

描述

error_code

String

最大长度:20

状态码。具体请参考状态码。只有失败才返回该字段。

error_msg

String

最大长度:1000

错误描述信息。只有失败才返回该字段。

amount

BigDecimal

-

优惠后的最终金额。

discount_amount

BigDecimal

-

优惠额(官网价和总价的差)。

official_website_amount

BigDecimal

-

按需产品的官网价。

measure_id

Integer

最大长度:4

度量单位标识。

1:美元

currency

String

最大长度:20

币种。

USD:美元。

值为空代表美元。

product_rating_results

List<DemandProductRatingResult>

-

产品询价结果,具体参见表2

表2 DemandProductRatingResult

参数

参数类型

取值范围

描述

id

String

最大长度:64

同一次询价中不能重复,用于标识返回询价结果和请求的映射关系。

product_id

String

最大长度:64

按需产品的ID。

amount

BigDecimal

-

优惠后的最终金额。

discount_amount

BigDecimal

-

优惠额(官网价和总价的差)。

official_website_amount

BigDecimal

-

按需产品的官网价。

measure_id

Integer

最大长度:4

价格度量单位标识。

1:美元

discount_rating_results

List<DemandDiscountRatingResult>

-

折扣优惠明细,包含产品本身的促销信息,同时包含商务或者伙伴折扣的优惠信息,具体参见表3

表3 DemandDiscountRatingResult

参数

参数类型

取值范围

描述

discount_id

String

最大长度:64

优惠标识ID。

discount_type

Integer

最大长度:4

折扣优惠类型。

  • 合同商务折扣:
    • 605:华为云BE场景下的合同商务折扣
    • 606:分销商BE场景下的合同商务折扣
  • 伙伴授予折扣:

    607:合作伙伴授予折扣-折扣率

amount

BigDecimal

-

折扣的金额。

measure_id

Integer

最大长度:4

度量单位标识。

1:美元

discount_name

String

最大长度:256

折扣名称。

响应示例

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: length
Date: response time 
{
    "amount": 8.128,
    "discount_amount": 0.0,
    "official_website_amount": 8.128,
    "measure_id": 1,
    "currency": "USD",
    "product_rating_results": [
        {
            "id": "1",
            "product_id": "00301-243025-0--0_merge",
            "amount": 5.48,
            "discount_amount": 0.0,
            "official_website_amount": 5.48,
            "measure_id": 1,
            "discount_rating_results": []
        },
        {
            "id": "2",
            "product_id": "00301-290407774-0--1",
            "amount": 0.028,
            "discount_amount": 0.0,
            "official_website_amount": 0.028,
            "measure_id": 1,
            "discount_rating_results": []
        },
        {
            "id": "3",
            "product_id": "00301-238601-0--0_merge",
            "amount": 0.06,
            "discount_amount": 0.0,
            "official_website_amount": 0.06,
            "measure_id": 1,
            "discount_rating_results": []
        },
        {
            "id": "4",
            "product_id": "00301-290407706-0--1",
            "amount": 2.56,
            "discount_amount": 0.0,
            "official_website_amount": 2.56,
            "measure_id": 1,
            "discount_rating_results": []
        }
    ]
}

状态码

  • 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。
  • 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。

HTTP状态码

错误码

错误描述

400

CBC.0100

参数错误。

400

CBC.99006006

产品未发现。

400

CBC.99006050

使用量单位错误。

400

CBC.99006055

询价结果超过金额最大限制。

400

CBC.99006074

计费因子不存在。

403

CBC.0151

拒绝访问。

500

CBC.0999

其他错误。