更新时间:2024-07-25 GMT+08:00
分享

实例下单

功能介绍

根据计费方式、计费周期等信息进行实例下单

调用方法

请参见如何调用API

URI

POST /v1/{project_id}/period/order

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

charging_mode

Integer

计费模式,0:包周期计费,1:按需计费,2:一次性计费

cloud_service_type

String

云服务类型

composite_product_id

String

组合套餐ID

discount_id

String

折扣ID

is_auto_renew

Integer

是否自动续费

period_num

Integer

订购周期数目

period_type

Integer

订购周期类型,2:月,3:年

product_infos

Array of ProductInfoBean objects

产品信息列表

promotion_activity_id

String

促销ID

promotion_info

String

促销信息

region_id

String

当前项目所在region的id,如:xx-xx-1。

zone

String

所属国家区域

表3 ProductInfoBean

参数

是否必选

参数类型

描述

all_resource_names

Array of strings

资源名称列表

cloud_service_type

String

云服务类型

display_id

String

展示ID

product_id

String

产品ID

product_spec_desc

String

产品规格描述

resource_name

String

资源名称

resource_size

Integer

产品支持的数据库数量,或者支持obs的扫描量

resource_size_measure_id

Integer

资源容量度量标识,枚举值举例如下:15:mbps(购买带宽时使用),17:gb(购买云硬盘时使用),14:个/次

resource_spec_code

String

产品编码

resource_type

String

资源类型

usage_factor

String

已使用系数

usage_measure_id

Integer

已使用容量度量标识

usage_value

Double

已使用值

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

order_id

String

订单ID

状态码: 400

表5 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

请求示例

在中国区域xxxxxxxxxxxx项目购买2个月的hws.service.type.sdg云服务实例,该产品支持XX个数据库或者obs的扫描量。

POST /v1/{project_id}/period/order

{
  "charging_mode" : 0,
  "cloud_service_type" : "hws.service.type.sdg",
  "is_auto_renew" : 0,
  "period_num" : 1,
  "period_type" : 2,
  "region_id" : "xxxxxxxxxxxx",
  "zone" : "CH",
  "product_infos" : [ {
    "cloud_service_type" : "hws.service.type.sdg",
    "product_id" : "xxxxxxxxxxxx",
    "resource_size" : 30,
    "resource_size_measure_id" : 30,
    "resource_spec_code" : "base_professional",
    "resource_type" : "hws.resource.type.dsc.base"
  } ]
}

响应示例

状态码: 200

OK

{
  "order_id" : "xxxxxxxxxxxx"
}

状态码: 400

无效请求

{
  "error_code" : "dsc.40000011",
  "error_msg" : "Invalid parameter"
}

SDK代码示例

SDK代码示例如下。

在中国区域xxxxxxxxxxxx项目购买2个月的hws.service.type.sdg云服务实例,该产品支持XX个数据库或者obs的扫描量。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.dsc.v1.region.DscRegion;
import com.huaweicloud.sdk.dsc.v1.*;
import com.huaweicloud.sdk.dsc.v1.model.*;

import java.util.List;
import java.util.ArrayList;

public class CreateProductOrderSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        DscClient client = DscClient.newBuilder()
                .withCredential(auth)
                .withRegion(DscRegion.valueOf("<YOUR REGION>"))
                .build();
        CreateProductOrderRequest request = new CreateProductOrderRequest();
        PeriodOrderRequest body = new PeriodOrderRequest();
        List<ProductInfoBean> listbodyProductInfos = new ArrayList<>();
        listbodyProductInfos.add(
            new ProductInfoBean()
                .withCloudServiceType("hws.service.type.sdg")
                .withProductId("xxxxxxxxxxxx")
                .withResourceSize(30)
                .withResourceSizeMeasureId(30)
                .withResourceSpecCode("base_professional")
                .withResourceType("hws.resource.type.dsc.base")
        );
        body.withZone("CH");
        body.withRegionId("xxxxxxxxxxxx");
        body.withProductInfos(listbodyProductInfos);
        body.withPeriodType(2);
        body.withPeriodNum(1);
        body.withIsAutoRenew(0);
        body.withCloudServiceType("hws.service.type.sdg");
        body.withChargingMode(0);
        request.withBody(body);
        try {
            CreateProductOrderResponse response = client.createProductOrder(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

在中国区域xxxxxxxxxxxx项目购买2个月的hws.service.type.sdg云服务实例,该产品支持XX个数据库或者obs的扫描量。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkdsc.v1.region.dsc_region import DscRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkdsc.v1 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]

    credentials = BasicCredentials(ak, sk)

    client = DscClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(DscRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = CreateProductOrderRequest()
        listProductInfosbody = [
            ProductInfoBean(
                cloud_service_type="hws.service.type.sdg",
                product_id="xxxxxxxxxxxx",
                resource_size=30,
                resource_size_measure_id=30,
                resource_spec_code="base_professional",
                resource_type="hws.resource.type.dsc.base"
            )
        ]
        request.body = PeriodOrderRequest(
            zone="CH",
            region_id="xxxxxxxxxxxx",
            product_infos=listProductInfosbody,
            period_type=2,
            period_num=1,
            is_auto_renew=0,
            cloud_service_type="hws.service.type.sdg",
            charging_mode=0
        )
        response = client.create_product_order(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

在中国区域xxxxxxxxxxxx项目购买2个月的hws.service.type.sdg云服务实例,该产品支持XX个数据库或者obs的扫描量。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    dsc "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dsc/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dsc/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dsc/v1/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := dsc.NewDscClient(
        dsc.DscClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.CreateProductOrderRequest{}
	var listProductInfosbody = []model.ProductInfoBean{
        {
            CloudServiceType: "hws.service.type.sdg",
            ProductId: "xxxxxxxxxxxx",
            ResourceSize: int32(30),
            ResourceSizeMeasureId: int32(30),
            ResourceSpecCode: "base_professional",
            ResourceType: "hws.resource.type.dsc.base",
        },
    }
	isAutoRenewPeriodOrderRequest:= int32(0)
	request.Body = &model.PeriodOrderRequest{
		Zone: "CH",
		RegionId: "xxxxxxxxxxxx",
		ProductInfos: listProductInfosbody,
		PeriodType: int32(2),
		PeriodNum: int32(1),
		IsAutoRenew: &isAutoRenewPeriodOrderRequest,
		CloudServiceType: "hws.service.type.sdg",
		ChargingMode: int32(0),
	}
	response, err := client.CreateProductOrder(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

OK

400

无效请求

错误码

请参见错误码

相关文档