穿透式监管CTPAPI使用说明

上传人:枫** 文档编号:504004875 上传时间:2023-05-13 格式:DOCX 页数:23 大小:246.59KB
返回 下载 相关 举报
穿透式监管CTPAPI使用说明_第1页
第1页 / 共23页
穿透式监管CTPAPI使用说明_第2页
第2页 / 共23页
穿透式监管CTPAPI使用说明_第3页
第3页 / 共23页
穿透式监管CTPAPI使用说明_第4页
第4页 / 共23页
穿透式监管CTPAPI使用说明_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《穿透式监管CTPAPI使用说明》由会员分享,可在线阅读,更多相关《穿透式监管CTPAPI使用说明(23页珍藏版)》请在金锄头文库上搜索。

1、ji韻案有眼公司LtdShanghai Futurea Information Technology Co-Ltd,穿透式监管CTPAPI使用说明文档修订历史记录修改记录修改 状态修改页码及条款修改人审核人批准人修改日期V0.1创建V1.1内容申明内部资料,注意保存。此文件属于上海期货交易所(以下简称交易所或者上期所)和上海期货信 息技术有限公司(以下简称技术公司)内部文件,包含敏感内容,未经交易所和技术公司负责人 允许,不得对外展示本文件内容。目录第 1 章 引言 21.1 实现目的 21.2 背景 21.3 定义 2第2章 流程设计 32.1 终端认证方案 32.1.1 背景条件 32.1

2、.2 appid 对应的授权码分发流程 32.1.3 登录前认证 42.2 使用 CTP 交易 API 进行终端信息采集 62.2.1直接使用CTP交易API直连模式62.2.2使用中继服务器操作员登录模式82.2.3 使用中继服务器多对多登录模式11第3章CTP API使用说明123.1 采集 API 使用说明 123.1.1采集API说明123.2 TRADERAPI 123.2.1穿透式监管涉及到的API 123.2.2 客户使用流程 14第1章 引言1.1 实现目的简要描述 CTP 对于终端数据采集和终端认证的实现方案。用于指导终端厂商正确 使用CTP的交易API和采集API。1.2

3、背景证监会发布关于进一步加强期货经营机构客户交易终端信息采集有关事项的公告http:/ 终端信息采集及接入认1.3 定义术语术语说明TraderApi交易API,提供登录、交易、银期等等功能采集API链接库负责采集终端信息的动态链接库,只有连接中继服务器的终端需要调用直连类型终端直接连接到CTP交易系统的客户交易终端中继类型终端先连接到中继服务器,中继服务器再调用TraderAPI连接到CTP交易系统的客户交易终端多对多类型中继服务器为每个客户终端,建立CTP API实例,每个用户独占一个交易API实例的中继服务器多对一类型中继服务器为多个客户终端,建立一个CTP API 实例,使用操作员为多

4、个客户进行交易 的中继服务器第2章 穿透式监管方案设计2.1 终端认证方案2.1.1 背景条件每个期货终端软件需要向期货公司申请自己的appid。 中继服务器软件需要向期货公司申请自己的relayappid。2.1.2 appid对应的授权码分发流程期货公司确认终端软件集成了正确的数据采集模块后,为该appid的终端软件 分配授权码。终端软件需要保护好自己的appid和授权码,防止被其他软件盗用。2.1.2.1 直连终端认证流程对于直接连接期货公司交易柜台的终端,期货公司确认终端软件集成了正确的 数据采集模块后。给该终端软件(根据appid)分配一个授权码。这个授权码和appid 是绑定的,当

5、终端试图登录期货公司交易软件的时候,交易后台会验证该终端是否 持有合法的 appid 和授权码。2.1.2.2 中继和中继下属终端的认证流程对于使用中继服务器连接期货公司交易柜台的终端,期货公司确认终端软件集 成了正确的数据采集模块和确认中继可以正常报送终端信息后。期货公司给该终端 软件(根据appid )分配一个授权码,给中继服务器(根据semiapp)分配一个授权 码。当终端登录中继服务器时,中继服务器负责验证终端的合法性;当中继服务器 登录期货公司交易软件的时候,交易后台会验证该中继服务器是否持有合法的 relayappid 和授权码。2.1.3 登录前认证当客户直接使用CTP交易API

6、时,客户的终端软件(或者中继服务器)必须存 有期货公司分配的授权码,在调用ReqAuthenticate()时填入appid和对应的授权码, 交易API将该授权码(暂定16字节)缓存下来作为加密的AES_KEY,以对后续信 息进行AES加密。接入认证的流程如下:图 1.1处理流程:1.在终端登录之前,用户通过交易API发起终端认证请求ReqAuthenticate。需要用 户填写appid (relayappid)和授权码(authcode),该授权码只会缓存交易API 中, 不会在网络中直接传输授权码。2. 交易前置随机生成128字节的TimeStamp,将TimeStamp保存在sessi

7、on信息中 ,并将其通过 RspAuthenticate 回调信息返回给终端。3. 终端收到RspAuthenticate回调信息后,使用AES_KEY加密TimeStamp,并将其赋 值到AuthInfo字段,再次发起ReqAuthenticate请求4. 交易前置收到第二次的 FTD_TID_ReqAuthenticate 之后,将之前 session 保存的 TimeStamp赋值到请求里面的TimeStamp字段中。将认证消息发送给交易核心5. 交易核心使用内存数据库中终端信息对应的授权码加密 TimeStamp 字段,并将加 密结果与 AuthInfo 比较。 如果相同设置当前终端为

8、已经认证。 并返回 RspAuthenticate 成功结果给交易前置。6. 交易前置通过API回调,将认证结果返回给用户对于认证失败的连接,不允许进行登录。22使用CTP交易API进行终端信息采集用户可以直接使用CTP交易API进行交易,也可以通过中继服务器间接调用交易API 进行交易。这就需要将信息采集动态库和CTP的交易API分离开来,因此信息的采集和上 报有需要分为两步。2.2.1直接使用CTP交易API直连模式直接使用交易API进行交易时,API会直接调用GetSytemInfo()采集终端信息,并将信 息填入LocalSystemInnerInfo字段,通过ReqUserLogin

9、()将采集到的信息送给前置。前置收 到交易API的ReqUserLogin请求后采集客户端的公网IP,并将该信息填写到登录请求的 LocalSystemOuterInfo,然后将登录请求发送给交易核心。交易核心收到用户登录请求后,验证密码等信息。若通过验证则将请求中的客户端信息 发送给TMDB(内存数据回写数据库组件),TMDB(内存数据回写数据库组件)用监控中心发 布的公钥对LocalSystemOuterInfo字段的信息进行加密,然后将该信息与其它信息一起回 写数据库,结算系统读取数据库,将信息上报给监控中心。流程如下图:如果通过登录验证: 将登录时间信息和 LocalSystemOut

10、erlnfop 的信息合并用监控中心的密钥对片LocalSystemOuterlnfo 进行加 密,然后将加密后的数据与其 他信息一起回写数据Trade APIFrontTKernel2: GetSystemlnfoO将采集到的终端信息(已经公钥加密),并、 填写到用户系统信息 CFTDUserSystemlnfoField 的 LocalSystemlnnerlnfo 字段1采集终端的公网IP,将信息写入LocalSystemOuterlnfo 字段2.缓存用户终端信息5: userLogin()6: OnRspUserLoginf)图 1.2LocalSystemInnerInfo 里面存

11、储的为公钥加密后的终端数据。LocalSystemOuterInfo 里面存储的为明文的公网 IP 和登录时间,入库之前需要用公钥 加密。带下划线的函数,为CTP交易系统内部函数。如_SubmitUserSystemInfo。步骤:1. 当终端软件通过交易API发起登录请求时,交易API调用GetSystemInfo()采集 终端信息,将该信息填写到登录请求的 LocalSystemInnerInfo 字段中。上报用 户系统信息给交易前置。2. 交易前置收到用户系统信息上报后,采集终端的公网IP填入 LocalSystemOuterInfo字段,缓存该用户的系统信息,每个用户只缓存一条信 息。

12、3. 交易API发送登录请求给交易前置。交易前置转发给交易核心。4. 交易核心验证登录请求,并返回登录响应。5. 如果交易前置收到成功的登录响应,将响应中的登录时间与LocalSystemOuterInfo 合并,通过 tresult 发送给 TMDB。6. TMDB用监控中心的公钥加密LocalSystemOuterInfo信息,然后将所有的用户 系统信息回写到物理数据库中。7. 结算系统读取物理数据库中的信息,每日汇总所有的采集信息,将信息报送给 保证金监控中心2.2.2 使用中继服务器操作员登录模式采用中继服务器操作员模式时,信息采集的流程分为两个步骤: 中继服务器以操作员的的身份调用T

13、radeAPI登录CTP交易系统,这时交易后台对 信息采集的处理方式与2.2.1 中相同。 中继服务器成功登录CTP交易系统后,须将投资者的终端信息报送上来。 流程如下图所示:方式与用户直接连接时相同。2. 中继服务器须采集客户端的信息,然后调用SubmitUserSystemInfo()上报终端信 息(包含客户终端采集的信息、终端的appid、终端的登录时间和公网IP、中继 服务器的 relayappid 等)。3. Front采集中继服务器的公网IP,并将信息填入LocalSystemOuterInfo字段中, 然后将信息发送给 tkernel。4. tkernel 收到数据上报消息时,判

14、断该登录账户是否有数据上报权限(只有操作 员和超级用户有为其他用户上报信息的权限)。如果没有权限,直接丢弃消息。 如果有权限则将信息发给TMDB。5. TMDB 用监控中心的密钥加密 LocalSystemOuterIno 和 RemoteSystemOuterInfo 字段,然后将加密后的信息和采集的终端信息写入物理数据库,结算系统读取 该数据库,将信息上报给监控中心。SubmitUserSystemInfo 交易 API 接口只对操作员类型的中继服务器开放使用,其他 类型的终端或者中继调用会直接返回失败。2.2.3使用中继服务器多对多登录模式$d relay server iti r 血门日 usi log r图1.4具体步骤:1. 中继服务器先为用户调用交易API的RegisterUserSystemInfo()接口(填写信息 包含客户终端采集的信息、终端的appid、终端的登录时间和公网IP、中继服务 器的 relayappid 等)。2. 其余过程与用户直接连接时相同。RegisterUserSystemInfo交易API接口只对多对多类型的中继服务器开放调用, 其他类型的终端或者中继调用会直接返回失败。第3章 穿透式 API 使用说明

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号