购买服务器

最近更新时间:2018-07-02 09:57:23

功能描述

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"
          ]
        }
      }
    }