先简单描述下项目的运行环境,.netcore这也是导致后来一直卡在接口对接上的一大原因。接口不太支持.netcore的运行环境。因为自己之前也处理过财务接口,金蝶KKIS账务平台,K3wise,U8Cloud等等,说实话,T+还是第一次接触,当然第一件事肯定是看官方文档了。直通车T+开发平台,不过打开之后,浏览器一直在刷新页面,后来问了社区的服务人员人家说换个浏览器试试,换了T+的浏览器,结果还是一直刷新,到底是啥问题,咱也不知道,咱也不敢问??,后来在官网的文档中给了解释,说是最好使用IE和360浏览器,估计是客户使用的比较多吧,所以才不兼容主流的Google浏览器嘛?
OK,那么首要任务就是先熟悉接口定义以及相关的请求方式和请求参数等等,当然返回参数也是需要的。接着就开始将接口封装到项目中了,T+OpenAPIv2接口需要引入鉴权机制,简单的来说就是需要在每次请求业务接口时,请求的Header需要带上Authorization参数,那么Authorization怎么来获取呢?见下,即对appKey,authInfo,orgId做base64位的加密。那么authInfo的值又如何获取呢?请看官方文档的注释,即对appkey,orgid,appsecret这三个参数做一次签名算法,那么还有两个问题需要解决。第这三个参数怎么获取?ISV申请http://tplusdev.chanjet.com/enterprise官网注册后会有ISV的申请,点击申请填写好资料后系统会有人员审核资质并发放具体的加密密钥。好了,第一个问题解决了,那么第二个问题呢?签名算法怎么做。不要着急,官网也有提供,这里仅标注C#版本,因为使用的环境是.net的签名1的下载地址签名1下载。
签名算法1
OK,我们接着往下看,如果上一步的工作都做完并且正常返回{'result':true,'access_token':'03e74889-1457-48cd-970a-ba3742ffcdea','sid':''}的信息时,不要高兴的太早,我当时也以为接口调用成功了,没想到啊,还是太年轻。还有接着的业务调用需要用到上一步请求到的access_token。请求方式,如下官网给的注释一样,只不过在做authInfo的值处理时,需要添加第一步获取到的access_token的值同时做签名2的处理。签名2地址下载。不过官网给的还有对应的winFormdemo大家可以下载后,根据自己的参数做出修改,并且可以在线调试,还是比较方便的,比较容易定位到问题。T+OpenAPI测试工具(包含v2版本).zip(C#).
签名算法2
好了,坑终于来了,下载完demo后,将demo中用到的dll拷贝到自己的项目中去。主要用到的dll有这么多
dll引用
由于官网提供的版本是.NETFramework的版本,但是项目中的环境是.netcore2,大家都知道,目前.netFramework的好多类库,在.netcore下是不支持的,比如接口中用到的jose-jwt.dll
jose-jwt源码签名加密
至此,终于是将T+的接口给搞定了,也不枉自己在这上面耽误这么多时间,感觉自己的头发又掉了好多。???最后的附上.netcore环境下T+的接口调用,给有需要的朋友,也免得大家入坑。Tplus.netcore接口下载
文章为作者独立观点,不代表股票交易接口观点