錯誤診斷簡要說明_第1頁
錯誤診斷簡要說明_第2頁
錯誤診斷簡要說明_第3頁
錯誤診斷簡要說明_第4頁
錯誤診斷簡要說明_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、一、           錯誤處理流程概覽 從這個錯誤處理流程可知,在整個錯誤處理的過程中,一共可以分為3條主要的流程:請求解析異常流程處理,平臺級錯誤處理和業(yè)務(wù)調(diào)用錯誤處理。當(dāng)然,這一切處理的最初也是最重要的一步就是:將效勞器響應(yīng)內(nèi)容保存下來。二、           效勞器響應(yīng)內(nèi)容透析效勞器響應(yīng)內(nèi)容,顧名思義就是isv調(diào)用top效勞得到的響應(yīng)的內(nèi)容。這些內(nèi)容能夠最真實(shí)的反響出isv請

2、求的問題和效勞器當(dāng)前的情況,也最能夠幫助isv找到問題的所在。效勞器響應(yīng)內(nèi)容一般分為兩種:一種是wiki文檔中所編寫的成功調(diào)用所返回的字段,另一種是調(diào)用失敗的返回的錯誤相關(guān)信息。 1.        調(diào)用成功返回格式調(diào)用成功的響應(yīng)信息內(nèi)容根據(jù)調(diào)用效勞版本的不同分為了兩種不同的格式。1.0的效勞返回信息的格式分為三層:最外一層是"rsp": 標(biāo)記,表示這是效勞的響應(yīng)內(nèi)容;中間一層是返回結(jié)構(gòu)體的標(biāo)記,如:返回的是商品的結(jié)構(gòu)體,中間這層就是"items": , ,表示結(jié)果是一個商品

3、的列表,如果返回參數(shù)不是以結(jié)構(gòu)體的形式,這一層就不存在;最內(nèi)一層就是每個結(jié)構(gòu)體具體的字段了。1.0這個版本所有返回結(jié)果,不管是單個的商品還是一個商品列表,他的第二層都是一個列表的結(jié)構(gòu),區(qū)別只是列表里有一個子結(jié)構(gòu)體還是有多個子結(jié)構(gòu)體而已。相比之下,2.0的效勞返回信息就相對的標(biāo)準(zhǔn)化了。2.0的響應(yīng)內(nèi)容主要也可以分為3層:最外一層是你調(diào)用效勞的名稱所對應(yīng)的響應(yīng)標(biāo)記,如:獲取單個商品taobao.item.get的響應(yīng)最外層為"item_get_response": ,表示這是獲取單個商品的響應(yīng);中間一層是返回結(jié)構(gòu)體的標(biāo)記。如果結(jié)構(gòu)體是單個,那么2.0返回的這一層里面就會是單個的

4、結(jié)構(gòu),如:獲取的單個商品的結(jié)構(gòu)體就是"item": ;反之,如果結(jié)構(gòu)體是多個,那么列表也會明顯的表示出來,如:搜索商品列表的結(jié)構(gòu)體就會是items:“item: , 。最外層的items表示這是一個商品的列表,后面的item表示列表中的每一個子結(jié)構(gòu)體都是屬于商品item的,然后就跟著商品的數(shù)據(jù);最內(nèi)一層就商品的具體字段信息了。 2.        調(diào)用錯誤返回當(dāng)調(diào)用發(fā)生錯誤的時候,一般情況下可以分為幾大類錯誤信息的返回: 連接錯誤、平臺解析錯誤、業(yè)務(wù)處理錯誤。這三種類型的錯誤分別代表了:淘寶效勞

5、器、淘寶接入平臺、top-api業(yè)務(wù),幾個層次上出現(xiàn)的問題。1)        連接錯誤 連接錯誤是請求通信過程中出現(xiàn)的錯誤,這類型錯誤通常由 響應(yīng)碼標(biāo)記出來。 響應(yīng)碼由三位十進(jìn)制數(shù)字組成,它們出現(xiàn)在由 效勞器發(fā)送的響應(yīng)的第一行。響應(yīng)碼分五種類型,由它們的第一位數(shù)字表示:1xx:信息,請求收到,繼續(xù)處理2xx:成功,行為被成功地接受、理解和采納3xx:重定向,為了完成請求,必須進(jìn)一步執(zhí)行的動作4xx:客戶端錯誤,請求包含語法錯誤或者請求無法實(shí)現(xiàn)5xx:效勞器錯誤,效勞器不能實(shí)現(xiàn)一種明顯無效的請求Isv調(diào)用top效勞最常收到就

6、是200: 請求成功;404:未找到請求的效勞;500內(nèi)部效勞器錯誤等等。如果用戶收到的響應(yīng)碼是404,表示用戶的網(wǎng)絡(luò)有問題或者top被和諧了如果用戶收到的響應(yīng)碼是500,表示網(wǎng)絡(luò)是ok的,是top的效勞無法響應(yīng)。2)        效勞端錯誤總述平臺解析錯誤和業(yè)務(wù)處理錯誤都是 成功訪問到top效勞 響應(yīng)碼返回為200之后所產(chǎn)生的錯信息,他們top處理isv請求過程中出現(xiàn)的問題。1.0和2.0的格式有所不同。1.0的錯誤響應(yīng)信息最外層為“error_rsp: ,表示這是調(diào)用錯誤所返回的信息。里面一層包含兩個元素:code:

7、和 “msg: ,前者表示錯誤碼是多少,后者表示錯誤信息是什么。例如錯誤的調(diào)用1.0的taobao.item.get效勞錯誤時返回的錯誤信息:"error_rsp":"code":40,"msg":"Missing required arguments:missing parameter iid/num_iid"。這個信息的開頭為error_rsp,表示這是調(diào)用錯誤所返回的結(jié)果。里面包含的錯誤體的code為40,是平臺型錯誤,表示錯誤是缺少了必傳參數(shù)所引起的。然后msg內(nèi)容為Missing required arg

8、uments:missing parameter iid/num_iid,表示缺少的必傳參數(shù)是iid或者num_iid。Isv解析到這些信息后就需要根據(jù)錯誤信息改良自己傳入的參數(shù)來使調(diào)用成功。2.0的錯誤響應(yīng)信息的最外層為“error_response: ,表示這是調(diào)用效勞失敗所返回的錯誤信息。信息體里面一層總共包含了五個元素:"args":"arg":“key:“ ,value: ,“key:“ ,value: ,“key:“ ,value: ,code: , “msg: ,sub_code: 和sub_msg: 。args表示用戶傳入的參數(shù)列表是什么

9、,里面是一個arg的列表會包含用戶傳入的所有參數(shù)信息,每個arg表示一個參數(shù)的信息,key表示參數(shù)的名稱,value表示參數(shù)的內(nèi)容,用以方便用戶定位自己的錯誤;code表示用戶調(diào)用錯誤的錯誤碼是多少,小于200表示平臺級錯誤,200-1000之間表示大范圍的業(yè)務(wù)錯誤,即哪一類型的api調(diào)用發(fā)生了錯誤根據(jù)api的大類來分,如:商品類的api是530,交易類的api是520,等;msg表示大類型的錯誤碼所對應(yīng)的錯誤信息,一般不具備獨(dú)立的debug作用,需要和sub_code和sub_msg一起使用才行;sub_code是調(diào)用錯誤的子錯誤碼,他表示用戶調(diào)用錯誤的原因;sub_msg是子錯誤碼所對應(yīng)的

10、錯誤信息,他用來補(bǔ)充細(xì)化子錯誤碼的錯誤原因的。例如調(diào)用2.0的taobao.item.get效勞錯誤時返回的錯誤信息:"error_response":"args":"arg":"key":"app_key","value":"15739","key":"fields","value":"list_time,delist_time,approve_status","k

11、ey":"format","value":"json","key":"method","value":"taobao.item.get","key":"nick","value":"tbtest561","key":"partner_id","value":"TOPTEST","

12、key":"sign","value":"668FB4A049F71A1C845EF8C05B1F3E66","key":"timestamp","value":"2022-03-05 18:03:06.325","key":"v","value":"2.0","code":530,"msg":"Remote serv

13、ice error","sub_code":"missing-parameter","sub_msg":"iid和num_iid至少要傳入一個"這個信息的開頭為error_response,表示這是調(diào)用錯誤所返回的錯誤信息。里面的args列出了用調(diào)用這個接口傳入的信息有:"key":"app_key","value":"15739","key":"fields","value&

14、quot;:"list_time,delist_time,approve_status","key":"format","value":"json","key":"method","value":"taobao.item.get","key":"nick","value":"tbtest561","key":"

15、;partner_id","value":"TOPTEST","key":"sign","value":"668FB4A049F71A1C845EF8C05B1F3E66","key":"timestamp","value":"2022-03-05 18:03:06.325","key":"v","value":"2.

16、0",這些信息是從用戶的請求信息里面解析出來的。錯誤碼code為530,表示這是調(diào)用商品的api所產(chǎn)生的錯誤。錯誤信息msg為Remote service error表示這是調(diào)用業(yè)務(wù)處理所產(chǎn)生的錯誤。子錯誤碼sub_code為:missing-parameter,表示這個錯誤是因?yàn)槿鄙倭藚?shù)所產(chǎn)生的。子錯誤信息sub_msg為:iid和num_iid至少要傳入一個,表示少傳的參數(shù)為iid或num_iid。這所有的錯誤信息疊加起來可以知道,這個錯誤是用戶調(diào)用taobao.item.get接口時業(yè)務(wù)處理發(fā)現(xiàn)用戶沒有傳入商品id所導(dǎo)致的。3)    

17、    平臺解析錯誤平臺解析錯誤是指top返回的錯誤碼小于100的情況。平臺解析是非業(yè)務(wù)性的普適的校驗(yàn)接入層,主要用于對用戶的各種權(quán)限、和入?yún)⑦M(jìn)行最根本的校驗(yàn)?,F(xiàn)在的平臺錯誤碼主要有:Isv可以通過錯誤碼和解釋來糾正問題。如:錯誤碼為3的響應(yīng)表示圖片上傳失敗,錯誤碼為26表示用戶沒有傳入session參數(shù),錯誤碼為27表示用戶傳入的session參數(shù)找不到對應(yīng)的session記錄,等等。4)        業(yè)務(wù)處理錯誤業(yè)務(wù)處理錯誤是用戶通過平臺校驗(yàn)進(jìn)入業(yè)務(wù)流程出現(xiàn)了錯誤所發(fā)出來的。這一層的錯誤碼

18、根據(jù)調(diào)用版本不同分為兩種。如果版本是1.0,那么返回的錯誤信息格式就是:“error_rsp:“code:XXX,msg:,里面的code是數(shù)字形式的標(biāo)記著一種錯誤的編碼,msg是字符串形式,標(biāo)記在錯誤的具體信息。如,獲取當(dāng)商品失敗的錯誤信息就是:"error_rsp":"code":551,"msg":"Item service unavailable:獲取單個商品失敗"。1.0的錯誤碼有以下幾種:1.0的返回的錯誤code就是其中的錯誤碼,錯誤msg就是其中的英文錯誤描述加上具體的錯誤信息組成的。如果版本是2.

19、0,那么效勞器所返回的錯誤信息格式就是:“error_response:"args":"arg":“key:“ ,value: ,“key:“ ,value: ,“key:“ ,value: ,code: ,“msg: ,sub_code: ,sub_msg: ,里面的code是數(shù)字形式的標(biāo)記著一種業(yè)務(wù)類型的錯誤編碼,msg那么是比擬大范圍內(nèi)的表示錯誤類型的字符串。而sub_code是以字符串形式粗略表示錯誤的類型,sub_msg那么是表示具體的錯誤原因。2.0的code包含以下幾種分類:產(chǎn)品線錯誤碼用戶500類目510交易520退款521商品530商品

20、擴(kuò)展API531郵費(fèi)模板532產(chǎn)品540物流550店鋪560評價570淘寶客580系統(tǒng)590備案591增量API600比價610畫報620江湖630分銷640淘秀650收費(fèi)660Misc(保證金等雜項(xiàng)api)670由上圖可知,每一大類的api在2.0中其實(shí)是共享一個code的,它能讓用戶在復(fù)雜組合調(diào)用中指導(dǎo)是哪一類的api出現(xiàn)了問題,實(shí)現(xiàn)初步的定位。2.0的業(yè)務(wù)錯誤中,msg里面最容易出現(xiàn)的內(nèi)容就是Remote service error,這表示用戶是在通過了平臺校驗(yàn)后進(jìn)行業(yè)務(wù)流程的時候出現(xiàn)的錯誤。其他的錯誤還有Remote Service Timeout:后臺處理業(yè)務(wù)超時等等的錯誤。這一個錯

21、誤信息的力度比擬粗,很難單獨(dú)用她進(jìn)行錯誤處理。2.0的業(yè)務(wù)處理錯誤信息主要要看sub_code和sub_msg這連個字段。sub_code表示了效勞費(fèi)對業(yè)務(wù)錯誤的分類,sub_msg表示了是錯誤原因。Sub_code根據(jù)業(yè)務(wù)錯誤類型主要可以分為如下幾類子錯誤碼錯誤歸類user-not-exist用戶不存在missing-parameter缺少參數(shù)invalid-parameter參數(shù)錯誤parameters-mismatch參數(shù)不匹配主要針對那些需要一一對應(yīng)的入?yún)nvalid-permission權(quán)限缺乏remote-service-error調(diào)用后端效勞錯誤remote-service-t

22、imeout調(diào)用后端效勞超時remote-connection-error調(diào)用后端效勞連接錯誤XXX-service-unavailable調(diào)用后端效勞失敗item-extra-not-exist商品擴(kuò)展信息不存在trade-not-exist交易記錄不存在refund-not-exist退款記錄不存在每一類的子錯誤碼代表著某一類型的錯誤,例如user-not-exist表示用戶傳入的nick或者用戶綁定的session所對應(yīng)的nick找不到對應(yīng)的用戶記錄,Invalid-permission表示用戶由于權(quán)限問題不能進(jìn)行某些操作。sub_code給予isv或用戶以改良錯誤的方向,而sub_ms

23、g那么告訴用戶改良點(diǎn)。例如sub_code為invalid-parameter,sub_msg為用戶傳入的iid不能超過40個,這就表示著,這次錯誤的原因是用戶傳入的參數(shù)iid由于數(shù)量超過40個而產(chǎn)生了錯誤。 錯誤響應(yīng)時用戶和效勞器交互失敗的最直接展示,isv在調(diào)用top效勞時,如果調(diào)用失敗,請盡量保存下錯誤信息建議盡量改用2.0調(diào)用,這個版本的錯誤信息比擬全面,以便進(jìn)行后面的錯誤追查。三、           響應(yīng)格式錯誤處理響應(yīng)格式錯誤是指用戶調(diào)用top效勞時,傳入?yún)?shù)設(shè)置了for

24、mat參數(shù)為json,但是接受到的卻為xml的響應(yīng)格式,或者設(shè)置格式為xml接收到的卻為json響應(yīng)的格式的情況。一般正常情況下這種情況是不會出現(xiàn)的,但是還是會有一些異常的情況會引起這個問題。這種響應(yīng)格式錯誤的問題在isv的程序中通常會表現(xiàn)為,響應(yīng)解析格式錯誤。例如:用戶使用的top的java SDK客戶端調(diào)用top效勞,設(shè)置的format格式為json卻得到了一個xml的響應(yīng),這是sdk就會報一個錯誤說響應(yīng)開始處缺少一個“符號。這是因?yàn)閤ml響應(yīng)是以“<開始的緣故。一般會發(fā)生這種現(xiàn)象的原因有一下三種:用戶傳入的參數(shù)過大導(dǎo)致流解析異常,用戶調(diào)用太過頻繁道士響應(yīng)異常,top效勞器故障。為了

25、定位到問題出在哪里,以便找到相應(yīng)的解決方法,用戶在遇到響應(yīng)格式錯誤的情況時可以參考以下步驟進(jìn)行調(diào)試。1.        響應(yīng)格式格式錯誤,但數(shù)據(jù)正確用戶第一步應(yīng)該分析一下相應(yīng)的內(nèi)容里面是不是除了格式錯誤以外,其他的響應(yīng)內(nèi)容都是正確調(diào)用的返回結(jié)果。例如,有個用戶用top的sdk,設(shè)置format為json,調(diào)用top得到了這樣一個返回結(jié)果:com.taobao.api.json.JSONException: A JSONObject text must begin w

26、ith '' at character 1 <?xml version="1.0" encoding="utf-8" ?><rsp><totalResults>1115</totalResults><item><iid><!CDATA77a003aef35f8d959eef03d7ba3d23e3></iid><modified>2022-03-01&#

27、160;16:04:15</modified></item><item><iid><!CDATAc559afab73ab721a8e7500b62864add0></iid><modified>2022-03-01 16:04:05</modified></item><item><iid><!CDATA28a3410c88bc2ba2471080ce8891eaf7></iid><modified>2022-03-01

28、 16:03:59</modified></item><item><iid><!CDATA915383f4733b7a7c2549aa863d305995></iid><modified>2022-03-01 16:03:53</modified></item><item><iid><!CDATA528223dc2d67213aa29ab84c74c6a60a></iid><modified>2022-03-

29、01 07:30:52</modified></item></rsp>從這個異常的開頭可以看到,這是sdk的json解析拋了一個異常,說響應(yīng)內(nèi)容的內(nèi)容應(yīng)該是以“開始的。這說名,isv收到的響應(yīng)格式肯定出了問題。再看一下響應(yīng)的內(nèi)容<rsp></rsp>相應(yīng)結(jié)果標(biāo)簽之間包含了totalResults和item列表,這些數(shù)據(jù)說明,這是調(diào)用商品查詢接口返回的結(jié)果數(shù)據(jù):查詢到的結(jié)果總數(shù)是1115條,當(dāng)前頁的商品iid和最近修改時間也在其中。這些查詢結(jié)果數(shù)據(jù)是正常的,但是返回格式卻不是傳入的json而是變成了xml。這位isv聯(lián)系了to

30、p的技術(shù)支持,在建議減緩調(diào)用頻率以后,返回的數(shù)據(jù)格式正常了,這樣就臨時控制了這種情況的發(fā)生。同時技術(shù)支持將這些情況反映到了開發(fā),top這邊后續(xù)就會找到問題根源,進(jìn)一步杜絕這種情況的發(fā)生。2.        響應(yīng)格式錯誤,數(shù)據(jù)也錯誤如果用戶第一步分析發(fā)現(xiàn),返回的信息并不是調(diào)用成功的信息而是某個平臺錯誤,而且用戶本身的參數(shù)并不會導(dǎo)致這個錯誤的產(chǎn)生,此時用戶就需要查看自己調(diào)用接口的參數(shù)了。如果用戶調(diào)用的接口需要傳入比擬大的數(shù)據(jù)如:圖片、商品的長篇描述等等,那么用戶應(yīng)首先嘗試著減小這些入?yún)⒌胶戏ǚ秶鷥?nèi)輸入傳入小圖片或者之傳入少量的描

31、述文字等。如果用戶調(diào)用成功,表示錯誤是因?yàn)橛脩羧雲(yún)⑻笤斐闪私馕鲥e誤引起的,用戶應(yīng)配合自己所在地方的網(wǎng)速,請求大小等等的信息合理設(shè)置自己的參數(shù)大小和接口調(diào)用順序。如果用戶減小參數(shù)還是解析失敗的話,用戶嘗試著不傳入圖片或只傳入幾個字節(jié)的描述的內(nèi)容進(jìn)行接口調(diào)用。在傳入描述只有很少的字節(jié)的情況下:如果不傳圖片調(diào)用成功了,那么應(yīng)該是top的效勞器的問題,請將這個情況反響給技術(shù)支持進(jìn)行解決;如果圖片不傳調(diào)用仍然失敗了,那么應(yīng)該是用戶的調(diào)用參數(shù)或網(wǎng)絡(luò)有問題,請仔細(xì)對照文檔說明對參數(shù)進(jìn)行修改或等待網(wǎng)絡(luò)狀態(tài)好一點(diǎn)的時候進(jìn)行調(diào)用。 總的來說,如果用戶發(fā)生了響應(yīng)格式錯誤的情況,一般分為三種情況:用戶本身

32、傳入的format就是錯誤的,這種情況用戶需要查看自己傳入的參數(shù)是否正確;用戶通信的網(wǎng)絡(luò)太差,效勞端造成請求解析失敗而喪失了format信息,這種情況下用戶需要調(diào)整自己的網(wǎng)絡(luò)通信情況,等狀況恢復(fù)再調(diào)用;如果是其他由于圖片或調(diào)用太頻繁而引起的問題,用戶需要減小圖片或減緩調(diào)用來提高成功率,并且將這些情況通報給top技術(shù)支持的同學(xué)。四、           平臺級錯誤處理在前文的錯誤綜述中介紹過,top的錯誤可以分為平臺級錯誤和業(yè)務(wù)級錯誤。所謂平臺級錯誤就是指:錯誤碼小于100的調(diào)用錯誤。這種錯誤一般

33、是由于用戶的請求不符合各種的根本校驗(yàn)而引起的。下面將對于各種平臺級錯誤及相應(yīng)的解決方法陳列于此。錯誤碼錯誤解釋解決方法3圖片上傳失敗將傳入的圖片格式改為正確的格式、適當(dāng)?shù)拇笮〉膱D片放進(jìn)消息體里面?zhèn)鬏斶^來。如果傳輸仍然失敗需要減小圖片大小或者增加網(wǎng)絡(luò)帶寬進(jìn)行嘗試4用戶調(diào)用次數(shù)超限調(diào)整程序邏輯合理利用api,等第二天再調(diào)用?;蛘呦蚣夹g(shù)運(yùn)維的同學(xué)申請增加調(diào)用次數(shù)5會話調(diào)用次數(shù)超限6合作伙伴調(diào)用次數(shù)超限7應(yīng)用調(diào)用次數(shù)超限8應(yīng)用調(diào)用頻率超限Isv調(diào)節(jié)api調(diào)用頻率,不能太過頻繁的調(diào)用9 方法被禁止請用大寫的POST或GET,如果有圖片等信息傳入那么一定要用POST才可以10效勞不可用多數(shù)是由未知異常引起

34、的,用戶仔細(xì)檢查自己傳入的參數(shù)是否符合文檔中描述的樣子11開發(fā)者權(quán)限缺乏appKey所對應(yīng)的應(yīng)用不具備權(quán)限調(diào)用當(dāng)前接口。需要聯(lián)系運(yùn)營或技術(shù)支持的同學(xué)開通調(diào)用該接口的權(quán)限。12用戶權(quán)限缺乏13合作伙伴權(quán)限缺乏15遠(yuǎn)程效勞出錯Api調(diào)用后端效勞出錯,isv首先查看自己的參數(shù)是否合法,如果參數(shù)沒有問題請過一段時間再嘗試,如果還不行請聯(lián)系技術(shù)支持21缺少方法名參數(shù)傳入的參數(shù)參加method字段22不存在的方法名傳入的method字段必需是你所調(diào)用的api的名稱,并且該api是確實(shí)存在的23非法數(shù)據(jù)格式傳入的format必需為json或xml中的一種24缺少簽名參數(shù)傳入的參數(shù)中必需包含sign字段25非

35、法簽名簽名必需根據(jù)正確的算法算出來的。算法請見:26缺少SessionKey參數(shù)傳入的參數(shù)中必需包含session字段27非法的SessionKey參數(shù)傳入的session必需是用戶綁定session拿到的。如果報session不合法可能是用戶沒有綁定session或session過期造成的,用戶需要重新綁定一下然后傳入新的sessionKey。28缺少AppKey參數(shù)傳入的參數(shù)必需包含app_key字段29非法的AppKey參數(shù)用戶傳入的appKey參數(shù)確實(shí)是要存在的,如果沒有申請appKey的同學(xué)請去申請appKey,如果是已經(jīng)有了appKey卻調(diào)用不同過的,請聯(lián)系技術(shù)支持解決30缺少時間

36、戳參數(shù)傳入的參數(shù)中必需包含timestamp參數(shù)31非法的時間戳參數(shù)用戶傳入的時間戳不合法。時間戳,格式為yyyy-mm-dd hh:mm:ss,例如:2021-01-25 20:23:30。淘寶API效勞端允許客戶端請求時間誤差為10分鐘。32缺少版本參數(shù)傳入的參數(shù)中必需包含v字段33非法的版本參數(shù)用戶傳入的版本號格式錯誤,必需為數(shù)字格式34不支持的版本號用戶傳入的版本號沒有被提供?,F(xiàn)在top只支持1.0或2.0兩種版本40缺少必選參數(shù)用戶傳入的參數(shù)中漏掉了必傳的參數(shù)。請仔細(xì)對照文檔檢查41非法的參數(shù)用戶傳入的參數(shù)不符合文檔中說明的參數(shù)格式,請參照文檔進(jìn)行修改42請求被禁止請求 被禁止目前沒

37、有在控制43參數(shù)錯誤參數(shù)解析發(fā)生錯誤或異常。一般是用戶傳入?yún)?shù)非法引起的。請仔細(xì)檢查入?yún)⒏袷?、范圍、是否一一對?yīng)等等情況。44Isp error后臺接入效勞錯誤這種后臺效勞異常引起的錯誤,請聯(lián)系技術(shù)支持。根本上來說,平臺錯誤是一個通用的、普適的校驗(yàn)。一般針對用戶的權(quán)限、平安、流量和最根本的參數(shù)等等進(jìn)行校驗(yàn)。用戶遇到這些錯誤的返回一定要第一步檢查自己的權(quán)限、頻率等情況;然后就需要參照文檔檢驗(yàn)一下自己的傳入的參數(shù)是否完整且合法;如果這些都無法解決問題,請聯(lián)系技術(shù)支持的同學(xué)進(jìn)行反響,top后臺會盡快解決這些問題。五、       

38、    業(yè)務(wù)級錯誤處理業(yè)務(wù)級錯誤是指isv請求進(jìn)入top業(yè)務(wù)處理以后爆出來的業(yè)務(wù)相關(guān)的錯誤,通常錯誤碼分部在500-1000之間。Top的業(yè)務(wù)錯誤一般可以分為4個大類:參數(shù)錯誤、權(quán)限控制、用戶不存在和效勞錯誤。1.        參數(shù)錯誤參數(shù)錯誤指topapi根據(jù)業(yè)務(wù)要求對用戶傳入的參數(shù)進(jìn)行校驗(yàn)組裝的時候產(chǎn)生的錯誤。1.0中的參數(shù)錯誤碼有: 505,"Missing Parameters"506,"Parameters error"507,"Pa

39、rameters Format error"和XXX,XXX not exist(這里XXX表示未知的數(shù)字或字符串)等等。其中:505表示缺少傳入某些需要傳入的參數(shù)(如:獲取sku列表的時候要求至少傳入一個iid,isv卻什么都沒有傳入);506表示傳入的參數(shù)錯誤如:傳入的iid找到對應(yīng)的商品已刪除、傳入的類目不存在等等;507表示用戶傳入的參數(shù)的格式不符合規(guī)定如:需要傳入數(shù)字的參數(shù)用戶傳入了非數(shù)字的字符;XXX not exist表示根據(jù)用戶指定的參數(shù)如:iid、tid等數(shù)據(jù)找不到對應(yīng)的記錄,等等。2.0中的參數(shù)錯誤的錯誤碼是在調(diào)用返回的sub_code子錯誤碼里面得到具體表達(dá)的。

40、2.0的參數(shù)錯誤一般有如下幾個錯誤碼:missing-parameter,invalid-parameter,parameters-mismatch,XXX-not-exist等等。這幾種錯誤分別表示:missing-parameter表示缺少了某些必傳參數(shù)如:獲取單個商品是iid和num_iid一個都沒傳入;invalid-parameter表示用戶傳入的參數(shù)錯誤如:傳入的iids個數(shù)不符合規(guī)定,傳入的iid對應(yīng)的商品已刪除等等;parameters-mismatch表示用戶傳入的某些有對應(yīng)關(guān)系的參數(shù)個數(shù)不匹配了如:input_pids和input_str長度不匹配,或者sku_proper

41、ties和sku的其他參數(shù)個數(shù)不匹配;XXX-not-exist表示用戶指定的參數(shù)找不到對應(yīng)的記錄即這個參數(shù)所對應(yīng)的記錄不存在或已經(jīng)被刪除了。不管是1.0還是2.0的參數(shù)錯誤,都是由于isv傳入的參數(shù)有問題而引起的。用戶在遇到報參數(shù)錯誤的情況下,需要查看對應(yīng)的錯誤消息內(nèi)容1.0就是msg,2.0是sub_msg中的說明來進(jìn)行入?yún)⑿薷?。建議將這局部內(nèi)容展示給用戶,可以讓用直觀的看到錯誤的原因,從而改良輸入。2.        權(quán)限控制權(quán)限控制的錯誤是指用戶使用了自己不享有的效勞所造成的錯誤。這類型的錯誤:1.0的錯誤碼為:50

42、9,"Permission limited";2.0的子錯誤碼為:invalid-permission。這類型的錯誤通常都是用戶進(jìn)行的操作觸碰到了淘寶的業(yè)務(wù)規(guī)那么,導(dǎo)致了top的業(yè)務(wù)校驗(yàn)不通過。如:用戶沒有登錄卻要獲取某個賣家倉庫中的商品,用戶不享有多圖效勞卻要上傳商品多圖或商品屬性圖片,成人類目直接上傳圖片,修改自動發(fā)貨的商品,不是賣家或買家卻要獲取交易詳細(xì)信息的這些錯誤并不是用戶傳入的參數(shù)找不到相應(yīng)的數(shù)據(jù)、或者傳入的參數(shù)是錯誤的造成的。相反的,用戶傳入的參數(shù)都符合文檔描述,但是用戶不具備權(quán)限來進(jìn)行相應(yīng)的操作。在這種情況下,isv有幾條路可以選擇。第一:對于查詢類型的權(quán)限

43、控制:如果用戶是信息的所有者,那么需要讓用戶進(jìn)行登錄綁定,這樣用戶就夠進(jìn)行權(quán)限控制的操作了;如果用戶不是信息的合法查看人,那么isv要明確的告訴用戶這個操作不可以進(jìn)行,并且不要進(jìn)行重試操作了。第二:對于增刪改類型的操作的權(quán)限控制:如果用戶是因?yàn)闆]有享有效勞如:沒有享有圖片空間的效勞而產(chǎn)生的權(quán)限限制,isv需要引導(dǎo)用戶去進(jìn)行效勞的開通后再來進(jìn)行操作,之后再重新調(diào)用接口;如果是因?yàn)橛脩舨僮髁藙e人的數(shù)據(jù)而引起的權(quán)限控制,那么isv要明確的跟用戶報錯,并且不能再進(jìn)行重試操作。總之,當(dāng)用戶遇到報權(quán)限控制的錯誤時,isv不能直接進(jìn)行重試。應(yīng)該將問題直接告訴用戶,并引導(dǎo)用戶進(jìn)行相關(guān)的登錄、開通效勞等操作來調(diào)

44、整權(quán)限以后,再讓用戶重試操作。如果用戶不愿意進(jìn)行調(diào)整,isv此時應(yīng)該直接停止該操作,不能默認(rèn)的進(jìn)行重試,因?yàn)檫@種前提下,重試是完全沒有作用的。3.        用戶不存在用戶不存在是指top后臺根據(jù)用戶綁定的nick或者傳入的nick對用戶信息進(jìn)行查詢的時候找不到用戶記錄所報出的錯誤。1.0的錯誤碼:601, "User not exist";2.0的子錯誤碼:user-not-exist。用戶遇到這種問題首先請確認(rèn)調(diào)用的這個接口自己有沒有傳入nick這個參數(shù)。如果nick是根據(jù)用戶綁定的session

45、取得的,那么用戶需要過一會兒再重新調(diào)用看看。如果隔一段時間還不行,請聯(lián)系技術(shù)支持解決。如果用戶自己通過參數(shù)傳入了nick,那么請用戶仔細(xì)檢查自己傳入的nick是否正確。例如:有沒有多一個空格或者大小寫錯誤的?該用戶是否確實(shí)存在的?等等。如果問題是因?yàn)槊Q錯誤或用戶確實(shí)不存在引起,用戶需要更改輸入?yún)?shù)后才能再次調(diào)用。如果用戶名稱正確,用戶也確實(shí)存在,卻還是報用戶不存在錯誤,用戶需要檢查傳入的nick是否包含難以識別的編碼的字體。如果nick中包含了火星文或者其他編碼的字體,請考慮將nick轉(zhuǎn)換成utf8以后重新嘗試或者放棄此次操作。如果上述問題都不存在,請聯(lián)系技術(shù)支持的同學(xué)進(jìn)行查看。整個查錯過程

46、如下所示:4.        效勞錯誤效勞錯誤主要指用戶的請求通過了api業(yè)務(wù)的根本校驗(yàn),在調(diào)用后臺效勞的時候由于出現(xiàn)了異?;蛘吒M(jìn)步的業(yè)務(wù)報錯而產(chǎn)生的錯誤。這一類錯誤主要分為3個大類:效勞調(diào)用錯誤、效勞調(diào)用異常、遠(yuǎn)程調(diào)用錯誤、top解析錯誤。a)        效勞調(diào)用錯誤效勞調(diào)用錯誤,是指通過top校驗(yàn)進(jìn)入后端調(diào)用效勞以后,由于不符合進(jìn)一步的業(yè)務(wù)邏輯校驗(yàn)而出現(xiàn)的錯誤。如:發(fā)布商品的屬性不符合商品類目的要求,評價的交易已經(jīng)過期等等。這些錯誤在1.0的錯誤

47、返回錯誤碼為:XXX,XXX service error,在2.0的返回子錯誤碼為:XXX-service-error。用戶遇到這種返回說明top的效勞是正常的,是用戶的參數(shù)不合規(guī)定所引起。請根據(jù)返回的具體msg和sub_msg內(nèi)容定位問題,然后改正入?yún)⒑笤僬{(diào)用。如果確認(rèn)參數(shù)錯誤卻一直通不過調(diào)用,請聯(lián)系技術(shù)支持的同學(xué)咨詢情況,切勿盲目重試。b)       效勞調(diào)用異常效勞調(diào)用異常是指效勞調(diào)用過程中由于后端效勞器沒有響應(yīng)或者產(chǎn)生了異常或者top效勞本身產(chǎn)生了未被捕獲的異常而產(chǎn)生的錯誤。這些錯誤在1.0的錯誤返回錯誤碼為:XXX,XXX

48、 service unavailable,在2.0的返回子錯誤碼為:XXX-service-unavailable。這種錯誤有可能是后端效勞暫時不可用所引起的,所以用戶遇到這種錯誤時首先應(yīng)該查看返回的錯誤信息里面有沒有有效的提示信息,如果有請先按照提示改正問題再調(diào)用;如果沒有有效的提示信息,請等待一段時間再調(diào)用。如果一直都是這個錯誤,請聯(lián)系技術(shù)支持查看問題所在。切忌立即反復(fù)重試。c)        遠(yuǎn)程調(diào)用錯誤遠(yuǎn)程調(diào)用錯誤是指top在調(diào)用前方效勞時發(fā)生了調(diào)用錯誤或超時的情況。這類錯誤可能是由于后端效勞過于繁忙或者效勞失效引起

49、的。這些錯誤在1.0的錯誤返回錯誤碼為:900,"Remote Connection Error",901,"Remote Service Timeout",902,"Remote Service Error",在2.0的返回子錯誤碼為:remote-service-error,remote-service-timeout,remote-connection-error。用戶遇到這種情況,首先考慮的是等待一段時間重試看效勞是否恢復(fù)。如果效勞已經(jīng)恢復(fù),那么這個只是短時間效勞過于擁擠造成的;如果屢次重試仍然是不可用,那么這個可能是后端效勞

50、出了問題,請聯(lián)系技術(shù)支持進(jìn)行處理。d)       Top解析錯誤Top解析錯誤目前主要針對的是用戶調(diào)用top效勞時產(chǎn)生的未被捕獲的空指針或者參數(shù)轉(zhuǎn)換異常所產(chǎn)生的錯誤。這些錯誤是由于用戶的請求有錯誤引發(fā)了top本身的效勞流程的潛在隱患所引起的。1.0的錯誤返回錯誤碼為:510,"Top parse error",在2.0的返回子錯誤碼為:top-parse-error。用戶遇到這種問題時,請先仔細(xì)檢查自己的參數(shù),根據(jù)文檔說明修改完善以后再嘗試調(diào)用,一般正常情況,只要入?yún)⒑戏ㄊ悄軌虺晒Φ?。如果確定參數(shù)正確的前提下還是

51、調(diào)用報這個錯誤,請聯(lián)系技術(shù)支持的同學(xué)反響這個問題。六、           返回參數(shù)缺失處理返回參數(shù)缺失是指用戶調(diào)用api返回成功,但是消息體里面的內(nèi)容和所請求的內(nèi)容不一致的情況。這種情況細(xì)分可以分為三種情況:整個消息體為空、消息體缺少文檔定義的結(jié)構(gòu)返回、返回的結(jié)構(gòu)體中缺少fields指定的某些字段的返回。1.        整個消息體為空或缺少文檔中說明的結(jié)構(gòu)體返回。整個消息體為空或缺少文檔中說明的結(jié)構(gòu)體是指:返回結(jié)果是非失

52、敗的情況下,得到的Response的body內(nèi)容和文檔定義不一致比文檔寫到要缺少某些內(nèi)容的情況。例如:調(diào)用新增商品接口,正常的返回結(jié)果1.0是:"rsp":"items":"created":"2021-11-17 16:30:50","iid":"cbf8d5d64b3fc80b25d21b1e1c88fd41"。2.0的返回結(jié)果是:"item_add_response":"item":"iid":"699e0a75fcea3966d1d57fc8278c674b","created":"2021-10-22 15:08:42"。根據(jù)文檔的說

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論