最近在作一個使用美團api的項目,當用到美團門店解綁功能的回調時,開始思考它的功能linux
這是美團官方提供的api文檔,連接在這:http://developer.meituan.com/openapi#4.4json
美團官方文檔部分:windows
開發者若是想要支持自主解綁功能須要進行一下對接步驟:api
流程大體是這樣:app
1.程序先調開放平臺的解綁地址函數
2.開放平臺回調程序的回調方法ui
3.回調方法返回success,開放平臺執行解綁操做,返回其餘,則不執行解綁操做url
思考,若是開放平臺沒有回調,直接執行解綁方法,那麼若是此時,程序解綁操做失敗後,會形成信息不一致的狀況:個人程序上顯示還在綁定狀態,美團上卻已經解除綁定了code
因此,用到了回調函數,當程序請求開放平臺的解綁方法時,開放平臺回調,等待客戶端執行成功操做返回sucess,而後再執行解綁操做,保證了數據的一致性。orm
那麼,問題來了:
若是說,當客戶端成功執行了操做,而開放平臺美團卻執行操做失敗了,又形成了信息的不一致。
這個情形,相似於TCP的通訊,採用了三次握手來解決這個問題:
程序調開放平臺的解綁函數
程序執行操做成功後返回success,可是不知到開放平臺是否執行操做成功,因此再去調開放平臺的回調
當開放平臺返回的是sucess時,那麼就執行操做,返回的時fail時,那麼就不執行解綁操做。
當開放平臺返回的是sucess時,若是程序端執行解綁操做又失敗了,那就提示用戶操做失敗,請重試。
應該是出現這種狀況的可能微乎其微,再加上美團的開發者不可能不瞭解三次握手確認來說
對這些業務作這樣的確認操做是沒有必要的。
可是對於錢財交易這樣的方式就必須採起三次握手這樣的操做方式了。
本人系新手上路,文章可能顯得臃腫,寫下來記錄本身的成長曆程。
水平有限,歡迎並感謝糾錯指正