最近在作一个使用美团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时,若是程序端执行解绑操做又失败了,那就提示用户操做失败,请重试。
应该是出现这种状况的可能微乎其微,再加上美团的开发者不可能不了解三次握手确认来说
对这些业务作这样的确认操做是没有必要的。
可是对于钱财交易这样的方式就必须采起三次握手这样的操做方式了。
本人系新手上路,文章可能显得臃肿,写下来记录本身的成长历程。
水平有限,欢迎并感谢纠错指正