偷懒多时,现在补上之前说过的商家寄件实现。
先简单定义一下商家寄件场景:电商或企业集中在一个或多个地点,批量往全国各地发货。往往是一个门店,一个仓库,或一个代运营点。
再说一下,为啥要用商家寄件?
现在快递网点比较多,满街都是快递员再跑,找个网点或快递员来寄个件是很轻松的事情,为啥还要选这个商家寄件呢?原因主要有如下几点:
- 成本。随随便便找个网点或快递员,是很方便但是价格通常比较高,一年下来物流成本会较高。
- 服务。顺便叫的快递员,通常需要看快递员方便的时间来,不如商家寄件是经过优选的快递员,服务时效及质量都要靠谱一些。
- 管理。如果门店较多,或商铺较多,需要有完整的系统来同意管理,以免出现爆单的时候乱七八糟或漏洞百出。整体效率和关键节点的把控都会更好些。
看到这里,基本上是需要的同学了。不废话了,看一下商家寄件整体流程:
- 查询发件地是否有运力(能不能寄或者说有木有快递员来收)
在这里插入代码片
- 商家寄件(选择合适的运力来填写信息,生成快递单)
- 获取验证码(寄件成功后,生成一个取件码,快递员上门时候完成验证收货)
- 后续跟踪或取消订单(取件成功后,订阅快递轨迹信息方客户便后续查询;有其他问题暂时不寄时取消订单)
每个点对应一个接口,自己实现一下就搞定了。
代码看这里:Java版 | .Net版
/**
* 商家寄件查询运力
* 快递100的基础账号信息,可以在这里获取 (需要填写完整才能测试)
* https://poll.kuaidi100.com/manager/page/myinfo/enterprise
*/
@Test
public void testBorderQuery() throws Exception {
BaseReq<BOrderQueryReq> param = new BaseReq<BOrderQueryReq>();
BOrderQueryReq bOrderQueryReq = new BOrderQueryReq();
bOrderQueryReq.setSendAddr("福田区华强南");
String t = String.valueOf(System.currentTimeMillis());
param.setKey(key);
param.setSign(SignUtils.sign(new Gson().toJson(bOrderQueryReq) + t + key + secret));
param.setT(t);
param.