文档库 最新最全的文档下载
当前位置:文档库 › 各种电子面单-Api接口(顺丰、快递鸟、菜鸟)

各种电子面单-Api接口(顺丰、快递鸟、菜鸟)

各种电子面单-Api接口(顺丰、快递鸟、菜鸟)
各种电子面单-Api接口(顺丰、快递鸟、菜鸟)

?术语

?电子面单样式

?对接接口各家对比

?各家合作流程对比

?接口定义及说明

o Request Params

?系统级参数公共参数

?接口参数

o Response Params

?Java栗子

?同类文章

术语

对于一般人,电子面单的意思可能并不是很了解;说白了,就是快递员给你打印的快递单的电子版。

专业解释:

电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务。通过热感应

显示文字,打印速度比传统针式打印速度提升4~6倍。电子面单以接口形

式嵌入到自己的系统、网站上,可以在自己的平台操作打印电子面单。

电子面单样式

对接接口各家对比

1.快递电子面单接口:快递公司自己开发的电子面单服务,商家使用必须快递公司上

门做系统对接,使用一家快递则需要对接一次。

2.菜鸟电子面单接口:可一次对接15家快递公司,无需和每一家快递公司做对接。

支持快递有四通一达、EMS、宅急送、德邦、优速、天天、快捷、全峰等15家常用快递公司,其中不包括顺丰。

3.快递鸟电子面单接口:可一次对接15家快递公司,无需和每一家快递公司做对接。

支持快递有四通一达、顺丰、EMS、宅急送、德邦、优速等15家快递公司,对顺丰有电子面单服务需求的可以选择顺丰自有的电子面单或者是快递鸟电子面单。各家合作流程对比

1.

快递电子面单接口

a. 和多家快递公司申请账号

b.分别进行接口对接

c.电子面单服务用户向快递网点申请开通及确认合作细节

2.

3.

菜鸟电子面单

a.向菜鸟网络提交对接申请

b.和菜鸟进行接口对接

c.电子面单服务用户向菜鸟申请账号

d.电子面单服务用户向快递网点申请开通及确认合作细节

4.

5.

快递鸟电子面单

a. 进入申请账号,获取专属的ID和KEY

b.和快递鸟进行接口对接

c.电子面单服务用户向快递网点申请开通及确认合作细节;当然,顺丰电子面单稍

微特殊一点,即:顺丰接入快递鸟立马可以使用,无需注册账号。

6.

接口定义及说明

由于,当前快递鸟支持的电子面单接口相对于其他家的有一定优势;所以以下主要以快递鸟为例进行展开阐述一一说明。

Request Params

Api接口:https://www.wendangku.net/doc/605547750.html,/Ebusiness/EbusinessOrderHandle.aspx

请求方式:POST

编码:UTF-8

系统级参数(公共参数)

参数名称 类型 说明 是

RequestData String 请求内容需进行URL(utf-8)编码。请求内容JSON 格式,须和DataType 一致

R

EBusinessID String 商户ID ,请在我的服务页面查看 R

RequestType String 请求指令类型:1007 R

DataSign String 数据内容签名:把(请求内容(未编码)+AppKey)进行MD5

加密,然后Base64编码,最后进行URL(utf-8)编码。详

细过程请查看Demo R

DataType String 请求、返回数据类型:只支持JSON 格式 O

备注:R-必填(Required ),O-可选(Optional ),C-报文中该参数在一

定条件下可选(Conditional )。

接口参数

参数名称类型说明是否

必需CallBack String 用户自定义回调信息O MemberID String 会员标识O CustomerName String 电子面单客户账号(与快递网点申请)O CustomerPwd String 电子面单密码O SendSite String 收件网点标识O ShipperCode String 快递公司编码R LogisticCode String 快递单号O OrderCode String 订单编号R MonthCode String 月结编码 C PayType Int 邮费支付方式:1-现付,2-到付,3-月结,4-第三方

R

支付

参数名称类型说明是否

必需ExpType String 快递类型:1-标准快件R Cost Double 寄件费(运费)O OtherCost Double 其他费用O

O StartDate String 上门取货时间段:”yyyy-MM-dd HH:mm:ss”格式

化,本文中所有时间格式相同

O EndDate String 上门取货时间段:”yyyy-MM-dd HH:mm:ss”格式

化,本文中所有时间格式相同

Weight Double 物品总重量kg O Quantity Int 件数/包裹数O Volume Double 物品总体积m3 O Remark String 备注O IsReturnPrintTemplate String 返回电子面单模板:0-不需要;1-需要O

Receiver Company String 收件人公司O Name String 收件人R

Tel String 电话与手机,必填一个R

Mobile String 电话与手机,必填一个R

PostCode String 收件人邮编O

ProvinceName String 收件省(如广东省,不要缺少“省”)R

CityName String 收件市(如深圳市,不要缺少“市”)R

ExpAreaName String 收件区(如福田区,不要缺少“区”或“县”)O

Address String 收件人详细地址R Sender Company String 发件人公司O Name String 收件人R

Tel String 电话与手机,必填一个R

Commoditys

GoodsCode String 商品编码O

Goodsquantity String 商品数量O

GoodsPrice String 商品价格O

GoodsWeight String 商品重量kg O

GoodsDesc String 商品描述O

GoodsVol String 商品体积m3 O Response Params

参数名称类型说明是否必需UniquerRequestNumber String 唯一标识R PrintTemplate String 面单打印模板O EstimatedDeliveryTime String 订单预计到货时间yyyy-mm-dd O Callback String 用户自定义回调信息O Order OrderCode String 订单编号R ShipperCode String 快递公司编码R

LogisticCode String 快递单号R

MarkDestination String 大头笔O

OriginCode String 始发地区域编码O

OriginName String 始发地/始发网点O

DestinatioCode String 目的地区域编码O

Java栗子

注:此栗子仅供参考,如要使用请到官方下载对应语言的Demo即可。

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.UnsupportedEncodingException;

import https://www.wendangku.net/doc/605547750.html,.HttpURLConnection;

import https://www.wendangku.net/doc/605547750.html,.URL;

import https://www.wendangku.net/doc/605547750.html,.URLEncoder;

import java.util.HashMap;

import java.util.Map;

import https://www.wendangku.net/doc/605547750.html,.apache.xerces.internal.impl.dv.util.Base64;

import java.security.MessageDigest;

/**

*

* 快递鸟电子面单接口

*

* @技术QQ: 4009633321

* @技术QQ群: 200121393

* @see: https://www.wendangku.net/doc/605547750.html,/MiandanAPI.aspx

* @copyright: 深圳市快金数据技术服务有限公司

*

* ID和Key请到官网申请:https://www.wendangku.net/doc/605547750.html,/ServiceApply.aspx

*/

public class KdGoldAPIDemo {

//电商ID

private String EBusinessID="请到快递鸟官网申请https://www.wendangku.net/doc/605547750.html,/ServiceApply.aspx";

//电商加密私钥,快递鸟提供,注意保管,不要泄漏

private String AppKey="请到快递鸟官网申请https://www.wendangku.net/doc/605547750.html,/ServiceApply.aspx";

//请求url, 正式环境地址:https://www.wendangku.net/doc/605547750.html,/api/Eorderservice

private String ReqURL="https://www.wendangku.net/doc/605547750.html,:8081/api/Eorderservice";

/**

* Json方式电子面单

* @throws Exception

*/

public String orderOnlineByJson() throws Exception{

String requestData= "{'OrderCode': '012657700387'," +

"'ShipperCode':'EMS'," +

"'PayType':1," +

"'ExpType':1," +

"'Cost':1.0," +

"'OtherCost':1.0," +

"'Sender':" +

"{" +

"'Company':'LV','Name':'Taylor','Mobile':'150********','ProvinceName':'上海','CityName':'上海','ExpAreaName':'青浦区','Address':'明珠路73号'}," +

"'Receiver':" +

"{" +

"'Company':'GCCUI','Name':'Yann','Mobile':'150********','ProvinceName':'北京','CityName':'北京','ExpAreaName':'朝阳区','Address':'三里屯街道雅秀大厦'}," +

"'Commodity':" +

"[{" +

"'GoodsName':'鞋子','Goodsquantity':1,'GoodsWeight':1.0}]," +

"'Weight':1.0," +

"'Quantity':1," +

"'Volume':0.0," +

"'Remark':'小心轻放'," +

"'IsReturnPrintTemplate':1}";

Map params = new HashMap();

params.put("RequestData", urlEncoder(requestData, "UTF-8"));

params.put("EBusinessID", EBusinessID);

params.put("RequestType", "1007");

String dataSign=encrypt(requestData, AppKey, "UTF-8");

params.put("DataSign", urlEncoder(dataSign, "UTF-8"));

params.put("DataType", "2");

String result=sendPost(ReqURL, params);

//根据公司业务处理返回的信息......

return result;

}

/**

* MD5加密

* @param str 内容

* @param charset 编码方式

* @throws Exception

*/

@SuppressWarnings("unused")

private String MD5(String str, String charset) throws Exception {

MessageDigest md = MessageDigest.getInstance("MD5");

md.update(str.getBytes(charset));

byte[] result = md.digest();

StringBuffer sb = new StringBuffer(32);

for (int i = 0; i < result.length; i++) {

int val = result[i] & 0xff;

if (val <= 0xf) {

sb.append("0");

}

sb.append(Integer.toHexString(val));

}

return sb.toString().toLowerCase();

}

/**

* base64编码

* @param str 内容

* @param charset 编码方式

* @throws UnsupportedEncodingException

*/

private String base64(String str, String charset) throws UnsupportedEncodingException{ String encoded = Base64.encode(str.getBytes(charset));

return encoded;

}

@SuppressWarnings("unused")

private String urlEncoder(String str, String charset) throws UnsupportedEncodingException{ String result = URLEncoder.encode(str, charset);

return result;

}

/**

* 电商Sign签名生成

* @param content 内容

* @param keyValue Appkey

* @param charset 编码方式

* @throws UnsupportedEncodingException ,Exception

* @return DataSign签名

*/

@SuppressWarnings("unused")

private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exception

{

if (keyValue != null)

{

return base64(MD5(content + keyValue, charset), charset);

}

return base64(MD5(content, charset), charset);

}

/**

* 向指定URL 发送POST方法的请求

* @param url 发送请求的URL

* @param params 请求的参数集合

* @return 远程资源的响应结果

*/

@SuppressWarnings("unused")

private String sendPost(String url, Map params) {

OutputStreamWriter out = null;

BufferedReader in = null;

StringBuilder result = new StringBuilder();

try {

URL realUrl = new URL(url);

HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();

// 发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

// POST方法

conn.setRequestMethod("POST");

// 设置通用的请求属性

conn.setRequestProperty("accept", "*/*");

conn.setRequestProperty("connection", "Keep-Alive");

conn.setRequestProperty("user-agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

conn.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

conn.connect();

// 获取URLConnection对象对应的输出流

out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");

// 发送请求参数

if (params != null) {

StringBuilder param = new StringBuilder();

for (Map.Entry entry : params.entrySet()) {

if(param.length()>0){

param.append("&");

}

param.append(entry.getKey());

param.append("=");

param.append(entry.getValue());

System.out.println(entry.getKey()+":"+entry.getValue());

}

System.out.println("param:"+param.toString());

out.write(param.toString());

}

// flush输出流的缓冲

out.flush();

// 定义BufferedReader输入流来读取URL的响应

in = new BufferedReader(

new InputStreamReader(conn.getInputStream(), "UTF-8"));

String line;

while ((line = in.readLine()) != null) {

result.append(line);

}

} catch (Exception e) {

e.printStackTrace();

}

//使用finally块来关闭输出流、输入流

finally{

try{

if(out!=null){

out.close();

}

if(in!=null){

in.close();

}

}

catch(IOException ex){

ex.printStackTrace();

}

}

return result.toString();

}

}

其他Api接口,请转到快递鸟具体查看相关文档。同类文章

各种快递查询Api接口(快递鸟)

ps:Coolspan kdniao

相关文档