易盛api接口 mysql_【零基础】易盛9.0API入门二:登陆

一、前言

前一节解决了开发环境问题,这一节就进一步实现API登陆交易服务。

我们先简要说明下API涉及的两个类ITapTradeAPI和ITapTradeAPINotify,他们分别实现了“指令”和“回调消息”的功能。

ITapTradeAPI(指令):比如发送下单指令、登陆指令、撤单指令等。

ITapTradeAPINotify(回调消息):各种指令发送后的执行情况通过这个接口返回,比如登陆是否成功、下单结果如何,还有就是一些重要消息,比如连接是否成功、盈亏通知等。

实际上开发包里已经有一个很完备的demo,为了便于理解我就把它拆分成了好几个小节,一步一步完成学习。

二、创建API实例

TapAPIApplicationInfo stAppInfo;

strcpy(stAppInfo.AuthCode, DEFAULT_AUTHCODE);

strcpy(stAppInfo.KeyOperationLogPath, "\\log");

ITapTradeAPI *pAPI = CreateITapTradeAPI(&stAppInfo, iResult);

这里的TapAPIApplicationInfo是一个存数据的结构体,主要包括“授权码”、“日志存放路径”、“断线重连设置”

d29fe277ffbc95034f0163e657087266.png

授权码和测试用登陆账户、密码在demo里都有。

最后通过CreateITapTradeAPI()函数创建了API的实例

三、为API实例指定消息回调

创建API实例后就可以做指令操作了,但指令的结果获取是异步的,9.0API要求开发者继承ITapTradeAPINotify这个类并自己实现其中的各种消息接口。

9c22ca5a6cfcbe55f43c270077711315.png

其实就是像上图这样,按ITapTradeAPINotify的接口要求定义好各种函数,在函数里写你的代码就行了,当有消息返回时就会根据消息的类型执行不同函数内的代码。

7ff0ee43bb0a351543f3ffb635e0b9be.png

然后你会发现函数前面都有个TAP_CDECL关键字,它定义是

316b3e3ce3f8c57f5d5b2c71cbac89b9.png

含义为:若当前系统是windows的,TAP_CDECL = __cdecl,若为linux系统则此关键字没有含义。具体含义可以百度下,反正我们是linux系统所以没有作用。

各回调函数的说明在demo中有说明文档,也可以在“iTapTradeAPI.h”文件中找到。定义好回调类后,还需要将API实例与回调实例关联在一起。

Trade objTrade;

pAPI->SetAPINotify(&objTrade);

四、登陆测试

//设置服务器IP、端口

pAPI->SetHostAddress(DEFAULT_IP, DEFAULT_PORT);

//设置账户信息

TapAPITradeLoginAuth stLoginAuth;

memset(&stLoginAuth, 0, sizeof(stLoginAuth));

strcpy(stLoginAuth.UserNo, DEFAULT_USERNAME);

strcpy(stLoginAuth.Password, DEFAULT_PASSWORD);

stLoginAuth.ISModifyPassword = APIYNFLAG_NO;

//登陆

pAPI->Login(&stLoginAuth);

//等待回调消息

while(true){

}

最后为什么会是个while的死循环呢?因为整个过程都是异步的,发送登陆指令和登陆结果的消息通知是分开的,所以要在主进程里死循环等待,以后会介绍demo里的一个等待消息的方法。

执行效果如下:

8add8bcdcaee7038107ea74650e752cb.png

五、回顾

简单实现了登陆操作,但是把整体结构过了下,其实挺简单的。

完整代码:

https://share.weiyun.com/5szXtuo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值