

电商的快递查询功能
source link: https://mednoter.com/shipments-of-boohee.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

电商的快递查询功能
薄荷商店在搭建物流信息系统还算顺利,把整个搭建过程中的所思所想写下来,供大家参考。
物流查询系统要保证
- 信息更新及时,最好以小时为单位更新。(及时)
- 所有的快递公司都覆盖。(数据一致)
- 所有的单号都能查到。(查全率高)
如何获取快递信息?
-
去四通一达的官方网站上抓取
这个想法不太靠谱。各个网站的提供的快递信息格式不一,而且有验证码,要实现的话逻辑巨复杂。
-
去 kuaidi100 抓取
kuaidi100 是金蝶旗下的一个产品,估计四通一达的企业解决方案都是金蝶提供的,所以他们能搞到各个物流公司的快递信息。
接口规范,不折腾,免费接口每天可以查询2000次。
薄荷商店的折腾过程
使用快递100的免费接口,一切甚好。免费接口抓取次数至多2000/day,业务量增加后,失败陡增。
这时候心里有点小邪恶,要不要换上十几个 IP,轮流去抓数据?
如果这样干的话良心过不去,代码徒增逻辑,也不好看。还是用付费接口吧。
快递100的付费接口
-
一条快递单号仅一毛钱,挺便宜。
-
快递信息发生变化后,通过回调主动推送快递信息给薄荷的服务器。
提交快递单(Ruby 版)
请求:薄荷 => 快递100
def subscribe(company, number, from_city, to_city, shipment_id)
options = {
company: company, # shunfeng,
number: number, # 413432413,
from: from_city, # 上海
to: to_city, # 北京
key: SECRET_KEY, # kuaidi100给的密钥
parameters: {
callbackurl: "http://www.boohee.com/shipments/#{shipment_id}" # 回调地址
}
}
response = RestClient.post "http://www.kuaidi100.com/poll", { schema: "json", param: options.to_json }
response = JSON.parse response
# {"result"=>"true", "returnCode"=>"200", "message"=>"提交成功"}
end
推送快递信息
请求:快递100 => 薄荷
订阅的快递单号若有变化,快递100会回调我们的服务器(地址为 callback 参数的值),返回json。
{"message"=>"ok",
"nu"=>"1201140008858",
"ischeck"=>"1",
"companytype"=>"yunda",
"com"=>"yunda",
"updatetime"=>"2014-04-10 16:54:15",
"condition"=>"F00",
"status"=>"200",
"codenumber"=>"1201140008858",
"state"=>"3",
"data"=>
[{"time"=>"2014-04-10 13:27:57",
"context"=>"到达:上海浦东新区南汇惠南北公司 由 图片 签收",
"ftime"=>"2014-04-10 13:27:57"},
{"time"=>"2014-04-10 13:23:25",
"context"=>"到达:上海浦东新区南汇惠南北公司 指定:听潮(18016229226) 派送",
"ftime"=>"2014-04-10 13:23:25"},
{"time"=>"2014-04-10 13:16:05",
"context"=>"到达:上海浦东新区南汇惠南北公司 上级站点:上海浦东新区南汇惠南北公司 发往:"
"ftime"=>"2014-04-10 13:16:05"},
{"time"=>"2014-04-10 06:08:55",
"context"=>"到达:上海浦东新区南汇惠南北公司",
"ftime"=>"2014-04-10 06:08:55"},
{"time"=>"2014-04-10 06:00:42",
"context"=>"到达:上海浦东分拨中心 发往:上海浦东新区南汇惠南北公司",
"ftime"=>"2014-04-10 06:00:42"},
{"time"=>"2014-04-10 04:45:18",
"context"=>"到达:上海浦东分拨中心 上级站点:",
"ftime"=>"2014-04-10 04:45:18"},
{"time"=>"2014-04-10 04:41:57",
"context"=>"到达:上海浦东分拨中心 上级站点:上海分拨中心",
"ftime"=>"2014-04-10 04:41:57"},
{"time"=>"2014-04-10 02:14:59",
"context"=>"到达:上海分拨中心 发往:上海浦东分拨中心",
"ftime"=>"2014-04-10 02:14:59"},
{"time"=>"2014-04-09 23:27:22",
"context"=>"到达:上海分拨中心 发往:上海浦东分拨中心",
"ftime"=>"2014-04-09 23:27:22"},
{"time"=>"2014-04-09 23:19:33",
"context"=>"到达:上海分拨中心 上级站点:",
"ftime"=>"2014-04-09 23:19:33"},
{"time"=>"2014-04-09 23:11:04",
"context"=>"到达:上海分拨中心 上级站点:上海宝山区公司",
"ftime"=>"2014-04-09 23:11:04"},
{"time"=>"2014-04-09 21:53:27",
"context"=>"到达:上海宝山区公司 已收件",
"ftime"=>"2014-04-09 21:53:27"},
{"time"=>"2014-04-09 21:52:34",
"context"=>"到达:上海宝山区公司 发往:上海浦东分拨中心",
"ftime"=>"2014-04-09 21:52:34"},
{"time"=>"2014-04-09 21:00:53",
"context"=>"到达:上海宝山区公司 已收件",
"ftime"=>"2014-04-09 21:00:53"}]}
接口还是挺简单,有需要的同学可以试一试。
Recommend
-
53
电商、快递“春节不打烊” 部分地区配送效率受影响
-
59
目前,很多妈妈们正在翻看自己孩子的接种疫苗记录,是因为,前不久国内第二大疫苗生产企业,长春长生生物公司疫苗记录造假被曝光。看到两天前阿里健康上线扫码排查问题疫苗功能后,一些妈妈如是反馈。“我的药盒已经丢了,怎么查询问题疫苗?”“疫苗...
-
64
FreeSql FreeSql 是一个功能强大的 NETStandard 库,用于对象关系映射程序(O/RM),提供了 CodeFirst/DbFirst/CURD/表达式函数/读写分离 等基础封装。
-
40
双11:快递涨价趁火打劫,电商叫苦? ...
-
33
碰货为王,电商快递正式进入“1+3+X”时代 ...
-
17
4月23日,顺丰控股发布2020年第一季度报告。报告显示,第一季度顺丰营业总收入335.41亿元,同比增长39.59%;归属于上市公司股东的净利润9.07亿...
-
10
-
7
晓说区块链 | 区块链未提供遍历查询功能,是出于怎样的设计理念? ...
-
5
腾讯出行服务上线ETC账单查询功能,每一笔费用都清清楚楚-品玩 腾讯出行服务上线ETC账单查询功能,每一笔费用都清清楚楚 13小时前 近日,腾讯与交通运输部路网监测和应急处置中心达成合作,在微信小程序“腾讯出行服务”中推出了“ETC账单查询”功...
-
4
大家好,今天我们继续来分享一个在项目开发过程中遇到的实际问题,这里也来梳理并总结一下我们是如何对它进行持续优化的,希望能对大家有所帮助。 分类树...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK