精品免费久久久久电影_在线a一级大片免费观看_老司机永久深夜在线视频_97尤物无码在线视频

    熱門關鍵詞用友BIP 用友U9 用友NC 用友U8 OA T+ 好業(yè)財

    詳細信息

    您現(xiàn)在的位置:網(wǎng)站首頁 >> 百科問答 >> 詳細信息

    記錄用友T+接口對接歷程

    發(fā)布時間:2024-11-18  瀏覽:3189次  

    特價活動:>>>> 用友U8、T6、T+、T3軟件產(chǎn)品特價活動,暢捷通T+cloud、好會計、易代賬、好業(yè)財、好生意云產(chǎn)品6-8折優(yōu)惠。 

    前言:公司的業(yè)務主要是對接財務系統(tǒng)做單據(jù)傳輸或者憑證處理的,難免少不了和各大財務軟件做數(shù)據(jù)對接,其中當然是必須通過接口來傳遞數(shù)據(jù)了。于是乎,用友T+的版本來了,對接的工作自然是我來做,可沒想到就是這樣一個T+接口,搞得我快吐血了。


    1.先簡單描述下項目的運行環(huán)境,.net core 2.2。這也是導致后來一直卡在接口對接上的一大原因。接口不太支持.net core的運行環(huán)境。因為自己之前也處理過財務接口,金蝶K3,KIS賬務平臺,K3wise,U8Cloud等等,說實話,T+還是第一次接觸,當然第一件事肯定是看官方文檔了。不過打開之后,瀏覽器一直在刷新頁面,后來問了社區(qū)的服務人員人家說換個瀏覽器試試,換了T+的瀏覽器,結果還是一直刷新,到底是啥問題,咱也不知道,咱也不敢問??,后來在官網(wǎng)的文檔中給了解釋,說是最好使用IE和360瀏覽器,估計是客戶使用的比較多吧,所以才不兼容主流的Google瀏覽器嘛?


    2.OK,那么首要任務就是先熟悉接口定義以及相關的請求方式和請求參數(shù)等等,當然返回參數(shù)也是需要的。接著就開始將接口封裝到項目中了,T+ OpenAPI v2 接口需要引入鑒權機制,簡單的來說就是需要在每次請求業(yè)務接口時,請求的Header需要帶上Authorization參數(shù),那么Authorization怎么來獲取呢?見下圖,即 對appKey,authInfo,orgId做base64位的加密。那么authInfo的值又如何獲取呢?


    請看官方文檔的注釋,即 對 appkey,orgid,appsecret這三個參數(shù)做一次簽名算法,那么還有兩個問題需要解決。第一,這三個參數(shù)怎么獲。縄SV申請 http://tplusdev.chanjet.com/enterprise 官網(wǎng)注冊后會有ISV的申請,點擊申請?zhí)顚懞觅Y料后系統(tǒng)會有人員審核資質并發(fā)放具體的加密密鑰。好了,第一個問題解決了,那么第二個問題呢?簽名算法怎么做。不要著急,官網(wǎng)也有提供,這里僅標注C#版本,因為使用的環(huán)境是.net 的



    簽名算法1


    3.OK,我們接著往下看,如果上一步的工作都做完并且正常返回 {"result":true,"access_token":"03e74889-1457-48cd-970a-ba3742ffcdea","sid":""} 的信息時,不要高興的太早,我當時也以為接口調用成功了,沒想到啊,還是太年輕。還有接著的業(yè)務調用需要用到上一步請求到的access_token。請求方式,如下圖官網(wǎng)給的注釋一樣,只不過在做authInfo的值處理時,需要添加第一步獲取到的access_token的值同時做簽名2的處理。不過官網(wǎng)給的還有對應的winForm demo大家可以下載后,根據(jù)自己的參數(shù)做出修改,并且可以在線調試,還是比較方便的,比較容易定位到問題。T+OpenAPI測試工具(包含v2版本).zip(C#) .



    簽名算法2


    4.好了,坑終于來了,下載完demo后,將demo中用到的dll拷貝到自己的項目中去。主要用到的dll 有這么多


    dll引用

    由于官網(wǎng)提供的版本是.NET Framework的版本,但是項目中的環(huán)境是.net core2.2,大家都知道,目前.net Framework的好多類庫,在.net core 下是不支持的,比如接口中用到的jose-jwt.dll


    遇到這種情況,我的第一反應是反編譯,將dll反編譯為工程文件,再引用到自己的項目中去。因為之前做金蝶K3Cloud的接口也是,提供的是framework的版本,當時也是搞了好久的接口,最后采用的反編譯項目才搞定的。所以這次也是想著直接反編譯項目試試,結果,自己還是太年輕。反編譯的項目在.net core 下也不能用。怎么辦呢,當然是問了,在社區(qū)發(fā)布問題,加QQ群,問群里的大佬,有用的回答寥寥無幾,不過還是感謝群里的一個朋友,指出來是jwt的加密算法有問題,雖然最后我實在是找不到到底是加密算法哪的問題,問了他好幾次,他也沒有告訴我。


    至于加密算法是哪的問題,最后我也找到了問題,不過解決辦法卻沒有找到。反編譯出來的加密算法,在執(zhí)行到num=加密方法的時候,最后返回的num值不是0,所以到這一步總是會報錯,至于為啥會報錯,對不起,我到現(xiàn)在也沒搞清楚,因為加密源碼這塊,實在是看不太懂。原諒本人經(jīng)歷太淺,技術太菜。??。就這樣,一個業(yè)務調用的接口,搞了我差不多一個星期的時間,無奈啊,還是沒搞定,只好求助自己的技術老大了,也是自己的老師,非常感謝感謝。在他努力一天的結果下,終于把接口的第一步調通了,但是夜里接到他通知我接口搞定的微信后,我就睡不著了。一直在想,在?希望業(yè)務調用的接口也能正常使用。懷著忐忑的心情,跑起來他給我的項目,哈,果然,控制臺確實返回了結果,只不過是Token的獲取結果。還不能確定第二步是否能用。


    后續(xù)我將業(yè)務調用的代碼添加上后,激動的按下了F5,結果還是不出所料,接口返回 提供的令牌信息不正確。。。這些天,我看這些個文字已經(jīng)快看吐了。帶著截圖去群里問大佬,@大佬,結果沒有人回復。哎,我也不知道為啥,問個問題也沒回復的。沒辦法,接著調試唄。將老大給我的新封裝的.net core 環(huán)境下的T+項目里的jose-jwt 添加到官網(wǎng)給的framework的winForm程序里去,這樣調試,我就能快速找到問題所在,并且修正問題;侍觳回撚行娜税。K于,感謝天,感謝地,再沒出現(xiàn) 令我作嘔的錯誤文字了。不由地心里好一陣激動。不容易啊,不容易。



    5.至此,終于是將T+的接口給搞定了,也不枉自己在這上面耽誤這么多時間,感覺自己的頭發(fā)又掉了好多。最后的最后,附上.net core 環(huán)境下T+的接口調用,給有需要的朋友,也免得大家入坑。


    總結一下,在處理接口問題的時候,其實最重要的還是要徹底理解接口的定義,然后做起來才能得心應手,不過,也很感謝這次經(jīng)歷,起碼有了對接T+接口的經(jīng)驗,下次遇到同樣的項目就可以直接使用了,也免去了后續(xù)的麻煩。也希望自己在以后的工作中能更加有經(jīng)驗。加油。


    上一篇:用友t+暢捷通使用方法_北用友 南金蝶,誰才是中國財務軟件的最強王者

    客服電話:400-665-0028

    魯ICP備10028716號-2

    用友好會計、用友易代賬、用友好業(yè)財、用友好生意、用友T+Cloud試用地址__用友暢捷通公司網(wǎng)站

    關鍵字:用友軟件,暢捷通軟件,財務軟件,進銷存軟件,U9官網(wǎng),用友U8,用友T1,用友T+,用友T3,用友T6,暢捷通好會計,好生意,好業(yè)財,用友培訓服務售后公司,暢捷通運營培訓服務公司