2017快递鸟物流评价接口API接入代码

合集下载

快递鸟API电子面单接口说明文档

快递鸟API电子面单接口说明文档

快递鸟电子面单接口说明文档快递鸟2017-04-25版本一、前言1、业务背景随着电子商务和物流信息化服务的迅猛发展,电子面单已经成为了商家快速发货并连接订单与物流的有力工具。

快递鸟电子面单接口是快递鸟提供给独立电商、仓储管理系统、打单软件、物流供应链等物流系统平台使用的物流下单接口,满足商家在线发货需求并提供打印电子面单的服务。

商家通过贵司系统选择物流公司发送请求通知快递公司有快递要发货,贵公司把数据通过此接口转发到快递鸟,由快递鸟为商家通知对应的快递公司快递员上门取件。

电子面单成功下单后,快递鸟系统内将自动订阅,一旦轨迹发生变化时,快递鸟将调用贵司推送接收接口将物流信息反向推送至商家。

同时若客户使用代收货款服务,快递鸟会将代收货款的货款状态独立推送给商家用户。

电子面单具有如下特点:●打印效率高相比传统针式打印机套打模式,打印速度提升6-8倍,热敏打印机打印速度平均30-40张/分。

●发货效率高包裹出库时减少了抽底单的工序,降低了操作成本、提升操作效率,运单和订单即时绑定,无需人工再次扫描绑定发货。

目前商家在使用电子面单的过程中也存在一些情况导致部分用户无法顺畅使用,例如:●大电商有多家合作快递公司,各家快递公司的模板尺寸不一,需要使用多个打印机打印面单。

●单号作废后回收机制不完善导致电商成本升高。

●二联电子面单无底单,运费核账存在问题(部分商家货物重量以称重为准)。

●打印时发现面单号余额不足,耽误发货。

●小B电商发货量不够申请网点的电子面单服务。

快递鸟电子面单接口为解决客户以上问题,新增如下解决方案:●电子面单余量查询:可通过电子面单余量查询接口查询,并且在快递鸟官网可设置余额不足提醒值(后续会加上余额不足短信/邮件提醒功能)●电子面单取消/回收:可通过电子面单取消接口,回收部分加盟快递公司的面单号。

●通用电子面单模板,含二联、三联模板●快递公司电子面单客户号在线申请●散户模式电子面单:部分快递公司无需申请电子面单客户号即可直接打印电子面单。

免费顺丰快递接口api对接调用demo

免费顺丰快递接口api对接调用demo
申请后ID和KEY自动激活
(1)开发服务
开发自身业务的服务,服务需按照后面接口的定义规则。
(2)查看接口调用的DEMO
物流技术接口提供调用物流接口的DEMO(.Net版本),包括网上在线订单下单、物流轨迹查询等物流行业标准化的下单操作流程与数据查询格式。提交接入处理的相关代码如有不明白的地方可与物流技术接口人协作开发。
(f)接收方判断签名后的数据跟传递过来的DataSign是否一致,如果一致进行业务操作,如果不一直返回错误。
9
///<summary>
///电商Sign签名
///</summary>
///<param name="content">内容</param>
///<param name="keyValue">Appkey</param>
"LogisticCode": "118461988807",
"Success": true,
"State": 3,
"Reason": null,
"Traces": [
{
"AcceptTime": "2014/06/25 08:05:37",
"AcceptStation": "正在派件..(派件人:邓裕富,电话:18718866310)[深圳市]",
在POST请求中会传递5个参数
4个必须参数:
RequestType=请求指令类型
EBusinessID==电商ID

顺丰快递接口api对接调用说明【快递鸟】

顺丰快递接口api对接调用说明【快递鸟】

常用快递接口,顺丰快递接口api对接调用顺丰快递是常用快递,电商、ERP等企业都需要对接其快递接口api。

对接有两种方式,第一和顺丰快递直接对接,第二,和快递鸟对接,和快递鸟对接可以一次性接入其他常用快递的接口。

快递100有顺丰接口,不过只能查询不能打印电子面单,而且是收费的,菜鸟有电子面单接口,但又不支持顺丰快递。

接口平台:快递鸟免费查询接口接口地址:http://ap /Ebusiness/EbusinessOrd erHandle.aspx支持格式:json请求方式:HTTP POST请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。

顺丰快递接口api申请JSON请求/返回示例:1.请求{"OrderCode": "","ShipperCode": "SF","LogisticCode": "118650888018"}2.返回没有物流轨迹的{"EBusinessID": "1109259","Traces": [],"OrderCode": "","ShipperCode": "SF","LogisticCode": "118461988807","Success": false,"Reason": null}有物流轨迹的{"EBusinessID": "1109259","OrderCode": "","ShipperCode": "SF","LogisticCode": "118461988807","Success": true,"State": 3,"Reason": null,"Traces": [{"AcceptTime": "2014/06/25 08:05:37","AcceptStation": "正在派件..(派件人:邓裕富,电话:187****6310)[深圳市]","Remark": null},{"AcceptTime": "2014/06/25 04:01:28","AcceptStation": "快件在深圳集散中心,准备送往下一站深圳[深圳市]","Remark": null},{"AcceptTime": "2014/06/25 01:41:06","AcceptStation": "快件在深圳集散中心[深圳市]","Remark": null},{"AcceptTime": "2014/06/24 20:18:58","AcceptStation": "已收件[深圳市]","Remark": null},{"AcceptTime": "2014/06/24 20:55:28","AcceptStation": "快件在深圳,准备送往下一站深圳集散中心[深圳市]", "Remark": null},{"AcceptTime": "2014/06/25 10:23:03","AcceptStation": "派件已签收[深圳市]","Remark": null},{"AcceptTime": "2014/06/25 10:23:03","AcceptStation": "签收人是:已签收[深圳市]","Remark": null}]}注:接口及签名说明1)、支持http传输协议2)、支持的数据传输格式Json/Xml(暂不支持<content/>这种形式)。

快递物流寄件下单api接口调用对接

快递物流寄件下单api接口调用对接

快递物流寄件下单api接口调用对接为了让你对接更简单,我会分享源代码,把源码复制到你的项目上,就能快速完成电商售后退货快递寄件下单预约快递员上门取件接口对接,调用快递鸟提供的上门取件API标准接口,成功调用后,快递员会准时上门取件,同时支持快递单号物流轨迹查询,快递鸟物流单号查询api接口不区分开发语言,支持Java,C#,PHP,Python,ObjectC等开发语言的程序调用。

1 接口规范说明1.1 接口规范及说明1.1.1 报文及报文编码报文格式:Json格式请求方法的编码格式(utf-8):交互协议上统一用UTF-8,避免传递中文数据出现乱码。

1.1.2 接口数据包结构图例- 数据包结构(系统级{数据})1.1.3 JSON示例1.1.4 系统级参数*快递所有接口统一使用此系统级参数,根据不同的请求接口指令接入不同的接口。

1.1.5 流程示意图1.1.6 名词定义1.2 签名说明1.2.1 关于签名快递鸟和第三方电子商务公司系统进行对接,有一定的安全机制。

采用IP认证加签名的方式对接,具体方案如下:1. 防止数据被篡改2. 注:DataSign生成后,对方接收到数据后,以同样的算法进行签名(推送接口RequestType为101/102不需要进行URL编码),生成摘要,对比两者的摘要是否相同,如果不同,说明传递过程中发生数据篡改。

2.调用接口的身份认证注册成为快递鸟用户后,会生成对应的用户ID和APIKey,用户ID相当于用户名,APIKey相当于密码。

举例:1.假设2.那么DataSign签名的内容为3.接收方收到数据后,获得EBusinessID 和RequestData和DataSign等这几个数据。

4.接收方对EBusinessID得到APIKey,RequestData+APIKey的数据进行md5和base64后的内容就为OWFhM2I5N2ViM2U2MGRkMjc4YzU2NmVlZWI3ZDk0MmE=5.接收方判断签名后的数据跟传递过来的DataSign是否一致,如果一致进行业务操作,如果不一致返回错误。

快递鸟接口支持快递公司编码

快递鸟接口支持快递公司编码

高铁速递
黑狗冷链
恒路物流
天地华宇
鸿桥供应链
海派通物流公司
华强物流
华夏龙物流
河北建华
汇达快递
汇丰物流
华航快递
华翰物流
黄马甲快递
海盟速递
华企快运
昊盛物流
鸿泰物流
合肥汇文
辉隆物流
海红网送
航宇快递
豪翔物流
开心快递
Hale Waihona Puke 宏递快运黑猫速运合心速递
汇文快递
环国运物流
华瀚快递
天天快递
海欣斯快递
Hi淘易快递
猴急送物流
H
汇捷物流 飞豹速递
香港邮政
互联快运
共联配
海联快递
顺时达物流
泰联物流
中强物流
如家国际快递
居家通
洪都拉斯
宏捷国际物流
宏品物流
GTSD HGLL HLWL HOAU HOTSCM HPTEX hq568 HXLWL HBJH HDKD HF HHKD HHWL DNWL HMSD HQKY HSWL HTWL HFHW HLONGWL HAIHONGWANGSONG HANGYU HAOXIANGWULIU HAPPYLINK HDWL HEIMAO56 HEXINEXPRESS HFHW HGY56 HHAIR56 HHTT HIGHSINCE HITAOE HJS HJWL HKEEX HKPOST HLKYTJ HLPGYL HLTOP HNSSD56 HNTLWL HNZQWL HOMECOURIER HOMEXPRESS HONDURAS HONGJIE HONGPINWULIU
尼尔物流
速尔哪吒
N 腾达速递
诺尔国际物流

快递鸟丰网速运快递查询接口源码_快递鸟单号查询API

快递鸟丰网速运快递查询接口源码_快递鸟单号查询API

快递鸟丰⽹速运快递查询接⼝源码_快递鸟单号查询API看完快递鸟api顺丰丰⽹速运快递对接教程这篇⽂章,然后把源码复制到你的项⽬上,就能快速完成丰⽹速运快递接⼝对接.更适合刚⼊门的菜鸟,调⽤快递鸟的丰⽹速运快递快递查询API接⼝,能查询到快递单号从收件、运输,到转运中⼼,派送到签收等各个环节的物流发货状态。

快递鸟api接⼝不区分开发语⾔,⽀持Java,C#,PHP,Python,ObjectC等开发语⾔的程序调⽤。

编码⽤顺丰编码即可查询(SF),下⾯具体讲解实现过程.1.完成前期准备⼯作1.1,去快递鸟官⽹免费注册⼀个账号1.2,免费获得⼀个apiKey(接⼝权限验证需要)1.3,完成实名认证流程1.4,订购⼀个免费套餐2.API接⼝2.3,请求⽅式:POST2.4,编码格式(utf-8):application/x-www-form-urlencoded;charset=utf-82.5,返回类型:JSON2.6,调试页⾯:2.7,调试⼯具:去调试(使⽤快递鸟账号登录)3.请求参数(Headers)4.请求参数(Body)6.请求完整报⽂(⽰例)RequestData=%7b%27OrderCode%27%3a%27%27%2c%27ShipperCode%27%3a%27JTSD%27%2c%27LogisticCode%27%3a%27jt0000052600488%27%7d&EBusinessID=1264783&RequestType=1002&DataSign=MTYyMDU4NWQ2NmU1ZDI2MDEzNGE5YmVlM2YxYzEzMTM%3d&DataType=27.成功返回报⽂(⽰例){"LogisticCode": "SF0000052600488","ShipperCode": "SF","Traces": [{"AcceptStation": "【芜湖市】【芜湖镜湖⽹点】的邓拥军 178********已取件","AcceptTime": "2020-03-16 16:26:13"},{"AcceptStation": "【芜湖市】【芜湖镜湖⽹点】的邓拥军 178********已取件","AcceptTime": "2020-03-16 16:41:33"},{"AcceptStation": "【芜湖市】【芜湖镜湖⽹点】已收件","AcceptTime": "2020-03-16 17:39:21"},{"AcceptStation": "【芜湖市】快件离开【芜湖镜湖⽹点】已发往【芜湖转运中⼼】","AcceptTime": "2020-03-16 17:40:27"},{"AcceptStation": "【芜湖市】快件到达【芜湖转运中⼼】","AcceptTime": "2020-03-16 19:36:32"},{"AcceptStation": "【芜湖市】快件离开【芜湖转运中⼼】已发往【合肥转运中⼼】","AcceptTime": "2020-03-16 20:47:03"},{"AcceptStation": "【合肥市】快件到达【合肥转运中⼼】","AcceptTime": "2020-03-16 23:40:10"},{"AcceptStation": "【合肥市】快件离开【合肥转运中⼼】已发往【⼴州花都转运中⼼】","AcceptTime": "2020-03-17 00:10:48"},{"AcceptStation": "【⼴州市】快件到达【⼴州花都转运中⼼】","AcceptTime": "2020-03-17 20:45:00"},{"AcceptStation": "【⼴州市】快件离开【⼴州花都转运中⼼】已发往【深圳宝安转运中⼼】","AcceptTime": "2020-03-18 00:17:55"},{"AcceptStation": "【深圳市】快件到达【深圳宝安转运中⼼】","AcceptTime": "2020-03-18 03:00:17"},{"AcceptStation": "【深圳市】快件离开【深圳宝安转运中⼼】已发往【深圳福⽥⽹点】","AcceptTime": "2020-03-18 04:44:39"},{"AcceptStation": "【深圳市】【深圳福⽥⽹点】的邹俊林 176********正在派件","AcceptTime": "2020-03-18 08:10:09"},{"AcceptStation": "【深圳市】【深圳福⽥⽹点】的赵凯 159********正在派件","AcceptTime": "2020-03-18 09:55:19"},{"AcceptStation": "【深圳市】快件已签收,签收⼈是【代收】,如有疑问请联系:159********,期待再次为您服务", "AcceptTime": "2020-03-18 14:53:54"}],"State": "3","EBusinessID": "1264783","Success": true}8.失败返回报⽂(⽰例){"LogisticCode": "SF0000052600488","ShipperCode": "SF","Traces": [],"State": "0","EBusinessID": "1264783","Reason": "业务错误[没有可⽤套餐]","Success": false}说明:未实名认证,未订购套餐,套餐可⽤查询量已经⽤完都会返回此报⽂信息9.⽆轨迹返回报⽂(⽰例){"LogisticCode": "SF0000052600488","ShipperCode": "SF","Traces": [],"State": "0","EBusinessID": "1264783","Reason": "暂⽆轨迹信息","Success": true}10.分步讲解(C#版本)10.1,请求数据包结构10.2,C#调⽤代码⽰例//电商IDstring eEBusinessID = "test1617571";//电商加密私钥,快递鸟提供,注意保管,不要泄漏string appKey= "554343b2-7252-439b-b4eb-1af42c8f2175";//请求urlstring reqURL = ":8080/kdniaosandbox/gateway/exterfaceInvoke.json";//请求指令string reqType="1002";//2-jsonstring dataType = "2";//字符编码采⽤UTF-8string charset = "UTF-8";//JSON字符串stringstring jsonStr = "{"OrderCode":"","ShipperCode":"SF","LogisticCode":"SF0000052600488"}" ;//把(jsonStr+APIKey)进⾏MD5加密string md5Str=MD5(jsonStr + apiKey, charset);//把md5Str 进⾏Base64编码string base64Str=base64(md5Str,charset);//进⾏URL编码 (utf-8)string datasign = HttpUtility.UrlEncode(base64Str, charset);//请求报⽂参数string postStr = "RequestType=reqType&EBusinessID= eEBusinessID&RequestData=jsonStr&DataSign= datasign&DataType=dataType";//通讯协议使⽤Http协议Post请求⽅式返回轨迹数据string post = SendPost(reqURL, postStr);//获取到的post数据就是快递鸟返回的完整报⽂,接下来⾃⼰写⼀个解析json的⽅法就能获取到⾥⾯的字段信息。

快递鸟API查询快递接口

快递鸟API查询快递接口

1.申请一个快递鸟的帐号获取授权申请/reg快递鸟的帐号使永久免费的,且申请了立即就能用的,也不需要审核。

2.按照单号识别接口和即时查询接口封装好数据3.获取返回的 json 数据输出import jsonimport urllibimport urllib.requestimport hashlibimport base64import urllib.parse# 此处为快递鸟官网申请的帐号和密码APP_id = "1266271"APP_key = "7526a46e-3a2a-4f5b-8659-d72f361e3386"def encrypt(origin_data, appkey):"""数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码""" m = hashlib.md5()m.update((origin_data+appkey).encode("utf8"))encodestr = m.hexdigest()base64_text = base64.b64encode(encodestr.encode(encoding='utf-8'))return base64_textdef sendpost(url, datas):"""发送post请求"""postdata = urllib.parse.urlencode(datas).encode('utf-8')header = {"Accept": "application/x-www-form-urlencoded;charset=utf-8","Accept-Encoding": "utf-8"}req = urllib.request.Request(url, postdata, header)get_data = (urllib.request.urlopen(req).read().decode('utf-8'))return get_datadef get_company(logistic_code, appid, appkey, url):"""获取对应快递单号的快递公司代码和名称"""data1 = {'LogisticCode': logistic_code}d1 = json.dumps(data1, sort_keys=True)requestdata = encrypt(d1, appkey)post_data = {'RequestData': d1,'EBusinessID': appid,'RequestType': '2002','DataType': '2','DataSign': requestdata.decode()}json_data = sendpost(url, post_data)sort_data = json.loads(json_data)return sort_datadef get_traces(logistic_code, shipper_code, appid, appkey, url):"""查询接口支持按照运单号查询(单个查询)"""data1 = {'LogisticCode': logistic_code, 'ShipperCode': shipper_code}d1 = json.dumps(data1, sort_keys=True)requestdata = encrypt(d1, appkey)post_data = {'RequestData': d1, 'EBusinessID': appid, 'RequestType': '1002', 'DataType': '2','DataSign': requestdata.decode()}json_data = sendpost(url, post_data)sort_data = json.loads(json_data)return sort_datadef recognise(expresscode):"""输出数据"""url = ':8081/Ebusiness/EbusinessOrderHandle.aspx' data = get_company(expresscode, APP_id, APP_key, url)if not any(data['Shippers']):print("未查到该快递信息,请检查快递单号是否有误!")else:print("已查到该", str(data['Shippers'][0]['ShipperName'])+"("+str(data['Shippers'][0]['ShipperCode'])+")", expresscode)trace_data = get_traces(expresscode, data['Shippers'][0]['ShipperCode'], APP_id, APP_key, url)if trace_data['Success'] == "false" or not any(trace_data['Traces']): print("未查询到该快递物流轨迹!")else:str_state = "问题件"if trace_data['State'] == '2':str_state = "在途中"if trace_data['State'] == '3':str_state = "已签收"print("目前状态: "+str_state)trace_data = trace_data['Traces']item_no = 1for item in trace_data:print(str(item_no)+":", item['AcceptTime'],item['AcceptStation'])item_no += 1print("\n")returnwhile True:code = input("请输入快递单号(Esc退出):")code = code.strip()if code == "esc":breakrecognise(code)【疑问解答】1、问题:快递鸟接口有并发要求吗?快递鸟即时查询接口并发不超过10次/秒,物流跟踪接口订阅不超过30次/秒,电子面单接口下单不超过20次/秒。

免费物流查询API接口对接流程-快递鸟

免费物流查询API接口对接流程-快递鸟

目前快递鸟物流查询API接口有两种对接方式,这两种方式都需要先到快递鸟官网上填写申请信息(注册网址:/reg)填写申请信息,信息表格中“日查询次数”要选择对,如果不确认,可以先接入查询接口。

申请完成,登录就可以看到自己的ID和KEY,这个ID和KEY只能一个公司使用,保证数据的稳定性,所以这个ID和KEY都是保密的。

从这一步开始,每日查询次数≤3000次和>3000的对接方式就不一样了。

1.每日查询次数≤3000次(即时查询接口)即时查询接口,是根据快递单号和快递公司编码实时查询物流轨迹信息的接口。

注册后可以参照如下进行开发对接:1.1即时查询接口对接描述/说明(1)根据订单编号和快递公司编码查询物流轨迹信息(支持在快递鸟订单)。

(2)根据快递单号和快递公司编码查询物流轨迹信息。

(3)接口需要指定快递单号的快递公司编码,格式不对或则编码错误都会返失败的信息。

如:EMS物流单号应选择快递公司编码(EMS)查看快递公司编码(4)返回的物流跟踪信息按照发生的时间升序排列。

(5)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。

(6)请求系统级参数说明:备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)。

(7)接口地址:API地址:/Ebusiness/EbusinessOrderHandle.aspx (8)接口参数请求内容字段定义返回参数定义2.每日查询次数>3000(订阅接口)订阅推送接口,用户订阅快递单号,快递鸟系统会定时推送新的物流信息。

注册后填写《用户接入表》(接入表下载网址/download),完善《用户信息登记表》、《物流数据需求表》这两个表格的内容,并发送到service@。

国际快递查询API接口对接JAVA示例

国际快递查询API接口对接JAVA示例

国际快递查询API接⼝对接JAVA⽰例国际物流快递查询API接⼝java如何对接国际快递查询接⼝的需求量很⼤,例如⼀些跨境电商B2C⽹站、快递查询APP、快递柜、跨境物流公司等都会需要⽤到国际快递接⼝。

⽬前市⾯上的快递接⼝,以国内快递居多,有些虽然号称⽀持多家国际快递和国际邮政,但实际调⽤时,由于国际快递⽹站变化较多,所以经常出现不稳定的情况。

这⾥我要介绍的是快递鸟的国际快递接⼝,他们⼀直专做国际快递,⽀持的国内外600多家快递,⼤部分国外主流快递物流公司的接⼝可以对接,提供的接⼝也⾮常可靠。

国际快递特性(含国际邮政)1.可在两个⽹站查询到信息:属于万国邮联的国际邮政单号,可以分别在发件国家邮政官⽹与⽬的国家邮政官⽹查询到数据。

相对⽽⾔,国内快递⼀般只需要在⼀个⽹站查询数据。

2.海关问题:国际包裹是跨国包裹,需要通过两国的海关查验,有时候会被海关扣押,进⽽导致时效不如国内快递稳定。

3.运输时间长:国际邮政包裹相对国际快递价格便宜很多,所以运输时间也慢,甚⾄会需要1到2个⽉才能签收。

4.多语⾔问题:由于包裹是跨国的,必然会涉及多语⾔问题,国内客户需要看到的是中⽂信息,⽽国外客户希望看到的是当地语⾔的物流信息。

国际快递API特性(快递鸟)1.包含发件国与⽬的国的数据:快递鸟的API中包含的参数有 origin_info(发件国物流信息)和destination_info(⽬的国物流信息),所以通过该接⼝可以让⽤户看到最为完整的物信息。

2.智能识别快递状态:当检测到包裹在海关停滞,或者包裹被退回等信息,快递鸟会返回“exception”(可能异常)的状态,帮助⽤户第⼀时间发现异常件,从⽽尽早处理。

3.按照单号个数计费:由于国际包裹的运输时间很长,完整的运输周期可能需要两个⽉,⽽每天⾄少需要查询两次以上。

所以按照查询单号个数计费⽽不是按照API调⽤次数计费,是最为良⼼的计费⽅式。

4.多语⾔API:针对不同的快递商,可以按照语⾔返回不同的结果。

快递鸟电子面单API接口使用指南

快递鸟电子面单API接口使用指南

快递鸟电子面单使用手册V1.0目录1 服务介绍 (1)2 服务价值 (2)3 准备工作 (2)3.1申请电子面单客户号及单号 (2)3.1.1月结模式申请客户号 (3)3.1.1快递鸟模式直接打印 (9)3.2购买或充值单号 (9)3.3准备热敏打印纸及打印机 (9)4 对接流程 (10)4.1 自营商家对接流程 (10)4.2 系统商,电商平台商家对接流程 (15)5 常见问题 (15)1服务介绍快递鸟电子面单API服务,是指由快递公司通过快递鸟电子面单API,向打单用户提供物流单号,实现种通过热敏纸打印输出纸质物流面单并发货的服务。

现该服务已支持21家快递公司,57个官方承认模板(含隐私快递),有效提高打印速度4-6倍,一次开发即可接入所有支持快递公司。

目前已支持:顺丰(SF)、EMS(EMS)、宅急送(ZJS)、圆通(YTO)、百世快递(HTKY)、中通(ZTO)、韵达(YD)、申通(STO)、德邦(DBL)、优速(UC)、京东(JD)、信丰(XFEX)、全峰(QFKD)、跨越速运(KYSY)、安能小包(ANE)、快捷快递(FAST)、国通(GTO)、天天快递(HHTT)、邮政快递包裹(YZPY)、中铁快运(ZTKY),后续更多的快递公司正在对接中。

EMS电子面单模板展示2服务价值打印速度提升:电子面单是普通纸质面单的4-6倍,平均每单打印只需花费1-2秒钟,高效率的打单大大缓解电商等客户的大批量打单压力,轻松应对大促。

提高发货效率:传统发货模式,操作员需要将已打出的快递单和订单信息匹配后再发货,电子面单不需要把快递单和定单信息逐一匹配操作,在定单信息申请快递单号的时候就已完成了定单匹配;卖家无需再安排人员专门抽取“发货联”,操作效率进一步提升。

3准备工作针对自营商家,以下工作可在对接过程中准备,以便对接完成后即可上线立即使用。

平台及系统商可参考如下流程指导平台用户自行准备。

3.1申请电子面单客户号及单号电子面单客户号即请求打印面单时的用户账号或月结编码或客户编码,不同物流服务商的叫法不同而已。

快递鸟快递查询接口API代码

快递鸟快递查询接口API代码

快递鸟快递查询接口API代码1.代码使用说明(1)查询接口支持按照运单号查询(单个查询)。

(2)接口需要指定快递单号的快递公司编码,格式不对或则编码错误都会返失败的信息。

(3)返回的物流跟踪信息按照发生的时间升序排列。

(4)接口指令1002。

(5)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。

(6)接口提供:快递鸟2.功能展现(1)电商网站用户打开“我的订单”时调用此API显示物流信息详情。

(2)电商管理后台的物流系统,客服在对账前查询所有运单的签收状态,并追踪问题。

(3)每日调用次数限制不超过3000次,如超过该限制,可对接物流跟踪API。

(4)全流程的物流状态跟踪I3.代码签名采用IP 认证加签名的方式对接,具体方案如下:1)防止数据被篡改在POST 请求中会传递 5 个必须(R)参数RequestData==数据内容(URL 编码:UTF-8)EBusinessID==用户IDRequestType=请求指令类型DataSign== 数据内容签名:把(请求内容(未编码)+ApiKey)进行MD5 加密,然后Base64编码,最后进行URL(utf-8)编码DataType==返回数据类型(2-json)注:DataSign 生成后,对方接收到数据后,以同样的算法进行签名,生成摘要,对比两者的摘要是否相同,如果不同,说明传递过程中发生数据篡改。

2)调用接口的身份认证注册成为接口用户后,会生成对应的用户ID 和APIKey,用户ID 相当于用户名,APIKey 相当于密码。

4.接口申请1)接口网注册账号成为用户;提供的用户ID 是调用接口服务的身份证明,不可更改、不可转用,API Key 是应用访问API 的签名附加密钥,必须妥善保存。

两者关系类似于用户名和密码,两者都会在签名和业务参数中使用。

【整理】快递鸟预约取件接口API对接说明手册

【整理】快递鸟预约取件接口API对接说明手册

快递鸟预约取件接口API对接说明手册
一、接口描述/说明
(1)在线下单接口(预约取件接口)是提供给独立电商、仓储管理系统、物流供应链等物流系统平台使用的下单接口。

(2)为客户解决在线发货需求,商户通过网络选择快递公司发送请求通知快递公司有快递要发货。

(3)订单编号(OrderCode)不可重复提交,重复提交系统会返回具体错误代码。

(4)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。

(5)接口地址:API测试地址::8081/api/OOrderService
API正式地址:/OOrderService
(6)接口使用:在快递鸟网站申请接口KEY
请求系统级参数说明:
备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)
二、接口参数
请求内容字段定义
返回参数定义
三、示例。

python快速实现极兔快递物流轨迹单号查询API接口对接快递鸟

python快速实现极兔快递物流轨迹单号查询API接口对接快递鸟

python快速实现极兔快递物流轨迹单号查询API接⼝对接快递鸟在开发之前,我们先来了解⼀下什么是即时查询,按我的理解就是,我们提供运单号和快递公司编码,然后调⽤快递鸟提供的查询接⼝,即可查询运单号的发货情况,我们可以通过这个接⼝获悉到包裹的收件时间,派送时间,签收时间,签收⼈,如果体验做的更好⼀点,通过⼤数据可以分析这个包裹的预计派送时间。

以下是我通过调⽤快递鸟接⼝提供的即时查询接⼝获得的内容,快递鸟⽀持包括顺丰、中通、圆通、申通、韵达、百世、极兔、德邦、安能、EMS等在内的国内外超过600家的物流快递接⼝服务。

极兔快递查询调⽤快递鸟提供的快递查询API标准接⼝,快速对接600多家快递公司的物流轨迹查询,本篇⽂章实现<极兔快递>的快递单号查询。

⾸先我们准备好需要⽤到的资源,这⾥推荐⼤家去爱奇艺查看视频教程:测试商户ID:test1617571测试API key:554343b2-7252-439b-b4eb-1af42c8f2175(此Key仅限测试环境使⽤)API测试地址:接⼝参数,也叫业务参数,请求的业务接⼝不同,参数的字段,内容也不同,是跟着业务变化的,这⾥我们实现的是即时查询接⼝,请求指令类型:1002,快递鸟官⽹要求必须传递快递公司编码和物流单号,EMS快递的编码是EMS如要查看其他快递公司的编码,点击此链接:我们⽤真实单号(1160001630231)来完成轨迹接⼝调⽤,请求 JSON{'OrderCode':'','ShipperCode':'EMS','LogisticCode':' 1160001630231'}请求的完整报⽂(URL编码以后):RequestData=%7b%27OrderCode%27%3a%27%27%2c%27ShipperCode%27%3a%27EMS%27%2c%27LogisticCode%27%3a%271160001630231%27%7d%0d%0a++++++++&EBusinessID=1264未编码的请求报⽂:RequestData={'OrderCode':'','ShipperCode':'EMS','LogisticCode':'1160001630231'}&EBusinessID=1264783&RequestType=1002&DataSign=NDlmMDAzZTYwYmYyY2FmZjRjOTNhZDAwYjVkNDVjODM=&DataType=2返回参数定义:返回报⽂信息{"LogisticCode": "1160001630231","ShipperCode": "JTSD","Traces": [{"AcceptStation": "[莆⽥市]【莆⽥电商营业部】已收件,揽投员:郑美停,电话:152********","AcceptTime": "2020-02-06 20:12:56"}, {"AcceptStation": "[莆⽥市]离开【莆⽥电商营业部】,下⼀站【莆⽥市邮区中⼼】","AcceptTime": "2020-02-06 20:15:50"}, {"AcceptStation": "[莆⽥市]到达【莆⽥市邮区中⼼】","AcceptTime": "2020-02-06 20:17:26"}, {"AcceptStation": "[莆⽥市]离开【莆⽥市邮区中⼼】,下⼀站【福州旗⼭处理中⼼】","AcceptTime": "2020-02-06 23:59:31"}, {"AcceptStation": "[福州市]到达【福州旗⼭处理中⼼】(经转)","AcceptTime": "2020-02-07 17:40:37"}, {"AcceptStation": "[福州市]离开【福州旗⼭处理中⼼】,下⼀站【长沙邮件处理中⼼】(经转)","AcceptTime": "2020-02-08 04:56:41"}, {"AcceptStation": "[长沙市]到达【长沙邮件处理中⼼】(经转)","AcceptTime": "2020-02-08 16:05:58"}, {"AcceptStation": "[长沙市]离开【长沙邮件处理中⼼】,下⼀站【益阳邮件处理中⼼】(经转)","AcceptTime": "2020-02-08 20:28:47"}, {"AcceptStation": "[益阳市]到达【益阳邮件处理中⼼】","AcceptTime": "2020-02-09 00:25:22"}, {"AcceptStation": "[益阳市]离开【益阳邮件处理中⼼】,下⼀站【益阳市资阳揽投部】","AcceptTime": "2020-02-09 06:22:33"}, {"AcceptStation": "[益阳市]到达【益阳市资阳揽投部】","AcceptTime": "2020-02-09 08:56:06"}, {"AcceptStation": "[益阳市]【益阳市资阳揽投部】安排投递,投递员:龙飞跃,电话:158********,揽投部电话:177********", "AcceptTime": "2020-02-09 09:26:09"}, {"AcceptStation": "[益阳市]已签收,收发室,投递员:龙飞跃,电话:158********","AcceptTime": "2020-02-09 15:03:48"}],"State": "3","EBusinessID": "1264783","Success": true} 这⾥根据我们的实际业务需求来选择免费套餐或者收费套餐。

快递鸟智选物流接口对接方案

快递鸟智选物流接口对接方案

快递鸟智选物流接口对接方案1智选物流1.1对接流程1)注册快递鸟接口账号/reg2)在官网登录进入用户管理后台,进行实名认证,开通接口3)技术对接(在线开发文档:/api-subscribe)4、上线1.2JSON请求返回案例1)JSON请求{"MemberID": "123456","WarehouseID": "1","Detail": [{"OrderCode": "12345","OriginalExpCode":"SF","EstimatedShipTime":"2017-02-16 12:13:12""IsCOD": 0,"Sender": {"ProvinceName": "广东省","CityName": "广州","ExpAreaName": "龙岗区","Subdistrict": "布吉街道","Address": "518000"},"Receiver": {"ProvinceName": "广东","CityName": "梅州","ExpAreaName": "丰顺","Subdistrict": "布吉街道","Address": "518000"},"Goods": [{"ProductName": "包","Volume": "","Weight": "1"}]},{"OrderCode": "12346","IsCOD": 0,"Sender": {"ProvinceName": "广东省","CityName": "广州","ExpAreaName": "龙岗区","Subdistrict": "布吉街道","Address": "518000"},"Receiver": {"ProvinceName": "湖南","CityName": "长沙","ExpAreaName": "龙岗区","Subdistrict": "布吉街道","Address": "518000"},"Goods": [{"ProductName": "包","Volume": "","Weight": "1"}]}]}2)JSON返回{"EBusinessID": "1257227", "Success": true, "RecommendDetail": [{"ExpressList": [{"ExpCode": "ZTO","ExpName": "中通速递","LineName": "","Fee": 10.00,"EstimatedDeliveryTime": 44.20,"SpecificDeliveryTime ":"2017-02-12 09:12","IsSupport": "1","RecommendReason": 0,"Remark": ""},{"ExpCode": "ZTO","ExpName": "中通速递","LineName": "","Fee": 10.00,"EstimatedDeliveryTime": 44.20,"IsSupport": "1","RecommendReason": 1,"Remark": ""},{"ExpCode": "JYM","ExpName": "加运美","SpecificDeliveryTime ":"2017-02-12 09:12","LineName": "","EstimatedDeliveryTime": 15.23,"IsSupport": "1","RecommendReason": 2,"Remark": ""}],"OrderCode": "12345"},{"ExpressList": [{"ExpCode": "ZTO","ExpName": "中通速递","SpecificDeliveryTime ":"2017-02-12 09:12","LineName": "","Fee": 16.00,"EstimatedDeliveryTime": 48.26,"IsSupport": "1","RecommendReason": 0,"Remark": ""},{"ExpCode": "ZTO","ExpName": "中通速递","SpecificDeliveryTime ":"2017-02-12 09:12","LineName": "","Fee": 16.00,"EstimatedDeliveryTime": 48.26,"IsSupport": "1","RecommendReason": 1,"Remark": ""},{"ExpCode": "SF","ExpName": "顺丰快递","LineName": "","EstimatedDeliveryTime": 38.33,"IsSupport": "1","RecommendReason": 2,"Remark": ""}],"OrderCode": "12346"}]}1.3Demo1).NETusing System;using System.Collections.Generic;using System.IO;using System.Linq;using ;using System.Text;using System.Web;namespace KdGoldAPI{public class KdApiExpRecommend{//电商IDprivate string EBusinessID = "请申请";//电商加密私钥,注意保管,不要泄漏private string AppKey = "请申请";//请求url//测试环境private string ReqURL = ":8081/Ebusiness/EbusinessOrderHandle.aspx";//正式环境//private string ReqURL = "/Ebusiness/EbusinessOrderHandle.aspx";/// <summary>/// Json方式智选物流/// </summary>/// <returns></returns>public string getExpRecommendByJson(){string requestData = "{'MemberID':'123456','WarehouseID':'1','Detail':[{'OrderCode':'12345','IsCOD':0,'Sender':{'Provi nceName':'广东省','CityName':'广州','ExpAreaName':'龙岗区','Subdistrict':'布吉街道','Address':'518000'},'Receiver':{'ProvinceName':'广东','CityName':'梅州','ExpAreaName':'丰顺','Subdistrict':'布吉街道','Address':'518000'},'Goods':[{'ProductName':'包','Volume':'','Weight':'1'}]},{'OrderCode':'12346','IsCOD':0,'Sender':{'ProvinceName':'广东省','CityName':'广州','ExpAreaName':'龙岗区','Subdistrict':'布吉街道','Address':'518000'},'Receiver':{'ProvinceName':'湖南','CityName':'长沙','ExpAreaName':'龙岗区','Subdistrict':'布吉街道','Address':'518000'},'Goods':[{'ProductName':'包','Volume':'','Weight':'1'}]}]}";Dictionary<string, string> param = new Dictionary<string, string>();param.Add("RequestData", HttpUtility.UrlEncode(requestData, Encoding.UTF8));param.Add("EBusinessID", EBusinessID);param.Add("RequestType", "2006");string dataSign = encrypt(requestData, AppKey, "UTF-8");param.Add("DataSign", HttpUtility.UrlEncode(dataSign, Encoding.UTF8));param.Add("DataType", "2");string result = sendPost(ReqURL, param);//根据公司业务处理返回的信息......return result;}/// <summary>/// Json方式运费模板导入/// </summary>/// <returns></returns>public string importCostTemplateByJson(){string requestData ="{'MemberID':'123456','Detail':[{'ShipperCode':'YD','SendProvince':'广东','SendCity':'广州','SendExpArea':'天河','ReceiveProvince':'湖南','ReceiveCity':'长沙','ReceiveExpArea':'龙岗','FirstWeight':'1','FirstFee':'8','AdditionalWeight':'1','AdditionalFee':'10','WeightFormula':''},{'Ship perCode':'YD','SendProvince':'广东','SendCity':'广州','SendExpArea':'天河','ReceiveProvince':'湖南','ReceiveCity':'长沙','ReceiveExpArea':'雨花','FirstWeight':'1','FirstFee':'8','AdditionalWeight':'1','AdditionalFee':'10','WeightFormula':'{{w-0}-0.4}*{{{1000-w}-0.4}+1}*4.700+ {{w-1000}-0.6}*[(w-1000)/1000]*4.700)','ShippingType':'1','IntervalList':[{'StartWeight': 1.0,'EndWeight': 2.0, 'Fee': 3.0}]}]}";Dictionary<string, string> param = new Dictionary<string, string>();param.Add("RequestData", HttpUtility.UrlEncode(requestData, Encoding.UTF8));param.Add("EBusinessID", EBusinessID);param.Add("RequestType", "2004");string dataSign = encrypt(requestData, AppKey, "UTF-8");param.Add("DataSign", HttpUtility.UrlEncode(dataSign, Encoding.UTF8));param.Add("DataType", "2");string result = sendPost(ReqURL, param);//根据公司业务处理返回的信息......return result;}/// <summary>/// Post方式提交数据,返回网页的源代码/// </summary>/// <param name="url">发送请求的URL</param>/// <param name="param">请求的参数集合</param>/// <returns>远程资源的响应结果</returns>private string sendPost(string url, Dictionary<string, string> param){string result = "";StringBuilder postData = new StringBuilder();if (param != null && param.Count > 0){foreach (var p in param){if (postData.Length > 0){postData.Append("&");}postData.Append(p.Key);postData.Append("=");postData.Append(p.Value);}}byte[] byteData = Encoding.GetEncoding("UTF-8").GetBytes(postData.ToString());try{HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);request.ContentType = "application/x-www-form-urlencoded";request.Referer = url;request.Accept = "*/*";request.Timeout = 30 * 1000;erAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";request.Method = "POST";request.ContentLength = byteData.Length;Stream stream = request.GetRequestStream();stream.Write(byteData, 0, byteData.Length);stream.Flush();stream.Close();HttpWebResponse response = (HttpWebResponse)request.GetResponse();Stream backStream = response.GetResponseStream();StreamReader sr = new StreamReader(backStream, Encoding.GetEncoding("UTF-8"));result = sr.ReadToEnd();sr.Close();backStream.Close();response.Close();request.Abort();}catch (Exception ex){result = ex.Message;}return result;}///<summary>///电商Sign签名///</summary>///<param name="content">内容</param>///<param name="keyValue">Appkey</param>///<param name="charset">URL编码</param>///<returns>DataSign签名</returns>private string encrypt(String content, String keyValue, String charset){if (keyValue != null){return base64(MD5(content + keyValue, charset), charset);}return base64(MD5(content, charset), charset);}///<summary>/// 字符串MD5加密///</summary>///<param name="str">要加密的字符串</param>///<param name="charset">编码方式</param>///<returns>密文</returns>private string MD5(string str, string charset){byte[] buffer = System.Text.Encoding.GetEncoding(charset).GetBytes(str);try{System.Security.Cryptography.MD5CryptoServiceProvider check;check = new System.Security.Cryptography.MD5CryptoServiceProvider();byte[] somme = puteHash(buffer);string ret = "";foreach (byte a in somme){if (a < 16)ret += "0" + a.ToString("X");elseret += a.ToString("X");}return ret.ToLower();}catch{throw;}}/// <summary>/// base64编码/// </summary>/// <param name="str">内容</param>/// <param name="charset">编码方式</param>/// <returns></returns>private string base64(String str, String charset){returnConvert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str));}}}2)JAVAimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .URL;import .URLEncoder;import java.security.MessageDigest;import java.util.HashMap;import java.util.Map;/****智选物流**/public class KdApiExpRecommend {//DEMOpublic static void main(String[] args) {KdApiExpRecommend api = new KdApiExpRecommend();try {String result = api.getOrderTracesByJson();System.out.print(result);} catch (Exception e) {e.printStackTrace();}}//电商IDprivate String EBusinessID="请申请";//电商加密私钥,注意保管,不要泄漏private String AppKey="请申请";//请求urlprivate String ReqURL="/Ebusiness/EbusinessOrderHandle.aspx";/*** Json方式智选物流* @throws Exception*/public String getExpRecommendByJson() throws Exception{String requestData= "{'MemberID':'123456','WarehouseID':'1','Detail':[{'OrderCode':'12345','IsCOD':0,'Sender':{'Provi nceName':'广东省','CityName':'广州','ExpAreaName':'龙岗区','Subdistrict':'布吉街道','Address':'518000'},'Receiver':{'ProvinceName':'广东','CityName':'梅州','ExpAreaName':'丰顺','Subdistrict':'布吉街道','Address':'518000'},'Goods':[{'ProductName':'包','Volume':'','Weight':'1'}]},{'OrderCode':'12346','IsCOD':0,'Sender':{'ProvinceName':'广东省','CityName':'广州','ExpAreaName':'龙岗区','Subdistrict':'布吉街道','Address':'518000'},'Receiver':{'ProvinceName':'湖南','CityName':'长沙','ExpAreaName':'龙岗区','Subdistrict':'布吉街道','Address':'518000'},'Goods':[{'ProductName':'包','Volume':'','Weight':'1'}]}]}";Map<String, String> params = new HashMap<String, String>();params.put("RequestData", urlEncoder(requestData, "UTF-8"));params.put("EBusinessID", EBusinessID);params.put("RequestType", "2006");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;}/*** Json方式导入运费模板* @throws Exception*/public String importCostTemplateByJson() throws Exception{String requestData="{'MemberID':'123456','Detail':[{'ShipperCode':'YD','SendProvince':'广东','SendCity':'广州','SendExpArea':'天河','ReceiveProvince':'湖南','ReceiveCity':'长沙','ReceiveExpArea':'龙岗','FirstWeight':'1','FirstFee':'8','AdditionalWeight':'1','AdditionalFee':'10','WeightFormula':''},{'Ship perCode':'YD','SendProvince':'广东','SendCity':'广州','SendExpArea':'天河','ReceiveProvince':'湖南','ReceiveCity':'长沙','ReceiveExpArea':'雨花','FirstWeight':'1','FirstFee':'8','AdditionalWeight':'1','AdditionalFee':'10','WeightFormula':'{{w-0}-0.4}*{{{1000-w}-0.4}+1}*4.700+ {{w-1000}-0.6}*[(w-1000)/1000]*4.700)','ShippingType':'1','IntervalList':[{'StartWeight': 1.0,'EndWeight': 2.0, 'Fee': 3.0}]}]}";Map<String, String> params = new HashMap<String, String>();params.put("RequestData", urlEncoder(requestData, "UTF-8"));params.put("EBusinessID", EBusinessID);params.put("RequestType", "2004");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 = base64Encode(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<String, String> 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<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的响应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();}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.length;int i = 0;int b1, b2, b3;while (i < len) {b1 = data[i++] & 0xff;if (i == len){sb.append(base64EncodeChars[b1 >>> 2]);sb.append(base64EncodeChars[(b1 & 0x3) << 4]);sb.append("==");break;}b2 = data[i++] & 0xff;if (i == len){sb.append(base64EncodeChars[b1 >>> 2]);sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]);sb.append(base64EncodeChars[(b2 & 0x0f) << 2]);sb.append("=");break;}b3 = data[i++] & 0xff;sb.append(base64EncodeChars[b1 >>> 2]);sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]);sb.append(base64EncodeChars[((b2 & 0x0f) << 2) | ((b3 & 0xc0) >>> 6)]);sb.append(base64EncodeChars[b3 & 0x3f]);}return sb.toString();}}3)PHP<?php//电商IDdefined('EBusinessID') or define('EBusinessID', '请申请');//电商加密私钥,注意保管,不要泄漏defined('AppKey') or define('AppKey', '请申请');//请求url//测试地址defined('ReqURL') or define('ReqURL', ':8081/Ebusiness/EbusinessOrderHandle.aspx');//正式地址//defined('ReqURL') or define('ReqURL', '/Ebusiness/EbusinessOrderHandle.aspx');//调用获取物流轨迹//-------------------------------------------------------------$logisticResult = getExpRecommendByJson();echo $logisticResult;//-------------------------------------------------------------/*** Json方式智选物流*/function getExpRecommendByJson(){$requestData="{'MemberID':'123456','WarehouseID':'1','Detail':[{'OrderCode':'12345','IsCOD':0,'Sender':{'Provi nceName':'广东省','CityName':'广州','ExpAreaName':'龙岗区','Subdistrict':'布吉街道','Address':'518000'},'Receiver':{'ProvinceName':'广东','CityName':'梅州','ExpAreaName':'丰顺','Subdistrict':'布吉街道','Address':'518000'},'Goods':[{'ProductName':'包','Volume':'','Weight':'1'}]},{'OrderCode':'12346','IsCOD':0,'Sender':{'ProvinceName':'广东省','CityName':'广州','ExpAreaName':'龙岗区','Subdistrict':'布吉街道','Address':'518000'},'Receiver':{'ProvinceName':'湖南','CityName':'长沙','ExpAreaName':'龙岗区','Subdistrict':'布吉街道','Address':'518000'},'Goods':[{'ProductName':'包','Volume':'','Weight':'1'}]}]}";$datas = array('EBusinessID' => EBusinessID,'RequestType' => '2006','RequestData' => urlencode($requestData) ,'DataType' => '2',);$datas['DataSign'] = encrypt($requestData, AppKey);$result=sendPost(ReqURL, $datas);//根据公司业务处理返回的信息......return $result;}/*** Json方式导入运费模板*/function importCostTemplateByJson(){$requestData= "{'MemberID':'123456','Detail':[{'ShipperCode':'YD','SendProvince':'广东','SendCity':'广州','SendExpArea':'天河','ReceiveProvince':'湖南','ReceiveCity':'长沙','ReceiveExpArea':'龙岗','FirstWeight':'1','FirstFee':'8','AdditionalWeight':'1','AdditionalFee':'10','WeightFormula':''},{'Ship perCode':'YD','SendProvince':'广东','SendCity':'广州','SendExpArea':'天河','ReceiveProvince':'湖南','ReceiveCity':'长沙','ReceiveExpArea':'雨花','FirstWeight':'1','FirstFee':'8','AdditionalWeight':'1','AdditionalFee':'10','WeightFormula':'{{w-0}-0.4}*{{{1000-w}-0.4}+1}*4.700+ {{w-1000}-0.6}*[(w-1000)/1000]*4.700)','ShippingType':'1','IntervalList':[{'StartWeight': 1.0,'EndWeight': 2.0, 'Fee': 3.0}]}]}";$datas = array('EBusinessID' => EBusinessID,'RequestType' => '2004','RequestData' => urlencode($requestData) ,'DataType' => '2',);$datas['DataSign'] = encrypt($requestData, AppKey);$result=sendPost(ReqURL, $datas);//根据公司业务处理返回的信息......return $result;}/*** post提交数据* @param string $url 请求Url* @param array $datas 提交的数据* @return url响应返回的html*/function sendPost($url, $datas) {$temps = array();foreach ($datas as $key => $value) {$temps[] = sprintf('%s=%s', $key, $value);}$post_data = implode('&', $temps);$url_info = parse_url($url);if(empty($url_info['port'])){$url_info['port']=80;}$httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";$httpheader.= "Host:" . $url_info['host'] . "\r\n";$httpheader.= "Content-Type:application/x-www-form-urlencoded\r\n";$httpheader.= "Content-Length:" . strlen($post_data) . "\r\n";$httpheader.= "Connection:close\r\n\r\n";$httpheader.= $post_data;$fd = fsockopen($url_info['host'], $url_info['port']);fwrite($fd, $httpheader);$gets = "";$headerFlag = true;while (!feof($fd)) {if (($header = @fgets($fd)) && ($header == "\r\n" || $header == "\n")) { break;}}while (!feof($fd)) {$gets.= fread($fd, 128);}fclose($fd);return $gets;}/*** 电商Sign签名生成* @param data 内容* @param appkey Appkey* @return DataSign签名*/function encrypt($data, $appkey) {return urlencode(base64_encode(md5($data.$appkey)));}?>2运费模板导入接口2.1功能说明ERP服务商也可以将用户的协议物流公司及其协议价格先保存到接口运费模板系统中,智选物流每次计算时:若接口传递了协议公司和价格,那么默认按照接口提供的数据进行计算;若接口没有提供数据,则获取以保存的运费模板进行计算。

快递API物流轨迹查询接口接入表

快递API物流轨迹查询接口接入表

方案说明 2、通过快递鸟电子面单接口直接打印对应快递公司电子面单,同时订阅单号信息。 3、快递鸟定时推送新的物流信息到用户系统。 适用对象 电商 ERP、仓储系统、清关公司、网站管理后台
快递鸟通讯录
商务对接联系人信息 姓名 QQ 手机 职务 邮箱 技术对接联系人信息
姓名
QQ 手机
职务 邮箱 产品对接联系人信息 姓名 QQ 手机 职务 邮箱
1、为什么有些邮政单号查不到物流信息? 答:首先,确认单号所属物流公司,并前往对应快递公司官网确认 单号可用。 然后,确认请求调用的对应物流编码正确无误。 如:邮政小包对应编码 YZPY,EMS 对应编码 EMS。 2、 快递公司那边已经签收了, 为什么快递鸟推送的内容还是派件中
接口问题
状态? 答:首先,确认接收接口是否可以正常访问。然后,确认接口是否 能承受压力,导致接收信息响应时间过长,影响推送的效率。 3、 快递公司那边已经更新了, 为什么即时查询接口的数据没更新? 答:首先,确认单号所属物流公司,确认快递鸟是否支持该物流公 司的物流信息查询。然后,确认调用参数格式。
透露。对于已被盗用的 Key,我们将会作禁用处理。
2、接口支持什么语言? 答:快递鸟接口适用于任何开发语言 3、有没有相关的 demo? 答:快递鸟提供 PHP、java、 语言 DEMO 工具,请前往 /ResourceDownload.aspx 下载 4、订阅推送可以指定多台接收服务器吗? 答:一个用户 ID 只能对应一台推送服务器,如需配置多台,可注册 多个 ID 并提交快递鸟研发人员进行资源配置
订阅频率:*个订阅线程,每秒并发**个请求,每个请求**个单号 联调方案 推送频率:*个推送线程,每秒并发**个请求,每个请求**个单号 推送类型:全量推送 调试结果 优化方案 下次联调时 间 第 2 次联调 联调时间 调试单量 执行人

快递鸟物流查询接口demo

快递鸟物流查询接口demo
StringBuffersb= newStringBuffer();
intlen=data.length;
inti= 0;
intb1, b2, b3;
while (i<len) {
b1 = data[i++] & 0xff;
if (i==len)
{
sb.append(base64EncodeChars[b1 >>> 2]);
}
}
catch(IOExceptionex){
ex.printStackTrace();
}
}
returnresult.toString();
}
private static char[] base64EncodeChars = new char[] {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
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");
{

快递鸟接口技术文档说明书

快递鸟接口技术文档说明书

快递鸟接口(API)技术文档1前言 (5)2接口规范说明 (5)2.1接口规范及说明 (5)2.1.1报文及报文编码 (5)2.1.2接口数据包结构 (5)2.1.3JSON示例 (6)2.1.4系统级参数 (6)2.1.5流程示意图 (7)2.2签名说明 (7)2.2.1关于签名 (7)2.2.2(C#)DataSign签名加密代码 (9)3下单类接口 (10)3.1接入步骤 (10)3.2预约取件接口 (11)3.2.1功能说明 (11)3.2.2基本信息 (11)3.2.3接口规则 (12)3.2.4支持情况 (12)3.2.5应用级参数 (12)3.2.6返回参数 (17)3.3预约取件取消接口 (17)3.3.1功能说明 (17)3.3.2基本信息 (17)3.3.3接口规则 (18)3.3.4支持情况 (18)3.3.5应用场景 (18)3.3.6应用级参数 (18)3.3.7返回参数 (19)3.4电子面单接口 (19)3.4.1功能说明 (19)3.4.2基本信息 (19)3.4.3应用场景 (20)3.4.4接口规则 (20)3.4.6应用场景 (21)3.4.7应用级参数 (21)3.4.8返回参数 (30)3.5电子面单取消接口 (35)3.5.1功能说明 (35)3.5.2基本信息 (36)3.5.3接口规则 (36)3.5.4支持情况 (36)3.5.5应用级参数 (36)3.5.6返回参数 (37)3.6电子面单追加子单接口 (37)3.6.1功能说明 (37)3.6.2基本信息 (37)3.6.3应用级参数 (38)3.6.4返回参数 (38)3.7获取电子面单文件接口 (39)3.7.1功能说明 (39)3.7.2基本信息 (39)3.7.3应用级参数 (39)3.7.4返回参数 (40)4轨迹查询类接口 (42)4.1即时查询接口 (42)4.1.1功能说明 (42)4.1.2基本信息 (42)4.1.3接口规则 (42)4.1.4支持情况 (42)4.1.5应用场景 (42)4.1.6应用级参数 (42)4.1.7返回参数 (43)4.2物流跟踪 (45)4.2.1轨迹订阅接口 (45)4.3单号识别接口 (64)4.3.1功能说明 (64)4.3.2基本信息 (64)4.3.3接口规则 (64)4.3.4应用级参数 (64)4.3.5返回参数 (65)5增值类接口 (66)5.1在途监控-国内版 (66)5.1.1即时查询接口(增值版) (66)5.1.2物流跟踪接口(增值版) (72)5.2快递查询接口 (78)5.2.1功能说明 (78)5.2.2基本信息 (78)5.2.3接口规则 (78)5.2.4支持情况 (78)5.2.5应用场景 (78)5.2.6应用级参数 (78)5.2.7返回参数 (79)5.3在途监控-国际版 (84)5.3.1物流跟踪接口(国际版) (84)5.4物流查询地图接口 (86)5.4.1即时查询接口(地图版) (87)5.4.2物流跟踪接口(地图版) (95)5.5短信服务 (100)5.5.1短信模板接口 (101)5.5.2短信发送接口 (103)5.5.3短信黑名单接口 (105)5.6智能地址解析接口 (106)5.6.1功能说明 (106)5.6.2基本信息 (106)5.6.3应用级参数 (106)5.6.4返回参数 (107)6附录 (109)6.1对接相关资料 (109)6.2电子面单模板规格 (109)6.3返回编码列表 (116)7技术支持 (117)1前言快递鸟API旨在为电商、电商平台、物流工具、打单工具、仓储系统、移动APP等系统提供专业、稳定、优质的API接口服务,满足不同用户的物流管理需求。

基于c的快递api接口调用代码实例

基于c的快递api接口调用代码实例

基于C#的快递api接口调用代码实例代码描述:基于C#的快递api接口调用代码实例接口平台:聚合数据using System;using System.Collections.Generic;using System.Linq;using System.Text;using ;using System.IO;using ;using System.Diagnostics;using System.Web;//----------------------------------// 常用快递调用示例代码-聚合数据// 在线接口文档:/docs/43// 代码中JsonObject类下载地址:/download/gcm32060 21155665/7458439//----------------------------------namespace ConsoleAPI{class Program{static void Main(string[] args){string appkey = "*******************"; //配置您申请的appkey//1.常用快递查询APIstring url1 = "/exp/index";var parameters1 = new Dictionary<string, string>();parameters1.Add("com", ""); //需要查询的快递公司编号parameters1.Add("no", ""); //需要查询的订单号parameters1.Add("key", appkey);//你申请的keyparameters1.Add("dtype", ""); //返回数据的格式,xml或json,默认jsonstring result1 = sendPost(url1, parameters1, "get");JsonObject newObj1 = new JsonObject(result1);String errorCode1 = newObj1["error_code"].Value;if(errorCode1 == "0"){Debug.WriteLine("成功");Debug.WriteLine(newObj1);}else{//Debug.WriteLine("失败");Debug.WriteLine(newObj1["error_code"].Value+":"+newObj1 ["reason"].Value);}//2.快递公司编号对照表string url2 = "/exp/com";var parameters2 = new Dictionary<string, string>();string result2 = sendPost(url2, parameters2, "get");JsonObject newObj2 = new JsonObject(result2);String errorCode2 = newObj2["error_code"].Value;if(errorCode2 == "0"){Debug.WriteLine("成功");Debug.WriteLine(newObj2);}else{//Debug.WriteLine("失败");Debug.WriteLine(newObj2["error_code"].Value+":"+newObj2 ["reason"].Value);}}/// <summary>/// Http (GET/POST)/// </summary>/// <param name="url">请求URL</param>/// <param name="parameters">请求参数</param>/// <param name="method">请求方法</param>/// <returns>响应内容</returns>static string sendPost(string url, IDictionary<string, string> p arameters, string method){if(method.ToLower() == "post"){HttpWebRequest req = null;HttpWebResponse rsp = null;System.IO.Stream reqStream = null;try{req = (HttpWebRequest)WebRequest.Create(url);req.Method = method;req.KeepAlive = false;req.ProtocolVersion = HttpVersion.Version10;req.Timeout = 5000;req.ContentType = "application/x-www-form-urlencode d;charset=utf-8";byte[] postData = Encoding.UTF8.GetBytes(BuildQuery (parameters, "utf8"));reqStream = req.GetRequestStream();reqStream.Write(postData, 0, postData.Length);rsp = (HttpWebResponse)req.GetResponse();Encoding encoding = Encoding.GetEncoding(rsp.Charac terSet);return GetResponseAsString(rsp, encoding);}catch(Exception ex){return ex.Message;}finally{if(reqStream != null) reqStream.Close();if(rsp != null) rsp.Close();}}else{//创建请求HttpWebRequest request = (HttpWebRequest)WebRequest.Cre ate(url + "?"+ BuildQuery(parameters, "utf8"));//GET请求request.Method = "GET";request.ReadWriteTimeout = 5000;request.ContentType = "text/html;charset=UTF-8";HttpWebResponse response = (HttpWebResponse)request.Get Response();Stream myResponseStream = response.GetResponseStream();StreamReader myStreamReader = new StreamReader(myRespons eStream, Encoding.GetEncoding("utf-8"));//返回内容string retString = myStreamReader.ReadToEnd();return retString;}}/// <summary>/// 组装普通文本请求参数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2017快递鸟物流评价接口API接入代码物流评价接口是面向电商、ERP系统商、仓储系统商等企业,提供评价物流,网点,快递员的渠道,并批量获取平均分的功能,平均分值可应用于快递公司推荐排序,综合选择,展示商家实力等场景。

商家的评价分值将由接口汇总计算,统一传递到物流公司,指导物流公司提升服务质量。

一、物流评价投诉接口
1.接口描述/说明
通过此接口可对快递公司、网点、快递员进行评价或投诉。

(1)仅支持Json格式。

(2)请求指令1011。

(3)每次请求不超过100条明细。

(4)测试接口地址::8081/api/dist
(5)联调通过后请更换为正式地址:/api/dist
(6)需在快递鸟网站申请接口秘钥
3.应用级参数
4.返回参数定义
5.JSON请求示
6.JSON返回示例
二、物流平均分获取接口
1.接口描述/说明
通过此接口可以获取各个快递公司的评价平均分。

(1)仅支持Json格式。

(2)请求指令1012。

(3)测试接口地址::8081/api/dist (4)联调通过后请更换为正式地址:/api/dist (5)需申请秘钥
三、接口代码。

相关文档
最新文档