接收白标用户信息
reqUserInfo() 的结果通过 userInfo() 回调返回。
def userInfo(self, reqId, whiteBrandingId): ...这个回调只包含两个字段:请求编号和白标 ID。
| 字段 | 中文含义 | 说明 |
|---|---|---|
reqId | 请求编号 | 对应 reqUserInfo(reqId) 的请求编号 |
whiteBrandingId | 白标 ID | 用户关联的白标标识,普通账户可能为空字符串 |
如果 whiteBrandingId 是空字符串,不要直接当作接口错误。更合理的判断是:
if whiteBrandingId: status = "HAS_WHITE_BRANDING_ID"else: status = "EMPTY_WHITE_BRANDING_ID"安全输出建议
Section titled “安全输出建议”真实白标 ID 可能属于业务标识,不建议直接出现在公开日志或用户可复制示例中。可以输出布尔值和长度:
def userInfo(self, reqId, whiteBrandingId): safe_row = { "reqId": reqId, "whiteBrandingId_empty": whiteBrandingId == "", "whiteBrandingId_length": len(whiteBrandingId or ""), }如果系统确实需要保存 whiteBrandingId,应把它当作业务配置数据处理,不要混入账户资产、订单和持仓日志。
CONNECTED=TrueREQUEST_SENT=TrueUSER_INFO_CALLBACK_RECEIVED=TrueUSER_INFO_ROW_COUNT=1ROWS=[{'reqId': 9401, 'whiteBrandingId_empty': True, 'whiteBrandingId_length': 0}]WHITE_BRANDING_ID_EMPTY=TrueWHITE_BRANDING_ID_LENGTH=0INFO_CODES=2104,2106,2158NON_INFO_ERROR_COUNT=0IS_CONNECTED_AFTER_DISCONNECT=False这个环境返回了 1 条 userInfo() 回调,白标 ID 为空字符串,说明请求链路正常。
空字符串代表没有权限吗?
Section titled “空字符串代表没有权限吗?”不一定。普通账户没有关联白标实体时,也可能返回空字符串。应结合业务背景判断。
userInfo() 会返回多次吗?
Section titled “userInfo() 会返回多次吗?”通常按一次请求返回一次结果。它不是持续订阅接口。
没有收到 userInfo() 回调怎么办?
Section titled “没有收到 userInfo() 回调怎么办?”如果 nextValidId() 已收到、请求已发出、没有非信息类错误,可以把它按“用户没有可返回的白标信息”处理。不要把它和行情权限、账户资产权限混在一起排查。
能把它用于判断账户类型吗?
Section titled “能把它用于判断账户类型吗?”不建议。whiteBrandingId 只说明白标关联,不等于账户类型、交易权限或资产权限。