范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

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

  做电商的朋友们是不是会遇到以下的一些头疼的问题?
  由于天气、大促爆仓等多种原因造成快递不能及时送达,也未及时通知客户而导致的客户流失及物流成本增加;
  物流状态一直未更新,无法查询物流状态而导致客户投诉、差评、退款;
  单量太大,无法逐一查询每个包裹的状态,无法及时了解包裹状态;
  由于快递的各种原因导致的客户体验降低,流失客户;
  此时物流轨迹追踪就可以随时让您知道每一个包裹的进度,解决以上的问题,留存客户。
  本期分享的就是如何用快递鸟将最新的物流轨迹推送到我们服务器,我们既然要接收它的信息,就需要提供一个服务地址给它,以C#为列,我们新建一个接收页面,我的接收文件: KdniaoHandler.aspx,把他部署到服务器,
  接收地址:http://www.你的域名.com/KdniaoHandler.ashx
  登陆快递鸟官网,通过快递鸟提供的沙箱调试页面进去测试接口
  调试页面地址:关注公众号:快递鸟API,授权申请APIKey:http://www.kdniao.com/reg?utm_source=JRTT&utm_medium=XMT&utm_campaign=KDN&utm_content=apikj&utm_term=A1
  测试的截图:
  一、接口描述/说明
  推送接口(商户实现)
  (1)客户需要按快递鸟要求开发接口,保证信息的正常接收。
  (2)快递鸟主动推送时,物流信息接收接口由客户提供。
  (3)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。
  (4)运单物流信息全量推送(每次推送的运单物流信息包括运单当前所有的的物流信息)。
  请求系统级参数说明:
  参数名称
  类型
  说明
  必须要求
  RequestData
  String
  请求内容需进行URL(utf-8)编码。请求内容只支持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
  预计到达时间yyyy-mm-dd
  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": "2015-3-11 16:21:06",
  "Data": [
  {
  "EBusinessID": "1109259",
  "OrderCode": "",
  "ShipperCode": "EMS",
  "LogisticCode": "5042260908504",
  "Success": true,
  "Reason": "",
  "State": "2",
  "CallBack": "0",
  "Traces": [
  {
  "AcceptTime": "2015-03-06 21:16:58",
  "AcceptStation": "深圳市横岗速递营销部已收件,(揽投员姓名:钟定基;)",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-07 14:25:00",
  "AcceptStation": "离开深圳市 发往广州市",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-08 00:17:00",
  "AcceptStation": "到达广东速递物流公司广航中心处理中心(经转)",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-08 01:15:00",
  "AcceptStation": "离开广州市 发往北京市(经转)",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-09 09:01:00",
  "AcceptStation": "到达北京黄村转运站处理中心(经转)",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-09 18:39:00",
  "AcceptStation": "离开北京市 发往呼和浩特市(经转)",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-10 18:06:00",
  "AcceptStation": "到达 呼和浩特市 处理中心",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-11 09:53:48",
  "AcceptStation": "呼和浩特市邮政速递物流分公司金川揽投部安排投递(投递员姓名:安长虹;)",
  "Remark": ""
  }
  ]
  },
  {
  "EBusinessID": "1109259",
  "OrderCode": "",
  "ShipperCode": "EMS",
  "LogisticCode": "5042260943004",
  "Success": true,
  "Reason": "",
  "State": "2",
  "CallBack": "0",
  "Traces": [
  {
  "AcceptTime": "2015-03-07 15:26:09",
  "AcceptStation": "深圳市横岗速递营销部已收件,(揽投员姓名:周宏彪;)",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-08 16:32:00",
  "AcceptStation": "离开深圳市 发往广州市",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-09 00:58:00",
  "AcceptStation": "到达广东速递物流公司广航中心处理中心(经转)",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-09 01:15:00",
  "AcceptStation": "离开广州市 发往北京市(经转)",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-10 05:20:00",
  "AcceptStation": "到达北京黄村转运站处理中心(经转)",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-10 11:59:00",
  "AcceptStation": "离开北京市 发往廊坊市(经转)",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-10 14:23:00",
  "AcceptStation": "到达廊坊市处理中心(经转)",
  "Remark": ""
  },
  {
  "AcceptTime": "2015-03-11 08:55:00",
  "AcceptStation": "离开廊坊市 发往保定市(经转)",
  "Remark": ""
  }
  ]
  }
  ]
  }  请求示例 JSON格式 (货款状态)
  {
  "EBusinessID": "1109259",
  "Count": "2",
  "PushTime": "2015-3-11 16: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": "2016-08-09 16:42:38",
  "Success": true,
  "Reason": ""
  }
  KdniaoHandler.ashx  回调页面:
  <%@ WebHandler Language="C#" Class="KdniaoHandler" %>
  using System;
  using System.Collections.Generic;
  using System.IO;
  using System.Linq;
  using System.Text;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  using Newtonsoft.Json;
  using Newtonsoft.Json.Converters;
  ///
  /// 作者:yanghanwen
  /// 联系QQ:xxxxx
  ///
  public class KdniaoHandler : IHttpHandler {
  ///
  订阅接口的处理机制:用户将快递单号订阅给快递鸟,快递鸟内部接收信息并按每家物流公司轨迹的生成规律实时动态调用物流公司给快递鸟提供的专用接口, 查询有新轨迹就按客户要求推送。如没有最新轨迹,两个小时后会再次触发接口调用,如有更新就将全量数据推送给用户,如果没有更新,最晚每2小时轮询,直到运单签收。
  /// 
  /// 
  public void ProcessRequest (HttpContext context) {
  context.Response.ContentType = "text/plain";
  //接收请求 获取到快递鸟推送过来的请求报文
  var requestData = context.Request.Form["RequestData"];
  var requestType = context.Request.Form["RequestType"];
  var dataSign = context.Request.Form["DataSign"];
  //调试阶段存储日志 方便追踪问题
  WriteTextLog("RequestData:", requestData);
  WriteTextLog("RequestType:", requestType);
  WriteTextLog("DataSign:", dataSign);
  这里提供给快递鸟的接口一定不要做登录权限验证,否则快递鸟无法推送信息。 推送接口要在5S内对快递鸟请求做出响应,返回快递鸟所需的参数。成功获取到报文以后,储存并迅速返回响应, 内部逻辑业务可异步处理。每个客户处理的业务逻辑复杂程度不一样,如果客户对数据进行处理,再做出响应,会造成网络超时,传输效率低下。 在没有返回信息或者返回超时, 以及返回不符合规定的内容,快递鸟会判断为客户接收失败。 接收失败后会重试推送2次,首次间隔15分钟,二次间隔30分钟,重试2次都未成功,不再推送,直到下次有新轨迹时再次推送。我们一定要严格按照技术文档进行返回。
  PushResponse response = new PushResponse();
  response.EBusinessID = "1151847";
  response.UpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  response.Success = true;
  response.Reason = "成功";
  string result = ToJson(response);
  //联调的时候可以返回固定的接收成功的报文
  // result = "{"EBusinessID": "1151847", "UpdateTime": ""+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")+"", "Success": true, "Reason": "成功" }";
  context.Response.Write(result);
  }
  public bool IsReusable {
  get {
  return false;
  }
  }
  ///
  /// 写入日志到文本文件
  ///
  /// 动作
  /// 日志内容
  public static void WriteTextLog(string action, string strMessage)
  {
  try
  {
  DateTime time = DateTime.Now;
  string path = AppDomain.CurrentDomain.BaseDirectory + @"LogInfo";
  if (!Directory.Exists(path))
  Directory.CreateDirectory(path);
  string fileFullPath = path + time.ToString("yyyy-MM-dd") + ".System.txt";
  StringBuilder str = new StringBuilder();
  str.Append("Time: " + time.ToString() + "r ");
  str.Append("Action: " + action + "r ");
  str.Append("Message: " + strMessage + "r ");
  str.Append("-----------------------------------------------------------r r ");
  StreamWriter sw;
  if (!File.Exists(fileFullPath))
  {
  sw = File.CreateText(fileFullPath);
  }
  else
  {
  sw = File.AppendText(fileFullPath);
  }
  sw.WriteLine(str.ToString());
  sw.Close();
  sw.Dispose();
  }
  catch (Exception e)
  {
  }
  }
  public class PushResponse
  {
  ///
  /// 订阅用户ID
  ///
  public string EBusinessID
  {
  get;
  set;
  }
  ///
  /// 时间
  ///
  public string UpdateTime
  {
  get;
  set;
  }
  ///
  /// 成功与否:true,false
  ///
  public bool Success
  {
  get;
  set;
  }
  ///
  /// 失败原因
  ///
  public string Reason
  {
  get;
  set;
  }
  }
  ///
  /// 序列化JSON数据
  ///
  /// 
  ///
  public static string ToJson(object o)
  {
  IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
  timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
  return JsonConvert.SerializeObject(o, Newtonsoft.Json.Formatting.None, timeFormat);
  }
  ///
  /// 反序列化JSON数据
  ///
  ///
  /// 
  ///
  public static T ToObject(string json)
  {
  return JsonConvert.DeserializeObject(json);
  }
  }
  调用第三方物流接口,替换自己的key就能直接使用,主要实现了物流在线轨迹查询,订单订阅,轨迹推送,支持500多家的快递查询接口,包括主流的四通一达,支持上门取件服务,其他接口调用,修改调用指令和参数就能实现。
  这里给大家提供源码下载:关住公众号(快递鸟API),后台回复"源码下载"
  更多快递接口api技术干货、接口实操教程、物流行业知识,关住我们的公众号【快递鸟API】(kuaidiniaoapi)、抖音【快递鸟】。如果你觉得以上内容对你有用,欢迎点赞、评论、转发。你的认可是我持续分享的动力!
  有不清楚的问题,欢迎大家留言一起探讨。​

请不要吃掉它!毁灭战士被移植到一枚万圣节糖果毁灭战士是FPS分类的鼻祖,并有望成为被移植到千奇百怪平台(电话拖拉机积木冰箱等)最多的游戏。最近,硬件公司Adafruit将其移植到了一枚小小的万圣节糖果之中,并警告大家不要误食发改委等六部门强化外商投资企业金融支持刘丽靓中国证券报中证网中证网讯(记者刘丽靓)国家发改委10月25日消息,近日,国家发改委商务部等六部门印发关于以制造业为重点促进外资扩增量稳存量提质量的若干政策措施提出,强化外商投城市农园嫁接农耕文明愈来愈多的都市青年开始关心粮食和蔬菜,朋友圈里风靡水培小葱大蒜和芹菜等,吃上阳台菜园自己种的蔬菜。淘宝相关数据显示,今年上半年智能种菜机在平台销量同比增长200以上。各种云农场云养第五届进博会首批展品进场,普通展品在进馆前要进行二次消杀南都讯记者赵唯佳发自上海10月24日,第五届中国国际进口博览会首批展品进馆仪式在国家会展中心(上海)举办。这标志着第五届进博会正式进入搭建布展阶段。来自GE医疗的超高端CT和核医学求是网评论员始终与人民风雨同舟心心相印各平台征求意见页面总阅读量达6。6亿次,各类意见建议留言超过854。2万条,其中超过97是实名留言听民意汇民智聚民力。党的二十大相关工作网络征求意见活动,得到人民群众广泛响应积极参努力创造更加灿烂的明天经过全党全国各族人民共同努力,我们如期全面建成小康社会实现了第一个百年奋斗目标。现在,我们正意气风发迈上全面建设社会主义现代化国家新征程,向第二个百年奋斗目标进军,以中国式现代化全乐凯新材2022年前三季度净利润260。73万元同比下降57。41中证智能财讯乐凯新材(300446)10月25日披露2022年第三季度报告。2022年前三季度,公司实现营业总收入1。16亿元,同比下降1。97归母净利润260。73万元,同比下降沃森生物前三季度实现净利润5。31亿元同比增长45。84中证网讯(记者康曦)沃森生物10月24日晚发布2022年三季报,公司前三季度实现营业收入37。06亿元,同比增长74。06实现归属于上市公司股东的净利润5。31亿元,同比增长45。山科智能2022年前三季度净利润5418。82万元同比增长8。87中证智能财讯山科智能(300897)10月25日披露2022年第三季度报告。2022年前三季度,公司实现营业总收入3。89亿元,同比增长23。99归母净利润5418。82万元,同比985毕业生,辞掉事业编制送外卖,表示第一次呼吸到了自由的空气文艾小贝爱教育毕业生辞掉事业编制送外卖,你怎么看?对于还坐在学校里面安静学习的学生们来说,自然是没有什么比学习还重要的事情了,只有学生的学习成绩,在考试中能保持名列前茅的位置,在班29号登录得永久史诗,七周年称号公布,多重活动突袭,新地图上架文丨可儿游戏说原创王者荣耀的周年庆活动相信很多玩家肯定非常期待,也迫切的想要知道周年庆有哪些活动,而在近期,官方也对周年庆的活动进行了爆料,首先告诉大家的是,限时点券活动是没有的,
1年1300万!湖人这钱白花了?詹姆斯进攻变化大,一人意外之喜2122赛季。史蒂芬库里在面对湖人的3场比赛里场均贡献25。0分6。3篮板6。3助攻。2555,标准的球星数据。说实话,库里打出这样的数据,我不感到奇怪。一方面,作为联盟的顶级巨星已经复出?半月板受伤博格巴有可能登上WCUP曾接受膝盖手术的法国中场保罗博格巴正在迅速恢复,这增加了他入选世界杯的可能性。意大利比赛足球意大利19日(韩国时间)报道说上个月7日接受膝盖手术的博格巴已经回到尤文图斯训练场进行了确定报销!杨鸣连损两员大将,辽宁男篮卫冕难度陡然上升确定报销!杨鸣连损两员大将,辽宁男篮卫冕难度陡然上升!北京时间10月19号,辽宁男篮在轻松地击败了郭仕强带领的广州队之后新赛季取得了四战全胜的战绩,虽然说比赛是赢了,但是昨天一天的新赛季恐迎里程碑时刻的五大球星,詹姆斯无人可及,威少另类绽放NBA作为顶级篮球殿堂,从来不缺少传奇。但俗语有言,长江后浪推前浪,在后生晚辈层出不穷的NBA联盟,没有永恒的神迹,即使强如篮球之神,他的尘封记录也在不断被侵蚀,甚至超越,正如中国2022卡塔尔世界杯,梅西看好法国和巴西是夺冠大热门阿根廷国家队队的队长莱昂内尔梅西表示,世界杯卫冕冠军法国队和巴西队是最有可能在卡塔尔世界杯夺冠的球队,因为他们拥有一群稳定在一起长期配合的主力球员。梅西还表示,巴西德国法国英国和西恭喜!国乒世界冠军30横扫强敌,陈幸同开门红晋级女单16强北京时间10月19日晚,国乒在WTT冠军赛上迎来了一位实力不俗的对手,那就是世界排名第11位的波多黎各名将迪亚兹,而中国女队上场的是世界排名第13位的陈幸同。此战迪亚兹打出了非常精人老脑先衰!补脑只知道核桃?常吃四种食物,头脑灵活记性好补脑一直都是人类永恒的追求。小时候尚在长身体,多补充点营养素能促进大脑发育,帮助孩子们赢在起跑线上随着年龄的增长,大脑逐渐老化,记忆力思维能力减退,严重影响着中老年人的生活质量,懂上了年纪,有这3种人在的酒局就不要去了,不然事后可能追悔莫及在年轻的时候,想要的东西很多,把物质放在了很高的地位,这没有错,不同的时间,不同的心境都会影响自己上了年纪之后,不知道是不是对生活已经没有了期待,还是自己想明白了,想要的东西少了,提醒中老年人不管有钱没钱,这4类食物要多补,营养无负担之前一直会听到上了年纪的叔叔阿姨们在一块儿聊天,都这个年纪了,凑合着吃点就行了,还追求什么营养啊。其实,这是完全错误的想法。随着我们年龄的增长,身体更需补充多种营养,来维持身体机能降温后饮食要少辛增酸多吃4种酸味食物,养肝护肺,健康入冬民以食为天,食物是人体获取能量的来源,所以吃,是人类永恒不变的定律。每天的一日三餐不仅要吃得健康美味,还要了解食物与人体健康的关系,所以老一辈人在饮食上讲究四季交替,适时而食,不食什么食物对孩子有危害?比糖和盐还危险的调料,孩子吃了长不高糖和盐这类食物呢,大家一定要控制好量。在吃东西的时候能不加糖尽量不加糖。婴儿添加辅食的时候,尽量不要加盐和糖。因为摄入过多,会损伤孩子的脾胃功能。比糖和盐更可怕的调料,如果孩子天天