<tt id="022o0"><noscript id="022o0"></noscript></tt>
<rt id="022o0"><small id="022o0"></small></rt><acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<rt id="022o0"></rt>
<tr id="022o0"></tr>
<rt id="022o0"><optgroup id="022o0"></optgroup></rt>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<menu id="022o0"><noscript id="022o0"></noscript></menu><option id="022o0"></option>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<rt id="022o0"></rt>
<optgroup id="022o0"><menu id="022o0"></menu></optgroup>
<tr id="022o0"></tr>
<acronym id="022o0"><small id="022o0"></small></acronym> <acronym id="022o0"><center id="022o0"></center></acronym>
<option id="022o0"></option>
<acronym id="022o0"><small id="022o0"></small></acronym>
<option id="022o0"></option>
<tr id="022o0"></tr>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<xmp id="022o0"><samp id="022o0"></samp><xmp id="022o0"><menu id="022o0"></menu>
<sup id="022o0"><optgroup id="022o0"></optgroup></sup><acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<rt id="022o0"></rt>
<samp id="022o0"></samp>
<code id="022o0"><wbr id="022o0"></wbr></code>
<acronym id="022o0"><small id="022o0"></small></acronym> <tr id="022o0"></tr>
<option id="022o0"></option>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>

關注快遞100接口API

快遞100查件寄件功能接入開發文檔

1. 開放功能

快遞100目前開放給第三方接入的功能主要包括:查快遞寄快遞快遞電話大全時效與價格,快遞網點(內測中)等。各個功能的說明具體如下:

  • 查快遞: 支持800+快遞公司單號物流信息查詢,提供智能識別快遞公司和手動切換快遞公司進行查件。
  • 寄快遞: 搜索附近的加盟的快遞員,提供在線下單功能。若附近附近沒有加盟快遞員則會提供其他非加盟快遞員的聯系方式。
  • 快遞電話大全: 查找快遞公司的聯系方式
  • 時效與價格: 基于快遞100大數據預測,根據用戶輸入的寄件地址和收件地址以及物品的重量,為用戶計算出各個快遞公司的價格和運輸需要的時長,并預測物流的中轉站信息。
  • 快遞網點: 查詢附近的快遞網點信息(內測階段,未全面開放)

2. 接入方式

快遞100開放功能目前基于H5開發,可以嵌入至已有的APP,也可以嵌入到網頁。根據接入方是否提供用戶信息,接入方式分為兩種:

  • 提供用戶信息: 提供用戶信息后,用戶無需登錄可以在平臺進行下單,下單后可以查看寄件記錄,保存收寄件地址等信息。接入方需要在快遞100平臺上申請到唯一的appidappsecret,按照快遞100提供的開放文檔,將用戶的唯一標志進行加密生成openid,再附加上其他的參數即可接入(詳情可見接入方法)。申請appidappsecret需要聯系快遞100客服申請開通獲得appid等信息。
  • 不提供用戶信息: 該方式無需提供用戶信息,用戶下單時需要輸入手機并接收短信驗證碼才可以下單。

3. 接入方法

(1)接入完整的功能
接入完整的功能即接入快遞100所有開放的功能。以下為接入的方法:

接入鏈接: https://m.kuaidi100.com/app/? coname={name}&openid={openid}&appid={appid}&nonce={nonce}&timeStamp={timeStamp}&kd100sign={sign}

參數說明:

參數名稱 類型 是否必須 描述
coname String 第三方合作的名稱,僅支持由字母、數字和下劃線組成,確認名字后可以找客服登記,一般為接入方的官方英文名,如oppo
openid String 提供用戶信息時為必須 用戶的唯一標志
appid String 提供用戶信息時為必須 在快遞100申請到的應用應用id
nonce String 提供用戶信息時為必須 隨機數(建議為6為數字)
timeStamp Long 提供用戶信息時為必須 調起接口是的時間戳
kd100sign String 提供用戶信息時為必須 API輸入參數簽名結果

因此,一個最簡單的接入鏈接為:https://m.kuaidi100.com/app/?coname=網站或app英文名字,如hao123接入后的鏈接是:
https://m.kuaidi100.com/app/?coname=hao123,接入后入口和寄快遞頁面效果如下:

另一個例子: 魅族商城合作定制特殊的UI,接入后入口頁和寄件頁效果如下:

(2)僅接入寄件功能

如果你的應用僅需要接入快遞100的寄件功能,則接入的鏈接為:

https://m.kuaidi100.com/courier/courier.jsp
除此之外,所有的參數均和接入完整的功能時的參數一致,此種接入方式將不再有快遞電話大全查詢網點時效價格查詢的功能以及單獨的物流查詢功能(寄件后在寄件詳情可以查看物流信息)。

4. 簽名算法

當接入方需要用自身系統中用戶身份進行授權并在快遞100平臺上進行下單等操作時,需要對用戶身份進行簽名。簽名時需要用到在快遞100申請appidappsecret

  • appid: 在快遞100申請到的應用id
  • appsecret: 在快遞100申請到的應用接入密鑰

申請appidappsecret可以點擊以下按鈕申請,審核通過后我們將以郵件的形式回復。

點擊此處申請

簽名和接入的步驟:

(1)生成openid, openid=base64(appid+用戶唯一標志)
(2)簽名kd100sign, kd100sign=MD5(appsecret+MD5(appid+timestamp+nonce))
(3)將openid,kd100sign,nonce,appid,timesStamp,kdsign,coname等作為基本接入鏈接的參數,生成最終的接入鏈接。

Java示例

(1)MD5實現

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5 {
private static MessageDigest _mdInst = null;
private static char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
private static MessageDigest getMdInst() {
if (_mdInst == null) {
try {
_mdInst = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
return _mdInst;
}
public static String encode(String s) {
try {
byte[] btInput = s.getBytes();
// 使用指定的字節更新摘要
getMdInst().update(btInput);
// 獲得密文
byte[] md = getMdInst().digest();
// 把密文轉換成十六進制的字符串形式
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}

(2)Base64實現

import java.io.UnsupportedEncodingException;
import org.apache.commons.lang.StringUtils;
import sun.misc.BASE64Decoder;
@SuppressWarnings("restriction")
public class Base64 {
public static String encode(String s) {
if (StringUtils.isEmpty(s)) {
return "";
}
try {
return (new sun.misc.BASE64Encoder()).encode(s.getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
}
return "";
}
public static String decode(String s) {
if (StringUtils.isEmpty(s)) {
return "";
}
BASE64Decoder decoder = new BASE64Decoder();
try {
byte[] b = decoder.decodeBuffer(s);
return new String(b);
} catch (Exception e) {
return null;
}
}
}

(3)sign簽名實現

import org.apache.commons.lang3.RandomStringUtils;
public class SignUtils {
private final static String APPID = "galaxyind";
private final static String APPSECRET = "cf094f235b1248a6b7778d56f44c7c2e";
/**
* @param userid 用戶唯一標志
* @return
*/
public static String createOpenid(String userid) {
return Base64.encode(APPID + userid);
}
/**
*
* @param nonce // 隨機數
* @param timeStamp 時間戳--自1970年01月01日起到現在的毫秒數
* @return
*/
public static String createSign(String nonce,long timeStamp) {
String sign = MD5.encode(APPSECRET + MD5.encode(APPID + timeStamp + nonce));
return sign;
}
public String decodeOpenid(String openid) {
return null;
}
public static void main(String[] args) {
String openid = SignUtils.createOpenid("123456");
System.out.println("openid="+openid);
String nonce = RandomStringUtils.randomNumeric(6);// 隨機數
long timeStamp = System.currentTimeMillis();// 時間戳--自1970年01月01日起到現在的毫秒數
String sign = SignUtils.createSign(nonce, timeStamp);
System.out.println("sign="+sign);
}
}

PHP示例代碼

$appid = 'haowind';
$appsecret = 'cf094f235b1248a6b7778d56f4uu9iko';
$userid = 'useruuid';
$timestamp = msectime();
$nonce = randomStr();
//生成openid
$openid = base64_encode($appid.$userid);
//sign簽名
$sign = md5($appid . md5($appid . $timestamp . $nonce));;
//拼接嵌入的url
$url = "https://m.kuaidi100.com/app/?coname=hao123&appid={$appid}&kd100sign={$sign}&openid={$openid}&timeStamp={$timestamp}&nonce={$nonce}";
echo $url;
//隨機6位數字
function randomStr(){
$arr = range(0, 9);
$str = '';
for($i = 0; $i < 6; $i++){
$str.= $arr[array_rand($arr)];
}
// echo $str;
return $str;
}
//返回當前的毫秒時間戳
function msectime() {
list($msec, $sec) = explode(' ', microtime());
$msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
return $msectime;
}

5. 關于UI定制

由于頁面是嵌入到APP或者原有的Web應用中,不同的應用UI風格不同,如果你需要定制,請聯系我們的客服。另外,如果你不需要定制頭部,接入后也請盡量將你的coname名稱以及公司或者接入的應用的信息告知我們,我們將根據實際情況對系統進行優化。你也可以通過點擊以下按鈕進行相關信息的提交。聯系方式:0755-86072129。

點擊此處填寫信息

網站    APP    其它

提交信息
平特一肖龙是什么生肖
<tt id="022o0"><noscript id="022o0"></noscript></tt>
<rt id="022o0"><small id="022o0"></small></rt><acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<rt id="022o0"></rt>
<tr id="022o0"></tr>
<rt id="022o0"><optgroup id="022o0"></optgroup></rt>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<menu id="022o0"><noscript id="022o0"></noscript></menu><option id="022o0"></option>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<rt id="022o0"></rt>
<optgroup id="022o0"><menu id="022o0"></menu></optgroup>
<tr id="022o0"></tr>
<acronym id="022o0"><small id="022o0"></small></acronym> <acronym id="022o0"><center id="022o0"></center></acronym>
<option id="022o0"></option>
<acronym id="022o0"><small id="022o0"></small></acronym>
<option id="022o0"></option>
<tr id="022o0"></tr>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<xmp id="022o0"><samp id="022o0"></samp><xmp id="022o0"><menu id="022o0"></menu>
<sup id="022o0"><optgroup id="022o0"></optgroup></sup><acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<rt id="022o0"></rt>
<samp id="022o0"></samp>
<code id="022o0"><wbr id="022o0"></wbr></code>
<acronym id="022o0"><small id="022o0"></small></acronym> <tr id="022o0"></tr>
<option id="022o0"></option>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<tt id="022o0"><noscript id="022o0"></noscript></tt>
<rt id="022o0"><small id="022o0"></small></rt><acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<rt id="022o0"></rt>
<tr id="022o0"></tr>
<rt id="022o0"><optgroup id="022o0"></optgroup></rt>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<menu id="022o0"><noscript id="022o0"></noscript></menu><option id="022o0"></option>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<rt id="022o0"></rt>
<optgroup id="022o0"><menu id="022o0"></menu></optgroup>
<tr id="022o0"></tr>
<acronym id="022o0"><small id="022o0"></small></acronym> <acronym id="022o0"><center id="022o0"></center></acronym>
<option id="022o0"></option>
<acronym id="022o0"><small id="022o0"></small></acronym>
<option id="022o0"></option>
<tr id="022o0"></tr>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<xmp id="022o0"><samp id="022o0"></samp><xmp id="022o0"><menu id="022o0"></menu>
<sup id="022o0"><optgroup id="022o0"></optgroup></sup><acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
<rt id="022o0"></rt>
<samp id="022o0"></samp>
<code id="022o0"><wbr id="022o0"></wbr></code>
<acronym id="022o0"><small id="022o0"></small></acronym> <tr id="022o0"></tr>
<option id="022o0"></option>
<acronym id="022o0"><small id="022o0"></small></acronym>
<acronym id="022o0"><small id="022o0"></small></acronym>
云南快乐十分钟开奖结果走势图 澳门快三规律 四川快乐12遗漏任5遗漏 赛车pk10代理官网 悠悠广东麻将下载苹果 快乐十二万能六码组合 白小姐开奖免费下载 重庆欢乐生肖百科 黑龙江36选7开奖号码 72071今晚开奖结果 哈尔滨麻将58w官网 3b三十期试机号开奖号 六肖中特期期准134 快三倍投大忌 四川时时是 黑龙江福彩快乐前三组