币安现货newClientOrderId不能当成永久防重凭证。新订单使用相同编号,只有前一笔已成交完成时才可能被接受,否则会被拒绝。因此“每次都用同一个编号重试”并不能保证永远只买一次。
编号帮助定位,不代表永久去重
newClientOrderId是客户端给委托设置的标识,不填写时系统会自动生成。它要求在未结订单中保持唯一,但这个规则不等于所有历史请求都被永久绑定为同一次业务操作。
例如,第一笔买单已全部成交,客户端没有及时收到结果,随后再次使用同一编号发起下单。前一笔已满足复用条件,新请求就不能仅凭“编号没变”排除被接受的可能。
重试前查询原委托
GET /api/v3/order可以用交易对加origClientOrderId查询订单,也可以使用交易对加orderId。保存下单编号、交易对、方向和创建时间,有助于把客户端日志与实际订单对应起来,避免只凭报错文字决定重发。
程序还需要单独记录一次买卖意图的处理状态,把查单与是否允许补单放在同一套流程里。界面连续点击、后台重试、人工补单若各自独立,即使都使用看似有规律的编号,也可能表达多笔不同委托。
交易所API订单标识与自动下单安全涉及不同层次的约束。订单编号应保留原始值;缺少订单结果时,应继续核对状态,不能把重新生成编号当成解决未知状态的方法。
原创文章,作者:eastbtc,如若转载,请注明出处:https://www.eastbtc.com/exchange/29831.html