电商源码 java商城对接物流跟踪接口的java源码哪里可以下载?

电商如何对接快递鸟电子面单接口平台_简幽云_新浪博客
电商如何对接快递鸟电子面单接口平台
一.接口介绍
快递鸟电子面单接口支持四通一达、顺丰、EMS、宅急送、德邦、优速等15家国内常用快递的面单打印。通过快递鸟接口在线打印电子运单,即时生成运单号,无需录单,提高发货效率,提升送达时效。打印速度提升
4-6&倍、省去录单环节、取消抽单环节、充当捡货单、提升送达时效。
电子面单VS传统面单:
二.JAVA对接方式
(1)电子面单接口是快递鸟提供给独立电商、仓储管理系统、物流供应链等物流系统平台使用的下单接口。
(2)为客户解决在线发货需求,商户通过网络选择快递公司发送请求通知快递公司有快递要发货。
(3)客户把数据通过此接口转发到快递鸟,由快递鸟为您安排快递员上门取件的服务。
(4)订单编号(OrderCode)不可重复提交,重复提交系统会返回具体错误代码。
(5)接口支持的消息接收方式为HTTP
POST,请求方法的编码格式(utf-8):"application/x-www-form-charset=utf-8"。
(6)请求系统级参数说明:
RequestData
请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。
EBusinessID
商户ID,请在页面查看。
RequestType
请求指令类型:1007
数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后进行URL(utf-8)编码。详细过程请查看Demo。
请求、返回数据类型:只支持JSON格式
​备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)。
(7)接口地址:
API测试地址:http://testapi.kdniao.cc:8081/api/EOrderService
API正式地址:http://api.kdniao.cc/api/EOrderService
(8)请求内容字段定义
用户自定义回调信息
CustomerName
电子面单客户账号(与快递网点申请)
CustomerPwd
电子面单密码
收件网点标识
ShipperCode
快递公司编码
LogisticCode
邮费支付方式:1-现付,2-到付,3-月结,4-第三方支付
快递类型:1-标准快件
是否通知快递员上门揽件:0-不通知;1-通知;不填则默认为1
寄件费(运费)
收件人公司
电话与手机,必填一个
收件人邮编
ProvinceName
收件省(如广东省,不要缺少“省”)
收件市(如深圳市,不要缺少“市”)
ExpAreaName
收件区(如福田区,不要缺少“区”或“县”)
收件人详细地址
发件人公司
电话与手机,必填一个
发件人邮编
ProvinceName
发件省(如广东省,不要缺少“省”)
发件市(如深圳市,不要缺少“市”)
ExpAreaName
发件区(如福田区,不要缺少“区”或“县”)
发件人详细地址
上门取货时间段:"yyyy-MM-dd HH:mm:ss"格式化,本文中所有时间格式相同
物品总重量kg
件数/包裹数
物品总体积m3
AddServices
AddService
增值服务名称
增值服务值
CustomerID
客户标识(选填)
Commoditys
Goodsquantity
GoodsPrice
GoodsWeight
商品重量kg
商品体积m3
IsReturnPrintTemplate
返回电子面单模板:0-不需要;1-需要
博客等级:
博客积分:0
博客访问:2,592
关注人气:0
荣誉徽章:快递查询接口API & &
& & 快递查询接口是指快递查询网对外开放的,开发人员能够通过调用该接口与快递查询网进行交互,并基于该接口开发自己的快递查询应用程序。目前比较常用的接口有快递鸟、快递100、快递网等。
& & & & 电商网站用户打开“我的订单”时调用此API显示物流信息详情;或者是电商管理后台的物流系统,客服在对账前查询所有运单的签收状态,并追踪问题。
快递查询接口分类
& & & & 物流轨迹查询接口有即时查询和订阅查询两种,即时是请求即返回数据,订阅则是订阅快递单号到接口,有物流轨迹更新则全量返回数据。
& & & & 快递鸟即时接口可以查询3000次,3000以上接订阅接口,统一接口模式接入,常用快递均支持查询,还有订阅接口、在线下单接口、电子面单接口,接口均不收取费用, & & & &没有要求用户添加外链,支持418家国内外快递物流查询。
& & & & 快递100每天可以免费查询2000次,超过2000次收费,每次0.06~0.1元不等,如果查询的量大的话可以降低费用,免费的接口有几家常用快递不支持接口模式,只支持 & htmlAPI,要求用户添加外链,支持300多家国内外快递物流查询。
& & & & 快递网每天可以免费查询500次,超过500次收费,每次0.05元,只有即时查询和订阅推送接口,要求用户添加外链,支持395家国内外快递物流查询。
& & & & &不同公司的快递查询接口接入类似,都需要注册&,申请账号获取KEY和ID,如果是订阅接口需要技术联调。以快递鸟及时查询接口接入为例。
& & & 根据快递单号和快递公司编码查询物流轨迹信息。接口需要指定快递单号的快递公司编码,格式不对或则编码错误都会返失败的信息。如:EMS物流单号应选择快递公司编码(EMS)返回的物流跟踪信息按照发生的时间升序排列。
& & & & 接口支持的消息接收方式为HTTP POST
& & & & 请求方法的编码格式(utf-8):&application/x-www-form-charset=utf-8&
& & & & API地址:http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx
请求系统级参数
RequestData
请求内容需进行URL(utf-8)编码。请求内容JSON或XML格式,须和DataType一致。
EBusinessID
商户ID,请在页面查看。
RequestType
请求指令类型:1002
数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后进行URL(utf-8)编码。详细过程请查看Demo。
请求、返回数据类型:1-xml,2-json;默认为xml格式
请求内容字段定义
ShipperCode
快递公司编码
LogisticCode
返回参数定义
EBusinessID
ShipperCode
快递公司编码
LogisticCode
物流运单号
物流状态:2-在途中,3-签收,4-问题件
AcceptTime
AcceptStation
Java调用示例
import java.io.BufferedR
import java.io.IOE
import java.io.InputStreamR
java.io.OutputStreamW
java.io.UnsupportedEncodingExcept
java.net.HttpURLC
import java.net.URL;
import java.net.URLE
java.security.MessageD
import java.util.HashM
import java.util.M
* 快递鸟物流轨迹即时查询接口
* @技术QQ群:
/YundanChaxu
* @copyright: 深圳市快金数据技术
服务有限公司
* DEMO中的电商ID与私钥仅限测试使
用,正式环境请单独注册账号
* 单日超过500单查询量,建议接入
我方物流轨迹订阅推送接口
* ID和Key请到官网申请:
/ServiceAppl
public class KdniaoTrackQueryAPI
public static void main
(String[] args) {
KdniaoTrackQueryAPI api = new
KdniaoTrackQueryAPI();
api.getOrderTracesByJson(&ANE&,
System.out.print(result);
(Exception e) {
e.printStackTrace();
private String
EBusinessID=&请到快递鸟官网申请
/ServiceAppl
//电商加密私钥,快递鸟提
供,注意保管,不要泄漏
private String AppKey=&请
到快递鸟官网申请
/ServiceAppl
private String
ReqURL=&http://api.kdniao.cc/Ebus
iness/EbusinessOrderHandle.aspx&;
* Json方式 查询订单物流轨迹
* @throws Exception
public String
getOrderTracesByJson(String
expCode, String expNo) throws
Exception{
requestData=
&{'OrderCode':'','ShipperCode':'&
+ expCode + &','LogisticCode':'&
+ expNo + &'}&;
Map&String,
String& params = new
HashMap&String, String&();
params.put
(&RequestData&, urlEncoder
(requestData, &UTF-8&));
params.put
(&EBusinessID&, EBusinessID);
params.put
(&RequestType&, &1002&);
dataSign=encrypt(requestData,
AppKey, &UTF-8&);
params.put
(&DataSign&, urlEncoder(dataSign,
&UTF-8&));
params.put
(&DataType&, &2&);
result=sendPost(ReqURL, params);
//根据公司业务处
理返回的信息......
* XML方式 查询订单物流轨迹
* @throws Exception
public String
getOrderTracesByXml() throws
Exception{
requestData= &&?xml version=
\&1.0\& encoding=\&utf-8\& ?&&+
&&Content&&+
&&OrderCode&&/OrderCode&&+
&&ShipperCode&SF&/ShipperCode&&+
&&LogisticCode&&/Logi
sticCode&&+
&&/Content&&;
Map&String,
String& params = new
HashMap&String, String&();
params.put
(&RequestData&, urlEncoder
(requestData, &UTF-8&));
params.put
(&EBusinessID&, EBusinessID);
params.put
(&RequestType&, &1002&);
dataSign=encrypt(requestData,
AppKey, &UTF-8&);
params.put
(&DataSign&, urlEncoder(dataSign,
&UTF-8&));
params.put
(&DataType&, &1&);
result=sendPost(ReqURL, params);
//根据公司业务处
理返回的信息......
* @param str 内容
* @param charset 编码方式
* @throws Exception
@SuppressWarnings
(&unused&)
private String MD5(String
str, String charset) throws
Exception {
MessageDigest md =
MessageDigest.getInstance(&MD5&);
(str.getBytes(charset));
byte[] result =
md.digest();
StringBuffer sb = new
StringBuffer(32);
for (int i = 0; i &
result. i++) {
int val = result
if (val &= 0xf) {
(Integer.toHexString(val));
return sb.toString
().toLowerCase();
* base64编码
* @param str 内容
* @param charset 编码方式
UnsupportedEncodingException
private String base64
(String str, String charset)
UnsupportedEncodingException{
String encoded =
base64Encode(str.getBytes
(charset));
@SuppressWarnings
(&unused&)
private String
urlEncoder(String str, String
charset) throws
UnsupportedEncodingException{
String result =
URLEncoder.encode(str, charset);
* 电商Sign签名生成
* @param content 内容
* @param keyValue Appkey
* @param charset 编码方式
UnsupportedEncodingException
,Exception
* @return DataSign签名
@SuppressWarnings
(&unused&)
private String encrypt
(String content, String keyValue,
String charset) throws
UnsupportedEncodingException,
if (keyValue !=
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&String, String&
OutputStreamWriter out =
BufferedReader in =
StringBuilder result =
new StringBuilder();
URL realUrl = new
HttpURLConnection
conn =(HttpURLConnection)
realUrl.openConnection();
// 发送POST请求必须设
置如下两行
conn.setDoOutput
conn.setDoInput
// POST方法
conn.setRequestMethod(&POST&);
// 设置通用的请求属性
conn.setRequestProperty(&accept&,
conn.setRequestProperty
(&connection&, &Keep-Alive&);
conn.setRequestProperty(&user-
&Mozilla/4.0
( MSIE 6.0; Windows NT
5.1;SV1)&);
conn.setRequestProperty
(&Content-Type&, &application/x-
www-form-urlencoded&);
conn.connect();
// 获取URLConnection
对象对应的输出流
OutputStreamWriter
(conn.getOutputStream(), &UTF-
// 发送请求参数
if (params != null) {
StringBuilder param = new
StringBuilder();
(Map.Entry&String, String& 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的响应
BufferedReader(
InputStreamReader
(conn.getInputStream(), &UTF-
while ((line =
in.readLine()) != null) {
result.append
} catch (Exception e) {
e.printStackTrace();
//使用finally块来关闭输出
流、输入流
if(out!=null){
out.close();
if(in!=null){
in.close();
catch(IOException
ex.printStackTrace();
return result.toString();
private static char[]
base64EncodeChars = new char[] {
'A', 'B', 'C', 'D', 'E',
'F', 'G', 'H',
'I', 'J', 'K', 'L', 'M',
'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U',
'V', 'W', 'X',
'Y', 'Z', 'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k',
'l', 'm', 'n',
'o', 'p', 'q', 'r', 's',
't', 'u', 'v',
'w', 'x', 'y', 'z', '0',
'1', '2', '3',
'4', '5', '6', '7', '8',
'9', '+', '/' };
public static String
base64Encode(byte[] data) {
StringBuffer sb = new
StringBuffer();
int len = data.
int i = 0;
int b1, b2, b3;
while (i & len) {
b1 = data[i++] &
if (i == len)
(base64EncodeChars[b1 &&& 2]);
(base64EncodeChars[(b1 & 0x3) &&
sb.append(&==&);
b2 = data[i++] &
if (i == len)
(base64EncodeChars[b1 &&& 2]);
(base64EncodeChars[((b1 & 0x03)
&& 4) | ((b2 & 0xf0) &&& 4)]);
(base64EncodeChars[(b2 & 0x0f) &&
sb.append(&=&);
b3 = data[i++] &
(base64EncodeChars[b1 &&& 2]);
(base64EncodeChars[((b1 & 0x03)
&& 4) | ((b2 & 0xf0) &&& 4)]);
(base64EncodeChars[((b2 & 0x0f)
&& 2) | ((b3 & 0xc0) &&& 6)]);
(base64EncodeChars[b3 & 0x3f]);
return sb.toString();
本文已收录于以下专栏:
相关文章推荐
背景这篇博客从发布到现在已经很久了,根据我对这篇博客的统计及数据观察,对快递查询接口的使用的人还是比较多的,所以我准备把博客重新梳理一下并附加上一下代码。使用快递的接口,之前是为了做公众号,用户输入订...
package com.
import java.io.InputStreamRimport java.net.MalformedURLEimport java...
首先得申请开发者账号,貌似现在只能已公司名义填写相关信息,有账号后,登陆开发者中心,到接口处申请你所需要的接口,等待审核,这个过程有点长,时间在一个星期左右不等,不然没有接口的使用权限。
    开...
可实现需求
快递查询Api接口
接口文档及各开发语言Demo
查询Api接口定义系统级输入参数
应用级输入参数
返回结果参数
请求JSON参数
响应JSON参数
查询Api...
快递物流第三方接口
第一步、编写横向菜单的HTML代码架构请将以下代码添加到HTML文档的导航栏区域中。menu&&
Code52.Net
第二步、...
在CSS中经常会使用到li标签,默认情况下使用li时,会在文字前面自动加上一个黑色的小圆点,有时候会觉得这个圆点多余,所以要去掉。下面介绍几种常用的方法。
    方法一:
     百度...
看到一篇有趣的文章The Eight Levels of Programmers。以前似乎看过不少这种程序员的多少个级别、境界,但这篇语言很风趣,而且分类比较细化,让人觉得挺合情合理、无法反驳的。绝大...
他的最新文章
讲师:汪剑
讲师:刘道宽
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)(window.slotbydup=window.slotbydup || []).push({
id: '2013873',
container: s,
size: '960,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2013875',
container: s,
size: '960,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2013877',
container: s,
size: '960,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2013879',
container: s,
size: '960,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2013881',
container: s,
size: '960,90',
display: 'inlay-fix'
您的位置: &>&&>&
(window.slotbydup=window.slotbydup || []).push({
id: '2013885',
container: s,
size: '250,250',
display: 'inlay-fix'
MallWWI新模式返利商城系统基于成熟的飞蛙商城系统程序框架,支持多数据库配合,精美的界面模板,人性化的操作体验,完备的订单流
飞蛙微分销商城系统(FeiWa WeiShop)是一款面向单店铺多用户微商城分销系统,基于目前最流行的WEB2.0的架构,使用php+mysql开发
昂酷二手车系统是一个以PHP+MySQL进行开发的二手车发布网站源码。
详细说明:/thread-.html
恒友网络威客+商城系统 (WK+shop) 基于PHP+MySQL的技术,采用ThinkPHP5.0框架开发。WK+shop是威客任务系统与多商家商城系统结合
5分钟,即可开启企业网购官网,树立品牌形象!
1秒钟,让您的企业网站变成大企业范儿!
没错,这就是OURPHP!
OURPHP 傲派,它
乐得同城优惠券系统是一个PHP+MySQL进行开发的优惠券领取(发布)网站源码。
1.乐得同城优惠券系统基于php+mysql运行,
硬汉联盟是一个互联网家装平台,平台上聚集了众多本地的装修设计师、工长、工人、项目经理、监理、装修顾问等资源,同时该平台也
五克商城小程序后台管理系统是一个以PHP进行开发的带后台的微信商城小程序源码。
支持微信小程序一键登录
支持安卓端
ShopsN免费版B2C电子商城是上海亿速网络科技有限公司旗下产品 , 一款符合企业级商用标准全功能的真正允许免费商业用途无功能删减
客客出品专业威客系统(简称KPPW)是武汉客客团队自主研发的开源系统项目,主要应用于威客模式的在线服务交易平台搭建。KPPW客客
飞蛙B2B2C(FeiWa B2B2C)商城系统是山东破浪网络科技有限公司于2017年最新推出的企业级B2B2C电商平台系统,采用PHP5+MySQL技术为
游戏平台充值支付源码是一个永纯支付模板,只要是mysql数据库百分之90的站点以及程序都支持使用该模板
MYSQL数据库需5以上版本,
Niushop商城是全国首创集 【B2B2C多用户商城】 + 【微信微分销】 + 【电商平台招商运营 + iOS 、Android多平台客户端】 PHP开源电
汉潮B2B2C多用户商城系统是一个以PHP+MySQL进行开发的PHP多用户商城网站系统源码。
汉潮多用户商城系统后台基础功能介绍:
ThinkPHP内核-纯正的中国罗斯福互助基金程序
安装说明;
1.恢复数据:将yykjweb.sql文件请采用phpMyAdmin进行导入; 更多数
页次:1/19&每页15&&&&首页&&上一页&&&&&&&&转到:第 1 页第 2 页第 3 页第 4 页第 5 页第 6 页第 7 页第 8 页第 9 页第 10 页第 11 页第 12 页第 13 页第 14 页第 15 页第 16 页第 17 页第 18 页第 19 页
(window.slotbydup=window.slotbydup || []).push({
id: '2013892',
container: s,
size: '960,90',
display: 'inlay-fix'
Copyright &
Corporation662p开源网版权所有
客户端下载:&&
网站建设服务
客服热线:9:00-18:00}

我要回帖

更多关于 java开源电商系统源码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信