背景:目前很多电商系统中都有自己的购物车,购物车下单的方案
方案:
(1)可以使用预下单的方案,就是在提交订单之前,先调用下单接口,把扩展信息数据放到tair中,然后返回一个uuid的值,下单的时候,把这个uuid透传过来,这样就可以解决浏览器无法透传大量参数的问题。下单根据uuid的信息获取购物车信息。
(2)下单的时候只透传基本的商品id,然后在下单的时候反查购物车,获取商品的扩展信息
(1)(2)组合,可以保证缓存查询不到的时候,使用查询购物车的方案进行兜底,保证不影响用户的下单体验
(3)可以直接通过链接传递参数,下单页可以是H5或者native,如果是native可以透传很多很多,但是如果是H5的化,则有一定的限制,则会产生购物车一次只能购买几个商品,那么如何解决必须使用这种方案带来的问题
1)透传的key-value需要缩减,尽量减少字节数
2)native容器针对H5链接请求,做拦截使用容器存储,下单的时候,透传过来
3)是否有压缩方法,可以将一个长字符串变成一个短字符串,然后在把短字符串还原成长字符串。
查询了很多资料只能借助外部缓存的方式,比如将一个商品的信息 key:itemid value:uuid tair缓存存储 key:uuid。value:购物车信息
这样就可以通过链接传短字符串了。类似方案(1)了,还有有些不同的
可以使用 短链接的方案 进行字符串的转换