城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

如何实现100家快递单轨迹推送?

5月25日 溷元楼投稿
  做电商的朋友们是不是会遇到以下的一些头疼的问题?
  由于天气、大促爆仓等多种原因造成快递不能及时送达,也未及时通知客户而导致的客户流失及物流成本增加;
  物流状态一直未更新,无法查询物流状态而导致客户投诉、差评、退款;
  单量太大,无法逐一查询每个包裹的状态,无法及时了解包裹状态;
  由于快递的各种原因导致的客户体验降低,流失客户;
  此时物流轨迹追踪就可以随时让您知道每一个包裹的进度,解决以上的问题,留存客户。
  本期分享的就是如何用快递鸟将最新的物流轨迹推送到我们服务器,我们既然要接收它的信息,就需要提供一个服务地址给它,以C为列,我们新建一个接收页面,我的接收文件:KdniaoHandler。aspx,把他部署到服务器,
  接收地址:http:www。你的域名。comKdniaoHandler。ashx
  登陆快递鸟官网,通过快递鸟提供的沙箱调试页面进去测试接口
  调试页面地址:关注公众号:快递鸟API,授权申请APIKey:http:www。kdniao。comreg?utmsourceJRTTutmmediumXMTutmcampaignKDNutmcontentapikjutmtermA1
  测试的截图:
  一、接口描述说明
  推送接口(商户实现)
  (1)客户需要按快递鸟要求开发接口,保证信息的正常接收。
  (2)快递鸟主动推送时,物流信息接收接口由客户提供。
  (3)接口支持的消息接收方式为HTTPPOST,请求方法的编码格式(utf8):charsetutf8。
  (4)运单物流信息全量推送(每次推送的运单物流信息包括运单当前所有的的物流信息)。
  请求系统级参数说明:
  参数名称
  类型
  说明
  必须要求
  RequestData
  String
  请求内容需进行URL(utf8)编码。请求内容只支持JSON格式。
  R
  RequestType
  String
  101轨迹查询结果,107货款状态
  R
  DataSign
  String
  数据内容签名(把(请求内容(未编码)AppKey)进行MD5加密,然后Base64编码)
  R
  备注:R必填(Required),O可选(Optional),C报文中该参数在一定条件下可选(Conditional)
  二、接口参数
  推送接口
  应用级输入参数
  参数名称
  类型
  说明
  必须要求
  EBusinessID
  String
  用户电商ID
  R
  PushTime
  String
  推送时间
  R
  Count
  String
  推送物流单号轨迹个数
  R
  Data
  String
  推送物流单号轨迹集合
  R
  订阅查询结果(RequestType:101)
  通过轨迹查询(订阅查询)接口订阅到快递鸟的数据,快递鸟推送时,会将推送的RequestType的值置为101,同时返回下列数据
  请求内容字段定义:
  参数
  类型
  说明
  必须要求
  Data
  EBusinessID
  String
  商户ID
  O
  ShipperCode
  String
  快递公司编码
  R
  LogisticCode
  String
  快递单号
  R
  Success
  Bool
  成功与否:true,false
  R
  Reason
  String
  失败原因
  O
  State
  String
  物流状态:0无轨迹,1已揽收,2在途中,3签收,4问题件
  R
  CallBack
  String
  订阅接口的Bk值
  O
  Traces
  Traces
  AcceptTime
  String
  时间
  R
  AcceptStation
  String
  描述
  R
  Remark
  String
  备注
  O
  EstimatedDeliveryTime
  String
  预计到达时间yyyymmdd
  O
  货款状态(RequestType:107)
  用户通过电子面单使用快递鸟货到付款等金融服务时,快递鸟会将该订单的金融状态通过接口推送给用户。
  请求内容字段定义:
  参数名称
  类型
  说明
  必须要求
  Data
  EBusinessID
  String
  用户电商ID
  O
  OrderCode
  String
  订单编号
  O
  ShipperCode
  String
  快递公司编码
  R
  LogisticCode
  String
  物流运单号
  R
  Success
  Bool
  成功与否
  R
  Reason
  String
  失败原因
  O
  State
  String
  物流状态:0无轨迹,1已揽收,2在途中201到达派件城市,3签收,4问题件
  R
  CallBack
  String
  订阅接口的Bk值
  O
  OrderState
  String
  订单货款状态:1待出款;2已出款;3已收款
  O
  AccountName
  String
  返款银行卡开户人(例:伟、佳)
  O
  AccountTel
  String
  返款银行卡手机末四位
  O
  AccountNum
  String
  返款银行卡末四位
  O
  返回参数定义
  参数名称
  类型
  说明
  必须要求
  EBusinessID
  String
  用户ID
  R
  UpdateTime
  String
  时间
  R
  Success
  Bool
  成功与否:true,false
  R
  Reason
  String
  失败原因
  O
  推送接口(商户实现)
  请求示例JSON(订阅查询结果)
  {
  EBusinessID:1109259,
  Count:2,
  PushTime:201531116:21:06,
  Data:〔
  {
  EBusinessID:1109259,
  OrderCode:,
  ShipperCode:EMS,
  LogisticCode:5042260908504,
  Success:true,
  Reason:,
  State:2,
  CallBack:0,
  Traces:〔
  {
  AcceptTime:2015030621:16:58,
  AcceptStation:深圳市横岗速递营销部已收件,(揽投员姓名:钟定基;),
  Remark:
  },
  {
  AcceptTime:2015030714:25:00,
  AcceptStation:离开深圳市发往广州市,
  Remark:
  },
  {
  AcceptTime:2015030800:17:00,
  AcceptStation:到达广东速递物流公司广航中心处理中心(经转),
  Remark:
  },
  {
  AcceptTime:2015030801:15:00,
  AcceptStation:离开广州市发往北京市(经转),
  Remark:
  },
  {
  AcceptTime:2015030909:01:00,
  AcceptStation:到达北京黄村转运站处理中心(经转),
  Remark:
  },
  {
  AcceptTime:2015030918:39:00,
  AcceptStation:离开北京市发往呼和浩特市(经转),
  Remark:
  },
  {
  AcceptTime:2015031018:06:00,
  AcceptStation:到达呼和浩特市处理中心,
  Remark:
  },
  {
  AcceptTime:2015031109:53:48,
  AcceptStation:呼和浩特市邮政速递物流分公司金川揽投部安排投递(投递员姓名:安长虹;),
  Remark:
  }
  〕
  },
  {
  EBusinessID:1109259,
  OrderCode:,
  ShipperCode:EMS,
  LogisticCode:5042260943004,
  Success:true,
  Reason:,
  State:2,
  CallBack:0,
  Traces:〔
  {
  AcceptTime:2015030715:26:09,
  AcceptStation:深圳市横岗速递营销部已收件,(揽投员姓名:周宏彪;),
  Remark:
  },
  {
  AcceptTime:2015030816:32:00,
  AcceptStation:离开深圳市发往广州市,
  Remark:
  },
  {
  AcceptTime:2015030900:58:00,
  AcceptStation:到达广东速递物流公司广航中心处理中心(经转),
  Remark:
  },
  {
  AcceptTime:2015030901:15:00,
  AcceptStation:离开广州市发往北京市(经转),
  Remark:
  },
  {
  AcceptTime:2015031005:20:00,
  AcceptStation:到达北京黄村转运站处理中心(经转),
  Remark:
  },
  {
  AcceptTime:2015031011:59:00,
  AcceptStation:离开北京市发往廊坊市(经转),
  Remark:
  },
  {
  AcceptTime:2015031014:23:00,
  AcceptStation:到达廊坊市处理中心(经转),
  Remark:
  },
  {
  AcceptTime:2015031108:55:00,
  AcceptStation:离开廊坊市发往保定市(经转),
  Remark:
  }
  〕
  }
  〕
  }请求示例JSON格式(货款状态)
  {
  EBusinessID:1109259,
  Count:2,
  PushTime:201531116:21:06,
  Data:〔
  {
  EBusinessID:1109259,
  OrderCode:,
  ShipperCode:EMS,
  LogisticCode:5042260908504,
  Success:true,
  Reason:,
  State:2,
  CallBack:0,
  OrderState:1,
  AccountName:张三,
  AccountTel:xxxxxxx,
  AccountNum:0321
  },
  {
  EBusinessID:1109259,
  OrderCode:,
  ShipperCode:EMS,
  LogisticCode:5042260908522,
  Success:true,
  Reason:,
  State:2,
  CallBack:0,
  OrderState:1,
  AccountName:张三,
  AccountTel:xxxxxxxxxx,
  AccountNum:0321
  }
  〕
  }返回示例JSON
  {
  EBusinessID:1151847,
  UpdateTime:2016080916:42:38,
  Success:true,
  Reason:
  }
  KdniaoHandler。ashx回调页面:
  WebHandlerLanguageCClassKdniaoHandler
  usingS
  usingSystem。Collections。G
  usingSystem。IO;
  usingSystem。L
  usingSystem。T
  usingSystem。W
  usingSystem。Web。UI;
  usingSystem。Web。UI。WebC
  usingNewtonsoft。J
  usingNewtonsoft。Json。C
  作者:yanghanwen
  联系QQ:xxxxx
  publicclassKdniaoHandler:IHttpHandler{
  订阅接口的处理机制:用户将快递单号订阅给快递鸟,快递鸟内部接收信息并按每家物流公司轨迹的生成规律实时动态调用物流公司给快递鸟提供的专用接口,查询有新轨迹就按客户要求推送。如没有最新轨迹,两个小时后会再次触发接口调用,如有更新就将全量数据推送给用户,如果没有更新,最晚每2小时轮询,直到运单签收。
  summary
  param
  publicvoidProcessRequest(HttpContextcontext){
  context。Response。ContentT
  接收请求获取到快递鸟推送过来的请求报文
  varrequestDatacontext。Request。Form〔RequestData〕;
  varrequestTypecontext。Request。Form〔RequestType〕;
  vardataSigncontext。Request。Form〔DataSign〕;
  调试阶段存储日志方便追踪问题
  WriteTextLog(RequestData:,requestData);
  WriteTextLog(RequestType:,requestType);
  WriteTextLog(DataSign:,dataSign);
  这里提供给快递鸟的接口一定不要做登录权限验证,否则快递鸟无法推送信息。推送接口要在5S内对快递鸟请求做出响应,返回快递鸟所需的参数。成功获取到报文以后,储存并迅速返回响应,内部逻辑业务可异步处理。每个客户处理的业务逻辑复杂程度不一样,如果客户对数据进行处理,再做出响应,会造成网络超时,传输效率低下。在没有返回信息或者返回超时,以及返回不符合规定的内容,快递鸟会判断为客户接收失败。接收失败后会重试推送2次,首次间隔15分钟,二次间隔30分钟,重试2次都未成功,不再推送,直到下次有新轨迹时再次推送。我们一定要严格按照技术文档进行返回。
  PushResponseresponsenewPushResponse();
  response。EBusinessID1151847;
  response。UpdateTimeDateTime。Now。ToString(yyyyMMddHH:mm:ss);
  response。S
  response。Reason成功;
  stringresultToJson(response);
  联调的时候可以返回固定的接收成功的报文
  result{EBusinessID:1151847,UpdateTime:DateTime。Now。ToString(yyyyMMddHH:mm:ss),Success:true,Reason:成功};
  context。Response。Write(result);
  }
  publicboolIsReusable{
  get{
  
  }
  }
  写入日志到文本文件
  动作param
  日志内容param
  publicstaticvoidWriteTextLog(stringaction,stringstrMessage)
  {
  try
  {
  DateTimetimeDateTime。N
  stringpathAppDomain。CurrentDomain。BaseDirectoryLogI
  if(!Directory。Exists(path))
  Directory。CreateDirectory(path);
  stringfileFullPathpathtime。ToString(yyyyMMdd)。System。
  StringBuilderstrnewStringBuilder();
  str。Append(Time:time。ToString()r);
  str。Append(Action:actionr);
  str。Append(Message:strMessager);
  str。Append(rr);
  StreamW
  if(!File。Exists(fileFullPath))
  {
  swFile。CreateText(fileFullPath);
  }
  else
  {
  swFile。AppendText(fileFullPath);
  }
  sw。WriteLine(str。ToString());
  sw。Close();
  sw。Dispose();
  }
  catch(Exceptione)
  {
  }
  }
  publicclassPushResponse
  {
  订阅用户ID
  publicstringEBusinessID
  {
  
  
  }
  时间
  publicstringUpdateTime
  {
  
  
  }
  成功与否:true,false
  publicboolSuccess
  {
  
  
  }
  失败原因
  publicstringReason
  {
  
  
  }
  }
  序列化JSON数据
  param
  publicstaticstringToJson(objecto)
  {
  IsoDateTimeConvertertimeFormatnewIsoDateTimeConverter();
  timeFormat。DateTimeFormatyyyyMMddHH:mm:
  returnJsonConvert。SerializeObject(o,Newtonsoft。Json。Formatting。None,timeFormat);
  }
  反序列化JSON数据
  param
  publicstaticTToObject(stringjson)
  {
  returnJsonConvert。DeserializeObject(json);
  }
  }
  调用第三方物流接口,替换自己的key就能直接使用,主要实现了物流在线轨迹查询,订单订阅,轨迹推送,支持500多家的快递查询接口,包括主流的四通一达,支持上门取件服务,其他接口调用,修改调用指令和参数就能实现。
  这里给大家提供源码下载:关住公众号(快递鸟API),后台回复源码下载
  更多快递接口api技术干货、接口实操教程、物流行业知识,关住我们的公众号【快递鸟API】(kuaidiniaoapi)、抖音【快递鸟】。如果你觉得以上内容对你有用,欢迎点赞、评论、转发。你的认可是我持续分享的动力!
  有不清楚的问题,欢迎大家留言一起探讨。
投诉 评论 转载

如何实现100家快递单轨迹推送?做电商的朋友们是不是会遇到以下的一些头疼的问题?由于天气、大促爆仓等多种原因造成快递不能及时送达,也未及时通知客户而导致的客户流失及物流成本增加;物流状态一直未更新……作废信用卡诈骗如何定罪处罚生活当中处处都是在学习,只有我们多学习才能更好的保护好我们自己,就说现在的信用卡有很多人废弃的信用卡到处随便乱扔,这时就有一些不法人员他来诈骗,这就是使我们受到了伤害,所以我们……辣白菜颜色不红怎么办辣白菜颜色鲜红的窍门我们都知道,辣白菜是比较受欢迎的一种美食,它主要是用白菜腌制而成的,味道酸辣可口,是比较下饭的一种食物,很多人都喜欢吃辣白菜。有些人会自己在家做辣白菜,那么辣白菜怎么做颜色才红……冷藏母乳,真能让绝症丈夫获得一线生机?母乳喂养的好处大家耳熟能详,不仅能增强孩子的免疫力,还有助于母体的恢复。你可知道,母乳对患癌的成年人也有作用?美国男子福莱尔身患胃癌,为了保命,切掉了35的胃,不得不定期……摒弃改良版大衣!3种经典款的呢大衣,满足你不同气质类型的需求姐妹们,晚上好啊!穿大衣的季节到啦宝子们,你们的大衣都买了么?作为秋冬必备单品,大衣不仅有温度,而且真的好穿。不管你是什么气质型的,穿上大衣就会显得特别有气场和高级……情感垃圾年底清零十大妙招年底就要到了,每个人家中都难免有积攒了一年的废旧物品需要处理。那么在夫妻之间,是否也会积累往日留下的一些感情垃圾呢?好好整理和清除一下吧,不要让堆积的垃圾影响新年崭新的生活!P……精装房毛坯房买哪一种更好最近朋友们询问买房风水的很多,一些朋友还带着图纸来问。郑博士准备将问题归类、忙里偷闲解答这些问题。今天要回答的是很多朋友关心的精装房和毛坯房的风水问题。究竟是买精装房风水……三贤山散记三贤山散记传说,一位神仙触犯天规,被玉皇大帝罚下人间化做山。玉帝本是要他隐育万物,惠泽百姓,以此洗刷罪过。不料那位神仙火气很大,暗暗地长高自己的身体,一夜间高出四周山脉许……淘宝卖家该如何应对全额免单被废好评返现被禁自从我前两篇二八效应发布后,很多朋友问我,你的思维怎么这么牛,是怎么想出来的。其实我只是想了你们不敢想的,做了你们想到但是没敢做的事情而已!大家记住,敢于尝试新的东西,新的东西……童星中的扛把子到如今无戏可拍,张一山经历了什么?他是胆小但仗义的佟乐,是古灵精怪的刘星,是平民英雄余罪,是人格分裂的沈亦臻,是文学青年秋水。自从《家有儿女》播出后,张一山就成为了家喻户晓的童星,剧中饰演的刘星这个人物是全剧的……金融数字化调查银行手机银行打好月活攻坚战编者按:年初,央行印发《金融科技发展规划(20222025年)》,要求高质量推进金融数字化转型。对金融业而言,构建以数据为中心的现代金融服务体系,是数字经济的时代要求,从这个意……这些宝宝名字诗情画意,给女宝宝起名可以学习名字是一个人的形象标志,因此在给女宝宝取名字的时候,尤其需要注重名字的内涵气质。一个优雅大气且高贵的名字,可以帮助女宝宝形成举止优雅、端庄大方的气质,助益女宝宝在成长过程中的性……
内地首座七星级酒店三亚亚特兰蒂斯老板请辞,年薪曾超4000万买游戏机,是买PS5,还是任天堂switch?13点08分,女篮传来新消息,全民向女篮致敬,球迷英雄归期已天津女排主攻位置有变化,李盈莹恐换新搭档,女排前队长身份转变冲上热搜!刘强东捐赠149亿,首次成中国首善如果不知道麒麟系统,你就OUT了6g网络预计什么时候上市?华为6g研发最新信息汇总拒绝嘴笨,我建议你读这两本书今年锁骨卷火了!40岁的你不烫一个,都不知道有多洋气减龄百度文库会员年卡(8折)79元一年在哪里买?快报滕哈格愿意出售C罗女排世锦赛名单出炉
心肺复苏急救方法你会吗上海保安老陈好大的官威,同样是外卖,居委人员能拿居民就不能拿对你的承诺留在你时光里的人谁更得意?匈奴不灭何以为家的典故匈奴不灭何以为家谁说的福胜院他们的爱情(六)数字之恋公安部强迫交易罪追诉标准是怎样的?深度解析,东风日产纯电SUV艾睿雅热评聚热点网 名人名言至理名言(十)挑战不可能四年级作文

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁