【零基礎】易盛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是一個存數據的結構體,主要包括“授權碼”、“日志存放路徑”、“斷線重連設置”

 

 

   授權碼和測試用登陸賬戶、密碼在demo里都有。

  最后通過CreateITapTradeAPI()函數創建了API的實例

三、為API實例指定消息回調

  創建API實例后就可以做指令操作了,但指令的結果獲取是異步的,9.0API要求開發者繼承ITapTradeAPINotify這個類並自己實現其中的各種消息接口。

 

 

   其實就是像上圖這樣,按ITapTradeAPINotify的接口要求定義好各種函數,在函數里寫你的代碼就行了,當有消息返回時就會根據消息的類型執行不同函數內的代碼。

 

   然后你會發現函數前面都有個TAP_CDECL關鍵字,它定義是

 

   含義為:若當前系統是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里的一個等待消息的方法。

  執行效果如下:

 

 

五、回顧

  簡單實現了登陸操作,但是把整體結構過了下,其實挺簡單的。

  完整代碼:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM