RegisterUserSystemInfo

CTP-API

RegisterUserSystemInfo

RegisterUserSystemInfo


注册用户终端信息,用于中继服务器多连接模式

需要在终端认证成功后,用户登录前调用该接口

1.函数原型

virtual int RegisterUserSystemInfo(CThostFtdcUserSystemInfoField *pUserSystemInfo) = 0;

2.参数

CThostFtdcUserSystemInfoField :用户系统信息

struct CThostFtdcUserSystemInfoField
{
    ///经纪公司代码
    TThostFtdcBrokerIDType BrokerID;
    ///用户代码
    TThostFtdcUserIDType UserID;
    ///用户端系统内部信息长度
    TThostFtdcSystemInfoLenType ClientSystemInfoLen;
    ///用户端系统内部信息
    TThostFtdcClientSystemInfoType ClientSystemInfo;
    ///用户公网IP
    TThostFtdcIPAddressType ClientPublicIP;
    ///终端IP端口
    TThostFtdcIPPortType ClientIPPort;
    ///登录成功时间
    TThostFtdcTimeType ClientLoginTime;
    ///App代码
    TThostFtdcAppIDType ClientAppID;
};

ClientSystemInfoLen:存储的为加密后的用户终端系统内部信息的长度

ClientSystemInfo:存储的为加密后的用户终端系统内部信息。

ClientPublicIP:存储的为用户终端IP,由中继服务器采集和填写

ClientLoginTime:存储的为用户登录中继时间,由中继服务器采集和填写

ClientAppid:存储的为用户终端的appid,由中继服务器采集和填写

3.返回

0 正确

-1 字段长度不对

-2 非CTP采集的终端信息

-3 当前终端类型非多对多中继

-5 字段中存在非法字符或者长度超限

-6 采集结果字段错误

4.调用示例

//多对多中继终端使用流程

Step 1 终端侧采集信息 向中继发起登录 并将终端信息发送给中继

char pSystemInfo[344];
int len;
CTP_GetSystemInfo(pSystemInfo, len);

Step 2 中继收到终端的登录请求,发起终端认证

ReqAuthenticate();

Step 3 终端认证成功后,中继上报用户信息

RegisterUserSystemInfo()
{
    char pSystemInfo[344];
    int len;
    ////将从终端得到的信息赋值给下面结构体
    CThostFtdcUserSystemInfoField field;
    memset(&field, 0, sizeof(field));
    strcpy(field.BrokerID, "9999");
    strcpy(field.UserID, "00001");
    memcpy(field.ClientSystemInfo, pSystemInfo, len);
    field.ClientSystemInfoLen = len;
    strcpy(field.ClientPublicIP, "127.0.0.1");
    field.ClientIPPort = 65535;
    strcpy(field.ClientLoginTime, "11:28:28");
    strcpy(field.ClientAppID, "aaa");
    m_pUserApi->RegisterUserSystemInfo(&field);
}

Step 4 中继上报成功后,发起登录

ReqUserLogin();

Step 5 中继登录成功

5.FAQ

采集信息上报时候总是提示operation not permitted,这是为什么?

如果提示operation not permitted,可能是AppID类型错误。例如,直连模式的AppID,却错误调用了SubmitUserSystemInfo。

此错误不会通过特定接口返回,只在标准输出中提示,例如直接在屏幕上打印出来。

不上报采集信息,会影响登录吗?

不影响登录,CTP不做控制,但这样不符合监管要求。


< 前页 回目录 后页 >