1. 程式人生 > >訂餐系統之同步餓了麼商家訂單

訂餐系統之同步餓了麼商家訂單

      隨著阿里入主餓了麼,我們一個配送口碑外賣訂單的客戶,正在步入正軌,人員齊整,訓練有素... 但,突然一下子失去的所有訂單來源,沒有訂單,也就沒有了收入,線上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 就在這裡,掃碼加好友,哈哈,主要為了交朋友哈.

  

     成為一名優秀的程式設計師!