订餐系统之同步饿了么商家订单
随着阿里入主饿了么,我们一个配送口碑外卖订单的客户,正在步入正轨,人员齐整,训练有素... 但,突然一下子失去的所有订单来源,没有订单,也就没有了收入,线上7,8个客服,线下近100个配送员,只能开始寻找新的活计了...偶然想起,早年间公司给口碑外卖1.0做打印机时,刚基本完成时,口碑外卖没了,没想到几年后,口碑外卖2.0又深深的伤害了我们一次。。。陈年旧事,唏嘘两下,回归正文。
背景
之前实时获取口碑外卖商家订单,及点点送订单,再使用的我们的调度系统统一调度各个来源的订单,再结合配送员自主抢单,加上配送员队长线上调度,最大限度的让配送员加”顺路单“,提高效率...这套班子不应该因为口碑没了,就变成破铜废铁。暮然回首,原来饿了么也有商户接口,虽然没有淘宝外卖开放平台那么强大,提供好几种语言的示例代码,没有怎么办?自己动手,丰衣足食!
动手之前,还是偷懒的百度了下,以为能找到一些基础代码,或者借鉴之类的,也不知道是没人用呢,还是没人分享... 真没有,有的话,估计也没有这篇文章了。
虽然,我们更想能有锋鸟配送的接口,现实总是那么实现,真没有,那权且用商户的接口了解这个流程吧,日后,如果他们能开放配送商接口,估计代码也能用上。
准备工作
API 文档 http://merchant.openapi.eleme.io/
估计大部分程序员,知道上面这个地址就可以了哈,最后有代码哦。
文档中 有一个要注意的地方就是 consumer key,这个目前是通过发送邮件获取的,邮件里写上商家的访问地址就可以了,如下图(图一),另外,邮件中还提到接单方式的修改,操作如图二
(图一)
虽然,他们提供了一个 可以测试的商家,但是我好几个浏览器都测试了,下订单就提示让我加地址,如图3,我的内心几乎是崩溃,最后让一个客户给了我一个账号才勉强抚慰了一下受伤的心。如果你样要测试,还是用正式的商家吧,我敢保证你们奔溃。
你们熟悉的代码
代码方面,目前实现了两个主要接口:获取新订单,订单详情两个接口。其他接口也都差不多了。代码写得不好,若蒙斧正,不胜感激。
代码结构如下
baseEleAPI.cs 实现签名,生成请求的url等功能。
NewOrdersInfo.cs 获取新订单对应的实体
eleOrder.cs 获取订单详情对应的实体
EleUtil.cs 配置 consumer_key,consumer_secret 及一些 工具之类的方法。
HttpHelper.cs 看名称就知道了,这是使用了别人的类,里面有原作者信息。
代码里就一个地方要注意下,生成签名时,每个数据都是转成小写的。
结尾部分有 demo 下载。
成功获取数据
当看日志输出下面的信息时,我知道已经已经胜利在望了,集成了这么多接口,流程基本都差不多,个把小时弄好了,当然,要实现所有接口,让订单跑起来,还有很多工作要做,等后面有空了,再完善下。当然,更多希望有人能用上这个。
2016-05-14 17:43:28 returnmsg={"message":"ok","code":200,"data":{"original_price":58.0,"restaurant_name":"沈蔬果店 ","status_code":2,"restaurant_id":860035,"service_fee":7.5,"consignee":"张一平","invoice":"","description":"","user_id":24086157,"delivery_geo":"24.46839,118.09094","detail":{"abandoned_extra":[],"group":[[{"category_id":1,"name":"鲜切红心火龙果~1斤装","price":24.0,"sale_mode":0,"specs":[],"garnish":[],"id":82727401,"quantity":1},{"category_id":1,"name":"三拼果盘","price":12.0,"sale_mode":0,"specs":[],"garnish":[],"id":82727363,"quantity":1},{"category_id":1,"name":"云霄枇杷之乡","price":18.0,"sale_mode":0,"specs":[],"garnish":[],"id":82727558,"quantity":1}]],"extra":[{"description":"","quantity":1,"price":-10.0,"stats_quantity":1,"category_id":12,"type":102,"id":10087364,"name":"在线支付立减优惠"},{"description":"","price":4.0,"name":"配送费","category_id":2,"id":-10,"quantity":1},{"description":"","price":-7.0,"name":"使用红包","category_id":13,"type":0,"id":194098285927,"quantity":1}]},"active_at":"2016-05-13 22:54:30","invoiced":0,"user_name":"32b93b42c","deliver_fee":0,"is_book":0,"restaurant_part":4.0,"deliver_time":null,"order_id":"100646048067066976","eleme_part":6.0,"income":42.5,"restaurant_number":3,"address":"百脑汇科技大厦1906","hongbao":-7.0,"is_online_paid":1,"delivery_poi_address":"百脑汇科技大厦1906(福建省厦门市思明)","total_price":41.0,"created_at":"2016-05-13 22:53:48","service_rate":0.15,"package_fee":0,"activity_total":10.0,"phone_list":["1361092"]},"request_id":"b32835ae1f8040409624274d924860f0"}
2016-05-14 17:43:28 订单数据:百脑汇科技大厦1906 delivertime=
结语
商家接口到这里就告一段落了,对于平台配送的,估计意见也不是很大,但对于单个商家,或者连锁商家还是非常有用的,如果他们在几个平台都开店了,订单能合在一起,不管是配送,还是统计就是非常有意义,也不用开着几个平台的商户端了。听着烦人的,您有新的饿了么订单,您有的百度订单,您有新的美团外卖订单...
接下来,我会关注下其他平台的商户接口,有新的进展会,再分享给大家,我坚信:予人玫瑰 手有余香。
demo 就在这里,扫码加好友,哈哈,主要为了交朋友哈.
成为一名优秀的程序员!