車檢業(yè)務(wù)辦理狀態(tài)查詢API(內(nèi)部)

車檢狀態(tài)查詢API


接口描述

  • 根據(jù)車牌號查詢車檢狀態(tài)
  • 只有經(jīng)過授權(quán),方可調(diào)用
  • 根據(jù)車牌號查詢該車當(dāng)前的車檢業(yè)務(wù)辦理狀態(tài)
    • 檢測進(jìn)度及結(jié)果
    • 業(yè)務(wù)辦理進(jìn)度
    • 歷史檢測報告(開發(fā)中)

請求信息

HTTP協(xié)議:HTTP

調(diào)用地址:038e35c75d6c4990943c258b49d65267-cn-beijing.alicloudapi.com/api/flow

方法:POST

請求Body描述(Json)

{
    "plate_numer":"京AAR670"
}

返回信息

返回參數(shù)類型

JSON

返回結(jié)果示例

{
    "result": "success",
    "data": [
        {
            "plate_number": "京AAR670",
            "datetime": "2019-03-11 13:58:51",
            "status": "登記完成"
        },
        {
            "plate_number": "京AAR670",
            "datetime": "2019-03-11 13:58:55",
            "status": "等待尾氣檢測"
        },
        {
            "plate_number": "京AAR670",
            "datetime": "2019-03-11 14:05:55",
            "status": "尾氣檢測合格"
        },
        {
            "plate_number": "京AAR670",
            "datetime": "2019-03-13 14:44:24",
            "status": "安檢檢測合格"
        },
        {
            "plate_number": "京AAR670",
            "datetime": "2019-03-13 14:44:24",
            "status": "總檢審核合格"
        },
        {
            "plate_number": "京AAR670",
            "datetime": "2019-03-13 16:35:23",
            "status": "檢字已發(fā)"
        }
    ],
    "plate_number": "京AAR670"
}

異常返回示例

{
    "result": "fail",
    "data": []
}

API調(diào)用

公共入?yún)?/h3>

公共請求參數(shù)是指每個接口都需要使用到的請求參數(shù)改化。

參數(shù)名稱 位置 必須 描述
X-Ca-Key Header Appkey套菜,調(diào)用API的身份標(biāo)識喜爷,可以到阿里云API網(wǎng)關(guān)控制臺申請
X-Ca-Signature Header 通過簽名計算規(guī)則計算的請求簽名串丽涩,參照:<a href="#Signature">簽名計算規(guī)則</a>
X-Ca-Timestamp Header API 調(diào)用者傳遞時間戳艇棕,值為當(dāng)前時間的毫秒數(shù)咽瓷,也就是從1970年1月1日起至今的時間轉(zhuǎn)換為毫秒,時間戳有效時間為15分鐘
X-Ca-Nonce Header API請求的唯一標(biāo)識符贸街,15分鐘內(nèi)同一X-Ca-Nonce不能重復(fù)使用庵寞,建議使用 UUID,結(jié)合時間戳防重放
Content-MD5 Header 當(dāng)請求 Body 非 Form 表單時薛匪,需要計算 Body 的 MD5 值傳遞給云網(wǎng)關(guān)進(jìn)行 Body MD5 校驗
X-Ca-Signature-Headers Header 指定哪些Header參與簽名捐川,支持多值以","分割,默認(rèn)只有X-Ca-Key參與簽名逸尖,為安全需要也請將X-Ca-Timestamp古沥、X-Ca-Nonce進(jìn)行簽名,例如:X-X-Ca-Signature-Headers:Ca-Timestamp,X-Ca-Nonce

簽名計算規(guī)則

請求簽名娇跟,是基于請求內(nèi)容計算的數(shù)字簽名岩齿,用于API識別用戶身份“客戶端調(diào)用API時盹沈,需要在請求中添加計算的簽名(X-Ca-Signature)。

簽名計算流程


準(zhǔn)備APPkey → 構(gòu)造待簽名字符串stringToSign → 使用Secret計算簽名


1.準(zhǔn)備APPKey

Appkey吃谣,調(diào)用API的身份標(biāo)識乞封,可以到阿里云API網(wǎng)關(guān)控制臺申請

2.構(gòu)造待簽名字符串stringToSign
String stringToSign=
HTTPMethod + "\n" +
Accept + "\n" +                //建議顯示設(shè)置 Accept Header。當(dāng) Accept 為空時岗憋,部分 Http 客戶端會給 Accept 設(shè)置默認(rèn)值為 */*肃晚,導(dǎo)致簽名校驗失敗。
Content-MD5 + "\n"
Content-Type + "\n" +
Date + "\n" +
Headers +
Url
HTTPMethod

為全大寫仔戈,如 POST关串。

Accept、Content-MD5监徘、Content-Type悍缠、Date 如果為空也需要添加換行符”\n”,Headers如果為空不需要添加”\n”耐量。
Content-MD5

Content-MD5 是指 Body 的 MD5 值飞蚓,只有當(dāng) Body 非 Form 表單時才計算 MD5,計算方式為:

String content-MD5 = Base64.encodeBase64(MD5(bodyStream.getbytes("UTF-8")));
bodyStream 為字節(jié)數(shù)組廊蜒。

Headers

Headers 是指參與 Headers 簽名計算的 Header 的 Key趴拧、Value 拼接的字符串,建議對 X-Ca 開頭以及自定義 Header 計算簽名山叮,注意如下參數(shù)不參與 Headers 簽名計算:X-Ca-Signature著榴、X-Ca-Signature-Headers、Accept屁倔、Content-MD5脑又、Content-Type、Date。

Headers 組織方法:

先對參與 Headers 簽名計算的 Header的Key 按照字典排序后使用如下方式拼接问麸,如果某個 Header 的 Value 為空往衷,則使用 HeaderKey + “:” + “\n”參與簽名,需要保留 Key 和英文冒號严卖。

String headers =
HeaderKey1 + ":" + HeaderValue1 + "\n"\+
HeaderKey2 + ":" + HeaderValue2 + "\n"\+
...
HeaderKeyN + ":" + HeaderValueN + "\n"

將 Headers 簽名中 Header 的 Key 使用英文逗號分割放到 Request 的 Header 中席舍,Key為:X-Ca-Signature-Headers。

Url

Url 指 Path + Query + Body 中 Form 參數(shù)哮笆,組織方法:對 Query+Form 參數(shù)按照字典對 Key 進(jìn)行排序后按照如下方法拼接来颤,如果 Query 或 Form 參數(shù)為空,則 Url = Path稠肘,不需要添加 福铅?,如果某個參數(shù)的 Value 為空只保留 Key 參與簽名项阴,等號不需要再加入簽名滑黔。

String url =
Path +
"?" +
Key1 + "=" + Value1 +
"&" + Key2 + "=" + Value2 +
...
"&" + KeyN + "=" + ValueN

注意這里 Query 或 Form 參數(shù)的 Value 可能有多個,多個的時候只取第一個 Value 參與簽名計算鲁冯。

3.使用Secret計算簽名
Mac hmacSha256 = Mac.getInstance("HmacSHA256");
byte[] keyBytes = secret.getBytes("UTF-8");
hmacSha256.init(new SecretKeySpec(keyBytes, 0, keyBytes.length, "HmacSHA256"));
String sign = new String(Base64.encodeBase64(Sha256.doFinal(stringToSign.getBytes("UTF-8")),"UTF-8"));

Secret 為 APP 的密鑰拷沸,請在應(yīng)用管理中獲取。

錯誤碼

如何獲取公共錯誤

所有的 API 請求只要到達(dá)了網(wǎng)關(guān)薯演,網(wǎng)關(guān)就會返回請求結(jié)果信息撞芍。

用戶需要查看返回結(jié)果的頭部,即 Header 部分跨扮。返回參數(shù)如示例:

//請求唯一ID序无,請求一旦進(jìn)入API網(wǎng)關(guān)應(yīng)用后,API網(wǎng)關(guān)就會生成請求ID并通過響應(yīng)頭返回給客戶端衡创,建議客戶端與后端服務(wù)都記錄此請求ID帝嗡,可用于問題排查與跟蹤
X-Ca-Request-Id: 7AD052CB-EE8B-4DFD-BBAF-EFB340E0A5AF

//API網(wǎng)關(guān)返回的錯誤消息,當(dāng)請求出現(xiàn)錯誤時API網(wǎng)關(guān)會通過響應(yīng)頭將錯誤消息返回給客戶端
X-Ca-Error-Message: Invalid Url

//當(dāng)打開Debug模式后會返回Debug信息璃氢,此信息后期可能會有變更哟玷,僅用做聯(lián)調(diào)階段參考
X-Ca-Debug-Info: {"ServiceLatency":0,"TotalLatency":2}

在 Header 中獲得 X-Ca-Error-Message 可以基本明確報錯原因,而 X-Ca-Request-Id 可以用于提供給這邊的支持人員一也,供支持人員搜索日志巢寡。

公共錯誤碼

客戶端錯誤

錯誤代碼 Http 狀態(tài)碼 語義 解決方案
Throttled by USER Flow Control 403 因用戶流控被限制 調(diào)用頻率過高導(dǎo)致被流控,可以聯(lián)系 API 服務(wù)商協(xié)商放寬限制椰苟。
Throttled by APP Flow Control 403 因APP流控被限制 調(diào)用頻率過高導(dǎo)致被流控抑月,可以聯(lián)系 API 服務(wù)商協(xié)商放寬限制。
Throttled by API Flow Control 403 因 API 流控被限制 調(diào)用頻率過高導(dǎo)致被流控舆蝴,可以聯(lián)系 API 服務(wù)商協(xié)商放寬限制谦絮。
Throttled by DOMAIN Flow Control 403 因二級域名流控被限制 直接訪問二級域名調(diào)用 API题诵,每天被訪問次數(shù)上限1000次。
TThrottled by GROUP Flow Control 403 因分組流控被限制 調(diào)用頻率過高導(dǎo)致被流控层皱,可以聯(lián)系 API 服務(wù)商協(xié)商放寬限制性锭。
Quota Exhausted 403 調(diào)用次數(shù)已用完 購買的次數(shù)已用完。
Quota Expired 403 購買次數(shù)已過期 購買的次數(shù)已經(jīng)過期奶甘。
User Arrears 403 用戶已欠費 請盡快充值續(xù)費篷店。
Empty Request Body 400 body 為空 請檢查請求 Body 內(nèi)容祭椰。
Invalid Request Body 400 body 無效 請檢查請求 Body臭家。
Invalid Param Location 400 參數(shù)位置錯誤 請求參數(shù)位置錯誤。
Unsupported Multipart 400 不支持上傳 不支持上傳文件方淤。
Invalid Url 400 Url 無效 請求的 Method钉赁、Path 或者環(huán)境不對。請參照錯誤說明 Invalid Url携茂。
Invalid Domain 400 域名無效 請求域名無效你踩,根據(jù)域名找不到 API。請聯(lián)系 API 服務(wù)商讳苦。
Invalid HttpMethod 400 HttpMethod 無效 輸入的 Method 不合法带膜。
Invalid AppKey 400 AppKey 無效或不存在 請檢查傳入的 AppKey。注意左右空格的影響鸳谜。
Invalid AppSecret 400 APP 的Secret 錯誤 檢查傳入的 AppSecret膝藕。注意左右空格的影響。
Timestamp Expired 400 時間戳過時 請核對請求系統(tǒng)時間是否為標(biāo)準(zhǔn)時間咐扭。
Invalid Timestamp 400 時間戳不合法 請參照 請求簽名說明文檔芭挽。
Empty Signature 404 簽名為空 請傳入簽名字符串,請參照 請求簽名說明文檔蝗肪。
Invalid Signature, Server StringToSign:%s 400 簽名無效 簽名無效袜爪,參照 Invalid Signature 錯誤說明
Invalid Content-MD5 400 Content-MD5 值不合法 請求 Body 為空,但傳入了 MD5 值薛闪,或 MD5 值計算錯誤辛馆。請參照 請求簽名說明文檔。
Unauthorized 403 未被授權(quán) APP 未獲得要調(diào)用的 API 的授權(quán)豁延。請參照錯誤說明 Unauthorized昙篙。
Nonce Used 400 SignatureNonce 已被使用 SignatureNonce 不能被重復(fù)使用。
API Not Found 400 找不到 API 傳入的APIdi地址或者HttpMethod不正確术浪,或已下線瓢对。

服務(wù)器端錯誤(調(diào)用 API)

以下為API服務(wù)端錯誤,如果頻繁錯誤胰苏,可聯(lián)系服務(wù)商硕蛹。

錯誤代碼 Http狀態(tài)碼 語義 解決方案
Internal Error 500 內(nèi)部錯誤 建議重試,或者聯(lián)系服務(wù)商
Failed To Invoke Backend Service 500 底層服務(wù)錯誤 API 提供者底層服務(wù)錯誤,建議重試,如果重試多次仍然不可用法焰,可聯(lián)系 API 服務(wù)商解決
Service Unavailable 503 服務(wù)不可用 建議重試,或者聯(lián)系服務(wù)商
Async Service 504 后端服務(wù)超時 建議重試,或者聯(lián)系服務(wù)商
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末秧荆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子埃仪,更是在濱河造成了極大的恐慌乙濒,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卵蛉,死亡現(xiàn)場離奇詭異颁股,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)傻丝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門甘有,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人葡缰,你說我怎么就攤上這事亏掀。” “怎么了泛释?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵滤愕,是天一觀的道長。 經(jīng)常有香客問我怜校,道長间影,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任韭畸,我火速辦了婚禮宇智,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胰丁。我一直安慰自己随橘,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布锦庸。 她就那樣靜靜地躺著机蔗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪甘萧。 梳的紋絲不亂的頭發(fā)上萝嘁,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音扬卷,去河邊找鬼牙言。 笑死,一個胖子當(dāng)著我的面吹牛怪得,可吹牛的內(nèi)容都是我干的咱枉。 我是一名探鬼主播卑硫,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蚕断!你這毒婦竟也來了欢伏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后距误,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡卦羡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡咸这,死狀恐怖夷恍,靈堂內(nèi)的尸體忽然破棺而出魔眨,到底是詐尸還是另有隱情,我是刑警寧澤酿雪,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布遏暴,位于F島的核電站,受9級特大地震影響指黎,放射性物質(zhì)發(fā)生泄漏朋凉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一醋安、第九天 我趴在偏房一處隱蔽的房頂上張望杂彭。 院中可真熱鬧,春花似錦吓揪、人聲如沸亲怠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽团秽。三九已至,卻和暖如春叭首,著一層夾襖步出監(jiān)牢的瞬間习勤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工焙格, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留图毕,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓眷唉,卻偏偏與公主長得像予颤,于是被迫代替她去往敵國和親损肛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345