search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

訂餐系統之同步美團商家訂單

早上和往常一樣去工商大學打球,除了今天三分比較准外,一切都還是那樣的循規蹈矩。

也許股子里還有那麼一些不甘平庸,總想著能改變一下如此無趣的按部就班。

轉過行政樓,一波一波的學生在談笑風生。哦,是了,又到拍畢業照片的時間了。

又是一年過去了(也不知從何時起,開始以畢業來計年了),彈指一揮間,已經在這裡工作7年半了。

一份工作越是做得久,反到越羞於提起。也許是羞於現狀,也是羞於未來的我吧。說不清,道不明,有點亂...

腳步也隨著不安的思緒加快了頻率,迅速的穿過了人群...未來還需多努力,希望明年此時,能多一份從容。

觸景生情,些許傷感,回歸主題

之前寫過一篇關於同步餓了么訂單的文章《訂餐系統之同步餓了么商家訂單》,有不少人加我諮詢,感覺有這方面需求的人還是滿多的,畢竟現在2家幾乎瓜分了市場,再做平台已然機會渺茫了,但是商戶畢竟需要服務,訂單還得配送出去。然後餓了

么,美團外賣都提供了面向供應商的api的許可權的申請,這對我們做配送系統的說,真是一大利好。以前都是讓商戶手動錄入其他平台的訂單,費力還容易出錯。還得在多個app之間來回切換,商戶也是抱怨滿天。有了這些介面,商戶可以選擇自動接單,

自動同步訂單,再也不用幾個app來回切換了。餓了么同步訂單,在上面的文章中已經介紹了,雖然介面現在變成2.0了。有了一些變化,總的來說還是 萬變不離其宗。本篇就來詳細接受下同步美團訂單的相關步奏。寫得不對地方,歡迎指正 :)

具體流程,下圖中寫得比較詳細。

去年過年,因娃太小,沒能回家,閑在杭州,發現可以申請美團外賣相關介面,欣喜若狂,擼起袖子就動了起了,登錄申請網站地址《美團點評 | 聚寶盆餐飲開放平台》,填寫相關信息。記得,當時是2月5號,再2天就過年了,想著如果能年前審核好...,當然,後來是想多了,過了一個月都沒有審核通過,也不能進行下一步。到時那個心呀,難過,沒有還好,現在是看得見,不讓用。經過漫長的煎熬,終於在一個不起眼的地方,發現一個郵箱,懷著死馬當活馬醫的想法,發過去了,想不到,還真給回復了,說是過年漏掉了申請。好嘛,審核通過了總是好的,過程是複雜了些。

這裡通過了,他們會加你QQ,確認相關信息,還會快遞一份文件,簽字蓋章,按說明快遞迴去就OK了。

審核通過,開放平台里有相關信息了。關鍵的東西就是 developerId,與SignKey 。調用介面會用到

開入平台文檔地址:《文檔中心》,也許你看了文檔,都不用看下面的:)。

開始開發前,先要設置好回調,通知介面。美團外賣會根據在開放平台設置的通知地址,發送相關信息,比如新訂單通知,商家確認訂單通知,及綁定,解綁商家通知等。這裡每個通知一個介面,這樣程序蠻方便的,可以一個通知,一個url。不用去判斷到底是什麼通知。

在下圖中設置

所謂映射,就是把你系統的商家編號,與美團商家綁定起來,以後推送都是自己系統的商家編號推送過來。方便操作

對接第一步,還是綁定商家,並保存Token(後面的操作都會用到)。

綁定操作就是訪問連接 https://open-erp.meituan.com/storemap?developerId=100019&businessId=2&ePoiId=8859&signKey=8bl1g62omy2m5ywp&ePoiName=湘北人家&netStore=1

輸入商家賬號,密碼選擇商家授權即可完成映射

具體參數可以參考文檔, 其中 ePoiId 為自己系統的商家編號,像我就直接用自動編號,這個方便記錄,後台綁定也方便,訂單通知過來也方便。比如,我們最後的效果就是在商家詳情中增加相關設置。

在回調介面設置中,設置了url后,會收到通知,處理通知的代碼如下。

既然有映射商家,就是有解除綁定的操作,同樣,在回調介面設置中,設置了url后,會收到通知,處理通知的代碼如下。這裡記錄,主要是為了方便後台操作,知道當前商家是否綁定。

要推送訂單,首先得要設置接收通知的url

要推送訂單,其次得有商家,所以美團為我們設置了測試商家。還可以添加多個。要特別注意的就是:測試門店為一個坐標位於南極洲、配送範圍為西藏昌都的線上測試門店,開發者可使用美團外賣APP定位到西藏昌都氣象局,根據測試門店名稱搜索到測試門店進行下單。

一定要App定位在西藏昌都氣象局方可下訂單。

因為推送的數據格式是json,所以我的做法是:先創建好訂單對應的體,收到通知后,轉成實體,再做邏輯處理。接收通知,所上面的類似。

我們收到新訂單通知時,可以調用api直接確認訂單,也就是商戶接單。到這裡,我們才正式去調用api,前面都是美團來調用我們,要調用api,首先要做的就是實現簽名。這是我對接這麼多系統,簽名演算法最簡單的。直接上代碼。

首先將

GETPOST

參數除去sign本身以及值為空的參數以及=號和&號,按參數自然排序,(例如a=&c=3&b=1,變為b1c3)然後按參數1值1參數2值2...參數n值n的方式拼接成新字元串,再跟字元串前面加上signKey,做sha1散列,最後將得出字元串轉成小寫即為sign。

簽名代碼

錄入所有參數,得到簽名,初始化post參數,調用指定api,即可完成確認。大概代碼如下,代碼都比較文明,大家一看變懂了。

確認訂單后,我們設置的訂單確認通知介面,也有收到相應的通知,具體代碼與新訂單通知是一樣的,只是你可以根據自己業務處理,比如,商家確認訂單后,訂單直接進入系統,自動調度,或者人工派單。

這個介面也是經常用到的,因為測試賬號,不能登錄美團外賣商戶後台,如果商家有一個訂單沒接,商家就會自動休息,影響我們測試。所以實現這個介面后,可方便修改商家狀態。

這個介面與確認訂單介面都是類似的,只是參數不同,url不同而已。由於調用api,我們都是封裝在方法:queryData了,我們只用設置好參數即可。代碼如下:

其他還有很多介面可以按需對接,比如商口數據,評論數據。目前我們用不上,暫未對接。最後一步就上線操作了。

未上線之前,最多能接5個商家,上線后就沒有限制了。

目前上線要先寫一個《上線申請》,然後在開放平台,里點擊上線,會有美團人員聯繫你,確認相關信息就OK了。

對接美團外賣,除了提交審核時間不好,導致審核時間長了些外,其他還是蠻順利的,他們也蠻配合的,根據介面文檔幾乎可以完整大部分操作。

就代碼上而言,確定沒有太多可以說的,對接過程還是有些曲折的。希望這個文章能給那個正在對接的,想對接的人提供一些幫助,如果真有幫助了,有個贊最好了。

如果有同在做這個的,歡迎交流哈。

最後,呼應下開頭,7年半,真不是一個短時間,我們能寫多少個7年的代碼呢。也想藉此,聽聽諸位的心聲。

成為一名優秀的程序員!



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦