购买服务器

最近更新时间:2019-06-17 16:54:13

说明:

当前页面接口为旧版 API,未来可能停止维护,目前不展示在左侧导航。黑石物理服务器1.0 API 3.0 版本接口定义更加规范,访问时延下降显著,建议使用 黑石物理服务器1.0 API 3.0

功能描述

BuyDevice 接口是用来购买黑石服务器,会自动扣除费用。

接口访问域名:bm.api.qcloud.com

请求

请求示例

https://bm.api.qcloud.com/v2/index.php?
    Action=BuyDevice
    &<公共请求参数>
    &zoneId=<可用区ID>
    &unVpcId=<私有网络ID>
    &unSubnetId=<子网ID>
    &deviceClassCode=<设备类型代号>
    &osTypeId=<操作系统类型ID>
    &raidId=<RAID类型ID>
    &timeUnit=<购买时长单位>
    &timeSpan=<购买时长>
    &goodsNum=<购买个数>
    &hasWanIp=<是否分配外网IP>
    &needSecurityAgent=<是否安装安全Agent>
    &needMonitorAgent=<是否安装监控Agent>
    &alias=<设备别名>
    &sysRootSpace=<系统盘根分区大小>
    &sysSwaporuefiSpace=<系统盘swap分区或/boot/efi分区的大小>
    &sysDataSpace=</data分区的大小>
    &hyperThreading=<是否开启超线程>
    &autoRenewFlag=<是否自动续费>
    &ipList=<购买时指定的IP地址>
    &tagDetail.0.tagKey=<标签键>
    &tagDetail.0.tagValue=<标签值>

请求参数

以下请求参数列表仅列出了接口请求参数,正式调用时需要加上公共请求参数,其它参数参见 公共请求参数 页面。其中,此接口的 Action 字段为 BuyDevice。

参数名称 必选 类型 描述
zoneId Int 可用区 ID。 通过接口 查询地域以及可用区(DescribeRegions) 获取黑石可用区信息。
unVpcId String 私有网络 ID。通过接口 查询私有网络列表(DescribeBmVpcEx) 获取私有网络信息,取 unVpcId 字段,如 vpc-8e0ypm3z。
unSubnetId String 子网 ID。 通过接口 查询子网列表(DescribeBmSubnetEx) 获取私有子网信息,取 unSubnetId 字段,如 subnet-34xt45as。
deviceClassCode String 设备类型代号,即购买页面中的“代号”。通过接口 查询设备型号(DescribeDeviceClass) 获得设备类型信息,其中 "deviceClassCode" 字段即是 deviceClassCode 所要取的值。 标准机型是必选参数。
cpuId Int cpuId 类型。自定义机型需要传入此参数。 1:E5-2620v3 (6核) * 2 ; 2:E5-2680v4 (14 核) * 2。 4:E5-2620v4 (8核) * 2
mem Int 内存大小,单位G。 自定义机型需要传入此参数。取值范围[64,128,192,256,384,512]。
haveRaidCard Int 是否需要 RAID 卡。自定义机型需要传入此参数。0:不需要 RAID 卡; 1:需要 RAID 卡。
diskTypeId1 Int 第一种规格硬盘类型。自定义机型需要传入此参数。取值通过接口获得 查询自定义机型部件信息(DescribeHardwareSpecification)
diskNum1 Int 第一种规格硬盘的盘个数。自定义机型需要传入此参数。取值1 - 12。如果是有 RAID 卡的,盘数为偶数。
diskTypeId2 Int 第二种规格硬盘类型。自定义机型需要传入此参数。取值通过接口获得 查询自定义机型部件信息(DescribeHardwareSpecification)
diskNum2 Int 第二种规格硬盘的盘个数。
osTypeId Int 操作系统类型 ID。通过接口 查询操作系统列表(DescribeOs) 获取操作系统信息。
raidId Int RAID 类型 ID。通过接口 查询机型 RAID 方式以及系统盘大小(DescribeDeviceClassPartition) 获取 RAID 信息。
timeUnit String 购买时长单位。 m:按月购买。
timeSpan Int 购买时长。
goodsNum Int 购买个数。
hasWanIp Int 是否分配外网 IP。0: 不分配; 1: 分配。 默认不分配。
needSecurityAgent Int 是否安装安全 Agent。 0:不安装; 1:安装。 默认不安装。
needMonitorAgent Int 是否安装监控 Agent。 0:不安装; 1:安装。 默认不安装。
alias String 设备别名。如果购买多台机器,别名自动编号。
sysRootSpace Int 系统盘根分区大小,单位为GB。默认是10G。系统盘的大小参见接口 查询机型RAID方式以及系统盘大小(DescribeDeviceClassPartition)
sysSwaporuefiSpace Int 系统盘 swap 分区或 /boot/efi 分区的大小,单位为GB。若是 uefi 启动的机器,分区为 /boot/efi,且此值是默认是2G。 普通机器为 swap 分区,可以不指定此分区。 机型是否是 uefi 启动,参见接口 查询设备型号(DescribeDeviceClass)
sysDataSpace Int /data 分区的大小,单位为GB。如果系统盘还有剩余大小,会分配给 /data 分区。(特殊情况:如果剩余空间不足10G,并且没有指定 /data 分区,则剩余空间会分配给 Root 分区。)
hyperThreading Int 是否开启超线程。0:关闭;1:开启。默认开启。
autoRenewFlag Int 是否自动续费。0:不自动续费(默认值);1:自动续费。
ipList Array(String) 购买时指定的 IP 地址。
fileSystem String 指定数据盘的文件系统格式,当前支持 ext4 和 xfs 选项, 默认为 ext4。 参数适用于数据盘和 Linux, 且在 isZoning 为1时生效
tagDetail Array(Object) 购买时为物理机指定的标签
passwd String 用户设置的 Linux root 或 Windows Administrator 密码。密码校验规则:
  • Windows 机器密码需12到16位,至少包括三项[a-z],[A-Z],[0-9][()'~!@#$%^&*-+=_|{}[]:;'<>,.?/]的特殊符号, 密码不能包含 Administrator(不区分大小写);
  • Linux 机器密码需8到16位,至少包括两项[a-z,A-Z],[0-9][()'~!@#$%^&*-+=_|{}[]:;'<>,.?/]的特殊符号。
  • tagDetail数组的每一个元素的结构

    参数名称 必选 类型 描述
    tagKey String 标签键
    tagValue String 标签键对应的标签值

    响应

    响应示例

    {
      "code": 0,
      "message": "OK",
      "data": {
        "dealNames": [
          "20160721110015"
        ],
        "resourceIds": {
          "20160721110015": [
            "dcpm-iizn577x",
            "dcpm-ntlsj9gh"
          ]
        }
      }
    }

    响应参数

    响应参数部分包含两层结构,外层展示接口的响应结果,内层展示具体的接口内容,包括订单号以及物理机 ID 等信息。

    参数名称 类型 描述
    code Int 错误码,0:成功,其他值:失败,具体含义参见 错误码
    message String 错误信息。
    data Object 返回订单的信息。具体结构描述如 data 结构所示。

    data结构

    参数名称 类型 描述
    dealNames Array(String) 字符串数组,数组元素为订单号。
    resourceIds Object 以订单号为 key,对应的值为字符串数组,数组元素为物理机 ID。

    错误码

    错误码 英文提示 错误描述
    9009 InternalError.TradeError 腾讯内部交易失败
    100001 InvalidParameter 参数错误
    100004 OperationDenied.NoPermission 不支持此项操作
    500008 TradeError.QueryPriceError 询价失败
    100002 TradeError.DbError 交易 DB 操作失败
    100612 TradeError.CouponInvalid 无效的代金券
    700104 TradeError.GoodsConfigInvalid 获取商品配置失败
    700108 TradeError.GoodsCodeInvalid 商品 ID 无效
    700102 TradeError.CheckGoodsError 业务参数校验失败
    700110 TradeError.OperationDenied 不允许对商品进行对应操作
    700007 TradeError.ResourceLimit 购买数量超过限制
    100207 TradeError.InsufficientMoney 余额不足
    100200 TradeError.PayFail 支付失败
    100188 TradeError.BillPartialError 支付成功但部分订单发货失败
    500006 TradeError.PayingError 支付过程出错

    实际案例

    输入

        https://bm.api.qcloud.com/v2/index.php?    
        Action=BuyDevice
        &SecretId=AKID52SKw5uMEy3jhpMUBqSylEBJBby6E0KC
        &Nonce=48476
        &Timestamp=1476436689
        &Region=bj
        &Signature=afRlJQ0disdT97B7uIfVB4v2KWo%3D
        &zoneId=1000800001
        &unVpcId=vpc-8e0ypm3z
        &unSubnetId=subnet-34xt45as
        &deviceClassCode=PS100v1
        &osTypeId=2
        &raidId=3
        &timeUnit=m
        &timeSpan=2
        &goodsNum=5
        &hasWanIp=1
        &needSecurityAgent=1
        &alias=实例名

    输出

    {
      "code": 0,
      "message": "OK",
      "data": {
        "dealNames": [
          "20160721110015"
        ],
        "resourceIds": {
          "20160721110015": [
            "dcpm-iizn577x",
            "dcpm-ntlsj9gh"
          ]
        }
      }
    }