溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用C#的API接口

發(fā)布時間:2021-11-03 11:30:23 來源:億速云 閱讀:244 作者:iii 欄目:編程語言

這篇文章主要介紹“怎么使用C#的API接口  ”,在日常操作中,相信很多人在怎么使用C#的API接口  問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用C#的API接口  ”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

1.完成前期準(zhǔn)備工作

1.1,去快遞鳥官網(wǎng)免費注冊一個賬號

1.2,免費獲得一個apiKey(接口權(quán)限驗證需要)

1.3,完成實名認(rèn)證流程

1.4,訂購一個免費套餐

2.API接口


2.1,測試調(diào)用地址:http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json

2.2,正式調(diào)用地址:http://api.kdniao.com/api/dist

2.3,請求方式:POST

2.4,編碼格式(utf-8):application/x-www-form-urlencoded;charset=utf-8

2.5,返回類型:JSON

2.6,調(diào)試頁面:http://kdniao.com/UserCenter/v2/SandBox/TrackQuery.aspx

2.7,調(diào)試工具:去調(diào)試(使用快遞鳥賬號登錄)

3.請求參數(shù)(Headers)

參數(shù)名稱類型說明必須要求
RequestDataString請求內(nèi)容需進(jìn)行URL(utf-8)編碼。請求內(nèi)容JSON格式,須和DataType一致。R
EBusinessIDString商戶ID,請在我的服務(wù)頁面查看。R
RequestTypeString請求指令類型:2002R
DataSignString數(shù)據(jù)內(nèi)容簽名:把(請求內(nèi)容(未編碼)+AppKey)進(jìn)行MD5加密,然后Base64編碼,最后 進(jìn)行URL(utf-8)編碼。詳細(xì)過程請查看Demo。R
DataTypeString請求、返回數(shù)據(jù)類型:只支持JSON格式R
參數(shù)名稱類型說明是否必須
LogisticCodeString物流單號R

5.返回參數(shù)(Return)

參數(shù)名稱類型說明必須要求
EBusinessIDString電商用戶IDR
LogisticCodeString物流單號R
SuccessBool成功與否R
CodeInt失敗原因O
ShipperShipperCodeString快遞公司編碼O
ShipperNameString快遞公司名稱O

6.請求報文(示例)

   {    
   "LogisticCode": "3967950525457"
  }

7.成功返回報文(示例)

{
    "EBusinessID": "1257021",
    "Success": true,
    "LogisticCode": "3967950525457",
    "Shippers": [
        {
            "ShipperCode": "YD",
            "ShipperName": "韻達(dá)快遞"
        }
    ]
}

8.分步講解(C#版本)

8.1,請求數(shù)據(jù)包結(jié)構(gòu)

怎么使用C#的API接口

8.2,C#調(diào)用代碼示例

//電商ID
string eEBusinessID = "test1617571";
 //電商加密私鑰,快遞鳥提供,注意保管,不要泄漏
string appKey= "554343b2-7252-439b-b4eb-1af42c8f2175";
 //請求url
string reqURL = "http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json";
//請求指令 
string reqType="2002";
//2-json 
string dataType = "2"; 
//字符編碼采用UTF-8 
string charset = "UTF-8"; 
//JSON字符串string 
string jsonStr = 
"{\"LogisticCode\":\"JT0000052600488\"}" ;
//把(jsonStr+APIKey)進(jìn)行MD5加密
string md5Str=MD5(jsonStr + apiKey, charset);
//把md5Str 進(jìn)行Base64編碼
string base64Str=base64(md5Str,charset);
//進(jìn)行URL編碼 (utf-8)
string datasign = HttpUtility.UrlEncode(base64Str, charset); 
//請求報文參數(shù) 
string postStr = "RequestType=reqType&EBusinessID= eEBusinessID&RequestData=jsonStr 
&DataSign= datasign&DataType=dataType"; 
//通訊協(xié)議使用Http協(xié)議Post請求方式 返回軌跡數(shù)據(jù)
string post = SendPost(reqURL, postStr);
//獲取到的post數(shù)據(jù)就是快遞鳥返回的完整報文,接下來自己寫一個解析json的方法就能獲取到里面的字段信息。

8.3,C#調(diào)用方法

///<summary>
    /// 字符串MD5加密
    ///</summary>
    ///<param name="str">要加密的字符串</param>
    ///<param name="charset">編碼方式</param>
    ///<returns>密文</returns>
    private string MD5(string str, string

9.項目實際場景應(yīng)用效果

 怎么使用C#的API接口

10.關(guān)于簽名

快遞鳥和第三方電子商務(wù)公司系統(tǒng)進(jìn)行對接,有一定的安全機制。采用 IP 認(rèn)證加簽名
的方式對接,具體方案如下:

防止數(shù)據(jù)被篡改 
在 POST 請求中會傳遞 5 個必須(R)參數(shù) 
RequestData==數(shù)據(jù)內(nèi)容(URL 編碼:UTF-8) 
EBusinessID==用戶 ID 
RequestType=請求指令類型 
DataSign== 數(shù)據(jù)內(nèi)容簽名:把(請求內(nèi)容(未編碼)+ApiKey)進(jìn)行 MD5 加密,然后 Base64 
編碼,最后進(jìn)行 URL(utf-8)編碼 
DataType==2(返回數(shù)據(jù)類型為 json) 
注:
DataSign 生成后,對方接收到數(shù)據(jù)后,以同樣的算法進(jìn)行簽名(推送接口 RequestType 為 
101/102 不需要進(jìn)行 URL 編碼),生成摘要,對比兩者的摘要是否相同,如果不同,說明傳遞過程中發(fā)生數(shù)據(jù)篡改。 
調(diào)用接口的身份認(rèn)證 
注冊成為快遞鳥用戶后,會生成對應(yīng)的用戶 ID 和 APIKey,用戶 ID 相當(dāng)于用戶名, 
APIKey 相當(dāng)于密碼。

到此,關(guān)于“怎么使用C#的API接口  ”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

api
AI