前面介紹過《用快遞100接口查詢各快遞物流信息》,里面用的是API接口,但有些快遞不支持這種方式,本文介紹的HtmlAPI支持所有快遞公司。
支持包括EMS、郵政、順豐和申通在內的所有公司,穩定性強、速度快,易開發、安全性高 。
1、API請求地址
http://www.kuaidi100.com/applyurl?key=[]&com=[]&nu=[]
(配參數時請先將 中括號去掉)
2、傳入參數說明
| 參數 |
是否必需 |
說明 |
| key |
是 |
快遞100的授權key,如果已有快遞100的key,可以直接使用已有的;如果還沒有申請,請點擊 快遞查詢API進行申請。 |
| com |
是 |
快遞公司編碼見下表 |
| nu |
是 |
快遞單號 |
3、支持的公司
HtmlAPI支持快遞100所有支持的公司,以下只羅列最常見的幾個快遞,更多的編碼請點擊《用快遞100接口查詢各快遞物流信息》查看
| 分類 |
快遞公司代碼 |
公司名稱 |
| E |
||
| ems |
ems |
|
| emsguoji |
ems國際件 |
|
| S |
||
| shentong |
伸通 |
|
| shunfeng |
順豐 |
|
| Y |
||
| youzhengguonei |
中國郵政國內包裹/掛號信/國內小包大包 |
|
| youzhengguoji |
中國郵政國際包裹/掛號信/國外小包大包 |
4、返回結果說明:
提交請求后,快遞100會給您返回一個可以看到結果的url地址,如:http://www.kuaidi100.com/kuaidiresult?id=23 ,您直接訪問或用iframe頁調用該url(調用方法見后面第四章),即可以看到結果。效果:
因為EMS、順豐和申通偶爾會不穩定, 不穩定時會先顯示驗證碼 (如下圖所示),所以請勿直接將這個頁面直接解析成JSON等形式,否則會出錯!
5、整體使用流程
第一步,后台創建鏈接,調用:http://www.kuaidi100.com/applyurl?key=[]&com=[]&nu=[] ,調用后系統會返回一個url地址,如:http://www.kuaidi100.com/kuaidiresult?id=23 。
第二步:在要顯示結果的頁面添加一個iframe標簽,將上述結果url地址傳入該iframe標簽的的src值,即可在該頁面查看到結果(如果要實現系統自動地將結果url傳入iframe標簽的src,請參考下面第五章),iframe代碼示范:
<iframe name="kuaidi100" src="結果url地址" width="600" height="380" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>
如果要實現系統自動地將結果url傳入iframe標簽的src,請參考下面
6、 C#示范
首先加一個iframe, 取到數據后,填充它
<iframe class="address_b order_zhui" height="260px" width="100%" id="kdFrame"></iframe>
$.get("Get.aspx", { wid: wid, openid: openid, rid: rid },
function (data) {
$("#bhao").hide();
if (data != null) {
$("#bhao").show();
//$("#retData").html(data);
$("#kdFrame").attr("src", data);
}
}
);
后台:
//用htmlapi
WebClient client = new WebClient();
string url = string.Format("http://www.kuaidi100.com/applyurl?key={0}&com={1}&nu={2}", ApiKey, typeCom, nu);
log.Info("url: " + url);
Byte[] pageData = client.DownloadData(url);
string pageHtml = Encoding.ASCII.GetString(pageData);
log.Info("return url: " + pageHtml);
Response.Write(pageHtml);

