交易请求
下新的订单 (TRADE)
{
"id": "56374a46-3061-486b-a311-99ee972eb648",
"method": "order.place",
"params": {
"symbol": "BTCUSDT",
"side": "SELL",
"type": "LIMIT",
"timeInForce": "GTC",
"price": "23416.10000000",
"quantity": "0.00847000",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}
下新的订单。
这个请求会把1个订单添加到 EXCHANGE_MAX_ORDERS 过滤器和 MAX_NUM_ORDERS 过滤器中。
权重: 1
未成交的订单计数: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
symbol | STRING | YES | |
side | ENUM | YES | BUY 或者 SELL |
type | ENUM | YES | |
timeInForce | ENUM | NO * | |
price | DECIMAL | NO * | |
quantity | DECIMAL | NO * | |
quoteOrderQty | DECIMAL | NO * | |
newClientOrderId | STRING | NO | 客户自定义的唯一订单ID。如果未发送,则自动生成。 |
newOrderRespType | ENUM | NO | 可选的响应格式:
|
stopPrice | DECIMAL | NO * | |
trailingDelta | INT | NO * | 请看 Trailing Stop order FAQ |
icebergQty | DECIMAL | NO | |
strategyId | LONG | NO | 标识订单策略中订单的任意ID。 |
strategyType | INT | NO | 标识订单策略的任意数值。 小于 |
selfTradePreventionMode | ENUM | NO | 允许的 ENUM 取决于交易对的配置。支持值:STP 模式 |
pegPriceType | ENUM | NO | PRIMARY_PEG 或 MARKET_PEG 参阅 挂钩订单 |
pegOffsetValue | INT | NO | 用于挂钩的价格水平(最大值:100) 参阅 挂钩订单 |
pegOffsetType | ENUM | NO | 仅支持 PRICE_LEVEL 参阅 挂钩订单 |
apiKey | STRING | YES | |
recvWindow | DECIMAL | NO | 最大值为 60000 毫秒。 支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。 |
signature | STRING | YES | |
timestamp | LONG | YES |
根据订单 type,某些参数(*) 可能成为必需参数:
订单 type |
强制要求的参数 |
|---|---|
LIMIT |
|
LIMIT_MAKER |
|
MARKET |
|
STOP_LOSS |
|
STOP_LOSS_LIMIT |
|
TAKE_PROFIT |
|
TAKE_PROFIT_LIMIT |
|
支持的订单类型:
订单 type |
描述 |
|---|---|
LIMIT |
以指定的 |
LIMIT_MAKER |
此订单类型也称为 POST-ONLY 订单。 |
MARKET |
以最佳市场价格买入或卖出。
|
STOP_LOSS |
当满足指定条件时,执行给定
I.e., 当达到 |
STOP_LOSS_LIMIT |
当满足指定条件时,执行给定参数的 |
TAKE_PROFIT |
与 |
TAKE_PROFIT_LIMIT |
与 |
- 这些参数仅适用于
LIMIT,LIMIT_MAKER,STOP_LOSS_LIMIT和TAKE_PROFIT_LIMIT订单。 - 如果使用了
pegPriceType, 那么price字段将是可选的。 否则,price字段依旧是必须的。 pegPriceType=PRIMARY_PEG就是主要挂钩(primary),这是订单簿上与您的订单同一方向的最佳价格。pegPriceType=MARKET_PEG就是市场挂钩(market),这是订单簿上与您的订单相反方向的最佳价格。- 可以通过使用
pegOffsetType和pegOffsetValue来获取最佳价格以外的价格水平。 这两个参数必须一起使用。
可用的 timeInForce 选项,设置订单在到期前应该活跃多长时间:
| TIF | 描述 |
|---|---|
GTC | Good 'til Canceled – 成交为止。订单会一直有效,直到被成交或者取消。 |
IOC | Immediate 或者 Cancel – 无法立即成交的部分就撤销。订单在失效前会尽量多的成交。 |
FOK | Fill 或者 Kill – 无法全部立即成交就撤销。如果无法全部成交,订单会失效。 |
备注:
-
newClientOrderId指定订单的clientOrderId值。仅当前一个订单已成交或过期时,才会接受具有相同
clientOrderId的新订单。 -
任何
LIMIT或LIMIT_MAKER订单都可以通过指定icebergQty变成冰山订单。带有
icebergQty的订单必须将timeInForce设置为GTC。 -
STOP_LOSS/TAKE_PROFIT订单的触发订单价格规则:stopPrice必须高于市场价格:STOP_LOSS BUY,TAKE_PROFIT SELLstopPrice必须低于市场价格:STOP_LOSS SELL,TAKE_PROFIT BUY
-
使用
quoteOrderQty的MARKET订单遵循LOT_SIZE过滤规则。该订单将执行一个名义价值尽可能接近请求的
quoteOrderQty的数量。
数据源: 撮合引擎
响应:
使用 newOrderRespType 参数可以选择响应格式。
ACK 响应类型:
{
"id": "56374a46-3061-486b-a311-99ee972eb648",
"status": 200,
"result": {
"symbol": "BTCUSDT",
"orderId": 12569099453,
"orderListId": -1, // 单个订单会一直是 -1
"clientOrderId": "4d96324ff9d44481926157ec08158a40",
"transactTime": 1660801715639
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}
RESULT 响应类型:
{
"id": "56374a46-3061-486b-a311-99ee972eb648",
"status": 200,
"result": {
"symbol": "BTCUSDT",
"orderId": 12569099453,
"orderListId": -1, // 单个订单会一直是 -1
"clientOrderId": "4d96324ff9d44481926157ec08158a40",
"transactTime": 1660801715639,
"price": "23416.10000000",
"origQty": "0.00847000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"workingTime": 1660801715639,
"selfTradePreventionMode": "NONE"
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}
FULL 响应类型:
{
"id": "56374a46-3061-486b-a311-99ee972eb648",
"status": 200,
"result": {
"symbol": "BTCUSDT",
"orderId": 12569099453,
"orderListId": -1,
"clientOrderId": "4d96324ff9d44481926157ec08158a40",
"transactTime": 1660801715793,
"price": "23416.10000000",
"origQty": "0.00847000",
"executedQty": "0.00847000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "198.33521500",
"status": "FILLED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"workingTime": 1660801715639,
// FULL 响应与 RESULT 响应相同,具有相同的可选字段基于订单类型和参数。FULL响应还包括立即完成订单的交易列表。
"fills": [
{
"price": "23416.10000000",
"qty": "0.00635000",
"commission": "0.000000",
"commissionAsset": "BNB",
"tradeId": 1650422481
},
{
"price": "23416.50000000",
"qty": "0.00212000",
"commission": "0.000000",
"commissionAsset": "BNB",
"tradeId": 1650422482
}
],
"selfTradePreventionMode": "NONE"
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}
订单响应中的特定条件时才会出现的字段
订单响应中的有一些字段仅在满足特定条件时才会出现。这些订单响应可以来自下订单,查询订单或取消订单,并且可以包括订单列表类型。 下面列出了这些字段:
| 名称 | 描述 | 显示的条件 | 示例 |
|---|---|---|---|
icebergQty | 冰山订单的数量。 | 只有在请求中发送 icebergQty 参数时才会出现。 | "icebergQty": "0.00000000" |
preventedMatchId | 与 symbol 结合使用时,可用于查询因为 STP 导致订单失效的过期订单。 | 只有在因为 STP 导致订单失效时可见。 | "preventedMatchId": 0 |
preventedQuantity | 因为 STP 导致订单失效的数量。 | 只有在因为 STP 导致订单失效时可见。 | "preventedQuantity": "1.200000" |
stopPrice | 用于设置逻辑订单中的触发价。 | STOP_LOSS,TAKE_PROFIT,STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单时可见。 | "stopPrice": "23500.00000000" |
strategyId | 策略单ID; 用以关联此订单对应的交易策略。 | 如果在请求中添加了参数,则会出现。 | "strategyId": 37463720 |
strategyType | 策略单类型; 用以显示此订单对应的交易策略。 | 如果在请求中添加了参数,则会出 现。 | "strategyType": 1000000 |
trailingDelta | 用以定义追踪止盈止损订单被触发的价格差。 | 出现在追踪止损订单中。 | "trailingDelta": 10 |
trailingTime | 追踪单被激活和跟踪价格变化的时间。 | 出现在追踪止损订单中。 | "trailingTime": -1 |
usedSor | 用于确定订单是否使用SOR的字段 | 在使用SOR下单时出现 | "usedSor": true |
workingFloor | 用以定义订单是通过 SOR 还是由订单提交到的订单薄(order book)成交的。 | 出现在使用了 SOR 的订单中。 | "workingFloor": "SOR" |
pegPriceType | 挂钩价格类型 | 仅用于挂钩订单 | "pegPriceType": "PRIMARY_PEG" |
pegOffsetType | 挂钩价格偏移类型 | 如若需要,仅用于挂钩订单 | "pegOffsetType": "PRICE_LEVEL" |
pegOffsetValue | 挂钩价格偏移值 | 如若需要,仅用于挂钩订单 | "pegOffsetValue": 5 |
peggedPrice | 订单对应的当前挂钩价格 | 一旦确定,仅用于挂钩订单 | "peggedPrice": "87523.83710000" |
测试下单 (TRADE)
{
"id": "6ffebe91-01d9-43ac-be99-57cf062e0e30",
"method": "order.test",
"params": {
"symbol": "BTCUSDT",
"side": "SELL",
"type": "LIMIT",
"timeInForce": "GTC",
"price": "23416.10000000",
"quantity": "0.00847000",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "15af09e41c36f3cc61378c2fbe2c33719a03dd5eba8d0f9206fbda44de717c88",
"timestamp": 1660801715431
}
}
测试下单。
验证新订单参数并验证您的签名但不会将订单发送到撮合引擎。
权重:
| 条件 | 请求权重 |
|---|---|
没有 computeCommissionRates | 1 |
有 computeCommissionRates | 20 |
参数:
除了 order.place 的所有参数,
下面参数也有效:
| 参数名 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
computeCommissionRates | BOOLEAN | NO | 默认值: false 请参阅佣金常见问题解答 了解更多信息。 |
数据源: 缓存
响应:
没有 computeCommissionRates:
{
"id": "6ffebe91-01d9-43ac-be99-57cf062e0e30",
"status": 200,
"result": {},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}
有 computeCommissionRates:
{
"id": "6ffebe91-01d9-43ac-be99-57cf062e0e30",
"status": 200,
"result": {
"standardCommissionForOrder": { // 根据订单的角色(例如,Maker或Taker)确定的佣金费率。
"maker": "0.00000112",
"taker": "0.00000114"
},
"specialCommissionForOrder": { // 根据订单的角色(例如,Maker或Taker)确定的特殊佣金率。
"maker": "0.05000000",
"taker": "0.06000000"
},
"taxCommissionForOrder": { // 根据订单的角色(例如,Maker或Taker)确定的税收扣除率。
"maker": "0.00000112",
"taker": "0.00000114"
},
"discount": { // 以BNB支付时的标准佣金折扣。
"enabledForAccount": true,
"enabledForSymbol": true,
"discountAsset": "BNB",
"discount": "0.25000000" // 当用BNB支付佣金时,在标准佣金上按此比率打折。
}
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 20
}
]
}
撤销订单 (TRADE)
{
"id": "5633b6a2-90a9-4192-83e7-925c90b6a2fd",
"method": "order.cancel",
"params": {
"symbol": "BTCUSDT",
"origClientOrderId": "4d96324ff9d44481926157",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "33d5b721f278ae17a52f004a82a6f68a70c68e7dd6776ed0be77a455ab855282",
"timestamp": 1660801715830
}
}
取消有效订单。
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
symbol |
STRING | YES | |
orderId |
LONG | YES | 按 orderId 取消订单 |
origClientOrderId |
STRING | 按 clientOrderId 取消订单 |
|
newClientOrderId |
STRING | NO | 已取消订单的新 ID。如果未发送,则自动生成 |
cancelRestrictions |
ENUM | NO | 支持的值: ONLY_NEW - 如果订单状态为 NEW,撤销将成功。ONLY_PARTIALLY_FILLED - 如果订单状态为 PARTIALLY_FILLED,撤销将成功。 |
apiKey |
STRING | YES | |
recvWindow |
DECIMAL | NO | 值不能大于 60000。 支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。 |
signature |
STRING | YES | |
timestamp |
LONG | YES |
备注:
-
当同时提供
orderId和origClientOrderId两个参数时,系统首先将会使用orderId来搜索订单。然后, 查找结果中的origClientOrderId的值将会被用来验证订单。如果两个条件都不满足,则请求将被拒绝。 -
newClientOrderId将替换已取消订单的clientOrderId,为新订单腾出空间。 -
如果您取消属于订单列表的订单,则整个订单列表将被取消。
-
当仅发送
orderId时,取消订单的执行(单个 Cancel 或作为 Cancel-Replace 的一部分)总是更快。发送origClientOrderId或同时发送orderId+origClientOrderId会稍慢。
数据源: 撮合引擎
响应:
取消单个订单时:
{
"id": "5633b6a2-90a9-4192-83e7-925c90b6a2fd",
"status": 200,
"result": {
"symbol": "BTCUSDT",
"origClientOrderId": "4d96324ff9d44481926157", // 被取消的 clientOrderId
"orderId": 12569099453,
"orderListId": -1, // 订单列表的ID,不然就是 -1
"clientOrderId": "91fe37ce9e69c90d6358c0", // 请求的 newClientOrderId
"transactTime": 1684804350068,
"price": "23416.10000000",
"origQty": "0.00847000",
"executedQty": "0.00001000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.23416100",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL",
"stopPrice": "0.00000000", // 如果订单设置了 stopPrice 会出现
"trailingDelta": 0, // 如果订单设置了 trailingDelta 会出现
"icebergQty": "0.00000000", // 如果订单设置了 icebergQty 会出现
"strategyId": 37463720, // 如果订单设置了 strategyId 会出现
"strategyType": 1000000, // 如果订单设置了 strategyType 会出现
"selfTradePreventionMode": "NONE"
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 2
}
]
}
取消订单列表时:
{
"id": "16eaf097-bbec-44b9-96ff-e97e6e875870",
"status": 200,
"result": {
"orderListId": 19431,
"contingencyType": "OCO",
"listStatusType": "ALL_DONE",
"listOrderStatus": "ALL_DONE",
"listClientOrderId": "iuVNVJYYrByz6C4yGOPPK0",
"transactionTime": 1660803702431,
"symbol": "BTCUSDT",
"orders": [
{
"symbol": "BTCUSDT",
"orderId": 12569099453,
"clientOrderId": "bX5wROblo6YeDwa9iTLeyY"
},
{
"symbol": "BTCUSDT",
"orderId": 12569099454,
"clientOrderId": "Tnu2IP0J5Y4mxw3IATBfmW"
}
],
// 订单列表的状态格式与单个订单相同。
"orderReports": [
{
"symbol": "BTCUSDT",
"origClientOrderId": "bX5wROblo6YeDwa9iTLeyY",
"orderId": 12569099453,
"orderListId": 19431,
"clientOrderId": "OFFXQtxVFZ6Nbcg4PgE2DA",
"transactTime": 1684804350068,
"price": "23450.50000000",
"origQty": "0.00850000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "BUY",
"stopPrice": "23430.00000000",
"selfTradePreventionMode": "NONE"
},
{
"symbol": "BTCUSDT",
"origClientOrderId": "Tnu2IP0J5Y4mxw3IATBfmW",
"orderId": 12569099454,
"orderListId": 19431,
"clientOrderId": "OFFXQtxVFZ6Nbcg4PgE2DA",
"transactTime": 1684804350068,
"price": "23400.00000000",
"origQty": "0.00850000",
"executedQty": "0.00000000",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "BUY",
"selfTradePreventionMode": "NONE"
}
]
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 1
}
]
}
注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 订单响应中的特定条件时才会出现的字段 部分。
关于 cancelRestrictions
- 如果
cancelRestrictions值不是任何受支持的值,则错误将是:
{
"code": -1145,
"msg": "Invalid cancelRestrictions"
}
- 如果订单没有通过
cancelRestrictions的条件,错误将是:
{
"code": -2011,
"msg": "Order was not canceled due to cancel restrictions."
}
撤消挂单再下单 (TRADE)
{
"id": "99de1036-b5e2-4e0f-9b5c-13d751c93a1a",
"method": "order.cancelReplace",
"params": {
"symbol": "BTCUSDT",
"cancelReplaceMode": "ALLOW_FAILURE",
"cancelOrigClientOrderId": "4d96324ff9d44481926157",
"side": "SELL",
"type": "LIMIT",
"timeInForce": "GTC",
"price": "23416.10000000",
"quantity": "0.00847000",
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "7028fdc187868754d25e42c37ccfa5ba2bab1d180ad55d4c3a7e2de643943dc5",
"timestamp": 1660813156900
}
}
撤消挂单并在同个交易对上重新下单。
即使请求中没有尝试发送新订单,比如(newOrderResult: NOT_ATTEMPTED),未成交订单的数量仍然会加1。
权重: 1
未成交的订单计数: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
symbol |
STRING | YES | |
cancelReplaceMode |
ENUM | YES | |
cancelOrderId |
LONG | YES | 按 orderId 取消订单 |
cancelOrigClientOrderId |
STRING | 按 clientOrderId 取消订单 |
|
cancelNewClientOrderId |
STRING | NO | 已取消订单的新 ID。如果未发送,则自动生成 |
side |
ENUM | YES | BUY 或者 SELL |
type |
ENUM | YES | |
timeInForce |
ENUM | NO * | |
price |
DECIMAL | NO * | |
quantity |
DECIMAL | NO * | |
quoteOrderQty |
DECIMAL | NO * | |
newClientOrderId |
STRING | NO | 客户自定义的唯一订单ID。如果未发送,则自动生成 |
newOrderRespType |
ENUM | NO |
选择响应格式:
|
stopPrice |
DECIMAL | NO * | |
trailingDelta |
DECIMAL | NO * | 请看 Trailing Stop order FAQ |
icebergQty |
DECIMAL | NO | |
strategyId |
LONG | NO | 标识订单策略中订单的任意ID。 |
strategyType |
INT | NO |
标识订单策 略的任意数值。 小于 1000000 的值被保留,不能使用。 |
selfTradePreventionMode |
ENUM | NO |
允许的 ENUM 取决于交易对的配置。 支持的值有: STP 模式。 |
cancelRestrictions |
ENUM | NO | 支持的值: ONLY_NEW - 如果订单状态为 NEW,撤销将成功。ONLY_PARTIALLY_FILLED - 如果订单状态为 PARTIALLY_FILLED,撤销将成功。 |
apiKey |
STRING | YES | |
orderRateLimitExceededMode |
ENUM | NO | 支持的值: DO_NOTHING (默认值) - 仅在账户未超过未成交订单频率限制时,会尝试取消订单。CANCEL_ONLY - 将始终取消订单。 |
pegPriceType |
ENUM | NO | PRIMARY_PEG 或 MARKET_PEG。 参阅 挂钩订单" |
pegOffsetValue |
INT | NO | 用于价格挂钩的价格水平(最大值:100) 参阅 挂钩订单 |
pegOffsetType |
ENUM | NO | 仅支持 PRICE_LEVEL 参阅 挂钩订单 |
recvWindow |
DECIMAL | NO | 值不能大于 60000。 支持最多三位小数的精度(例如 6000.346),以便可以指定微秒。 |
signature |
STRING | YES | |
timestamp |
LONG | YES |
类似于 order.place 请求,额外的强制参数 (*) 由新订单的 type 确定。
可用的 cancelReplaceMode 选项:
STOP_ON_FAILURE– 如果撤销订单请求失败,将不会尝试下新订单。ALLOW_FAILURE– 即使撤销订单请求失败,也会尝试下新订单。
| 请求 | 响应 | ||||
|---|---|---|---|---|---|
cancelReplaceMode |
orderRateLimitExceededMode |
未成交订单数 | cancelResult |
newOrderResult |
status |
STOP_ON_FAILURE |
DO_NOTHING |
在限制范围内 | ✅ SUCCESS |
✅ SUCCESS |
200 |
❌ FAILURE |
➖ NOT_ATTEMPTED |
400 |
|||
✅ SUCCESS |
❌ FAILURE |
409 |
|||
| 超出限制范围 | ✅ SUCCESS |
✅ SUCCESS |
N/A | ||
❌ FAILURE |
➖ NOT_ATTEMPTED |
N/A | |||
✅ SUCCESS |
❌ FAILURE |
N/A | |||
CANCEL_ONLY |
在限制范围内 | ✅ SUCCESS |
✅ SUCCESS |
200 |
|
❌ FAILURE |
➖ NOT_ATTEMPTED |
400 |
|||
✅ SUCCESS |
❌ FAILURE |
409 |
|||
| 超出限制范围 | ❌ FAILURE |
➖ NOT_ATTEMPTED |
429 |
||
✅ SUCCESS |
❌ FAILURE |
429 |
|||
ALLOW_FAILURE |
DO_NOTHING |
在限制范围内 | ✅ SUCCESS |
✅ SUCCESS |
200 |