sns网站是什么,app界面设计欣赏网站,erp软件多少钱,公司建设网站需要固定ip吗前言#xff1a;公司的业务主要是对接财务系统做单据传输或者凭证处理的#xff0c;难免少不了和各大财务软件做数据对接#xff0c;其中当然是必须通过接口来传递数据了。于是乎#xff0c;用友T的版本来了#xff0c;对接的工作自然是我来做#xff0c;可没想到就是这样… 前言公司的业务主要是对接财务系统做单据传输或者凭证处理的难免少不了和各大财务软件做数据对接其中当然是必须通过接口来传递数据了。于是乎用友T的版本来了对接的工作自然是我来做可没想到就是这样一个T接口搞得我快吐血了。1.先简单描述下项目的运行环境.net core 2.2。这也是导致后来一直卡在接口对接上的一大原因。接口不太支持.net core的运行环境。因为自己之前也处理过财务接口金蝶K3KIS账务平台K3wiseU8Cloud等等说实话T还是第一次接触当然第一件事肯定是看官方文档了。直通车 T开发平台不过打开之后浏览器一直在刷新页面后来问了社区的服务人员人家说换个浏览器试试换了T的浏览器结果还是一直刷新到底是啥问题咱也不知道咱也不敢问??,后来在官网的文档中给了解释说是最好使用IE和360浏览器估计是客户使用的比较多吧所以才不兼容主流的Google浏览器嘛2.OK那么首要任务就是先熟悉接口定义以及相关的请求方式和请求参数等等当然返回参数也是需要的。接着就开始将接口封装到项目中了T OpenAPI v2 接口需要引入鉴权机制简单的来说就是需要在每次请求业务接口时请求的Header需要带上Authorization参数那么Authorization怎么来获取呢见下图即 对appKey,authInfo,orgId做base64位的加密。那么authInfo的值又如何获取呢请看官方文档的注释即 对 appkey,orgid,appsecret这三个参数做一次签名算法那么还有两个问题需要解决。第一这三个参数怎么获取ISV申请 http://tplusdev.chanjet.com/enterprise 官网注册后会有ISV的申请点击申请填写好资料后系统会有人员审核资质并发放具体的加密密钥。好了第一个问题解决了那么第二个问题呢签名算法怎么做。不要着急官网也有提供这里仅标注C#版本因为使用的环境是.net 的 签名1的下载地址签名1下载。签名算法13.OK我们接着往下看如果上一步的工作都做完并且正常返回 {result:true,access_token:03e74889-1457-48cd-970a-ba3742ffcdea,sid:} 的信息时不要高兴的太早我当时也以为接口调用成功了没想到啊还是太年轻。还有接着的业务调用需要用到上一步请求到的access_token。请求方式如下图官网给的注释一样只不过在做authInfo的值处理时需要添加第一步获取到的access_token的值同时做签名2的处理。签名2地址下载。不过官网给的还有对应的winForm demo大家可以下载后根据自己的参数做出修改并且可以在线调试还是比较方便的比较容易定位到问题。TOpenAPI测试工具(包含v2版本).zip(C#) .签名算法24.好了坑终于来了下载完demo后将demo中用到的dll拷贝到自己的项目中去。主要用到的dll 有这么多dll引用由于官网提供的版本是.NET Framework的版本但是项目中的环境是.net core2.2,大家都知道目前.net Framework的好多类库在.net core 下是不支持的比如接口中用到的jose-jwt.dll遇到这种情况我的第一反应是反编译将dll反编译为工程文件再引用到自己的项目中去。因为之前做金蝶K3Cloud的接口也是提供的是framework的版本当时也是搞了好久的接口最后采用的反编译项目才搞定的。所以这次也是想着直接反编译项目试试结果自己还是太年轻。反编译的项目在.net core 下也不能用。怎么办呢当然是问了在社区发布问题加QQ群问群里的大佬有用的回答寥寥无几不过还是感谢群里的一个朋友指出来是jwt的加密算法有问题虽然最后我实在是找不到到底是加密算法哪的问题问了他好几次他也没有告诉我。??不过还是谢谢他。至于加密算法是哪的问题最后我也找到了问题不过解决办法却没有找到。反编译出来的加密算法在执行到num加密方法的时候最后返回的num值不是0所以到这一步总是会报错至于为啥会报错对不起我到现在也没搞清楚因为加密源码这块实在是看不太懂。原谅本人经历太浅技术太菜。??。就这样一个业务调用的接口搞了我差不多一个星期的时间无奈啊还是没搞定只好求助自己的技术老大了也是自己的老师非常感谢感谢。在他努力一天的结果下终于把接口的第一步调通了但是夜里接到他通知我接口搞定的微信后我就睡不着了。一直在想在?希望业务调用的接口也能正常使用。怀着忐忑的心情跑起来他给我的项目哈果然控制台确实返回了结果只不过是Token的获取结果。还不能确定第二步是否能用。后续我将业务调用的代码添加上后激动的按下了F5结果还是不出所料接口返回 提供的令牌信息不正确。。。这些天我看这些个文字已经快看吐了。带着截图去群里问大佬大佬结果没有人回复。哎我也不知道为啥问个问题也没回复的。没办法接着调试呗。将老大给我的新封装的.net core 环境下的T项目里的jose-jwt 添加到官网给的framework的winForm程序里去这样调试我就能快速找到问题所在并且修正问题。皇天不负有心人啊终于感谢天感谢地再没出现 令我作呕的错误文字了。不由地心里好一阵激动。不容易啊不容易。jose-jwt源码签名加密5.至此终于是将T的接口给搞定了也不枉自己在这上面耽误这么多时间感觉自己的头发又掉了好多。???最后的最后附上.net core 环境下T的接口调用给有需要的朋友也免得大家入坑。Tplus.net core接口下载总结一下在处理接口问题的时候其实最重要的还是要彻底理解接口的定义然后做起来才能得心应手不过也很感谢这次经历起码有了对接T接口的经验下次遇到同样的项目就可以直接使用了也免去了后续的麻烦。也希望自己在以后的工作中能更加有经验。加油。原文链接https://www.cnblogs.com/wnxyz8023/p/11309300.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com