论坛首页 招聘求职论坛

记阿里电话面试的一个遗留问题:淘宝订单如何保证与支付宝订单的同步“?

浏览 59551 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2014-07-29  
james_lover 写道
biaobiao520 写道
james_lover 写道
biaobiao520 写道
下订单成功,与支付成功是两码事啊。。。

支付才是强一致性的。

这位同学可能没看明白问题。
淘宝购物可简单分为两步:
1:淘宝下订单:需要在淘宝平台和支付平台分别创建订单。
2:完成支付:前提必须是在支付平台已成功创建订单,才可能有后续支付环节。
后面确认,退货什么的先不考虑。

这里讨论的是1。



作为曾经就职过规模比京东大的电商的过来人,我觉得,很显然简单问题被你复杂化了,你在淘宝下订单的时候,支付宝根本不care已经生成了你的订单,只有在支付时才保证强一致性。涉及到这种问题的性能考虑,绝不是简单的用什么什么那么简单的,是整个生态圈结构的考虑,不过最终还是 安全、空间、成本、时间 这几个取舍而已。阿里的飞天确实很高大上的感觉。


这么说,我可能是没理解面试官想得到什么样的答案。刚听到题目,一时脑子没想出来这个问题该从哪个角度来回答,当时冷场了。(当时问题原话是: 淘宝购物时要创建订单,支付宝也要创建订单,那么怎么保证两个平台订单的一致性?)后面一个问题扯到了用zookeeper来保证分布任务调度和一致性。

挂了电话,后来我想这个问题应该从系统解耦和分布式一致性的角度来答,可能他想知道我是否了解消息中间件.


我个人觉得哈,他只是想了解下你处理这种问题的思路,而不是真正可行的方案,因为可不可行无从考证啊。。。
0 请登录后投票
   发表时间:2014-07-30  
[quote="james_lover"]


1:淘宝平台,与支付宝平台必然是解耦的。也就是说在淘宝创建订单过程中不可能是同步调用支付宝创建订单接口(同步调步使用两系统耦合太紧,支付宝创建出错,将导致淘宝订购失败,这无法接受)。




我无法理解这句话。。  同步调步使用两系统耦合太紧,支付宝创建出错,将导致淘宝订购失败,这无法接受

支付宝创建出错导致淘宝订购失败怎么无法接受? 我们都知道支付宝出错的可能性比较小,但是考虑这种极端情况,如果淘宝成功,支付宝失败,那你希望怎么继续? 首先你已经排除了同步,要使用异步的,既然是异步,你并不知道支付宝是否成功。 这种情况下,从淘宝到支付宝支付的时候发现你的订单失败了, 这个情况又如何处理?
0 请登录后投票
   发表时间:2014-07-30  
淘宝平台,与支付宝平台必然是解耦的
0 请登录后投票
   发表时间:2014-07-31  
LZ思路出了问题,简历好好读读帖子下面几个好点的答案
0 请登录后投票
   发表时间:2014-07-31  
分布式,消息队列,目前来看应该这样,淘宝进入支付界面的时候地址栏本身就跳转到支付宝了,这时候跟淘宝没关系了,我觉得他们之间后台应该通过消息传递,然后用一个共享缓存进行校验
0 请登录后投票
   发表时间:2014-07-31  
liubey 写道
LZ思路出了问题,简历好好读读帖子下面几个好点的答案

哪个啊?
没有人给出好点的答案啊。
大家都只提疑问,不出办法呀。
0 请登录后投票
   发表时间:2014-08-01  
就是消息中间件啊,他们有个服务中间件的,Notify,HFS,用消息推送吧。。。一个主动一个被动。。。
0 请登录后投票
   发表时间:2014-08-01  
james_lover 写道
liubey 写道
LZ思路出了问题,简历好好读读帖子下面几个好点的答案

哪个啊?
没有人给出好点的答案啊。
大家都只提疑问,不出办法呀。

biaobiao520
hekuilove
lvwenwen
说的都很明白,你还指望人家把答案送到你嘴里啊
0 请登录后投票
   发表时间:2014-08-01  
liubey 写道
james_lover 写道
liubey 写道
LZ思路出了问题,简历好好读读帖子下面几个好点的答案

哪个啊?
没有人给出好点的答案啊。
大家都只提疑问,不出办法呀。

biaobiao520
hekuilove
lvwenwen
说的都很明白,你还指望人家把答案送到你嘴里啊

我还是去知乎吧,iteye的火气太大,不适合交流。
0 请登录后投票
   发表时间:2014-08-01  
我想可能是这样的,淘宝创建订单之后,携带支付宝需要的信息,打开支付宝的界面 ,用户在支付宝的界面完成付款,界面中出现类似“返回商家界面”之类的按钮。如果用户支付宝付款失败,则用户可以继续回到之前的淘宝界面,点击“付款”,继续。
然则淘宝如何知道支付宝是否付款成功?一种方法可能是通过消息通信同步查询支付宝,另一种可能是支付宝再完成付款之后,通知淘宝。
这个可能和淘宝跳到网银付款原理是一致的,淘宝显示“完成付款”和“付款遇到问题”按钮,网银付款完成之后显示“跳转到商户界面”按钮。
不知道我的理解是否正确。
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics