Trackingmore物流轨迹查询接口快递公司编码
- 格式:docx
- 大小:56.97 KB
- 文档页数:21
100个快递单号查询接口API公司编码
电商平台的物流模块包括有发货打单获取快递单号和大头笔、智选物流选出最优快递公司、快递单号查询物流轨迹跟踪、运费险、时效配送、在线一键退换货寄件等需求,这背后就需要有专业的第三方物流解决方案服务商来做支撑,淘系电商平台有菜鸟,其他电商平台有快递鸟,这样电商平台就不需要一家家找各家快递公司做接口对接了。
满足全流程的物流状态监控、实时推送获取物流轨迹,一键退换货、预约快递员上门准时取件等需求。
如何快速成功对接快递接口呢?有几个关键点:
1、在快递鸟注册账号获得用户ID和APIKey,对应各Demo中的EBusinessID、APIKey,这个是对接中必须要用到的。
2、在官网或技术支持群下载技术文档,接口开发可在官网下载接口DEMO。
3、快递公司对应的编码也需要清楚,
比如顺丰对应编码SF、中通快递对应编码ZTO、百世快递对应编码HTKY、圆通快递对应编码YTO、申通快递对应编码STO、韵达对应编码YD、邮政快递包裹对应编码YZPY、EMS包裹对应编码EMS、天天快递包裹对应编码HHTT、京东快递包裹对应编码JD、德邦快递对应编码DBL、优速快递对应编码UC、宅急送对应编码ZJS,
下面就列出100+物流公司编码供您使用,全部的编码请在快递鸟网站下载获取。
快递鸟API接口支持快递公司编码表2019(最新)快递鸟单号查询接口和电子面单等接口都是免费的,快递鸟是一个独立的第三方国际物流接口服务商,快递鸟API接口的优点主要是:全、多、稳定、及时,免费。
目前快递鸟已经集成了全球418家物流快递公司接口,高实时、高稳定、高并发,也可以对接自动识别快递公司接口,支持申通、顺丰、圆通、宅急送、韵达、中通、百世、天天、四通一达、京东、EMS等国内/国际快递查询。
为电商平台、电商系统商(ERP)、仓储(WMS)等有系统的用户提供智选物流、电子面单、物流查询、物流提醒等全流程的物流接口解决方案。
快递鸟物流查询API接口好用,使用的用户很多(有十几个千人技术QQ群),大的ERP基本都用的是快递鸟的数据,非淘系的电商平台也都是用快递鸟提供的接口服务。
整个对接挺简单的,到快递鸟网站注册一下,申请到自己的KEY 和ID,对接后就可以使用了,在快递鸟网站上下载调用的demo,修改下参数就可以了。
顺丰速运快递查询接口API和电子面单接口可以通过快递鸟对接,通过顺丰单号和手机号后四位查询轨迹信息,如果是通过快递鸟下单获得的顺丰单号,可通过单号直接查询,具体下载快递鸟接口技术文档查看接口说明。
ShipperCode为SF,且快递单号非快递鸟渠道返回时,必填,对应收件人/寄件人手机号后四位;ShipperCode 为SF,且快递单号为快递鸟渠道返回时,不填。
对接快递鸟API接口需要各家快递公司编码表,下面附快递鸟API接口支持快递公司编码表供大家使用:快递鸟接口支持快递公司编码表快递公司编码轨迹查询是否支持常用顺丰速运SF 支持百世快递HTKY 支持中通快递ZTO 支持申通快递STO 支持圆通速递YTO 支持韵达速递YD 支持邮政快递包裹YZPY 支持EMS EMS 支持天天快递HHTT 支持京东快递JD 支持优速快递UC 支持德邦快递DBL 支持宅急送ZJS 支持TNT快递TNT 支持UPS UPS 支持DHL DHL 支持FEDEX联邦(国内件)FEDEX 支持FEDEX联邦(国际件)FEDEX_GJ 支持国内A安捷快递AJ 支持阿里跨境电商物流ALKJWL 支持安迅物流AX 支持安邮美国AYUS 支持亚马逊物流AMAZON 支持澳门邮政AOMENYZ 支持澳多多ADD 支持澳邮专线AYCA 支持安鲜达AXD 支持安能快运ANEKYB八达通BDT 支持百腾物流BETWL 支持北极星快运BJXKY 支持奔腾物流BNTWL 支持百福东方BFDF 支持贝海国际BHGJ 支持八方安运BFAY 支持百世快运BTWL 支持C春风物流CFWL 支持诚通物流CHTWL 支持城市100 CITY100 支持城际快递CJKD 支持CNPEX中邮快递CNPEX 支持COE东方快递COE 支持长沙创一CSCY 支持成都善途速运CDSTKY 支持联合运通CTG 支持疯狂快递CRAZY 支持CBO钏博物流CBO 支持承诺达CND 支持D D速物流DSWL 支持到了港DLG 支持大田物流DTWL 支持东骏快捷物流DJKJWL 支持德坤DEKUN 支持德邦快运DBLKY 支持大马鹿DML 支持E E特快ETK 支持EWE EWE 支持F快服务KFW 支持飞康达FKD 支持富腾达FTD 支持凡宇货的FYKD 支持速派快递FASTGO 支持丰通快运FT 支持G冠达GD 支持广东邮政GDEMS 支持共速达GSD 支持广通GTONG 支持迦递快递GAI 支持港快速递GKSD 支持高铁速递GTSD 支持H汇丰物流HFWL 支持黑狗冷链HGLL 支持恒路物流HLWL 支持天地华宇HOAU 支持鸿桥供应链HOTSCM 支持海派通物流公司HPTEX 支持华强物流hq568 支持环球速运HQSY 支持华夏龙物流HXLWL 支持豪翔物流HXWL 支持合肥汇文HFHW 支持辉隆物流HLONGWL 支持华企快递HQKD 支持韩润物流HRWL 支持青岛恒通快递HTKD 支持货运皇物流HYH 支持好来运快递HYLSD 支持皇家物流HJWL 支持J捷安达JAD 支持京广速递JGSD 支持九曳供应链JIUYE 支持急先达JXD 支持晋越快递JYKD 支持加运美JYM 支持景光物流JGWL 支持佳怡物流JYWL 支持京东快运JDKY佳吉快运CNEX 支持K跨越速运KYSY 支持快速递物流KSDWL 支持快8速运KBSY 支持L龙邦快递LB 支持立即送LJSKD 支持联昊通速递LHT 支持M民邦快递MB 支持民航快递MHKD 支持美快MK 支持门对门快递MDM 支持迈隆递运MRDY 支持明亮物流MLWL 支持N南方传媒物流NFCM 支持能达速递NEDA 支持P平安达腾飞快递PADTF 支持泛捷快递PANEX 支持品骏快递PJ 支持PCA Express PCA 支持Q全晨快递QCKD 支持全日通快递QRT 支持快客快递QUICK 支持全信通QXT 支持荣庆物流RQ 支持七曜中邮QYZY 支持R如风达RFD 支持日日顺物流RRS 支持瑞丰速递RFEX 支持S赛澳递SAD 支持苏宁物流SNWL 支持圣安物流SAWL 支持晟邦物流SBWL 支持上大物流SDWL 支持盛丰物流SFWL 支持速通物流ST 支持速腾快递STWL 支持速必达物流SUBIDA 支持速递e站SDEZ 支持速呈宅配SCZPDS 支持速尔快递SURE 支持闪送SS 支持盛通快递STKD 支持顺心捷达SX 支持T台湾邮政TAIWANYZ 支持唐山申通TSSTO 支持通用物流TYWL 支持腾林物流TLWLU全一快递UAPEX 支持优联吉运ULUCKEX 支持UEQ Express UEQ 支持W万家康WJK 支持万家物流WJWL 支持武汉同舟行WHTZX 支持维普恩WPE 支持万象物流WXWL 支持微特派WTP 支持温通物流WTWLX迅驰物流XCWL 支持信丰物流XFEX 支持新杰物流XJ 支持Y源安达快递YADEX 支持远成物流YCWL 支持远成快运YCSY 支持义达国际物流YDH 支持易达通YDT 支持原飞航物流YFHEX 支持亚风快递YFSD 支持运通快递YTKD 支持亿翔快递YXKD 支持运东西网YUNDX 支持壹米滴答YMDD 支持邮政国内标快YZBK 支持一站通速运YZTSY 支持驭丰速运YFSUYUN 支持余氏东风YSDF 支持耀飞快递YF 支持韵达快运YDKY 支持云路YL 支持一智通YZT 支持Z增益快递ZENY 支持汇强快递ZHQKD 支持众通快递ZTE 支持郑州速捷SJ 支持中通快运ZTOKY 支持中邮快递ZYKD 支持中粮我买网WM 支持芝麻开门ZMKM 支持中骅物流ZHWL 支持中铁物流ZTWL 支持国外A AAE全球专递AAE 支持ACS雅仕快递ACS 支持ADP Express Tracking ADP 支持安圭拉邮政ANGUILAYOU 支持APAC APAC 支持Aramex ARAMEX 支持奥地利邮政AT 支持Australia Post Tracking AUSTRALIA 支持B比利时邮政BEL 支持BHT快递BHT 支持秘鲁邮政BILUYOUZHE 支持巴西邮政BR 支持不丹邮政BUDANYOUZH 支持C CDEK CDEK 支持程光物流CG 支持加拿大邮政CA 支持D递必易国际物流DBYWL 支持大道物流DDWL 支持德国云快递DGYKD 支持到乐国际DLGJ 支持DHL德国DHL_DE 支持DHL(英文版) DHL_EN 支持DHL全球DHL_GLB 支持DHL Global Mail DHLGM 支持丹麦邮政DK 支持DPD DPD 支持DPEX DPEX 支持递四方速递D4PX 支持E EMS国际EMSGJ 支持易客满EKM 支持EPS (联众国际快运) EPS 支持EShipper ESHIPPER 支持F丰程物流FCWL 支持法翔速运FX 支持FQ FQ 支持芬兰邮政FLYZ 支持方舟国际速递FZGJ 支持G国际e邮宝GJEYB 支持国际邮政包裹GJYZ 支持GE2D GE2D 支持冠泰GT 支持GLS GLS 支持欧洲专线(邮政) IOZYZ 支持澳大利亚邮政IADLYYZ 支持阿尔巴尼亚邮政IAEBNYYZ 支持阿尔及利亚邮政IAEJLYYZ 支持阿富汗邮政IAFHYZ 支持安哥拉邮政IAGLYZ 支持埃及邮政IAJYZ 支持阿鲁巴邮政IALBYZ 支持阿联酋邮政IALYYZ 支持阿塞拜疆邮政IASBJYZ 支持博茨瓦纳邮政IBCWNYZ 支持波多黎各邮政IBDLGYZ 支持冰岛邮政IBDYZ 支持白俄罗斯邮政IBELSYZ 支持波黑邮政IBHYZ 支持保加利亚邮政IBJLYYZ 支持巴基斯坦邮政IBJSTYZ 支持黎巴嫩邮政IBLNYZ 支持波兰邮政IBOLYZ 支持宝通达IBTD 支持贝邮宝IBYB 支持出口易ICKY 支持德国邮政IDGYZ 支持危地马拉邮政IWDMLYZ 支持乌干达邮政IWGDYZ 支持乌克兰EMS IWKLEMS 支持乌克兰邮政IWKLYZ 支持乌拉圭邮政IWLGYZ 支持林克快递ILKKD 支持文莱邮政IWLYZ 支持新喀里多尼亚邮政IXGLDNYYZ 支持爱尔兰邮政IE 支持夏浦物流IXPWL 支持印度邮政IYDYZ 支持夏浦世纪IXPSJ 支持厄瓜多尔邮政IEGDEYZ 支持俄罗斯邮政IELSYZ 支持飞特物流IFTWL 支持瓜德罗普岛邮政IGDLPDYZ 支持哥斯达黎加邮政IGSDLJYZ 支持韩国邮政IHGYZ 支持华翰物流IHHWL 支持互联易IHLY 支持哈萨克斯坦邮政IHSKSTYZ 支持黑山邮政IHSYZ 支持津巴布韦邮政IJBBWYZ 支持吉尔吉斯斯坦邮政IJEJSSTYZ 支持加纳邮政IJNYZ 支持柬埔寨邮政IJPZYZ 支持克罗地亚邮政IKNDYYZ 支持肯尼亚邮政IKNYYZ 支持科特迪瓦EMS IKTDWEMS 支持罗马尼亚邮政ILMNYYZ 支持摩尔多瓦邮政IMEDWYZ 支持马耳他邮政IMETYZ 支持尼日利亚邮政INRLYYZ 支持塞尔维亚邮政ISEWYYZ 支持塞浦路斯邮政ISPLSYZ 支持乌兹别克斯坦邮政IWZBKSTYZ 支持西班牙邮政IXBYYZ 支持新加坡EMS IXJPEMS 支持新西兰邮政IXXLYZ 支持意大利邮政IYDLYZ 支持英国邮政IYGYZ 支持亚美尼亚邮政IYMNYYZ 支持也门邮政IYMYZ 支持智利邮政IZLYZ 支持J日本邮政JP 支持今枫国际JFGJ 支持极光转运JGZY 支持吉祥邮转运JXYKD 支持嘉里国际JLDT 支持绝配国际速递JPKD 支持佳惠尔SYJHE 支持L联运通LYT 支持联合快递LHKDS 支持林道国际SHLDHY 支持N荷兰邮政NL 支持新顺丰NSF 支持O ONTRAC ONTRAC 支持OCS OCS 支持全球邮政QQYZ 支持P POSTEIBE POSTEIBE 支持啪啪供应链PAPA 支持Q秦远海运QYHY 支持启辰国际VENUCIA 支持R瑞典邮政RDSE 支持S SKYPOST SKYPOST 支持瑞士邮政SWCH 支持首达速运SDSY 支持穗空物流SK 支持首通快运STONG 支持申通快递国际单STO_INTL 支持上海久易国际JYSD 支持T泰国138 TAILAND138 支持U USPS美国邮政USPS 支持万国邮政UPU 支持V中越国际物流VCTRANS 支持X星空国际XKGJ 支持迅达国际XD 支持香港邮政XGYZ 支持喜来快递XLKD 支持鑫世锐达XSRD 支持新元国际XYGJ 支持ADLER雄鹰国际速递XYGJSD 支持西邮寄XYJ 支持Y日本大和运输(Yamato) YAMA 支持YODEL YODEL 支持一号线YHXGJSD 支持约旦邮政YUEDANYOUZ 支持玥玛速运YMSY 支持鹰运YYSD 支持易境达YJD 支持洋包裹YBG 支持友家速递YJ 支持转运A AOL(澳通)AOL 支持B BCWELT BCWELT 支持笨鸟国际BN 支持U优邦国际速运UBONEX 支持UEX UEX 支持Y韵达国际YDGJ 支持(注:仅支持通过快递鸟电子面单接口下单返回的韵达国际单号查询)Z爱购转运ZY_AG 支持爱欧洲ZY_AOZ 支持澳世速递ZY_AUSE 支持AXO ZY_AXO 支持贝海速递ZY_BH 支持蜜蜂速递ZY_BEE 支持百利快递ZY_BL 支持斑马物流ZY_BM 支持百通物流ZY_BT 支持策马转运ZY_CM 支持EFS POST ZY_EFS 支持宜送转运ZY_ESONG 支持飞碟快递ZY_FD 支持飞鸽快递ZY_FG 支持风行快递ZY_FX 支持风行速递ZY_FXSD 支持飞洋快递ZY_FY 支持皓晨快递ZY_HC 支持海悦速递ZY_HYSD 支持君安快递ZY_JA 支持时代转运ZY_JD 支持骏达快递ZY_JDKD 支持骏达转运ZY_JDZY 支持久禾快递ZY_JH 支持金海淘ZY_JHT 支持联邦转运FedRoad ZY_LBZY 支持龙象快递ZY_LX 支持美国转运ZY_MGZY 支持美速通ZY_MST 支持美西转运ZY_MXZY 支持QQ-EX ZY_QQEX 支持瑞天快递ZY_RT 支持瑞天速递ZY_RTSD 支持速达快递ZY_SDKD 支持四方转运ZY_SFZY 支持上腾快递ZY_ST 支持天际快递ZY_TJ 支持天马转运ZY_TM 支持滕牛快递ZY_TN 支持太平洋快递ZY_TPY 支持唐三藏转运ZY_TSZ 支持TWC转运世界ZY_TWC 支持润东国际快线ZY_RDGJ 支持同心快递ZY_TX 支持天翼快递ZY_TY 支持德国海淘之家ZY_DGHT 支持德运网ZY_DYW 支持文达国际DCS ZY_WDCS 支持同舟快递ZY_TZH 支持UCS合众快递ZY_UCS 支持星辰快递ZY_XC 支持先锋快递ZY_XF 支持云骑快递ZY_YQ 支持优晟速递ZY_YSSD 支持运淘美国ZY_YTUSA 支持至诚速递ZY_ZCSD 支持增速海淘ZYZOOM 支持中驰物流ZH 支持中欧快运ZO 支持准实快运ZSKY 支持中外速运ZWSY 支持郑州建华ZZJH 支持。
国际物流快递查询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代码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接口对外开放的部分快递公司编码的列表,接口需要指定快递单号的快递公司编码,格式不对或则编码错误都会返失败的信息。
如:EMS物流单号应选择快递公司编码(EMS)、德邦物流单号应选择快递公司编码(DBL)、天天快递物流单号应选择快递公司编码(HHTT)、圆通速递物流单号应选择快递公司编码(YTO)、中通速递快递物流单号应选择快递公司编码(ZTO)、亚马逊物流单号应选择快递公司编码(AMAZON)、顺丰物流单号应选择快递公司编码(SF)、百世快运物流单号应选择快递公司编码(BTWL)、宅急送物流单号应选择快递公司编码(ZJS)。
适用于即时查询API接口和订阅推送API接口。
如果在下面没有找到您所要的快递公司,请添加在群共享文件下载。
国内快递查询接口编码国际快递查询接口转运查询接口快递查询接口应用场景查询订单的物流信息可实现需求1.App中直接集成实现快递物流信息查询Api接口2.在微信公众号中,根据用户输入的订单号,我们的后台识别订单号并根据快递鸟查询快递Api接口,实现自动查询的功能3.等等申请Key按照你的信息,依次把信息填写完整,点击提交申请即可。
登录成功后,就可以看到ID和key等信息,有这些信息就可以请求查询等其他的接口Api快递查询Api接口接口文档及各开发语言Demo查询Api接口定义系统级输入参数参数名称类型必须要求说明RequestData String R 请求内容,JSON或XML格式,须和DataType一致EBusinessID String R 用户IDRequestType String R 请求指令类型:1002DataSign String R 数据内容签名DataType String O 请求、返回数据类型:1-xml,2-json;默认为xml格式应用级输入参数参数名称类型必须要求说明OrderCode varchar(50) O 订单编号ShipperCode varchar(10) R 快递公司编码LogisticCode varchar(50) R 物流单号返回结果参数参数名称类型必须要求说明EBusinessID Int R 电商用户IDOrderCode Varchar(50) O 订单编号ShipperCode varchar(10) R 快递公司编码LogisticCode Varchar(50) R 物流运单号Success Bool R 成功与否Reason Varchar(50) O 失败原因State Int R 物流状态1:已取件2:在途中3:签收Traces Varchar(Max) R 物流轨迹详情物流轨迹详情参数名称类型必须要求说明AcceptTime DateTime R 时间AcceptStation Varchar(50) R 描述Remark Varchar(150) O 备注请求JSON参数{"OrderCode" : "","ShipperCode" : "SF","LogisticCode" :}响应JSON参数{"EBusinessID" : "1109259","OrderCode" : "","ShipperCode" : "SF","LogisticCode" : ,"Success" : true,"State" : 3,"Reason" : null,"traces" : [{"AcceptTime" : "2014/06/25 08:05:37","AcceptStation" : "正在派件..(派件人:邓裕富,电话深圳市]","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}]}查询Api接口使用以Java开发语言为例,进行展开importimportimportimportimportimportimportimportimportimportimport/**** 快递鸟物流轨迹即时查询接口** @技术QQ群* @see* @copyright: 深圳市快金数据技术服务有限公司** DEMO中的电商ID与私钥仅限测试使用,正式环境请单独注册账号* 单日超过500单查询量,建议接入我方物流轨迹订阅推送接口** ID和Key请到官网申请:*/public class KdniaoTrackQueryAPI {//DEMOpublic static void main(String[] args) {KdniaoTrackQueryAPI api = new KdniaoTrackQueryAPI();try {String result = api.getOrderTracesByJson("ANE", );} catch (Exception e) {e.printStackTrace();}}//电商IDprivate String EBusinessID="请到快递鸟官网申请;//电商加密私钥,快递鸟提供,注意保管,不要泄漏private String AppKey="请到快递鸟官网申请;//请求urlprivate String ReqURL=;/*** Json方式查询订单物流轨迹* @throws Exception*/public String getOrderTracesByJson(String expCode, String expNo) throws Excepti on{String requestData= "{'OrderCode':'','ShipperCode':'" + expCode + "','Logis ticCode':'" + expNo + "'}";Map<String, String> params = new HashMap<String, String>();params.put("RequestData", urlEncoder(requestData, "UTF-8"));params.put("EBusinessID", EBusinessID);params.put("RequestType", "1002");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;}/*** XML方式查询订单物流轨迹* @throws Exception*/public String getOrderTracesByXml() throws Exception{String requestData= "<?xml version=\"1.0\" encoding=\"utf-8\" ?>"+"<Content>"+"<OrderCode></OrderCode>"+"<ShipperCode>SF</ShipperCode>"++"</Content>";Map<String, String> params = new HashMap<String, String>();params.put("RequestData", urlEncoder(requestData, "UTF-8"));params.put("EBusinessID", EBusinessID);params.put("RequestType", "1002");String dataSign=encrypt(requestData, AppKey, "UTF-8");params.put("DataSign", urlEncoder(dataSign, "UTF-8"));params.put("DataType", "1");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 UnsupportedEncodingExc eption{String encoded = base64Encode(str.getBytes(charset));return encoded;}@SuppressWarnings("unused")private String urlEncoder(String str, String charset) throws UnsupportedEncodin gException{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-urlenco ded");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());}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[(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();}}其他Api接口,请转到快递鸟具体查看相关文档。
说明以下是快递100对外开放的部份公司的列表,同时适用于HtmlAPI和快递查询API(部份,具体区别请留意快递公司名称后的备注),另外国际类的可以直接点击国际邮政、EMS、快递类列表1、API地址]注:为了防止恶意解释的情况,不能通过IP访问本网站及API,敬请原谅2、输入参数说明3、返回结果说明4、API调用及返回结果示范4.1 API调用示范4.2 Json返回示例{"message":"ok","status":"1","state":"3","data":[{"time":"2012-07-0713:35:14","context":"客户已签收"},{"time":"2012-07-07 09:10:10","context":"离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]"},{"time":"2012-07-06 19:46:38","context":"到达 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 15:22:32","context":"离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]"},{"time":"2012-07-06 15:05:00","context":"到达 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-0613:37:52","context":"离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 12:54:41","context":"到达 [北京_同城中转站]"},{"time":"2012-07-06 11:11:03","context":"离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]"},{"time":"2012-07-06 10:43:21","context":"到达[北京运转中心_航空_驻站班组]"},{"time":"2012-07-05 21:18:53","context":"离开[福建_厦门支公司] 发往 [北京运转中心_航空]"},{"time":"2012-07-0520:07:27","context":"已取件,到达 [福建_厦门支公司]"}]}4.3 xml返回示例<xml><message>ok</message><status>1</status><state>3</state><data><time>2012-07-07 13:35:14</time><context>客户已签收</context></data><data><time>2012-07-07 09:10:10</time><context>离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]</context></data><data><time>2012-07-06 19:46:38</time><context>到达 [北京_房山营业所_石景山营业厅]</context></data><data><time>2012-07-06 15:22:32</time><context>离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]</context></data><data><time>2012-07-06 15:05:00</time><context>到达 [北京_房山营业所_石景山营业厅]</context></data><data><time>2012-07-06 13:37:52</time><context>离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]</context></data><data><time>2012-07-06 12:54:41</time><context>到达 [北京_同城中转站]</context></data><data><time>2012-07-06 11:11:03</time><context>离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]</context></data><data><time>2012-07-06 10:43:21</time><context>到达 [北京运转中心_航空_驻站班组]</context> </data><data><time>2012-07-05 21:18:53</time><context>离开 [福建_厦门支公司] 发往 [北京运转中心_航空]</context></data><data><time>2012-07-05 20:07:27</time><context>已取件,到达 [福建_厦门支公司]</context> </data></xml>4.4 html返回示例如下图照片所示,如果没有看到图片,请稍等或刷新本页:4.5 text返回示例时间地点和跟踪进度2012-07-07 13:35:14 客户已签收2012-07-07 09:10:10 离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]2012-07-06 19:46:38 到达 [北京_房山营业所_石景山营业厅]2012-07-06 15:22:32 离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]2012-07-06 15:05:00 到达 [北京_房山营业所_石景山营业厅]2012-07-06 13:37:52 离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]2012-07-06 12:54:41 到达 [北京_同城中转站]2012-07-06 11:11:03 离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]2012-07-06 10:43:21 到达 [北京运转中心_航空_驻站班组]2012-07-05 21:18:53 离开 [福建_厦门支公司] 发往 [北京运转中心_航空] 2012-07-05 20:07:27 已取件,到达 [福建_厦门支公司]5、开发案例及插件支持•目前提供ASP、、PHP和Java等四个版本的开发实例,请点快递查询开发示范下载。
说明以下是快递100对外开放的部份公司的列表,同时适用于和(部份,具体区别请留意快递公司名称后的备注),另外国际类的可以直接点击1、API地址]注:为了防止恶意解释的情况,不能通过IP访问本网站及API,敬请原谅2、输入参数说明3、返回结果说明4、API调用及返回结果示范4.1 API调用示范4.2 Json返回示例{"message":"ok","status":"1","state":"3","data":[{"time":"2012-07-0713:35:14","context":"客户已签收"},{"time":"2012-07-07 09:10:10","context":"离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]"},{"time":"2012-07-0619:46:38","context":"到达 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-0615:22:32","context":"离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]"},{"time":"2012-07-06 15:05:00","context":"到达 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 13:37:52","context":"离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 12:54:41","context":"到达 [北京_同城中转站]"},{"time":"2012-07-06 11:11:03","context":"离开 [北京运转中心_航空_驻站班组] 发往[北京_同城中转站]"},{"time":"2012-07-06 10:43:21","context":"到达 [北京运转中心_航空_驻站班组]"},{"time":"2012-07-05 21:18:53","context":"离开 [福建_厦门支公司] 发往 [北京运转中心_航空]"},{"time":"2012-07-05 20:07:27","context":"已取件,到达 [福建_厦门支公司]"}]}4.3 xml返回示例<xml>? ? ? ? <message>ok</message>? ? ? ? <status>1</status>? ? ? ? <state>3</state>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-07 13:35:14</time>? ? ? ? ? ? ? ? <context>客户已签收</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-07 09:10:10</time>? ? ? ? ? ? ? ? <context>离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 19:46:38</time>? ? ? ? ? ? ? ? <context>到达 [北京_房山营业所_石景山营业厅]</context></data><data><time>2012-07-06 15:22:32</time>? ? ? ? ? ? ? ? <context>离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 15:05:00</time>? ? ? ? ? ? ? ? <context>到达 [北京_房山营业所_石景山营业厅]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 13:37:52</time>? ? ? ? ? ? ? ? <context>离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 12:54:41</time>? ? ? ? ? ? ? ? <context>到达 [北京_同城中转站]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 11:11:03</time>? ? ? ? ? ? ? ? <context>离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]</context> ? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 10:43:21</time>? ? ? ? ? ? ? ? <context>到达 [北京运转中心_航空_驻站班组]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-05 21:18:53</time>? ? ? ? ? ? ? ? <context>离开 [福建_厦门支公司] 发往 [北京运转中心_航空]</context></data> ? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-05 20:07:27</time>? ? ? ? ? ? ? ? <context>已取件,到达 [福建_厦门支公司]</context>? ? ? ? </data></xml>4.4 html返回示例如下图照片所示,如果没有看到图片,请稍等或刷新本页:4.5 text返回示例时间 ? ? ?地点和跟踪进度2012-07-07 13:35:14 ? ? 客户已签收2012-07-07 09:10:10 ? ? 离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[] 2012-07-06 19:46:38 ? ? 到达 [北京_房山营业所_石景山营业厅]2012-07-06 15:22:32 ? ? 离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[] 2012-07-06 15:05:00 ? ? 到达 [北京_房山营业所_石景山营业厅]2012-07-06 13:37:52 ? ? 离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅] 2012-07-06 12:54:41 ? ? 到达 [北京_同城中转站]2012-07-06 11:11:03 ? ? 离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]2012-07-06 10:43:21 ? ? 到达 [北京运转中心_航空_驻站班组]2012-07-05 21:18:53 ? ? 离开 [福建_厦门支公司] 发往 [北京运转中心_航空]2012-07-05 20:07:27 ? ? 已取件,到达 [福建_厦门支公司]5、开发案例及插件支持•目前提供ASP、、PHP和Java等四个版本的开发实例,请点下载。
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} 这⾥根据我们的实际业务需求来选择免费套餐或者收费套餐。
常用快递单号物流查询接口通用API (JAVA 对接)快递查询接口通用API 是给发货电商以实现查询快递物流轨迹功能的,接口对接前要先到快递鸟网站申请接口秘钥和APIKEY快递API 的应用场景与用途最常见的应用场景如下:(1)电商网站:例如B2C ,团购,B2B ,批发分销站,C2C ,本地生活交易等网站。
(2)管理系统:订单处理平台,调度平台,发货平台,分销系统,渠道管理系统,客户管理系统,ERP 等。
快递API 的用途如下:(1)让顾客登录网站后,直接在“我的订单”页面上可以看到订单的物流状态。
(2)自动筛选出“已签收”,“疑难件”等状态的单号,减轻物流跟单人员的压力。
(3)更改订单的状态和交易流程,例如单号变为“已签收”,可以让订单转化可以确认退换货等。
(4)评估选择快递公司,根据“已签收”的运单数,可以算出销售人员的业绩,并进行应对的结算。
(5)邮件,短信提醒用户运单的最新状态,可以安抚用户,也可以利用邮件短信二次营销。
对接要求:(1),查询接口支持遵循运输单号查询(个别查询,并发不超过10个/ S )。
(2),指定的物流运输单号选择相应的快递公司编码,格式不对或则编码错误都会返回失败的信息。
例如EMS 物流单号应选择快递公司编码(EMS )(3),返回的物流跟踪信息遵循发生的时间升序排列。
(4),接口指令1002(5),接口提供:快递鸟 (6),请求地址:http ://java 请求示例: 1个2 3 4 5 6 7 8 9 10 import 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;11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 /**** 单日超过500单查询量,建议接入物流轨迹订阅推送接口**/public class KdniaoTrackQueryAPI {//DEMOpublic static void main(String[] args) {KdniaoTrackQueryAPI api = new KdniaoTrackQueryAPI();try {String result = api.getOrderTracesByJson("ANE", "210001633605");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 getOrderTracesByJson(String expCode, String expNo) throws Exception{String requestData= "{'OrderCode':'','ShipperCode':'" + expCode + "','LogisticCode':'" + expNo + "'}";Map params = new HashMap();params.put("RequestData", urlEncoder(requestData, "UTF-8"));params.put("EBusinessID", EBusinessID);params.put("RequestType", "1002");String dataSign=encrypt(requestData, AppKey, "UTF-8");params.put("DataSign", urlEncoder(dataSign, "UTF-8"));params.put("DataType", "2");String result=sendPost(ReqURL, params);//根据公司业务处理返回的信息......5556575859606162636465666768697071727374757677787980818283848586878889909192939495969798return 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;}/**99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142* 电商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();143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186// 获取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();188 189190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 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();}。
国际包裹查询轨迹中英文对照进口海关查验被取消Import customsinspection canceled货物电子信息已经收到Shipment information receivedUselessUseless正在操作订单Orders are being processed操作完成Shipment operation completed已经在派送途中Out for delivery已在派送途中-至偏远地区Out for delivery -To beyond point货物已经派送Shipment delivered货物已签收-收件人自提Shipment delivered-Consignee collection货物已经派送--手机短信返回PODShipment delivered-Pod return by GSM short message邮件已派送parcel has been delivered货物已经派送--转邮政派送Shipment delivered-Forwarded to post office 邮件已投寄parcel posted收货人已签收Shipment delivered-Signature by consignee货物已经派送并签收-收件人口头确认收到货件Shipmentdelivered-VerbalPODconfirmation from recipient订单已经出库Orders have been out of warehouse邮件到达中转站parcel arrived at exchange office部份货物己经签收Partial Delivery邮件离开中转站parcel departed from exchange office邮件中转parcel dispatched from original office邮件投寄收件局parcel forwarded to Post Office已收到电子信息Parcel information received作业中心内部操作Process at Location邮件被退回-地址不详parcel returned-Insufficient address邮件被退回-查无此人parcel returned-Receiver not found邮件被退回-收件人拒收parcel returned-Receiver refused邮件被退回parcel returned邮件被退回-无人认领parcel returned-Unclaimed邮件操作parcel scanned and Processed投递Posted货物已从发件人处提取Shipment picked up邮件已提取parcel was picked up海关已经放行Released from customs海关放行被取消Release from customs canceled收件人拒收货物Receipients refused to accept shipment货物已退回发件地Returned to shipper货物破损Shipment damaged货物再次中转Shipment departed from facility again货物暂扣Shipment on hold货件暂扣-等待收件人提供资料Shipment on hold-Awaiting paperwork货件暂扣-等待确认偏远费用Shipment on hold-Need recipient conform ODA chargeTrackingmore国际包裹查询货物暂扣-收件人关税未付Shipment on hold-Duty not pay货物暂扣-收件人没有准备好费用Shipment on hold-Payment not ready货物暂扣-超出服务派送范围SHIPMENT ON HOLD-OUT OF DELIVERY AREA货件暂扣-等待费用到帐Shipment on hold-Payment deposited货物暂扣-由于收件人拒付到付费用Shipment on hold-Refuse pay COD charge 货物暂扣-收件人拒付关税Shipment on hold-Consignee refused to pay duty货件暂扣-由于收件人拒绝支付费用SHIPMENT ON HOLD-REFUSE TO PAY CHARGE货物暂扣-需要提供入仓单,并确认入仓费用SHIPMENTONHOLD-WAREHOUSEDOCANDCHARGE CONFIRMATION NEEDED货件暂扣-由于重量不符Shipment on hold-Due to weight difference根据发件人要求退回货物Return as shipper's request货物从海关退回公司Shipment returned from customs to facility货物在转运中Shipment in transit货件转运-由当地邮政安排中转派送SHIPMENT IN TRANSIT-DELIVERED BY THE POST OFFICE货件转运-交机场SHIPMENT IN TRANSIT-TO THE AIRLINE货件转运-中转到清关点Shipment in transit-To the customs货件转运-转往目的地Shipment in transit-To the destination city货件转运-航空公司卸载Shipment in transit-Consignment unloaded from the airline转运延迟Transport delay转运延迟-等待转交代理Transport delay-Awaiting collection from agents转运延迟-由于恶劣天气Transport delay-Due to bad weather转运延迟-由于目的地机场被封锁Transport delay-Due to destination airport was blocked转运延迟-由于航班取消导致延迟Transport delay-A flight was canceled and caused delay由于航班取消导致转运延迟被取消Transportdelaycanceled-Aflightwascanceledandcaused delay转运延迟-航班晚点Transport delay-Flight delayed转运延迟-由于机械故障导致航班延迟Transportdelay-Aflightdelayoccurredduetomechanical reasons转运延迟-由于货件中存在违规危险品Transport delay-A hazardous material irregularity hasoccurred with the shipment转运延迟-当地假期Transport delay-Due to local holidays转运延迟-交货晚点,无法赶上航班Transport delay-Late arrival and miss the flight转运延迟-未提到货物,航空公司调查中TRANSPORTDELAY-CONSIGNMENTNOTFOUND,AIRLINE START INVESTIGATING转运延迟-由于航空公司卸货延迟Transport delay-The airline off-loaded Shipments causingdelay转运延迟-其他省市Transport delay-To other provinces转运延迟-由于公共假期Transport delay-Due to public holiday转运延迟-特殊地区TRANSPORT DELAY-TO SPECIAL AREAS转运延迟-由于正在接受安全检查Transport delay-Due to security check转运延迟-等待航班Transport delay-Wait for the flight邮件深查中Under Investigation货物等待中转Wait Transport货物等待中转被取消Wait transport canceledTrackingmore国际包裹查询货物到达港口Shipment arrived at airport货物到港被去消Shipment arrived at airport canceled货物到达作业中心Shipment arrived at facility货物到达作业中心被取消Shipment arrived atfacility canceled根据客户要求,快件正等候收件人自取Awaiting pick up by recipient as requested结案Case closed发件人自提Shipment fetch by shipper货物交由收件人的清关代理清关Handed over to recipient broker for clearance货物已经遗失Shipment missing货物交由第三方代理派送,无派送结果Delivery arranged,no signature expected收件人自己安排清关,文件已派给收件人PAPERWORKHANDEDOVERTORECIPIENTBROKER FOR CLEARANCE货物交由第三方代理退回至发件人Delivery arranged,return to shipper海关扣件-快件被海关没收HELD IN CUSTOMS-CONSIGNMENT SEIZED BY CUSTOMS货物已经被销毁Shipment destroy货物在清关Customs clearance in progress海关退关Customs return请联络4PXPlease contact 4PX货物离开起运港Shipment departed from airport货物离港被取消Shipment departed from airport canceled货物件到达目的地Shipmnet arrived at destination country派送延迟Delivery delay派送延迟-等待收件人回复Delivery delay-Awaiting reply from recipient派送延迟-无收件人电话或收件人电话无人接听Deliverydelay-Telephonenorespondorbad number派送延迟-天气恶劣Delivery delay-Due to bad weather派送延迟-收件人要求更改地址Delivery delay-Consignee request to change the address派送延迟-正在联系收件人Delivery delay-Countacting Consignee...派送延迟-收件人搬离派送地址Delivery delay-consignee moved派送延迟-需要收件人的信息Delivery delay-consignee not available派送延迟-派送关门Delivery delay-Company closed派送延迟-收件人地址不正确或不完整Delivery delay-Incorrect/incomplete address派送延迟-错过派送时间Delivery delay-Missed delivery cycle派送延迟-由于错误分拣Delivery delay-Due to missort派送延迟-货物不在当地,查找中Deliverydelay-Consignmentnotfound,investigationstarted派送延迟-收件人不在当地Delivery delay-Consignee not in the country派送延迟-收件人在休假Delivery delay-Recipients on holiday货件暂扣-已通知收件人Shipment on hold-Recipient contacted派送延迟-派送时收件人不在Delivery delay-Recipient not at home派送延迟-收件人要求约时间派送Deliverydelay-Recipientsrequesttoholdforfuturedelivery date派送延迟-到达错误目的地正转往正确目的地Deliverydelay-Baddestinationandresendtoright destinationTrackingmore国际包裹查询派送延迟-已联络发件人Delivery delay-Shipper contacted派送延迟-由于罢工或骚乱Delivery delay-Due to strike / riots派送延迟-货物不在当地,仍在查找DELIVERYDELAY-CONSIGNMENTNOTFOUND,KEEPSEARCHING派送延迟-由于交通问题Delivery delay-Due to traffic problems货物离开作业中心Shipment departed from facility货物离开作业中心被取消Shipment departed from facility canceled计划安排派送Scheduled for delivery已经安排派送-偏远地区转第三方派送Scheduledfordelivery-Remotearea,deliverybythird party销毁货物the shipment has been destroyed销毁货物-由于客户要求the shipment has been destroyed as request销毁货物-由于涉嫌商标侵权the shipment has been destroyed due to tradmark出口海关查验Export customs inspection出口海关查验被取消Export customs inspection canceled海关扣件Held in customs海关扣件-正在评估关税Held in customs-Custom appraising the duty and tax 海关扣件-等待海关通知Held in customs-Awaiting information from Customs海关扣件-等待收件人提供清关资料Heldincustoms-AwaitingclearancepaperworkfromRecipient海关扣件-由于海关计算机系统宕机Heldincustoms-Duetocustomscomputersystembreakdown海关扣件-收件人在联系海关处理相关事宜custom directly to handleHeldincustoms-Recipientwillcontactthe海关扣件-收件人确认关税Held in customs-Recipient confirm to pay for the duty and tax海关扣件-正在等待收件人的清关资料Heldincustoms-Awaitingclearancefilefromconsignee海关扣件-需要收件人信息Held in customs-Need consignee's information海关扣件-海关不接受提供的资料Held in customs-Paperworks rejected by customs海关扣件-由于报关数据未提供Held in customs-Due to data not available海关扣件-要求正式进口报关Held in customs-for formal entry submission海关扣件-需要收件人确认关税Held in customs-Need recipient confirm duty and tax海关扣件-由于活体动物进口Held in customs-Due to live animal entry海关扣件-收件人没有回应Held in customs-No response from recipient海关扣件-需要收件人授权Held in customs-Need consignee authority海关扣件-产生罚款Held in customs-Fine & penalty imposed from customs海关扣件-等候检查检疫Held in customs-Pending inspection and quarantine海关扣件-等候海关放行Held in customs-Pending customs released海关扣件-需要清关文件Held in customs-Need paperwork已确认收货Has confirmed receipt海关扣件-收件人要求自己清关,等待确认Heldincustoms-Recipientwillarrangeclearance, awaiting confirmation海关扣件-收件人拒绝协助清关Held in customs-Recipient refuse to provide instruction海关扣件-由于安全检查Held in customs - Due to security checkTrackingmore国际包裹查询海关扣件-需要有效税号Held in customs-Need a valid tax identification number海关扣件-敏感货物Held in customs-Unacceptable goods海关扣件-由于检查商品描述Held in customs-for verify commodity description 海关扣件-由于检查商品价值描述Held in customs-for verify value description 海关扣件-由于物品申报不符Held in customs-Wrong commodity declaration海关扣件-等候收件人清关指示Heldincustoms-Awaitingclearanceinstructionsfromconsignee海关扣件-由于价值申报不符Held in customs-Wrong value declaration作业中心扣件Held in facility作业中心扣件-由于付款未到Held in facility-Due to payment not readyTrackingmore国际包裹查询。
物流⼀站式查询之TrackingMore 篇连载篇提前看快递查询接⼝⽬前提供快递查询的接⼝平台有:不同接⼝的区别:(1)Trackingmore ⽀持380家快递公司,其中有55家为国内的快递,其余325家为国际快递。
具体的价格为0.6分钱/单号左右,新注册⽤户可以免费测试12⼩时。
(2)快递100属于在国内做得⽐较早的平台,可以申请每天最多2000次的API 调⽤,但需要给快递100做⼀个友链。
超过2000次收费,每次0.06~0.1元不等。
(3)快递⽹可以申请每天最多500次的API 调⽤,但同样需要做⼀个友链。
超过部分,每次0.05元。
(4) 快递鸟是专业的第三⽅物流接⼝服务商,为开发者聚合全球600+物流接⼝⼀次性对接服务,免费版有使⽤限制。
快递API 的应⽤场景与⽤途1. 最常见的应⽤场景如下:(1)电商⽹站:例如B2C 、团购、B2B 、批发分销站、C2C 、本地⽣活交易等⽹站。
(2)管理系统:订单处理平台、订货平台、发货平台、分销系统、渠道管理系统、客户管理系统、ERP 等。
2. 快递API 的⽤途如下:(1)让顾客登录⽹站后,直接在“我的订单”页⾯内就能看到订单的物流状态。
(2)⾃动筛选出“已签收”、“疑难件”等状态的单号,减轻物流跟单⼈员的压⼒。
(3)改变订单的状态和交易流程,例如单号变为“已签收”,就能让订单变为可以确认退换货等。
(4)评估选择快递公司,根据“已签收”的运单数,可以算出销售⼈员的业绩,且便于应对货到付款的结算。
(5)邮件、短信提醒⽤户运单的最新状态,可以安抚⽤户,也可以利⽤邮件短信⼆次营销。
对接⽰例这⾥以Trackingmore 为例,不同的接⼝的对接⽅式⽐较类似,都需要注册,并⽣成⾃⼰的API key 。
以下以Trackingmore 的实时查询API 为例。
接⼝⽀持的消息接收⽅式为HTTP POST 请求⽅法的编码格式为 utf-8 请求body 部分的参数的数据格式为json格式接⼝参数接⼝请求地址/v2/trackings/realtime请求头部信息参数请求body 参数说明carrier_code 参数是trackingmore ⾃⼰定义的快递商家的简码,具体的可以在这⾥。