账户体系的设计

Posted onhacker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了账户体系的设计相关的知识,希望对你有一定的参考价值。

上次说到我们已经有一个最基本的账户体系了,他由什么组成呢?

其实就几个玩意。

账户

账户的余额

账户的流水

交易

没了。

但是交易可能是一个虚一点的东西。

为什么说他虚呢?

举个例子,你在京东上买了一个东西,京东生成了一个交易单,通过微信支付时,有生成了一个交易单?

那么请问,这里哪些是我们说的账户系统的交易呢?

一般来说,京东那个交易单,在我们的微信支付的账户系统来看,他是不存在的。

我们一般说微信支付生成的交易单是我们说的交易。

但是,这样的理解真的是对的么?

我们怀疑一个事情不对,总要想想这个事情这么来做,会有什么不合理?

让我们来想想这会有什么不合理吧!

我们先来想想微信支付这个交易单号会有什么用处?

我们作为用户可能会在几个地方用到他,最主要就是查账的时候。

比如说,就是我们上面在京东上面买东西的场景。

如果我微信支付成功了,但是京东却没知道这件事,那我们怎么办?

一般来说我们就把我们的微信支付记录,发给京东,告诉京东,说,你看我已经支付成功了,怎么还不给我发货?

但这又是一个问题,你怎么证明你支付的就是你刚刚买的那些京东的东西呢?

这是一个很困难的问题,为什么这么说?假设微信支付不知道你那个商品的ID是多少的话,微信支付是没办法知道你是否支付了那些商品的钱的。

微信支付知道的是什么?他知道你给京东支付了多少钱。

那这个事怎么办?

京东其实知道,为什么他知道?

因为支付的请求其实是京东自己发起的,他知道你这些商品的ID,他以这个商品的ID为请求的编码,请求微信支付发一个XX元的请求给用户去支付。如果微信支付成功了,那他就知道这个商品ID对应的这些商品可以发货了。

对应到我们上面说的交易来说,就是,京东的交易单会和微信支付的交易关联,如果微信支付的交易单成功,京东会把自己的交易单的状态改为可发货。

再让我们回到你查账的这个问题。

我们现在碰到的是,京东不知道交易单有没有成功,但是更可怕的是,他连自己的交易单是对应哪笔微信支付的交易单他都不知道。

这个怎么办呢?

其实,在我们刚刚的描述中,我们就已经提到了解决办法。

什么办法?

京东可以把你发给他的京东交易单再去微信支付那查一次,如果确实支付成功了,那就可以发货了。

所以说,其实我们在上面这种场景下,我们是压根都不需要用到微信支付的交易单号的。

但是,这也是一种场景。其他场景还是会需要,微信支付订单号的。

具体的话,我也还没想。

但从我真实使用来说,对于这种给商户支付的东西,我是确实没怎么需要用到微信支付交易单的。

但是,假如是另外一个场景,我想查的是什么,我想查一下,我这笔通过快捷支付的交易,明明银行扣了10000元,为什么微信支付交易却记成了1000元?

微信支付乱扣我的钱,我一纸投诉就来到了微信支付。

微信客服转了好久,我才终于碰到一个说“人话”的,因为之前那些都是机器人客服,还好我巧妙的转到了人工客服。

我刚想破口大骂,被一个温柔的声音停止了这个行为。

一番平静的诉说后,客服妹纸告诉我需要提交几个东西,不然很难和我核查。

你猜客服妹纸会需要哪些东西呢?

我们想想我们需要什么东西,我们要做的是证明,我们说的话是对的,那怎么证明呢?

我把我的微信支付的交易记录截图了出来,没错,上面确确实实的写了交易金额1000元。

那接下来,我就要证明另一件事情,银行卡扣款了10000元。我怎么证明呢?也是一样,我打开我的手机银行app,点开我的最近交易记录,嗯嗯,没错,确实上面显示扣了10000元,没错,微信支付搞错没跑了,我要拿精神损失费。

客服妹纸问了我一句话,请问你怎么证明?

以上是关于账户体系的设计的主要内容,如果未能解决你的问题,请参考以下文章

第三方支付架构之账户体系架构设计

基于RBAC的模式的多租户权限设计

账户体系支付服务设计第一版

支付系统账户系统有关模型

329微信账户体系科普:什么是UnionIdOpenId与wxopenid?

账户系统设计从入门到精通