版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一、 錯(cuò)誤處理流程概覽 從這個(gè)錯(cuò)誤處理流程可知,在整個(gè)錯(cuò)誤處理的過(guò)程中,一共可以分為3條主要的流程:請(qǐng)求解析異常流程處理,平臺(tái)級(jí)錯(cuò)誤處理和業(yè)務(wù)調(diào)用錯(cuò)誤處理。當(dāng)然,這一切處理的最初也是最重要的一步就是:將效勞器響應(yīng)內(nèi)容保存下來(lái)。二、 效勞器響應(yīng)內(nèi)容透析效勞器響應(yīng)內(nèi)容,顧名思義就是isv調(diào)用top效勞得到的響應(yīng)的內(nèi)容。這些內(nèi)容能夠最真實(shí)的反響出isv請(qǐng)
2、求的問(wèn)題和效勞器當(dāng)前的情況,也最能夠幫助isv找到問(wèn)題的所在。效勞器響應(yīng)內(nèi)容一般分為兩種:一種是wiki文檔中所編寫的成功調(diào)用所返回的字段,另一種是調(diào)用失敗的返回的錯(cuò)誤相關(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é)果是一個(gè)商品
3、的列表,如果返回參數(shù)不是以結(jié)構(gòu)體的形式,這一層就不存在;最內(nèi)一層就是每個(gè)結(jié)構(gòu)體具體的字段了。1.0這個(gè)版本所有返回結(jié)果,不管是單個(gè)的商品還是一個(gè)商品列表,他的第二層都是一個(gè)列表的結(jié)構(gòu),區(qū)別只是列表里有一個(gè)子結(jié)構(gòu)體還是有多個(gè)子結(jié)構(gòu)體而已。相比之下,2.0的效勞返回信息就相對(duì)的標(biāo)準(zhǔn)化了。2.0的響應(yīng)內(nèi)容主要也可以分為3層:最外一層是你調(diào)用效勞的名稱所對(duì)應(yīng)的響應(yīng)標(biāo)記,如:獲取單個(gè)商品taobao.item.get的響應(yīng)最外層為"item_get_response": ,表示這是獲取單個(gè)商品的響應(yīng);中間一層是返回結(jié)構(gòu)體的標(biāo)記。如果結(jié)構(gòu)體是單個(gè),那么2.0返回的這一層里面就會(huì)是單個(gè)的
4、結(jié)構(gòu),如:獲取的單個(gè)商品的結(jié)構(gòu)體就是"item": ;反之,如果結(jié)構(gòu)體是多個(gè),那么列表也會(huì)明顯的表示出來(lái),如:搜索商品列表的結(jié)構(gòu)體就會(huì)是items:“item: , 。最外層的items表示這是一個(gè)商品的列表,后面的item表示列表中的每一個(gè)子結(jié)構(gòu)體都是屬于商品item的,然后就跟著商品的數(shù)據(jù);最內(nèi)一層就商品的具體字段信息了。 2. 調(diào)用錯(cuò)誤返回當(dāng)調(diào)用發(fā)生錯(cuò)誤的時(shí)候,一般情況下可以分為幾大類錯(cuò)誤信息的返回: 連接錯(cuò)誤、平臺(tái)解析錯(cuò)誤、業(yè)務(wù)處理錯(cuò)誤。這三種類型的錯(cuò)誤分別代表了:淘寶效勞
5、器、淘寶接入平臺(tái)、top-api業(yè)務(wù),幾個(gè)層次上出現(xiàn)的問(wèn)題。1) 連接錯(cuò)誤 連接錯(cuò)誤是請(qǐng)求通信過(guò)程中出現(xiàn)的錯(cuò)誤,這類型錯(cuò)誤通常由 響應(yīng)碼標(biāo)記出來(lái)。 響應(yīng)碼由三位十進(jìn)制數(shù)字組成,它們出現(xiàn)在由 效勞器發(fā)送的響應(yīng)的第一行。響應(yīng)碼分五種類型,由它們的第一位數(shù)字表示:1xx:信息,請(qǐng)求收到,繼續(xù)處理2xx:成功,行為被成功地接受、理解和采納3xx:重定向,為了完成請(qǐng)求,必須進(jìn)一步執(zhí)行的動(dòng)作4xx:客戶端錯(cuò)誤,請(qǐng)求包含語(yǔ)法錯(cuò)誤或者請(qǐng)求無(wú)法實(shí)現(xiàn)5xx:效勞器錯(cuò)誤,效勞器不能實(shí)現(xiàn)一種明顯無(wú)效的請(qǐng)求Isv調(diào)用top效勞最常收到就
6、是200: 請(qǐng)求成功;404:未找到請(qǐng)求的效勞;500內(nèi)部效勞器錯(cuò)誤等等。如果用戶收到的響應(yīng)碼是404,表示用戶的網(wǎng)絡(luò)有問(wèn)題或者top被和諧了如果用戶收到的響應(yīng)碼是500,表示網(wǎng)絡(luò)是ok的,是top的效勞無(wú)法響應(yīng)。2) 效勞端錯(cuò)誤總述平臺(tái)解析錯(cuò)誤和業(yè)務(wù)處理錯(cuò)誤都是 成功訪問(wèn)到top效勞 響應(yīng)碼返回為200之后所產(chǎn)生的錯(cuò)信息,他們top處理isv請(qǐng)求過(guò)程中出現(xiàn)的問(wèn)題。1.0和2.0的格式有所不同。1.0的錯(cuò)誤響應(yīng)信息最外層為“error_rsp: ,表示這是調(diào)用錯(cuò)誤所返回的信息。里面一層包含兩個(gè)元素:code:
7、和 “msg: ,前者表示錯(cuò)誤碼是多少,后者表示錯(cuò)誤信息是什么。例如錯(cuò)誤的調(diào)用1.0的taobao.item.get效勞錯(cuò)誤時(shí)返回的錯(cuò)誤信息:"error_rsp":"code":40,"msg":"Missing required arguments:missing parameter iid/num_iid"。這個(gè)信息的開(kāi)頭為error_rsp,表示這是調(diào)用錯(cuò)誤所返回的結(jié)果。里面包含的錯(cuò)誤體的code為40,是平臺(tái)型錯(cuò)誤,表示錯(cuò)誤是缺少了必傳參數(shù)所引起的。然后msg內(nèi)容為Missing required arg
8、uments:missing parameter iid/num_iid,表示缺少的必傳參數(shù)是iid或者num_iid。Isv解析到這些信息后就需要根據(jù)錯(cuò)誤信息改良自己傳入的參數(shù)來(lái)使調(diào)用成功。2.0的錯(cuò)誤響應(yīng)信息的最外層為“error_response: ,表示這是調(diào)用效勞失敗所返回的錯(cuò)誤信息。信息體里面一層總共包含了五個(gè)元素:"args":"arg":“key:“ ,value: ,“key:“ ,value: ,“key:“ ,value: ,code: , “msg: ,sub_code: 和sub_msg: 。args表示用戶傳入的參數(shù)列表是什么
9、,里面是一個(gè)arg的列表會(huì)包含用戶傳入的所有參數(shù)信息,每個(gè)arg表示一個(gè)參數(shù)的信息,key表示參數(shù)的名稱,value表示參數(shù)的內(nèi)容,用以方便用戶定位自己的錯(cuò)誤;code表示用戶調(diào)用錯(cuò)誤的錯(cuò)誤碼是多少,小于200表示平臺(tái)級(jí)錯(cuò)誤,200-1000之間表示大范圍的業(yè)務(wù)錯(cuò)誤,即哪一類型的api調(diào)用發(fā)生了錯(cuò)誤根據(jù)api的大類來(lái)分,如:商品類的api是530,交易類的api是520,等;msg表示大類型的錯(cuò)誤碼所對(duì)應(yīng)的錯(cuò)誤信息,一般不具備獨(dú)立的debug作用,需要和sub_code和sub_msg一起使用才行;sub_code是調(diào)用錯(cuò)誤的子錯(cuò)誤碼,他表示用戶調(diào)用錯(cuò)誤的原因;sub_msg是子錯(cuò)誤碼所對(duì)應(yīng)的
10、錯(cuò)誤信息,他用來(lái)補(bǔ)充細(xì)化子錯(cuò)誤碼的錯(cuò)誤原因的。例如調(diào)用2.0的taobao.item.get效勞錯(cuò)誤時(shí)返回的錯(cuò)誤信息:"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至少要傳入一個(gè)"這個(gè)信息的開(kāi)頭為error_response,表示這是調(diào)用錯(cuò)誤所返回的錯(cuò)誤信息。里面的args列出了用調(diào)用這個(gè)接口傳入的信息有:"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",這些信息是從用戶的請(qǐng)求信息里面解析出來(lái)的。錯(cuò)誤碼code為530,表示這是調(diào)用商品的api所產(chǎn)生的錯(cuò)誤。錯(cuò)誤信息msg為Remote service error表示這是調(diào)用業(yè)務(wù)處理所產(chǎn)生的錯(cuò)誤。子錯(cuò)誤碼sub_code為:missing-parameter,表示這個(gè)錯(cuò)誤是因?yàn)槿鄙倭藚?shù)所產(chǎn)生的。子錯(cuò)誤信息sub_msg為:iid和num_iid至少要傳入一個(gè),表示少傳的參數(shù)為iid或num_iid。這所有的錯(cuò)誤信息疊加起來(lái)可以知道,這個(gè)錯(cuò)誤是用戶調(diào)用taobao.item.get接口時(shí)業(yè)務(wù)處理發(fā)現(xiàn)用戶沒(méi)有傳入商品id所導(dǎo)致的。3)
17、 平臺(tái)解析錯(cuò)誤平臺(tái)解析錯(cuò)誤是指top返回的錯(cuò)誤碼小于100的情況。平臺(tái)解析是非業(yè)務(wù)性的普適的校驗(yàn)接入層,主要用于對(duì)用戶的各種權(quán)限、和入?yún)⑦M(jìn)行最根本的校驗(yàn)。現(xiàn)在的平臺(tái)錯(cuò)誤碼主要有:Isv可以通過(guò)錯(cuò)誤碼和解釋來(lái)糾正問(wèn)題。如:錯(cuò)誤碼為3的響應(yīng)表示圖片上傳失敗,錯(cuò)誤碼為26表示用戶沒(méi)有傳入session參數(shù),錯(cuò)誤碼為27表示用戶傳入的session參數(shù)找不到對(duì)應(yīng)的session記錄,等等。4) 業(yè)務(wù)處理錯(cuò)誤業(yè)務(wù)處理錯(cuò)誤是用戶通過(guò)平臺(tái)校驗(yàn)進(jìn)入業(yè)務(wù)流程出現(xiàn)了錯(cuò)誤所發(fā)出來(lái)的。這一層的錯(cuò)誤碼
18、根據(jù)調(diào)用版本不同分為兩種。如果版本是1.0,那么返回的錯(cuò)誤信息格式就是:“error_rsp:“code:XXX,msg:,里面的code是數(shù)字形式的標(biāo)記著一種錯(cuò)誤的編碼,msg是字符串形式,標(biāo)記在錯(cuò)誤的具體信息。如,獲取當(dāng)商品失敗的錯(cuò)誤信息就是:"error_rsp":"code":551,"msg":"Item service unavailable:獲取單個(gè)商品失敗"。1.0的錯(cuò)誤碼有以下幾種:1.0的返回的錯(cuò)誤code就是其中的錯(cuò)誤碼,錯(cuò)誤msg就是其中的英文錯(cuò)誤描述加上具體的錯(cuò)誤信息組成的。如果版本是2.
19、0,那么效勞器所返回的錯(cuò)誤信息格式就是:“error_response:"args":"arg":“key:“ ,value: ,“key:“ ,value: ,“key:“ ,value: ,code: ,“msg: ,sub_code: ,sub_msg: ,里面的code是數(shù)字形式的標(biāo)記著一種業(yè)務(wù)類型的錯(cuò)誤編碼,msg那么是比擬大范圍內(nèi)的表示錯(cuò)誤類型的字符串。而sub_code是以字符串形式粗略表示錯(cuò)誤的類型,sub_msg那么是表示具體的錯(cuò)誤原因。2.0的code包含以下幾種分類:產(chǎn)品線錯(cuò)誤碼用戶500類目510交易520退款521商品530商品
20、擴(kuò)展API531郵費(fèi)模板532產(chǎn)品540物流550店鋪560評(píng)價(jià)570淘寶客580系統(tǒng)590備案591增量API600比價(jià)610畫報(bào)620江湖630分銷640淘秀650收費(fèi)660Misc(保證金等雜項(xiàng)api)670由上圖可知,每一大類的api在2.0中其實(shí)是共享一個(gè)code的,它能讓用戶在復(fù)雜組合調(diào)用中指導(dǎo)是哪一類的api出現(xiàn)了問(wèn)題,實(shí)現(xiàn)初步的定位。2.0的業(yè)務(wù)錯(cuò)誤中,msg里面最容易出現(xiàn)的內(nèi)容就是Remote service error,這表示用戶是在通過(guò)了平臺(tái)校驗(yàn)后進(jìn)行業(yè)務(wù)流程的時(shí)候出現(xiàn)的錯(cuò)誤。其他的錯(cuò)誤還有Remote Service Timeout:后臺(tái)處理業(yè)務(wù)超時(shí)等等的錯(cuò)誤。這一個(gè)錯(cuò)
21、誤信息的力度比擬粗,很難單獨(dú)用她進(jìn)行錯(cuò)誤處理。2.0的業(yè)務(wù)處理錯(cuò)誤信息主要要看sub_code和sub_msg這連個(gè)字段。sub_code表示了效勞費(fèi)對(duì)業(yè)務(wù)錯(cuò)誤的分類,sub_msg表示了是錯(cuò)誤原因。Sub_code根據(jù)業(yè)務(wù)錯(cuò)誤類型主要可以分為如下幾類子錯(cuò)誤碼錯(cuò)誤歸類user-not-exist用戶不存在missing-parameter缺少參數(shù)invalid-parameter參數(shù)錯(cuò)誤parameters-mismatch參數(shù)不匹配主要針對(duì)那些需要一一對(duì)應(yīng)的入?yún)nvalid-permission權(quán)限缺乏remote-service-error調(diào)用后端效勞錯(cuò)誤remote-service-t
22、imeout調(diào)用后端效勞超時(shí)remote-connection-error調(diào)用后端效勞連接錯(cuò)誤XXX-service-unavailable調(diào)用后端效勞失敗item-extra-not-exist商品擴(kuò)展信息不存在trade-not-exist交易記錄不存在refund-not-exist退款記錄不存在每一類的子錯(cuò)誤碼代表著某一類型的錯(cuò)誤,例如user-not-exist表示用戶傳入的nick或者用戶綁定的session所對(duì)應(yīng)的nick找不到對(duì)應(yīng)的用戶記錄,Invalid-permission表示用戶由于權(quán)限問(wèn)題不能進(jìn)行某些操作。sub_code給予isv或用戶以改良錯(cuò)誤的方向,而sub_ms
23、g那么告訴用戶改良點(diǎn)。例如sub_code為invalid-parameter,sub_msg為用戶傳入的iid不能超過(guò)40個(gè),這就表示著,這次錯(cuò)誤的原因是用戶傳入的參數(shù)iid由于數(shù)量超過(guò)40個(gè)而產(chǎn)生了錯(cuò)誤。 錯(cuò)誤響應(yīng)時(shí)用戶和效勞器交互失敗的最直接展示,isv在調(diào)用top效勞時(shí),如果調(diào)用失敗,請(qǐng)盡量保存下錯(cuò)誤信息建議盡量改用2.0調(diào)用,這個(gè)版本的錯(cuò)誤信息比擬全面,以便進(jìn)行后面的錯(cuò)誤追查。三、 響應(yīng)格式錯(cuò)誤處理響應(yīng)格式錯(cuò)誤是指用戶調(diào)用top效勞時(shí),傳入?yún)?shù)設(shè)置了for
24、mat參數(shù)為json,但是接受到的卻為xml的響應(yīng)格式,或者設(shè)置格式為xml接收到的卻為json響應(yīng)的格式的情況。一般正常情況下這種情況是不會(huì)出現(xiàn)的,但是還是會(huì)有一些異常的情況會(huì)引起這個(gè)問(wèn)題。這種響應(yīng)格式錯(cuò)誤的問(wèn)題在isv的程序中通常會(huì)表現(xiàn)為,響應(yīng)解析格式錯(cuò)誤。例如:用戶使用的top的java SDK客戶端調(diào)用top效勞,設(shè)置的format格式為json卻得到了一個(gè)xml的響應(yīng),這是sdk就會(huì)報(bào)一個(gè)錯(cuò)誤說(shuō)響應(yīng)開(kāi)始處缺少一個(gè)“符號(hào)。這是因?yàn)閤ml響應(yīng)是以“<開(kāi)始的緣故。一般會(huì)發(fā)生這種現(xiàn)象的原因有一下三種:用戶傳入的參數(shù)過(guò)大導(dǎo)致流解析異常,用戶調(diào)用太過(guò)頻繁道士響應(yīng)異常,top效勞器故障。為了
25、定位到問(wèn)題出在哪里,以便找到相應(yīng)的解決方法,用戶在遇到響應(yīng)格式錯(cuò)誤的情況時(shí)可以參考以下步驟進(jìn)行調(diào)試。1. 響應(yīng)格式格式錯(cuò)誤,但數(shù)據(jù)正確用戶第一步應(yīng)該分析一下相應(yīng)的內(nèi)容里面是不是除了格式錯(cuò)誤以外,其他的響應(yīng)內(nèi)容都是正確調(diào)用的返回結(jié)果。例如,有個(gè)用戶用top的sdk,設(shè)置format為json,調(diào)用top得到了這樣一個(gè)返回結(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>從這個(gè)異常的開(kāi)頭可以看到,這是sdk的json解析拋了一個(gè)異常,說(shuō)響應(yīng)內(nèi)容的內(nèi)容應(yīng)該是以“開(kāi)始的。這說(shuō)名,isv收到的響應(yīng)格式肯定出了問(wèn)題。再看一下響應(yīng)的內(nèi)容<rsp></rsp>相應(yīng)結(jié)果標(biāo)簽之間包含了totalResults和item列表,這些數(shù)據(jù)說(shuō)明,這是調(diào)用商品查詢接口返回的結(jié)果數(shù)據(jù):查詢到的結(jié)果總數(shù)是1115條,當(dāng)前頁(yè)的商品iid和最近修改時(shí)間也在其中。這些查詢結(jié)果數(shù)據(jù)是正常的,但是返回格式卻不是傳入的json而是變成了xml。這位isv聯(lián)系了to
30、p的技術(shù)支持,在建議減緩調(diào)用頻率以后,返回的數(shù)據(jù)格式正常了,這樣就臨時(shí)控制了這種情況的發(fā)生。同時(shí)技術(shù)支持將這些情況反映到了開(kāi)發(fā),top這邊后續(xù)就會(huì)找到問(wèn)題根源,進(jìn)一步杜絕這種情況的發(fā)生。2. 響應(yīng)格式錯(cuò)誤,數(shù)據(jù)也錯(cuò)誤如果用戶第一步分析發(fā)現(xiàn),返回的信息并不是調(diào)用成功的信息而是某個(gè)平臺(tái)錯(cuò)誤,而且用戶本身的參數(shù)并不會(huì)導(dǎo)致這個(gè)錯(cuò)誤的產(chǎn)生,此時(shí)用戶就需要查看自己調(diào)用接口的參數(shù)了。如果用戶調(diào)用的接口需要傳入比擬大的數(shù)據(jù)如:圖片、商品的長(zhǎng)篇描述等等,那么用戶應(yīng)首先嘗試著減小這些入?yún)⒌胶戏ǚ秶鷥?nèi)輸入傳入小圖片或者之傳入少量的描
31、述文字等。如果用戶調(diào)用成功,表示錯(cuò)誤是因?yàn)橛脩羧雲(yún)⑻笤斐闪私馕鲥e(cuò)誤引起的,用戶應(yīng)配合自己所在地方的網(wǎng)速,請(qǐng)求大小等等的信息合理設(shè)置自己的參數(shù)大小和接口調(diào)用順序。如果用戶減小參數(shù)還是解析失敗的話,用戶嘗試著不傳入圖片或只傳入幾個(gè)字節(jié)的描述的內(nèi)容進(jìn)行接口調(diào)用。在傳入描述只有很少的字節(jié)的情況下:如果不傳圖片調(diào)用成功了,那么應(yīng)該是top的效勞器的問(wèn)題,請(qǐng)將這個(gè)情況反響給技術(shù)支持進(jìn)行解決;如果圖片不傳調(diào)用仍然失敗了,那么應(yīng)該是用戶的調(diào)用參數(shù)或網(wǎng)絡(luò)有問(wèn)題,請(qǐng)仔細(xì)對(duì)照文檔說(shuō)明對(duì)參數(shù)進(jìn)行修改或等待網(wǎng)絡(luò)狀態(tài)好一點(diǎn)的時(shí)候進(jìn)行調(diào)用。 總的來(lái)說(shuō),如果用戶發(fā)生了響應(yīng)格式錯(cuò)誤的情況,一般分為三種情況:用戶本身
32、傳入的format就是錯(cuò)誤的,這種情況用戶需要查看自己傳入的參數(shù)是否正確;用戶通信的網(wǎng)絡(luò)太差,效勞端造成請(qǐng)求解析失敗而喪失了format信息,這種情況下用戶需要調(diào)整自己的網(wǎng)絡(luò)通信情況,等狀況恢復(fù)再調(diào)用;如果是其他由于圖片或調(diào)用太頻繁而引起的問(wèn)題,用戶需要減小圖片或減緩調(diào)用來(lái)提高成功率,并且將這些情況通報(bào)給top技術(shù)支持的同學(xué)。四、 平臺(tái)級(jí)錯(cuò)誤處理在前文的錯(cuò)誤綜述中介紹過(guò),top的錯(cuò)誤可以分為平臺(tái)級(jí)錯(cuò)誤和業(yè)務(wù)級(jí)錯(cuò)誤。所謂平臺(tái)級(jí)錯(cuò)誤就是指:錯(cuò)誤碼小于100的調(diào)用錯(cuò)誤。這種錯(cuò)誤一般
33、是由于用戶的請(qǐng)求不符合各種的根本校驗(yàn)而引起的。下面將對(duì)于各種平臺(tái)級(jí)錯(cuò)誤及相應(yīng)的解決方法陳列于此。錯(cuò)誤碼錯(cuò)誤解釋解決方法3圖片上傳失敗將傳入的圖片格式改為正確的格式、適當(dāng)?shù)拇笮〉膱D片放進(jìn)消息體里面?zhèn)鬏斶^(guò)來(lái)。如果傳輸仍然失敗需要減小圖片大小或者增加網(wǎng)絡(luò)帶寬進(jìn)行嘗試4用戶調(diào)用次數(shù)超限調(diào)整程序邏輯合理利用api,等第二天再調(diào)用?;蛘呦蚣夹g(shù)運(yùn)維的同學(xué)申請(qǐng)?jiān)黾诱{(diào)用次數(shù)5會(huì)話調(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)用頻率,不能太過(guò)頻繁的調(diào)用9 方法被禁止請(qǐng)用大寫的POST或GET,如果有圖片等信息傳入那么一定要用POST才可以10效勞不可用多數(shù)是由未知異常引起
34、的,用戶仔細(xì)檢查自己傳入的參數(shù)是否符合文檔中描述的樣子11開(kāi)發(fā)者權(quán)限缺乏appKey所對(duì)應(yīng)的應(yīng)用不具備權(quán)限調(diào)用當(dāng)前接口。需要聯(lián)系運(yùn)營(yíng)或技術(shù)支持的同學(xué)開(kāi)通調(diào)用該接口的權(quán)限。12用戶權(quán)限缺乏13合作伙伴權(quán)限缺乏15遠(yuǎn)程效勞出錯(cuò)Api調(diào)用后端效勞出錯(cuò),isv首先查看自己的參數(shù)是否合法,如果參數(shù)沒(méi)有問(wèn)題請(qǐng)過(guò)一段時(shí)間再嘗試,如果還不行請(qǐng)聯(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ù)正確的算法算出來(lái)的。算法請(qǐng)見(jiàn):26缺少SessionKey參數(shù)傳入的參數(shù)中必需包含session字段27非法的SessionKey參數(shù)傳入的session必需是用戶綁定session拿到的。如果報(bào)session不合法可能是用戶沒(méi)有綁定session或session過(guò)期造成的,用戶需要重新綁定一下然后傳入新的sessionKey。28缺少AppKey參數(shù)傳入的參數(shù)必需包含app_key字段29非法的AppKey參數(shù)用戶傳入的appKey參數(shù)確實(shí)是要存在的,如果沒(méi)有申請(qǐng)appKey的同學(xué)請(qǐng)去申請(qǐng)appKey,如果是已經(jīng)有了appKey卻調(diào)用不同過(guò)的,請(qǐng)聯(lián)系技術(shù)支持解決30缺少時(shí)間
36、戳參數(shù)傳入的參數(shù)中必需包含timestamp參數(shù)31非法的時(shí)間戳參數(shù)用戶傳入的時(shí)間戳不合法。時(shí)間戳,格式為yyyy-mm-dd hh:mm:ss,例如:2021-01-25 20:23:30。淘寶API效勞端允許客戶端請(qǐng)求時(shí)間誤差為10分鐘。32缺少版本參數(shù)傳入的參數(shù)中必需包含v字段33非法的版本參數(shù)用戶傳入的版本號(hào)格式錯(cuò)誤,必需為數(shù)字格式34不支持的版本號(hào)用戶傳入的版本號(hào)沒(méi)有被提供?,F(xiàn)在top只支持1.0或2.0兩種版本40缺少必選參數(shù)用戶傳入的參數(shù)中漏掉了必傳的參數(shù)。請(qǐng)仔細(xì)對(duì)照文檔檢查41非法的參數(shù)用戶傳入的參數(shù)不符合文檔中說(shuō)明的參數(shù)格式,請(qǐng)參照文檔進(jìn)行修改42請(qǐng)求被禁止請(qǐng)求 被禁止目前沒(méi)
37、有在控制43參數(shù)錯(cuò)誤參數(shù)解析發(fā)生錯(cuò)誤或異常。一般是用戶傳入?yún)?shù)非法引起的。請(qǐng)仔細(xì)檢查入?yún)⒏袷健⒎秶?、是否一一?duì)應(yīng)等等情況。44Isp error后臺(tái)接入效勞錯(cuò)誤這種后臺(tái)效勞異常引起的錯(cuò)誤,請(qǐng)聯(lián)系技術(shù)支持。根本上來(lái)說(shuō),平臺(tái)錯(cuò)誤是一個(gè)通用的、普適的校驗(yàn)。一般針對(duì)用戶的權(quán)限、平安、流量和最根本的參數(shù)等等進(jìn)行校驗(yàn)。用戶遇到這些錯(cuò)誤的返回一定要第一步檢查自己的權(quán)限、頻率等情況;然后就需要參照文檔檢驗(yàn)一下自己的傳入的參數(shù)是否完整且合法;如果這些都無(wú)法解決問(wèn)題,請(qǐng)聯(lián)系技術(shù)支持的同學(xué)進(jìn)行反響,top后臺(tái)會(huì)盡快解決這些問(wèn)題。五、
38、 業(yè)務(wù)級(jí)錯(cuò)誤處理業(yè)務(wù)級(jí)錯(cuò)誤是指isv請(qǐng)求進(jìn)入top業(yè)務(wù)處理以后爆出來(lái)的業(yè)務(wù)相關(guān)的錯(cuò)誤,通常錯(cuò)誤碼分部在500-1000之間。Top的業(yè)務(wù)錯(cuò)誤一般可以分為4個(gè)大類:參數(shù)錯(cuò)誤、權(quán)限控制、用戶不存在和效勞錯(cuò)誤。1. 參數(shù)錯(cuò)誤參數(shù)錯(cuò)誤指topapi根據(jù)業(yè)務(wù)要求對(duì)用戶傳入的參數(shù)進(jìn)行校驗(yàn)組裝的時(shí)候產(chǎn)生的錯(cuò)誤。1.0中的參數(shù)錯(cuò)誤碼有: 505,"Missing Parameters"506,"Parameters error"507,"Pa
39、rameters Format error"和XXX,XXX not exist(這里XXX表示未知的數(shù)字或字符串)等等。其中:505表示缺少傳入某些需要傳入的參數(shù)(如:獲取sku列表的時(shí)候要求至少傳入一個(gè)iid,isv卻什么都沒(méi)有傳入);506表示傳入的參數(shù)錯(cuò)誤如:傳入的iid找到對(duì)應(yīng)的商品已刪除、傳入的類目不存在等等;507表示用戶傳入的參數(shù)的格式不符合規(guī)定如:需要傳入數(shù)字的參數(shù)用戶傳入了非數(shù)字的字符;XXX not exist表示根據(jù)用戶指定的參數(shù)如:iid、tid等數(shù)據(jù)找不到對(duì)應(yīng)的記錄,等等。2.0中的參數(shù)錯(cuò)誤的錯(cuò)誤碼是在調(diào)用返回的sub_code子錯(cuò)誤碼里面得到具體表達(dá)的。
40、2.0的參數(shù)錯(cuò)誤一般有如下幾個(gè)錯(cuò)誤碼:missing-parameter,invalid-parameter,parameters-mismatch,XXX-not-exist等等。這幾種錯(cuò)誤分別表示:missing-parameter表示缺少了某些必傳參數(shù)如:獲取單個(gè)商品是iid和num_iid一個(gè)都沒(méi)傳入;invalid-parameter表示用戶傳入的參數(shù)錯(cuò)誤如:傳入的iids個(gè)數(shù)不符合規(guī)定,傳入的iid對(duì)應(yīng)的商品已刪除等等;parameters-mismatch表示用戶傳入的某些有對(duì)應(yīng)關(guān)系的參數(shù)個(gè)數(shù)不匹配了如:input_pids和input_str長(zhǎng)度不匹配,或者sku_proper
41、ties和sku的其他參數(shù)個(gè)數(shù)不匹配;XXX-not-exist表示用戶指定的參數(shù)找不到對(duì)應(yīng)的記錄即這個(gè)參數(shù)所對(duì)應(yīng)的記錄不存在或已經(jīng)被刪除了。不管是1.0還是2.0的參數(shù)錯(cuò)誤,都是由于isv傳入的參數(shù)有問(wèn)題而引起的。用戶在遇到報(bào)參數(shù)錯(cuò)誤的情況下,需要查看對(duì)應(yīng)的錯(cuò)誤消息內(nèi)容1.0就是msg,2.0是sub_msg中的說(shuō)明來(lái)進(jìn)行入?yún)⑿薷摹=ㄗh將這局部?jī)?nèi)容展示給用戶,可以讓用直觀的看到錯(cuò)誤的原因,從而改良輸入。2. 權(quán)限控制權(quán)限控制的錯(cuò)誤是指用戶使用了自己不享有的效勞所造成的錯(cuò)誤。這類型的錯(cuò)誤:1.0的錯(cuò)誤碼為:50
42、9,"Permission limited";2.0的子錯(cuò)誤碼為:invalid-permission。這類型的錯(cuò)誤通常都是用戶進(jìn)行的操作觸碰到了淘寶的業(yè)務(wù)規(guī)那么,導(dǎo)致了top的業(yè)務(wù)校驗(yàn)不通過(guò)。如:用戶沒(méi)有登錄卻要獲取某個(gè)賣家倉(cāng)庫(kù)中的商品,用戶不享有多圖效勞卻要上傳商品多圖或商品屬性圖片,成人類目直接上傳圖片,修改自動(dòng)發(fā)貨的商品,不是賣家或買家卻要獲取交易詳細(xì)信息的這些錯(cuò)誤并不是用戶傳入的參數(shù)找不到相應(yīng)的數(shù)據(jù)、或者傳入的參數(shù)是錯(cuò)誤的造成的。相反的,用戶傳入的參數(shù)都符合文檔描述,但是用戶不具備權(quán)限來(lái)進(jìn)行相應(yīng)的操作。在這種情況下,isv有幾條路可以選擇。第一:對(duì)于查詢類型的權(quán)限
43、控制:如果用戶是信息的所有者,那么需要讓用戶進(jìn)行登錄綁定,這樣用戶就夠進(jìn)行權(quán)限控制的操作了;如果用戶不是信息的合法查看人,那么isv要明確的告訴用戶這個(gè)操作不可以進(jìn)行,并且不要進(jìn)行重試操作了。第二:對(duì)于增刪改類型的操作的權(quán)限控制:如果用戶是因?yàn)闆](méi)有享有效勞如:沒(méi)有享有圖片空間的效勞而產(chǎn)生的權(quán)限限制,isv需要引導(dǎo)用戶去進(jìn)行效勞的開(kāi)通后再來(lái)進(jìn)行操作,之后再重新調(diào)用接口;如果是因?yàn)橛脩舨僮髁藙e人的數(shù)據(jù)而引起的權(quán)限控制,那么isv要明確的跟用戶報(bào)錯(cuò),并且不能再進(jìn)行重試操作??傊?,當(dāng)用戶遇到報(bào)權(quán)限控制的錯(cuò)誤時(shí),isv不能直接進(jìn)行重試。應(yīng)該將問(wèn)題直接告訴用戶,并引導(dǎo)用戶進(jìn)行相關(guān)的登錄、開(kāi)通效勞等操作來(lái)調(diào)
44、整權(quán)限以后,再讓用戶重試操作。如果用戶不愿意進(jìn)行調(diào)整,isv此時(shí)應(yīng)該直接停止該操作,不能默認(rèn)的進(jìn)行重試,因?yàn)檫@種前提下,重試是完全沒(méi)有作用的。3. 用戶不存在用戶不存在是指top后臺(tái)根據(jù)用戶綁定的nick或者傳入的nick對(duì)用戶信息進(jìn)行查詢的時(shí)候找不到用戶記錄所報(bào)出的錯(cuò)誤。1.0的錯(cuò)誤碼:601, "User not exist";2.0的子錯(cuò)誤碼:user-not-exist。用戶遇到這種問(wèn)題首先請(qǐng)確認(rèn)調(diào)用的這個(gè)接口自己有沒(méi)有傳入nick這個(gè)參數(shù)。如果nick是根據(jù)用戶綁定的session
45、取得的,那么用戶需要過(guò)一會(huì)兒再重新調(diào)用看看。如果隔一段時(shí)間還不行,請(qǐng)聯(lián)系技術(shù)支持解決。如果用戶自己通過(guò)參數(shù)傳入了nick,那么請(qǐng)用戶仔細(xì)檢查自己傳入的nick是否正確。例如:有沒(méi)有多一個(gè)空格或者大小寫錯(cuò)誤的?該用戶是否確實(shí)存在的?等等。如果問(wèn)題是因?yàn)槊Q錯(cuò)誤或用戶確實(shí)不存在引起,用戶需要更改輸入?yún)?shù)后才能再次調(diào)用。如果用戶名稱正確,用戶也確實(shí)存在,卻還是報(bào)用戶不存在錯(cuò)誤,用戶需要檢查傳入的nick是否包含難以識(shí)別的編碼的字體。如果nick中包含了火星文或者其他編碼的字體,請(qǐng)考慮將nick轉(zhuǎn)換成utf8以后重新嘗試或者放棄此次操作。如果上述問(wèn)題都不存在,請(qǐng)聯(lián)系技術(shù)支持的同學(xué)進(jìn)行查看。整個(gè)查錯(cuò)過(guò)程
46、如下所示:4. 效勞錯(cuò)誤效勞錯(cuò)誤主要指用戶的請(qǐng)求通過(guò)了api業(yè)務(wù)的根本校驗(yàn),在調(diào)用后臺(tái)效勞的時(shí)候由于出現(xiàn)了異?;蛘吒M(jìn)步的業(yè)務(wù)報(bào)錯(cuò)而產(chǎn)生的錯(cuò)誤。這一類錯(cuò)誤主要分為3個(gè)大類:效勞調(diào)用錯(cuò)誤、效勞調(diào)用異常、遠(yuǎn)程調(diào)用錯(cuò)誤、top解析錯(cuò)誤。a) 效勞調(diào)用錯(cuò)誤效勞調(diào)用錯(cuò)誤,是指通過(guò)top校驗(yàn)進(jìn)入后端調(diào)用效勞以后,由于不符合進(jìn)一步的業(yè)務(wù)邏輯校驗(yàn)而出現(xiàn)的錯(cuò)誤。如:發(fā)布商品的屬性不符合商品類目的要求,評(píng)價(jià)的交易已經(jīng)過(guò)期等等。這些錯(cuò)誤在1.0的錯(cuò)誤
47、返回錯(cuò)誤碼為:XXX,XXX service error,在2.0的返回子錯(cuò)誤碼為:XXX-service-error。用戶遇到這種返回說(shuō)明top的效勞是正常的,是用戶的參數(shù)不合規(guī)定所引起。請(qǐng)根據(jù)返回的具體msg和sub_msg內(nèi)容定位問(wèn)題,然后改正入?yún)⒑笤僬{(diào)用。如果確認(rèn)參數(shù)錯(cuò)誤卻一直通不過(guò)調(diào)用,請(qǐng)聯(lián)系技術(shù)支持的同學(xué)咨詢情況,切勿盲目重試。b) 效勞調(diào)用異常效勞調(diào)用異常是指效勞調(diào)用過(guò)程中由于后端效勞器沒(méi)有響應(yīng)或者產(chǎn)生了異?;蛘遲op效勞本身產(chǎn)生了未被捕獲的異常而產(chǎn)生的錯(cuò)誤。這些錯(cuò)誤在1.0的錯(cuò)誤返回錯(cuò)誤碼為:XXX,XXX
48、 service unavailable,在2.0的返回子錯(cuò)誤碼為:XXX-service-unavailable。這種錯(cuò)誤有可能是后端效勞暫時(shí)不可用所引起的,所以用戶遇到這種錯(cuò)誤時(shí)首先應(yīng)該查看返回的錯(cuò)誤信息里面有沒(méi)有有效的提示信息,如果有請(qǐng)先按照提示改正問(wèn)題再調(diào)用;如果沒(méi)有有效的提示信息,請(qǐng)等待一段時(shí)間再調(diào)用。如果一直都是這個(gè)錯(cuò)誤,請(qǐng)聯(lián)系技術(shù)支持查看問(wèn)題所在。切忌立即反復(fù)重試。c) 遠(yuǎn)程調(diào)用錯(cuò)誤遠(yuǎn)程調(diào)用錯(cuò)誤是指top在調(diào)用前方效勞時(shí)發(fā)生了調(diào)用錯(cuò)誤或超時(shí)的情況。這類錯(cuò)誤可能是由于后端效勞過(guò)于繁忙或者效勞失效引起
49、的。這些錯(cuò)誤在1.0的錯(cuò)誤返回錯(cuò)誤碼為:900,"Remote Connection Error",901,"Remote Service Timeout",902,"Remote Service Error",在2.0的返回子錯(cuò)誤碼為:remote-service-error,remote-service-timeout,remote-connection-error。用戶遇到這種情況,首先考慮的是等待一段時(shí)間重試看效勞是否恢復(fù)。如果效勞已經(jīng)恢復(fù),那么這個(gè)只是短時(shí)間效勞過(guò)于擁擠造成的;如果屢次重試仍然是不可用,那么這個(gè)可能是后端效勞
50、出了問(wèn)題,請(qǐng)聯(lián)系技術(shù)支持進(jìn)行處理。d) Top解析錯(cuò)誤Top解析錯(cuò)誤目前主要針對(duì)的是用戶調(diào)用top效勞時(shí)產(chǎn)生的未被捕獲的空指針或者參數(shù)轉(zhuǎn)換異常所產(chǎn)生的錯(cuò)誤。這些錯(cuò)誤是由于用戶的請(qǐng)求有錯(cuò)誤引發(fā)了top本身的效勞流程的潛在隱患所引起的。1.0的錯(cuò)誤返回錯(cuò)誤碼為:510,"Top parse error",在2.0的返回子錯(cuò)誤碼為:top-parse-error。用戶遇到這種問(wèn)題時(shí),請(qǐng)先仔細(xì)檢查自己的參數(shù),根據(jù)文檔說(shuō)明修改完善以后再嘗試調(diào)用,一般正常情況,只要入?yún)⒑戏ㄊ悄軌虺晒Φ?。如果確定參數(shù)正確的前提下還是
51、調(diào)用報(bào)這個(gè)錯(cuò)誤,請(qǐng)聯(lián)系技術(shù)支持的同學(xué)反響這個(gè)問(wèn)題。六、 返回參數(shù)缺失處理返回參數(shù)缺失是指用戶調(diào)用api返回成功,但是消息體里面的內(nèi)容和所請(qǐng)求的內(nèi)容不一致的情況。這種情況細(xì)分可以分為三種情況:整個(gè)消息體為空、消息體缺少文檔定義的結(jié)構(gòu)返回、返回的結(jié)構(gòu)體中缺少fields指定的某些字段的返回。1. 整個(gè)消息體為空或缺少文檔中說(shuō)明的結(jié)構(gòu)體返回。整個(gè)消息體為空或缺少文檔中說(shuō)明的結(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ù)文檔的說(shuō)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年教育輔助機(jī)構(gòu)勞動(dòng)合同及教學(xué)質(zhì)量協(xié)議3篇
- 二零二五年環(huán)保產(chǎn)品生產(chǎn)加工合作合同范本2篇
- 二零二五年度塑料加工工廠承包生產(chǎn)與環(huán)保責(zé)任合同3篇
- 濰坊護(hù)理職業(yè)學(xué)院《學(xué)習(xí)科學(xué)與技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津藝術(shù)職業(yè)學(xué)院《燈光照明基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度高科技設(shè)備租賃擔(dān)保服務(wù)合同3篇
- 2024民間借貸合同(自動(dòng)放棄利息)
- 二零二五年影視制作項(xiàng)目投資合同正本3篇
- 二零二五版影視制作借款合同示范文本2篇
- 2025年度餐飲股份合作開(kāi)發(fā)項(xiàng)目合同3篇
- 基因突變和基因重組(第1課時(shí))高一下學(xué)期生物人教版(2019)必修2
- 天津市八校2023-2024學(xué)年高三年級(jí)下冊(cè)聯(lián)合模擬考試數(shù)學(xué)試題(二)(含答案解析)
- 納米技術(shù)增強(qiáng)早期疾病生物標(biāo)志物的檢測(cè)
- 產(chǎn)品銷量分析表折線圖excel模板
- 辦公設(shè)備(電腦、一體機(jī)、投影機(jī)等)采購(gòu) 投標(biāo)方案(技術(shù)方案)
- 【真題】2023年南京市中考語(yǔ)文試卷(含答案解析)
- 功率模塊可靠性壽命評(píng)估與預(yù)測(cè)
- 案卷評(píng)查培訓(xùn)課件模板
- 湘教版七年級(jí)地理第一學(xué)期期末試卷分析
- 上海春季高考英語(yǔ)真題試題word精校版(含答案)
- “數(shù)”我精彩-“學(xué)”有特色-小學(xué)六年級(jí)數(shù)學(xué)寒假特色作業(yè)展示
評(píng)論
0/150
提交評(píng)論