所有请求,必须签名后发送请求。
首先,确保您已经获取到了API,如果还未获取API,请先注册获取,下面我们以下单接口为例,完整演示签名过程
POST /v1/order
确定API,这里演示使用
API_KEY = "Z302rm68PvaqTm6Z"
API_SECRET = "1864fb62564c8e516ecad98b001918b1feddf3d6e5ab93b1de20f7cdb3f8e159"
{
"energyAmount": 65000,
"period": "1H",
"receiveAddress": "TPP5NBKiMX8AjS4fyao2Nj6AhFFCqDXgWS",
"notifyUrl": "https://{mydomain}/notify",
"outTradeNo": "123456"
}
将非空参数按key的字典顺序排序,转成字符串,得到
// 存在请求参数时,注意按字典顺序排序时,**需要移除空字段**
{"energyAmount":65000,"notifyUrl":"https://{mydomain}/notify","outTradeNo":"123456","period":"1H","receiveAddress":"TPP5NBKiMX8AjS4fyao2Nj6AhFFCqDXgWS"}
// 无参请求使用{}作为最终字符串
{}
// 存在请求参数时
1686796826&{"energyAmount":65000,"notifyUrl":"https://{mydomain}/notify","outTradeNo":"123456","period":"1H","receiveAddress":"TPP5NBKiMX8AjS4fyao2Nj6AhFFCqDXgWS"}
// 无参时
1686796826&{}
bf9932cf848d6fa126ab1aca742acdc624481116e37bde154d7a6412ee4ef07e
API-KEY(和API_SECRET成对)
, TIMESTAMP(同步骤2中的时间戳一致)
,SIGNATURE(步骤3的结果)
添加到请求头headers = {
"API-KEY": "Z302rm68PvaqTm6Z",
"TIMESTAMP": "1686796826",
"SIGNATURE": "bf9932cf848d6fa126ab1aca742acdc624481116e37bde154d7a6412ee4ef07e",
"Content-Type": "application/json"
}
POST /v1/balance
无
curl --location --request POST 'https://openapi.ea888fee.top/v1/balance' \
--header 'API-KEY: Z302rm68PvaqTm6Z' \
--header 'TIMESTAMP: 1686796826' \
--header 'SIGNATURE: 257f130f0cbf6b6dfa35834cf283a5090ab8d1e9769ef67e9efea3a8f05a0105'
参数名 | 类型 | 参数说明 | 示例值 |
---|---|---|---|
platformAvailEnergy | long | 平台可用能量 | 2000000 |
minimumOrderEnergy | long | 订单最小能量 | 65000 |
prices | list | 支持的单价 | [{"period":"1H","price":36}] |
balance | long | 余额,单位sun,转成TRX需要除以1000000 | 86520000 |
{
"code":200,
"msg":"成功",
"data": {
"platformAvailEnergy": 200000000,
"minimumOrderEnergy": 65000,
"prices": [{"period":"1H","price":36},{"period":"1D","price":100}],
"balance": 86520000
}
}
{
"code": 10001,
"msg":"请求头API_KEY不能为空"
}
POST /v1/order
参数名 | 类型 | 必填 | 参数说明 | 示例值 |
---|---|---|---|---|
energyAmount | int | 是 | 代理资源数量 | 65000 |
period | string | 是 | 租赁周期,1H/1D/3D/30D; H表示1小时,D表示天 |
1H |
receiveAddress | string | 是 | 接收地址(需要是已激活的,否则下单失败) | - |
outTradeNo | string | 是 | 商户单号(小于64位) | T202402320001 |
notifyUrl | string | 否 | 租赁成功后回调,正在开发中 |
curl --location 'https://openapi.ea888fee.top/v1/order' \
--header 'API-KEY: Z302rm68PvaqTm6Z' \
--header 'TIMESTAMP: 1686796826' \
--header 'SIGNATURE: a58c18cc56142f17f555ce7a779de7590310b569151cb469674700491384f914' \
--header 'Content-Type: application/json' \
--data '{
"energyAmount":65000,
"period":"1H",
"receiveAddress":"TPP5NBKiMX8AjS4fyao2Nj6AhFFCqDXgWS",
"outTradeNo":"123465",
"notifyUrl":"https://{mydomain}/notify"
}'
参数名 | 类型 | 参数说明 | 示例值 |
---|---|---|---|
orderNo | string | 平台单号 | 790208155853393920 |
amount | long | 订单消耗余额,单价sun | 860000 |
balance | long | 余额,单位sun,转成TRX需要除以1000000 | 86520000 |
{
"code":200,
"msg":"成功",
"data": {
"orderNo": "790208155853393920",
"price": 860000,
"balance": 86520000
}
}
{
"code": 10001,
"msg":"请求头API_KEY不能为空"
}
POST /v1/order/info
参数名 | 类型 | 必填 | 参数说明 | 示例值 |
---|---|---|---|---|
orderNo | string | 是 | 平台单号 | 790208155853393920 |
curl --location 'https://openapi.ea888fee.top/v1/order/info' \
--header 'API-KEY: Z302rm68PvaqTm6Z' \
--header 'TIMESTAMP: 1686796826' \
--header 'SIGNATURE: a58c18cc56142f17f555ce7a779de7590310b569151cb469674700491384f914' \
--header 'Content-Type: application/json' \
--data '{
"orderNo":"790208155853393920"
}'
参数名 | 类型 | 参数说明 | 示例值 |
---|---|---|---|
orderNo | string | 平台单号 | 790208155853393920 |
outTradeNo | string | 商户单号 | T202402320001 |
receiveAddress | string | 下单接受能量的地址 | TPP5NBKiMX8AjS4fyao2Nj6AhFFCqDXgWS |
energyAmount | long | 请求的代理资源数量 | 86520000 |
period | string | 租赁周期,1H/1D/3D/30D | 1H |
amount | long | 支付的TRX,单位sun | 860000 |
createTime | string | 下单时间 | 2024-05-12 10:23:40 |
status | string | 状态 WAIT_DELEGATE:支付成功,等待代理 PENDING:代理中 FINISHED:代理完成 ABORT:失败 BREAK_OFF:中止 |
PENDING |
refundAmount | long | 退款金额,单位sun | 0 |
{
"code":200,
"msg":"成功",
"data": {
"orderNo": "790208155853393920",
"outTradeNo": "123465",
"receiveAddress": "TPP5NBKiMX8AjS4fyao2Nj6AhFFCqDXgWS",
"energyAmount": 65000,
"period": "1H",
"amount": 860000,
"createTime": "2024-05-12 10:23:40",
"status": "PENDING",
"refundAmount": 0
}
}
{
"code": 10001,
"msg":"请求头API_KEY不能为空"
}
错误码 | 错误描述 | 解决方案 |
---|---|---|
200 | 成功 | |
10001 | 参数错误 | 根据返回的msg进行对应的处理,注意检查参数类型 |
600001 | apiKey错误或已失效 | 查看API_KEY是否正确 |
600002 | 签名错误 | 核对签名是否正确,详见签名规则 |
600003 | 不支持的租赁周期 | 检查下单的周期是否正确,可通过余额接口获取系统当前支持的租赁周期 |
600004 | 单号已使用,请更换订单号 | 更换商户单号后重试 |
600005 | 余额不足 | 充值成功后重试 |
600006 | 资源不足 | 平台资源不足 |
600007 | 订单不存在 | 确认订单号为平台订单号 |
600008 | IP不在白名单中 | 前往【租赁API】菜单中修改支持的IP白名单 |