# 通用定義
# API 調用結果
- Python
- Proto
- C#
- Java
- C++
- JavaScript
RET_CODE
RET_OK成功
RET_ERROR失敗
RetType
enum RetType
{
RetType_Succeed = 0; //成功
RetType_Failed = -1; //失敗
RetType_TimeOut = -100; //超時
RetType_Unknown = -400; //未知結果
}
2
3
4
5
6
7
RetType
enum RetType
{
RetType_Succeed = 0; //成功
RetType_Failed = -1; //失敗
RetType_TimeOut = -100; //超時
RetType_Unknown = -400; //未知結果
}
2
3
4
5
6
7
RetType
enum RetType
{
RetType_Succeed = 0; //成功
RetType_Failed = -1; //失敗
RetType_TimeOut = -100; //超時
RetType_Unknown = -400; //未知結果
}
2
3
4
5
6
7
RetType
enum RetType
{
RetType_Succeed = 0; //成功
RetType_Failed = -1; //失敗
RetType_TimeOut = -100; //超時
RetType_Unknown = -400; //未知結果
}
2
3
4
5
6
7
RetType
enum RetType
{
RetType_Succeed = 0; //成功
RetType_Failed = -1; //失敗
RetType_TimeOut = -100; //超時
RetType_Unknown = -400; //未知結果
}
2
3
4
5
6
7
# 協議格式
- Python
- Proto
- C#
- Java
- C++
- JavaScript
ProtoFMT
ProtobufGoogle Protobuf 格式
JsonJson 格式
ProtoFmt
enum ProtoFmt
{
ProtoFmt_Protobuf = 0; //Google Protobuf 格式
ProtoFmt_Json = 1; //Json 格式
}
2
3
4
5
ProtoFmt
enum ProtoFmt
{
ProtoFmt_Protobuf = 0; //Google Protobuf 格式
ProtoFmt_Json = 1; //Json 格式
}
2
3
4
5
ProtoFmt
enum ProtoFmt
{
ProtoFmt_Protobuf = 0; //Google Protobuf 格式
ProtoFmt_Json = 1; //Json 格式
}
2
3
4
5
ProtoFmt
enum ProtoFmt
{
ProtoFmt_Protobuf = 0; //Google Protobuf 格式
ProtoFmt_Json = 1; //Json 格式
}
2
3
4
5
ProtoFmt
enum ProtoFmt
{
ProtoFmt_Protobuf = 0; //Google Protobuf 格式
ProtoFmt_Json = 1; //Json 格式
}
2
3
4
5
# 封包加密演算法
- Python
- Proto
- C#
- Java
- C++
- JavaScript
PacketEncAlgo
enum PacketEncAlgo
{
PacketEncAlgo_FTAES_ECB = 0; //修改過的 AES 的 ECB 加密模式
PacketEncAlgo_None = -1; //不加密
PacketEncAlgo_AES_ECB = 1; //標準的 AES 的 ECB 加密模式
PacketEncAlgo_AES_CBC = 2; //標準的 AES 的 CBC 加密模式
}
2
3
4
5
6
7
PacketEncAlgo
enum PacketEncAlgo
{
PacketEncAlgo_FTAES_ECB = 0; //修改過的 AES 的 ECB 加密模式
PacketEncAlgo_None = -1; //不加密
PacketEncAlgo_AES_ECB = 1; //標準的 AES 的 ECB 加密模式
PacketEncAlgo_AES_CBC = 2; //標準的 AES 的 CBC 加密模式
}
2
3
4
5
6
7
PacketEncAlgo
enum PacketEncAlgo
{
PacketEncAlgo_FTAES_ECB = 0; //修改過的 AES 的 ECB 加密模式
PacketEncAlgo_None = -1; //不加密
PacketEncAlgo_AES_ECB = 1; //標準的 AES 的 ECB 加密模式
PacketEncAlgo_AES_CBC = 2; //標準的 AES 的 CBC 加密模式
}
2
3
4
5
6
7
PacketEncAlgo
enum PacketEncAlgo
{
PacketEncAlgo_FTAES_ECB = 0; //修改過的 AES 的 ECB 加密模式
PacketEncAlgo_None = -1; //不加密
PacketEncAlgo_AES_ECB = 1; //標準的 AES 的 ECB 加密模式
PacketEncAlgo_AES_CBC = 2; //標準的 AES 的 CBC 加密模式
}
2
3
4
5
6
7
PacketEncAlgo
enum PacketEncAlgo
{
PacketEncAlgo_FTAES_ECB = 0; //修改過的 AES 的 ECB 加密模式
PacketEncAlgo_None = -1; //不加密
PacketEncAlgo_AES_ECB = 1; //標準的 AES 的 ECB 加密模式
PacketEncAlgo_AES_CBC = 2; //標準的 AES 的 CBC 加密模式
}
2
3
4
5
6
7
# 程式狀態類型
- Python
- Proto
- C#
- Java
- C++
- JavaScript
ProgramStatusType
NONE未知
LOADED已完成必要模塊加載
LOGING登錄中
NEED_PIC_VERIFY_CODE需要圖形驗證碼
NEED_PHONE_VERIFY_CODE需要手機驗證碼
LOGIN_FAILED登錄失敗
FORCE_UPDATE客端戶版本過舊
NESSARY_DATA_PREPARING正在獲取必要資訊
NESSARY_DATA_MISSING缺少必要資訊
UN_AGREE_DISCLAIMER未同意免責聲明
READY正常可用狀態
FORCE_LOGOUTOpenD 登入後被強制登出
ProgramStatusType
enum ProgramStatusType
{
ProgramStatusType_None = 0;
ProgramStatusType_Loaded = 1; //已完成類似加載配置,啟動服務器等操作,服務器啟動之前的狀態無需返回
ProgramStatusType_Loging = 2; //登錄中
ProgramStatusType_NeedPicVerifyCode = 3; //需要圖形驗證碼
ProgramStatusType_NeedPhoneVerifyCode = 4; //需要手機驗證碼
ProgramStatusType_LoginFailed = 5; //登錄失敗,詳細原因在描述返回
ProgramStatusType_ForceUpdate = 6; //客端戶版本過舊
ProgramStatusType_NessaryDataPreparing = 7; //正在拉取類似免責聲明等一些必要資訊
ProgramStatusType_NessaryDataMissing = 8; //缺少必要資訊
ProgramStatusType_UnAgreeDisclaimer = 9; //未同意免責聲明
ProgramStatusType_Ready = 10; //可以接收業務協議收發,正常可用狀態
//OpenD 登入後被強制登出,會導致連接全部斷開,需要重連後才能得到以下該狀態(並且需要在 ui 模式下)
ProgramStatusType_ForceLogout = 11; //被強制退出登錄,例如修改了登錄密碼,中途打開設備鎖等,詳細原因在描述返回
ProgramStatusType_DisclaimerPullFailed = 12; //拉取免責聲明標誌失敗
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ProgramStatusType
enum ProgramStatusType
{
ProgramStatusType_None = 0;
ProgramStatusType_Loaded = 1; //已完成類似加載配置,啟動服務器等操作,服務器啟動之前的狀態無需返回
ProgramStatusType_Loging = 2; //登錄中
ProgramStatusType_NeedPicVerifyCode = 3; //需要圖形驗證碼
ProgramStatusType_NeedPhoneVerifyCode = 4; //需要手機驗證碼
ProgramStatusType_LoginFailed = 5; //登錄失敗,詳細原因在描述返回
ProgramStatusType_ForceUpdate = 6; //客端戶版本過舊
ProgramStatusType_NessaryDataPreparing = 7; //正在拉取類似免責聲明等一些必要資訊
ProgramStatusType_NessaryDataMissing = 8; //缺少必要資訊
ProgramStatusType_UnAgreeDisclaimer = 9; //未同意免責聲明
ProgramStatusType_Ready = 10; //可以接收業務協議收發,正常可用狀態
//OpenD 登入後被強制登出,會導致連接全部斷開,需要重連後才能得到以下該狀態(並且需要在 ui 模式下)
ProgramStatusType_ForceLogout = 11; //被強制退出登錄,例如修改了登錄密碼,中途打開設備鎖等,詳細原因在描述返回
ProgramStatusType_DisclaimerPullFailed = 12; //拉取免責聲明標誌失敗
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ProgramStatusType
enum ProgramStatusType
{
ProgramStatusType_None = 0;
ProgramStatusType_Loaded = 1; //已完成類似加載配置,啟動服務器等操作,服務器啟動之前的狀態無需返回
ProgramStatusType_Loging = 2; //登錄中
ProgramStatusType_NeedPicVerifyCode = 3; //需要圖形驗證碼
ProgramStatusType_NeedPhoneVerifyCode = 4; //需要手機驗證碼
ProgramStatusType_LoginFailed = 5; //登錄失敗,詳細原因在描述返回
ProgramStatusType_ForceUpdate = 6; //客端戶版本過舊
ProgramStatusType_NessaryDataPreparing = 7; //正在拉取類似免責聲明等一些必要資訊
ProgramStatusType_NessaryDataMissing = 8; //缺少必要資訊
ProgramStatusType_UnAgreeDisclaimer = 9; //未同意免責聲明
ProgramStatusType_Ready = 10; //可以接收業務協議收發,正常可用狀態
//OpenD 登入後被強制登出,會導致連接全部斷開,需要重連後才能得到以下該狀態(並且需要在 ui 模式下)
ProgramStatusType_ForceLogout = 11; //被強制退出登錄,例如修改了登錄密碼,中途打開設備鎖等,詳細原因在描述返回
ProgramStatusType_DisclaimerPullFailed = 12; //拉取免責聲明標誌失敗
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ProgramStatusType
enum ProgramStatusType
{
ProgramStatusType_None = 0;
ProgramStatusType_Loaded = 1; //已完成類似加載配置,啟動服務器等操作,服務器啟動之前的狀態無需返回
ProgramStatusType_Loging = 2; //登錄中
ProgramStatusType_NeedPicVerifyCode = 3; //需要圖形驗證碼
ProgramStatusType_NeedPhoneVerifyCode = 4; //需要手機驗證碼
ProgramStatusType_LoginFailed = 5; //登錄失敗,詳細原因在描述返回
ProgramStatusType_ForceUpdate = 6; //客端戶版本過舊
ProgramStatusType_NessaryDataPreparing = 7; //正在拉取類似免責聲明等一些必要資訊
ProgramStatusType_NessaryDataMissing = 8; //缺少必要資訊
ProgramStatusType_UnAgreeDisclaimer = 9; //未同意免責聲明
ProgramStatusType_Ready = 10; //可以接收業務協議收發,正常可用狀態
//OpenD 登入後被強制登出,會導致連接全部斷開,需要重連後才能得到以下該狀態(並且需要在 ui 模式下)
ProgramStatusType_ForceLogout = 11; //被強制退出登錄,例如修改了登錄密碼,中途打開設備鎖等,詳細原因在描述返回
ProgramStatusType_DisclaimerPullFailed = 12; //拉取免責聲明標誌失敗
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ProgramStatusType
enum ProgramStatusType
{
ProgramStatusType_None = 0;
ProgramStatusType_Loaded = 1; //已完成類似加載配置,啟動服務器等操作,服務器啟動之前的狀態無需返回
ProgramStatusType_Loging = 2; //登錄中
ProgramStatusType_NeedPicVerifyCode = 3; //需要圖形驗證碼
ProgramStatusType_NeedPhoneVerifyCode = 4; //需要手機驗證碼
ProgramStatusType_LoginFailed = 5; //登錄失敗,詳細原因在描述返回
ProgramStatusType_ForceUpdate = 6; //客端戶版本過舊
ProgramStatusType_NessaryDataPreparing = 7; //正在拉取類似免責聲明等一些必要資訊
ProgramStatusType_NessaryDataMissing = 8; //缺少必要資訊
ProgramStatusType_UnAgreeDisclaimer = 9; //未同意免責聲明
ProgramStatusType_Ready = 10; //可以接收業務協議收發,正常可用狀態
//OpenD 登入後被強制登出,會導致連接全部斷開,需要重連後才能得到以下該狀態(並且需要在 ui 模式下)
ProgramStatusType_ForceLogout = 11; //被強制退出登錄,例如修改了登錄密碼,中途打開設備鎖等,詳細原因在描述返回
ProgramStatusType_DisclaimerPullFailed = 12; //拉取免責聲明標誌失敗
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 網關事件通知類型
- Python
- Proto
- C#
- Java
- C++
- JavaScript
GtwEventType
LocalCfgLoadFailed本地設定檔載入失敗
APISvrRunFailed網關監聽服務運行失敗
ForceUpdate強制更新網關
LoginFailed登入富途伺服器失敗
UnAgreeDisclaimer未同意免責聲明,無法執行
LOGIN_FAILED登錄失敗
NetCfgMissing缺少網絡連線設定
KickedOut帳戶被強制下線
LoginPwdChanged登入密碼已更改
BanLogin牛牛後台不允許此帳戶登入
NeedPicVerifyCode登錄需要輸入圖形驗證碼
NeedPhoneVerifyCode登錄需要輸入手機驗證碼
AppDataNotExist程式封包資料遺失
NessaryDataMissing必要資料同步失敗
TradePwdChanged交易密碼變更通知
EnableDeviceLock需啟用裝置鎖
GtwEventType
enum GtwEventType
{
GtwEventType_None = 0; //正常無錯
GtwEventType_LocalCfgLoadFailed = 1; //加載本地配置失敗
GtwEventType_APISvrRunFailed = 2; //服務器啟動失敗
GtwEventType_ForceUpdate = 3; //客端戶版本過舊
GtwEventType_LoginFailed = 4; //登錄失敗
GtwEventType_UnAgreeDisclaimer = 5; //未同意免責聲明
GtwEventType_NetCfgMissing = 6; //缺少必要網絡配置資訊;例如控制訂閲額度 //已優化,不會再出現該情況
GtwEventType_KickedOut = 7; //牛牛帳號在別處登錄
GtwEventType_LoginPwdChanged = 8; //登錄密碼被修改
GtwEventType_BanLogin = 9; //用户被禁止登錄
GtwEventType_NeedPicVerifyCode = 10; //需要圖形驗證碼
GtwEventType_NeedPhoneVerifyCode = 11; //需要手機驗證碼
GtwEventType_AppDataNotExist = 12; //程式自帶數據不存在
GtwEventType_NessaryDataMissing = 13; //缺少必要數據
GtwEventType_TradePwdChanged = 14; //交易密碼被修改
GtwEventType_EnableDeviceLock = 15; //啟用設備鎖
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GtwEventType
enum GtwEventType
{
GtwEventType_None = 0; //正常無錯
GtwEventType_LocalCfgLoadFailed = 1; //加載本地配置失敗
GtwEventType_APISvrRunFailed = 2; //服務器啟動失敗
GtwEventType_ForceUpdate = 3; //客端戶版本過舊
GtwEventType_LoginFailed = 4; //登錄失敗
GtwEventType_UnAgreeDisclaimer = 5; //未同意免責聲明
GtwEventType_NetCfgMissing = 6; //缺少必要網絡配置資訊;例如控制訂閲額度 //已優化,不會再出現該情況
GtwEventType_KickedOut = 7; //牛牛帳號在別處登錄
GtwEventType_LoginPwdChanged = 8; //登錄密碼被修改
GtwEventType_BanLogin = 9; //用户被禁止登錄
GtwEventType_NeedPicVerifyCode = 10; //需要圖形驗證碼
GtwEventType_NeedPhoneVerifyCode = 11; //需要手機驗證碼
GtwEventType_AppDataNotExist = 12; //程式自帶數據不存在
GtwEventType_NessaryDataMissing = 13; //缺少必要數據
GtwEventType_TradePwdChanged = 14; //交易密碼被修改
GtwEventType_EnableDeviceLock = 15; //啟用設備鎖
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GtwEventType
enum GtwEventType
{
GtwEventType_None = 0; //正常無錯
GtwEventType_LocalCfgLoadFailed = 1; //加載本地配置失敗
GtwEventType_APISvrRunFailed = 2; //服務器啟動失敗
GtwEventType_ForceUpdate = 3; //客端戶版本過舊
GtwEventType_LoginFailed = 4; //登錄失敗
GtwEventType_UnAgreeDisclaimer = 5; //未同意免責聲明
GtwEventType_NetCfgMissing = 6; //缺少必要網絡配置資訊;例如控制訂閲額度 //已優化,不會再出現該情況
GtwEventType_KickedOut = 7; //牛牛帳號在別處登錄
GtwEventType_LoginPwdChanged = 8; //登錄密碼被修改
GtwEventType_BanLogin = 9; //用户被禁止登錄
GtwEventType_NeedPicVerifyCode = 10; //需要圖形驗證碼
GtwEventType_NeedPhoneVerifyCode = 11; //需要手機驗證碼
GtwEventType_AppDataNotExist = 12; //程式自帶數據不存在
GtwEventType_NessaryDataMissing = 13; //缺少必要數據
GtwEventType_TradePwdChanged = 14; //交易密碼被修改
GtwEventType_EnableDeviceLock = 15; //啟用設備鎖
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GtwEventType
enum GtwEventType
{
GtwEventType_None = 0; //正常無錯
GtwEventType_LocalCfgLoadFailed = 1; //加載本地配置失敗
GtwEventType_APISvrRunFailed = 2; //服務器啟動失敗
GtwEventType_ForceUpdate = 3; //客端戶版本過舊
GtwEventType_LoginFailed = 4; //登錄失敗
GtwEventType_UnAgreeDisclaimer = 5; //未同意免責聲明
GtwEventType_NetCfgMissing = 6; //缺少必要網絡配置資訊;例如控制訂閲額度 //已優化,不會再出現該情況
GtwEventType_KickedOut = 7; //牛牛帳號在別處登錄
GtwEventType_LoginPwdChanged = 8; //登錄密碼被修改
GtwEventType_BanLogin = 9; //用户被禁止登錄
GtwEventType_NeedPicVerifyCode = 10; //需要圖形驗證碼
GtwEventType_NeedPhoneVerifyCode = 11; //需要手機驗證碼
GtwEventType_AppDataNotExist = 12; //程式自帶數據不存在
GtwEventType_NessaryDataMissing = 13; //缺少必要數據
GtwEventType_TradePwdChanged = 14; //交易密碼被修改
GtwEventType_EnableDeviceLock = 15; //啟用設備鎖
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GtwEventType
enum GtwEventType
{
GtwEventType_None = 0; //正常無錯
GtwEventType_LocalCfgLoadFailed = 1; //加載本地配置失敗
GtwEventType_APISvrRunFailed = 2; //服務器啟動失敗
GtwEventType_ForceUpdate = 3; //客端戶版本過舊
GtwEventType_LoginFailed = 4; //登錄失敗
GtwEventType_UnAgreeDisclaimer = 5; //未同意免責聲明
GtwEventType_NetCfgMissing = 6; //缺少必要網絡配置資訊;例如控制訂閲額度 //已優化,不會再出現該情況
GtwEventType_KickedOut = 7; //牛牛帳號在別處登錄
GtwEventType_LoginPwdChanged = 8; //登錄密碼被修改
GtwEventType_BanLogin = 9; //用户被禁止登錄
GtwEventType_NeedPicVerifyCode = 10; //需要圖形驗證碼
GtwEventType_NeedPhoneVerifyCode = 11; //需要手機驗證碼
GtwEventType_AppDataNotExist = 12; //程式自帶數據不存在
GtwEventType_NessaryDataMissing = 13; //缺少必要數據
GtwEventType_TradePwdChanged = 14; //交易密碼被修改
GtwEventType_EnableDeviceLock = 15; //啟用設備鎖
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 系統通知類型
- Python
- Proto
- C#
- Java
- C++
- JavaScript
SysNotifyType
GTW_EVENT網關事件
PROGRAM_STATUS程式狀態變化
CONN_STATUS與後台伺服器的連線狀態變化
QOT_RIGHT行情權限變化
NotifyType
enum NotifyType
{
NotifyType_None = 0; //無
NotifyType_GtwEvent = 1; //OpenD 運行事件通知
NotifyType_ProgramStatus = 2; //程式狀態
NotifyType_ConnStatus = 3; //連接狀態
NotifyType_QotRight = 4; //行情權限
NotifyType_APILevel = 5; //用户等級,已在2.10版本之後廢棄
NotifyType_APIQuota = 6; //API 額度
}
2
3
4
5
6
7
8
9
10
NotifyType
enum NotifyType
{
NotifyType_None = 0; //無
NotifyType_GtwEvent = 1; //OpenD 運行事件通知
NotifyType_ProgramStatus = 2; //程式狀態
NotifyType_ConnStatus = 3; //連接狀態
NotifyType_QotRight = 4; //行情權限
NotifyType_APILevel = 5; //用户等級,已在2.10版本之後廢棄
NotifyType_APIQuota = 6; //API 額度
}
2
3
4
5
6
7
8
9
10
NotifyType
enum NotifyType
{
NotifyType_None = 0; //無
NotifyType_GtwEvent = 1; //OpenD 運行事件通知
NotifyType_ProgramStatus = 2; //程式狀態
NotifyType_ConnStatus = 3; //連接狀態
NotifyType_QotRight = 4; //行情權限
NotifyType_APILevel = 5; //用户等級,已在2.10版本之後廢棄
NotifyType_APIQuota = 6; //API 額度
}
2
3
4
5
6
7
8
9
10
NotifyType
enum NotifyType
{
NotifyType_None = 0; //無
NotifyType_GtwEvent = 1; //OpenD 運行事件通知
NotifyType_ProgramStatus = 2; //程式狀態
NotifyType_ConnStatus = 3; //連接狀態
NotifyType_QotRight = 4; //行情權限
NotifyType_APILevel = 5; //用户等級,已在2.10版本之後廢棄
NotifyType_APIQuota = 6; //API 額度
}
2
3
4
5
6
7
8
9
10
NotifyType
enum NotifyType
{
NotifyType_None = 0; //無
NotifyType_GtwEvent = 1; //OpenD 運行事件通知
NotifyType_ProgramStatus = 2; //程式狀態
NotifyType_ConnStatus = 3; //連接狀態
NotifyType_QotRight = 4; //行情權限
NotifyType_APILevel = 5; //用户等級,已在2.10版本之後廢棄
NotifyType_APIQuota = 6; //API 額度
}
2
3
4
5
6
7
8
9
10
# 封包唯一識別碼
PacketID
message PacketID
{
required uint64 connID = 1; //當前 TCP 連接的連接 ID,一條連接的唯一標識,InitConnect 協議會返回
required uint32 serialNo = 2; //自增序列號
}
2
3
4
5
# 程式狀態
ProgramStatus
message ProgramStatus
{
required ProgramStatusType type = 1; //當前狀態
optional string strExtDesc = 2; // 額外描述
}
2
3
4
5