简介
供应商统一接口是一套需要供应商实现的动静态代理开通,续费,释放接口。 供应商只需要实现自己有的产品即可,与自己无关的无需实现。
版本更新
全新对接,直接跳过当前,往后看,如果已经对接,看一下最新更新的内容
| 版本 | 发布时间 | 更新内容 |
|---|---|---|
| v2.0.5 | 2024-10-14 | 获取库存返回重新定义ispType,增加netType |
| v2.0.4 | 2024-10-11 | 1.指定ip开通; 2.获取库存返回增加isp类型及ip段返回asn和isp; 3.ip访问增加白名单 |
| v2.0.3 | 2024-08-14 | 产品库存类型ispType定义细化 |
| v2.0.2 | 2024-08-06 | 增加余额返回 |
| v2.0.1 | 2024-07-08 | 更新获取订单的useType为string,以","隔开多类型返回 查看 |
代理开通流程
开通订单是一个异步流程,主要流程包含如下

- 1.我方收到用户请求处理。
- 2.我方处理后向供应商发起开通订单请求。
- 3.供应商收到请求,返回接受订单(这是需要返回供应商自身的订单)。
- 4.供应商处理开通订单,开通实例。
- 5.供应商开通完成后,通知我方订单完成(可以多次回调,请确保订单状态)
- 6.我方收到供应商回调后,拉取订单信息(如果长时间未回调,我方会主动发起回调拉取)
- 7.我方收到订单最终信息后,返回到用户。
api请求统一接口参数及返回
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| reqId | string | 是 | 请求id,作为幂等性检查 |
| version | string | 是 | 版本号 |
| method | string | 是 | 请求方法 |
| timestamp | int | 是 | 时间戳 |
| supplierNo | string | 是 | 供应商编号 |
| params | string | 是 | 方法的请求参数,aes加密转base64 |
2.1.2. 主返回数据
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| code | - | int | 是 | 状态码 200成功 |
| message | - | string | 是 | 错误信息 |
| data | - | string | 是 | 成功返回数据,aes加密转base64 |
安全
接口通过aes 加密 cbc 模式
请求时序图如下

备注:
- 请求加密串最终存在params,返回数据加密串存在data参数
- 如果返回数据只有状态码,没有data数据,就不需要做加密返回。
数据加密
- 消息内容为: TestMessage (前后无空格)
- 密钥为: qwertyuiop123456 (前后无空格)
- 通过aes_cbc模式,并Base64后: 5cfJMwX0w65sEQVBxu9zHw==
请求json示例
{
"reqId":"qqqqqqqqqqqqqqqq",
"version":"2.0",
"timestamp":1719887928,
"method":"GetProductStock",
"supplierNo":"testsupplier",
"params":"5cfJMwX0w65sEQVBxu9zHw=="
}
返回json示例
{
"code":200,
"message":"ok",
"data":"5cfJMwX0w65sEQVBxu9zHw=="
}
go aes cbc加解密函数
package cryptos
import (
"bytes"
"crypto/aes"
"crypto/cipher"
)
// =================== CBC ======================
// key的长度必须为16, 24或者32
func AesEncryptCBC(origData []byte, key []byte) (encrypted []byte, err error) {
// 分组秘钥
block, _err := aes.NewCipher(key)
if _err != nil {
err = _err
return
}
blockSize := block.BlockSize() // 获取秘钥块的长度
origData = pkcs5Padding(origData, blockSize) // 补全码
blockMode := cipher.NewCBCEncrypter(block, key[:blockSize]) // 加密模式
encrypted = make([]byte, len(origData)) // 创建数组
blockMode.CryptBlocks(encrypted, origData) // 加密
return encrypted, nil
}
// key的长度必须为16, 24或者32
func AesDecryptCBC(encrypted []byte, key []byte) (decrypted []byte, err error) {
block, _err := aes.NewCipher(key) // 分组秘钥
if _err != nil {
err = _err
return
}
blockSize := block.BlockSize() // 获取秘钥块的长度
blockMode := cipher.NewCBCDecrypter(block, key[:blockSize]) // 加密模式
decrypted = make([]byte, len(encrypted)) // 创建数组
blockMode.CryptBlocks(decrypted, encrypted) // 解密
decrypted = pkcs5UnPadding(decrypted) // 去除补全码
return decrypted, nil
}
func pkcs5Padding(ciphertext []byte, blockSize int) []byte {
padding := blockSize - len(ciphertext)%blockSize
padtext := bytes.Repeat([]byte{byte(padding)}, padding)
return append(ciphertext, padtext...)
}
func pkcs5UnPadding(origData []byte) []byte {
length := len(origData)
unpadding := int(origData[length-1])
return origData[:(length - unpadding)]
}
获取库存
我方定期会去拉取库存信息
方法名(method)
GetProductStock
请求参数
当主接口中的method为GetProductStock时,该参数是主接口中的params参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| proxyType | - | int | 否 | 代理类型(不传为全部) 详见5.1数据字典 |
| countryCode | - | string | 否 | 国家代码(不传为全部),我方统一规范 |
| cityCode | - | string | 否 | 城市代码(不传为全部),我方统一规范 |
| productId | - | string | 否 | 供应商的产品Id |
| page | - | int | 否 | 默认为1 |
| pageSize | - | int | 否 | 默认为100 |
返回数据
当前返回数据为主返回数据中的data数据
| 参数 | 二级参数 | 三级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|---|
| total | - | - | int | 是 | 总条数 |
| curPage | - | - | int | 是 | 当前页 |
| products | - | - | array | 是 | 产品列表 |
| - | productId | - | string | 是 | 供应商产品编号(一个产品唯一) |
| - | areaCode | - | string | 是 | 洲代码,我方统一规范 |
| - | countryCode | - | string | 是 | 国家代码,我方统一规范 |
| - | stateCode | - | string | 是 | 州省代码,我方统一规范 |
| - | cityCode | - | string | 是 | 城市代码,我方统一规范 |
| - | detail | - | string | 否 | 产品详情描述 |
| - | productName | - | string | 是 | 商品名(最多255字) |
| - | protocol | - | string | 是 | 代理协议(以,英文逗号隔开)详见5.2字典 |
| - | proxyType | - | int | 是 | 代理类型:详见5.1数据字典 |
| - | sellLimit | - | int | 是 | 售卖限制 1=大陆可售 2=海外可售 3=无限制 |
| - | useLimit | - | int | 是 | 使用限制 1=出口ip国外 2=出口ip国内 3=无限制 |
| - | useType | - | string | 是 | 使用限制 以逗号(,)分割 1=账密 2=白名单 |
| - | bandWidthType | int | 是 | 带宽类型 1=独享 2=共享 3=流量包 | |
| - | bandWidth | int | 是 | 带宽大小 动态流量时必须 单位 MB | |
| - | costPrice | string | 是 | 产品成本价 | |
| - | unit | int | 是 | 时长单位 详见5.3 | |
| - | duration | int | 是 | 产品时长 根据上面单位的时长 unit 1 duration 30 就是30天 | |
| - | inventory | int | 是 | 库存数量 | |
| - | cpu | int | 否 | cpu数量 | |
| - | ipType | int | 否 | ip类型 1=ipv4 2=ipv6 3=随机 默认1 | |
| - | ispType | int | 否 | isp类型:1=单isp 2=双isp 0=未知默认 | |
| - | netType | int | 否 | 网络类型:1=原生 2=广播 0=未知默认 | |
| - | memory | string | 否 | 内存大小 单位M | |
| - | imageId | - | string | 否 | 镜像id |
| - | securityGroupId | - | string | 否 | 安全组id |
| - | regionId | - | string | 否 | 提供商该产品所在区域id |
| - | cidrBlocks | - | array | 否 | ip段 ,如果支持开通某IP段,填写该区域下ip段及数量 |
| - | - | cidr | string | 否 | ip段 |
| - | - | count | int | 否 | ip段ip库存数 |
| - | - | asn | string | 否 | 该网段属于哪个asn (如果确定请返回 格式大写: ASN数字 eg:ASN123 ) |
| - | - | isp | string | 否 | 该网段属于哪个运营商 比如ATT |
备注:
- 动态资源只需要一条产品,区域额外接口提供。
- 已经上线被我们拉取的产品,如果下线了,请以库存为0返回给我。或者人为通知我们,要不我们会处于长期上线有货状态
获取账户余额
获取账户余额,方便我们监控,及时充值
方法名(method)
GetBalance
请求参数
无
返回参数
| 参数 | 二级参数 | 三级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|---|
| amount | - | - | float | 是 | 账户货币余额 |
| lastFlow | - | - | float | 是 | 剩余流量(单位M)如果流量和账户货币独立,请独立返回 |
| totalFlow | - | - | float | 是 | 总流量 (单位M) 如果流量和账户货币独立,请独立返回 |
静态
静态代理相关api接口
创建代理(静态)
方法名(method)
CreateProxy
请求参数
当主接口中的method为CreateProxy时,该参数是主接口中的params参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| reqOrderNo | - | string | 是 | 我方创建代理订单号 |
| productId | - | string | 是 | 供应商产品编号(供应商系统内部唯一) |
| duration | - | int | 是 | 必要 时长 0无限制 |
| unit | - | int | 是 | 时长单位 详见5.3 |
| amount | - | int | 是 | 数量 |
| regionId | - | string | 否 | 提供商区域id(产品内有会传递) |
| securityGroupId | - | string | 否 | 安全组(产品内有会传递) |
| imageId | - | string | 否 | 镜像id(产品内有会传递) |
| userPrefix | - | string | 否 | 用户名前缀,我方传输abc供应商生成须为abcxxxxxxx,且实列唯一 |
| cidrBlocks | - | array | 否 | ip段 ,如果产品支持 |
| - | cidr | String | 否 | ip段 |
| - | count | int | 否 | 该ip段ip创建数 |
返回数据
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| orderNo | - | string | 是 | 供应商订单号 |
| reqOrderNo | - | string | 是 | 我方请求订单号 |
| status | - | string | 是 | 状态 1=开通中 2=操作完成 3=操作失败 |
| amount | - | string | 否 | 花费金额(总共花费金额) |
续费代理
方法名(method)
RewProxy
请求参数
当主接口中的method为RewProxy时,该参数是主接口中的params参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| reqOrderNo | - | string | 是 | 我方订单号(和创建该实例的订单号不是一个, 如果供应商系统续费代理的时候不创建订单不需要做关联和校验) |
| instances | - | array | 是 | 必要 实列数组 |
| - | duration | int | 否 | 时长,不传为购买时时长 |
| - | unit | int | 否 | 单位,不穿为购买时单位(时长不传,单位没有意义 |
| - | instanceId | string | 是 | 供应商实例编号(供应商系统内部唯一),供应商凭当前值做续费 |
返回数据
当前返回数据为主返回数据中的data数据 同开通
释放删除代理
方法名(method)
DelProxy
请求参数
当主接口中的method为DelProxy时,该参数是主接口中的params参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| reqOrderNo | - | string | 是 | 我方订单号(和创建该实例的订单号不是一个, 如果供应商系统删除代理的时候不创建订单不需要做关联和校验) |
| instanceIds | - | []string | 是 | 供应商实例编号列表(供应商系统内部唯一),删除多个实例 |
返回数据
当前返回数据为主返回数据中的data数据 同开通
获取订单
方法名(method)
GetOrder
请求参数
当主接口中的method为GetOrder时,该参数是主接口中的params参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| reqOrderNo | - | string | 是 | 我方订单号 |
| orderNo | - | string | 是 | 供应商订单号 |
| page | - | int | 否 | 默认1 |
| pageSize | - | int | 否 | 默认100 |
返回数据
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| orderNo | - | string | 是 | 供应商订单号 |
| reqOrderNo | - | string | 是 | 我方请求订单号 |
| status | - | string | 是 | 状态 1=开通中 2=操作完成 3=操作失败 |
| amount | - | string | 否 | 花费金额(总共花费金额) |
| total | - | int | 是 | 总ip数 |
| curPage | - | int | 是 | 当前第几页 |
| ipInfo | - | array | 是 | ip信息 |
| - | type | int | 是 | ip类型 1=ipv4 2=ipv6 3=随机 |
| - | instanceId | string | 是 | 实例id |
| - | ip | string | 否 | ip (1 静态ip存在时,此字段必须存在) |
| - | port | int | 是 | 端口 |
| - | username | string | 否 | 用户名(账密模式必须返回) |
| - | password | string | 否 | 密码(账密模式必须返回) |
| - | expireAt | int | 是 | 过期时间 Unix Timestamp(秒) |
| - | flow | int | 是 | 流量(2流量时,此字段必须存在) |
| - | balanceFlow | int | 是 | 余额流量(2流量时,此字段必须存在) |
| - | status | int | 是 | 状态 1=开通中 2=正常使用 3=释放中 4=释放完成 |
| - | useType | string | 是 | 使用方式 多个用英文逗号分隔 1=账密 2=ip白名单 3=uuid(uuid写password内) |
获取实例
获取实例的
方法名(method)
GetInstance
请求参数
当主接口中的method为GetInstance时,该参数是主接口中的params参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| instanceId | - | string | 是 | 供应商实例编号(供应商系统内部唯一) |
| ip | - | string | 否 | ip |
| username | - | string | 否 | 用户名 |
返回数据
当前返回数据为主返回数据中的data数据
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| type | - | int | 是 | ip类型 1=ipv4 2=ipv6 3=随机 |
| instanceId | - | string | 是 | 实例id |
| ip | - | string | 否 | ip (1 静态ip存在时,此字段必须存在) |
| port | - | int | 是 | 端口 |
| username | - | string | 否 | 用户名(账密模式必须返回) |
| password | - | string | 否 | 密码(账密模式必须返回) |
| expireAt | - | int | 是 | 过期时间 |
| flow | - | int | 是 | 流量(2流量时,此字段必须存在) |
| balanceFlow | - | int | 是 | 余额流量(2流量时,此字段必须存在) |
| status | - | int | 是 | 状态 1=开通中 2=正常使用 3=释放中 4=释放完成 |
| useType | - | string | 是 | 使用方式 多个用英文逗号分隔 1=账密 2=ip白名单 3=uuid(uuid写password内) |
根据ip创建代理(静态)
方法名(method)
AssignIpCreateProxy
请求参数
当主接口中的method为AssignIpCreateProxy时,该参数是主接口中的params参数
指定ip开通,冷静期无限制,也可以开通。
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| reqOrderNo | - | string | 是 | 我方创建代理订单号 |
| duration | - | int | 是 | 必要 时长 0无限制 |
| unit | - | int | 是 | 时长单位 详见5.3 |
| assignIp | - | string | 是 | 指定ip |
返回数据
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| orderNo | - | string | 是 | 供应商订单号 |
| reqOrderNo | - | string | 是 | 我方请求订单号 |
| status | - | string | 是 | 状态 1=开通中 2=操作完成 3=操作失败 |
| amount | - | string | 否 | 花费金额(总共花费金额) |
添加静态代理ip域名白名单
通过接口添加静态代理IP域名白名单
方法名(method)
AddIpDomainWhiteList
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| ip | - | string | 是 | ip地址 |
| domain | - | string | 是 | 域名 |
返回参数
获取指定代理IP可用信息(静态)
方法名(method)
GetAssignIpInfo
请求参数
当主接口中的method为GetAssignIpInfo时,该参数是主接口中的params参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| ip | - | string | 是 | 指定ip |
返回数据
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| ip | - | string | 是 | 指定ip |
| canBuyStatus | - | int | 是 | 是否可以购买 1=是 -1=否 |
动态接口
创建用户
该用户为动态用户的主账户,所有的流量分配都在主账户下,该用户下子账户可以使用主账户的流量。
方法名(method)
CreateUser
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| username | - | string | 是 | 主账号用户名 |
| password | - | string | 是 | 主账号密码 |
| status | - | int | 否 | 状态:1=状态 2=禁用 |
返回参数
备注
创建主账户的同时,须创建相同的子账户。
更新用户
该用户为动态用户的主账户,所有的流量分配都在主账户下,该用户下子账户可以使用主账户的流量。
方法名(method)
UpdateUser
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| username | - | string | 是 | 主账号用户名 |
| password | - | string | 否 | 主账号密码 为null |
| status | - | int | 否 | 状态:1=状态 2=禁用 |
返回参数
获取用户信息
获取主账户信息。
方法名(method)
GetUserInfo
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| username | - | string | 是 | 主账号用户名 |
返回参数
| 参数 | 二级参数 | 三级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|---|
| username | - | - | string | 是 | 用户名 |
| lastFlow | - | - | float | 是 | 剩余流量 |
| totalFlow | - | - | float | 是 | 总流量 |
| status | - | - | int | 是 | 用户状态 1=状态 2=禁用 |
| ipWhiles | - | - | []string | 是 | ip白名单 |
创建子用户
该用户为动态用户的子账户,子账号可以用来提取ip。
方法名(method)
CreateSubUser
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| username | - | string | 是 | 子账号用户名 |
| password | - | string | 否 | 子账号密码 |
| mainUsername | - | string | 是 | 主账号用户名 |
| limitFlow | - | int | 否 | 动态流量上限 |
| status | - | int | 否 | 状态:1=状态 2=禁用 |
| remark | - | string | 否 | 备注 |
返回参数
更新子用户
该用户为动态用户的子账户,子账号可以用来提取ip。
方法名(method)
UpdateSubUser
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| username | - | string | 是 | 子账号用户名 |
| password | - | string | 否 | 子账号密码 |
| mainUsername | - | string | 是 | 主账号用户名 |
| limitFlow | - | int | 否 | 动态流量上限 |
| status | - | int | 否 | 状态:1=状态 2=禁用 |
| remark | - | string | 否 | 备注 |
返回参数
给账户分配流量
分配用户流量,如果用户现在没有流量,分配10G流量,剩余10G流量
方法名(method)
DistributeFlow
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| reqOrderNo | - | string | 是 | 我方订单号,注意幂等性 |
| username | - | string | 是 | 主账号用户名 |
| flow | - | flow | 是 | 分配的流量,单位mb |
返回参数
| 参数 | 二级参数 | 三级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|---|
| username | - | - | string | 是 | 用户名 |
| lastFlow | - | - | float | 是 | 剩余流量 |
| totalFlow | - | - | float | 是 | 总流量 |
| status | - | - | int | 是 | 用户状态 1=状态 2=禁用 |
| ipWhiles | - | - | []string | 是 | ip白名单 |
回收账户流量
回收用户流量,加入用户现在有100G流量,回收50G,剩余50G
方法名(method)
RecycleFlow
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| reqOrderNo | - | string | 是 | 我方订单号,注意幂等性 |
| username | - | string | 是 | 主账号用户名 |
| flow | - | flow | 是 | 回收的流量,单位mb,-1时回收所有流量 |
返回参数
| 参数 | 二级参数 | 三级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|---|
| username | - | - | string | 是 | 用户名 |
| lastFlow | - | - | float | 是 | 剩余流量 |
| totalFlow | - | - | float | 是 | 总流量 |
| status | - | - | int | 是 | 用户状态 1=状态 2=禁用 |
| ipWhiles | - | - | []string | 是 | ip白名单 |
获取动态地区
获取动态区域信息,areaCode,countryCode,stateCode,cityCode我方统一提供,region供应商可以自定义,确保提取ip时正确就行。
方法名(method)
GetDynamicArea
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| proxyType | - | int | 否 | 不传为全部 详见字典 |
| productId | - | string | 否 | 供应商动态的产品id |
返回参数
| 参数 | 二级参数 | 三级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|---|
| proxyType | - | - | int | 是 | 动态类型 |
| productId | - | - | string | 是 | 产品id |
| areaCode | - | - | string | 是 | 区域代码(大洲) |
| countryCode | - | - | string | 否 | 国家代码 |
| stateCode | - | - | string | 否 | 州省代码 |
| cityCode | - | - | string | 否 | 州城市代码 |
| region | - | - | string | 是 | 提取时地区代码,供应商自定义 |
| status | - | - | int | 是 | 状态 1=上架 -1=下架 |
获取代理账户
通过接口获取代理商户
方法名(method)
DrawDynamicIp
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| region | - | string | 否 | 不传为全球随机 |
| sessTime | - | int | 否 | 有效时间1-120 分钟,默认5分钟 |
| username | - | string | 是 | 子用户名 |
| num | - | int | 否 | 生成数量,默认1 |
| regionLevel | - | int | 否 | 区域级别 1=洲 2=国家 3=省或州 4=城市 |
返回参数
| 参数 | 二级参数 | 三级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|---|
| proxyUrl | - | - | string | 是 | 域名:端口 eg proxy.ipipv.com:5206 |
| list | - | - | []string | 是 | 返回动态代理访问方式 username-region-us-session-xxxx-sessTime-10:pwd |
动态代理使用参数
| 参数 | 类型 | 说明 |
|---|---|---|
| username | string | 子账号用户名 |
| region | string | 区域值(获取动态区域返回的region)值 |
| session | string | session,在sessTime内,同一个session返回的ip不变,session取值支持9-16位 |
| sessTime | int | session time 时长1-120分钟 |
| pwd | string | 子账户密码 |
使用例子
eg:
curl http://domain:port@username-region-us-session-xxxx-sessTime-10:pwd myip.ipipv.com
获取代理账户
通过接口获取代理商户
方法名(method)
DrawDynamicIpByApi
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| region | - | string | 否 | 不传为全球随机 全球混播 |
| protocol | - | string | 否 | 协议 可选 默认socks5 取值 socks5 http 之一 |
| returnType | - | string | 否 | 数据格式 可选 默认txt 取值 txt json 之一 |
| username | - | string | 是 | 主账号用户名 |
| num | - | int | 否 | 生成数量,默认1 |
| regionLevel | - | int | 否 | 区域级别 1=洲 2=国家 3=省或州 4=城市 |
| delimiter | - | int | 否 | 分隔符 可选 只有数据格式是txt的时候生效 默认1 (1=\r\n 2=/br 3=\r 4=\n 5=\t) |
| productId | - | string | 否 | 供应商产品Id 可选 |
| unrepeated | - | string | 否 | 不传默认 hour,day,week,month,year |
返回参数
| 参数 | 二级参数 | 三级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|---|
| proxyUrl | - | - | string | 是 | 提取代理的url |
添加ip白名单
通过接口添加ip白名单
方法名(method)
AddIpWhiteList
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| ip | - | string | 是 | ip地址 |
| username | - | string | 是 | 主账号用户名 |
返回参数
删除ip白名单
通过接口删除ip白名单
方法名(method)
DelIpWhiteList
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| ip | - | string | 是 | ip地址 |
| username | - | string | 是 | 主账号用户名 |
返回参数
获取ip白名单
通过接口获取ip白名单
方法名(method)
GetIpWhiteList
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| username | - | string | 是 | 主账号用户名 |
返回参数
| 参数 | 二级参数 | 三级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|---|
| list | - | - | []string | 是 | ip白名单列表 |
获取流量使用记录明细
通过接口流量使用记录明细
方法名(method)
GetFlowUseLog
请求参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| username | - | string | 是 | 主账号用户名 |
| startTime | - | string | 否 | 开始时间 格式 2021-01-01 00:00:00 |
| endTime | - | string | 否 | 结束时间 格式 2021-01-01 00:00:00 |
| page | - | int | 否 | 页码 默认1 |
| pageSize | - | int | 否 | 每页数量 |
| productId | - | string | 否 | 供应商产品Id 可选 |
返回参数
| 参数 | 二级参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| total | - | int | 是 | 总数量 |
| curPage | - | int | 是 | 当前第几页 |
| list | - | array | 是 | list |
| - | used | int64 | 是 | 已使用流量 单位 B |
| - | total | int64 | 是 | 总流量 单位 B |
| - | balance | int64 | 否 | 剩余流量 单位 B |
| - | usedTime | int64 | 是 | 使用时间 单位 秒 |
| - | productId | string | 否 | 供应商产品Id |
供应商通知我方订单或者实列
http(s)://domain/api/open/supplier/notify?supplier=xxx&type=[order|instance|product]&no=
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| supplier | string | 是 | 供应商号 |
| type | string | 是 | 枚举:order|instance|product |
| no | string | 是 | order时为我方请求的订单号,instance时为供应商开的机器的唯一实列id,product时为供应商产品的唯一id |
请求示例
curl 'http://172.19.167.104:7888/api/open/supplier/notify?supplier=xxx&type=order&no=xxxxx'
我方请求返回数据
{
"code": 200,
"message": "ok"
}
备注:
- order 订单完成,时触发order回调
- instance 实列改变时,出发instance回调
- product 产品上下架,或者产品库存为0,售罄商品补货完成后调用
数据字典
代理类型
| 编号 | 说明 |
|---|---|
| 101 | 静态云平台 |
| 102 | 静态国内家庭 |
| 103 | 静态国外家庭 |
| 104 | 动态国外 |
| 105 | 动态国内 |
代理协议
| 编号 | 说明 |
|---|---|
| 1 | socks5 |
| 2 | http |
| 3 | https |
| 4 | ssh |
时长单位
| 编号 | 说明 |
|---|---|
| 1 | 天 |
| 2 | 周(7天) |
| 3 | 自然月 |
| 4 | 自然年365,366 |
| 10 | 无限制 |
ispType
| 编号 | 说明 |
|---|---|
| 0 | 未知(默认) |
| 1 | 单isp |
| 2 | 双isp |
| 3 | 原生isp |
| 4 | 机房数据中心 |
返回状态码
| 编号 | 说明 |
|---|---|
| 200 | 成功 |
| 500 | 系统错误 |
| 10001 | 解密失败,请检查密码 |
| 10002 | 创建代理失败,余额不足(返回当前值为未执行创建) |
| 10003 | 创建代理失败,库存不足(返回当前值为未执行创建) |
| 10004 | 创建代理失败,参数有误 |
| 10011 | 续费失败,实例不存在 |
| 10021 | 释放失败,实例不存在 |
| 10022 | 释放失败,实例已超过释放周期 |
| 10031 | 获取订单失败,订单不存在 |
| 10041 | 获取实例失败,实例不存在 |
| 10051 | 创建用户失败,用户名已存在 |
| 10052 | 获取用户失败,用户不存在 |
| 10061 | 创建子账户失败,用户名已存在 |
| 10062 | 获取子账户失败,用户不存在 |
| 10061 | 创建子账户失败,主账户不存在 |
| 10061 | 创建子账户失败,主账户已禁用 |
| 10071 | 分配流量失败,主账户不存在或者被禁用 |
| 10072 | 分配流量失败,余额不足 |
| 10081 | 回收流量失败,余额不足 |
| 10091 | 参数错误,region不存在 |
| 10092 | 参数错误,username子账户不存在 |
| 10093 | 参数错误,sessTime取值范围1-120(分钟) |