电商
李澎昆
期望越大 压力越大,不断努力 超越自己的极限
展开
-
电商中的秒杀实现思路
秒杀与其他业务最大的区别在于:秒杀的瞬间,(1)系统的并发量会非常的大(2)并发量大的同时,网络的流量也会瞬间最常用的办法就是做页面静态化,也就是常说的前后端分离,把静态页面直接缓存到用户的浏览器端,所需要的数据从服务端接口动态获取。这样会大大节省网络的流量,再加上CDN,一般不会有大问题。这里的核心问题就在于如何在大并发的情况下能保证DB能扛得住压力,因为大并发的瓶颈在于DB。如果...原创 2019-01-17 21:20:18 · 466 阅读 · 0 评论 -
php抽奖概率算法(适合大转盘等概率)
<?php/* * 经典的概率算法, * $proArr是一个预先设置的数组, * 假设数组为:array(100,200,300,400), * 开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内, * 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间, * 在本例当中就是减去100,也就是说第二个数是在1,900这个范围内筛选的。...原创 2019-01-22 19:47:37 · 933 阅读 · 0 评论 -
SPU和SKU都是什么意思
做电商的需要厘清两个概念SPU和SKUSPU = Standard Product Unit (标准产品单位)SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。在商品信息电子化过程中,商品的特性可以由多个“属性|属性值对”进行描述。“属性|属性值对”完全相同的商品,可以抽象成为一个SPU。另一方面,这些“属性|属性值对”在SPU中固化下...原创 2019-01-16 07:11:57 · 18627 阅读 · 0 评论 -
订单拆分的用法
电商系统中用户的首次订单如何分拆?用户一次购物通常会将多个商家的多个产品作为一个订单提交,同时可能又会使用评估平台的一些优惠券,支付完成后后台对这一订单的处理流程是怎样的,是如何对订单进行分拆的,分拆后系统一般是如何处理的,这里涉及到资金,供应商,运费,优惠折扣的如何处理针对订单拆分目前分为三种最常见的一,自营类拆分逻辑:按照仓库拆分。运费逻辑:按照订单收取,还是按照商品收取,...原创 2019-01-15 08:14:28 · 3542 阅读 · 0 评论 -
电商产品之订单拆分规则与流程
什么是订单拆分用户提交的订单在物理上并不是一个不可拆分的单元,也即:它不是一个颗粒度最小的实体,可以进行多种形式的分解,具体如何分解根据不同的业务场景,可以进行不同形式的拆分。为什么要订单拆分之所以要订单拆分,一般会有以下几个原因:1. 仓库原因一些大型电商公司(京东、考拉等),都有自建仓库,商品会根据以往出货量数据在各个不同的仓库进行备货,用户的订单如果包含多个仓库的商品,那...原创 2019-01-19 22:30:45 · 8076 阅读 · 1 评论 -
电商中订单使用事务
在一个电子商务系统中,正常的应该是订单生成成功后,相应的库存进行减少必须要保证两者的一致性,但有时候因为某些原因,比如程序逻辑问题,并发等问题,导致下单成功而库存没有减少的情况。这种情况我们是不允许发生的,MySQL的中的事务刚好可以解决这一问题,首先得选择数据库的存储引擎为InnoDB的,事务规定了只有下订单完成了,并且相应的库存减少了才允许提交事务,否则就事务回滚,确保数据一致性。...原创 2019-01-09 07:20:49 · 2128 阅读 · 3 评论 -
电商之下完订单如何实现发货流程
我们首先借鉴一下淘宝的发货流程:买家拍下商品并付款后,交易状态变成“等待卖家发货”,这时卖家就可以发货了。发货的流程是:卖家拣货——打包商品——联系快递上门收取——快递上门收货——卖家登陆淘宝点击“发货”并输入快递公司名称和快递单号——发货成功。...原创 2019-01-08 19:55:35 · 7805 阅读 · 2 评论 -
电商中事务的特性之一【隔离性】的乐观锁和悲观锁
引言为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。 脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。例如:用户A,B看到的值都是6...原创 2019-01-08 19:12:27 · 356 阅读 · 0 评论 -
电商中防止订单重复提交
首先我们分析下原因:1、在网络延迟的情况下让用户有时间点击多次提交按钮导致表单重复提交。2、表单提交后用户点击浏览器的刷新导致表单重复提交3、用户提交表单后,点击浏览器的【后退】按钮回退到表单页面后进行再次提交 1、用JavaScript的方式在客户端处理。a、设置一个标识,让他只能提交一次var isCommitted = false;//表单是否已经提交标识,默认...原创 2019-01-08 19:01:59 · 2846 阅读 · 0 评论 -
电商订单状态【2】
1)等待到款如果您选择“网上支付”和“银行转账”这两种付款方式,当当在暂未收到您款项时,订单会显示“等待到款”,建议您在订单保留期限内及时付款。2)等待预售商品到货若您订购的商品为预售商品,商品到货前订单会显示“等待预售商品到货”。3)正在配货此状态说明您的订单正在库房配货。4)等待移仓若您订单中的商品当地库房缺货,我们将从北京仓库调货至当地仓库,此时订单显示“等待移仓...原创 2019-01-08 18:48:53 · 2283 阅读 · 0 评论 -
电商订单状态【1】
当用户点击“一键购买”或者是从购物车里点击 “去结算” ,会跳转到 “核实订单信息” 页面,当全部核实以后点击“提交订单按钮”,此时会跳转到支付页面,并且订单提交成功,此时此刻才算刚刚开始:订单提交成功 此时的订单状态默认为未确认支付成功 此时订单状态为已确认当订单提交成功以后24小时未支付 此时订单状态为无效当在订单列表页面 点击取消...原创 2019-01-08 18:42:53 · 1208 阅读 · 0 评论 -
PHP对接支付宝支付接口之项目(三)
代码实践操作,后续操作只需要修改参数就可以了<?phpheader("content-type:text/html;charset=utf8"); // ******************************************************配置 start****************************************************...原创 2019-01-14 07:37:39 · 961 阅读 · 1 评论 -
PHP对接支付宝支付接口之项目(二)
怎样将订单存入数据库(需要在服务器上测试)我把我的代码git到远程服务器上后(当然此时config.php里面的配置参数也要相应的进行修改),中间的马赛克位置填你服务器的域名或者公网IP地址:notify_url.php代码<?php require_once 'config.php';require_once 'pagepay/service/AlipayTrade...原创 2019-01-14 07:36:16 · 751 阅读 · 1 评论 -
PHP对接支付宝支付接口之配置(一)
PHP版本对接支付宝支付接口注意:按照套路走,代码永远都不难,学习之前,请将以下两个地址都完全看完蚂蚁金服 开发平台地址电脑网站开发文档 地址一、下载SDK开发工具包下载demo&sdk文档代码Demo解压到了我项目的根目录下了,目录结构如下所示:这里有三个文件很重要很关键,一个是notify_url.php, 一个是return_url.php, ...原创 2019-01-14 07:34:35 · 2403 阅读 · 0 评论 -
电子商务秒杀所带来的问题?
秒杀会给一个网站带来的影响:1.对现有网站的冲击,因为秒杀活动只是网站的一个营销所附带的一个网络附加活动,这个活动具有的特点是:时间短,并发能力强。如果网站和原有应用部署在一起,必然会对网站本身的业务造成冲击,稍有不慎,整个网站就会发生瘫痪。2.高并发的情况以及数据库的负载用户在秒杀活动开始之前,总是会不断的通过刷新页面以此来保证不会错失秒杀的机会。这些请求一般的网站应用结构,访问应用...原创 2019-01-13 00:30:52 · 423 阅读 · 0 评论 -
redis实现高并发下的抢购/秒杀功能
抢购/秒杀是如今很常见的一个应用场景,那么高并发竞争下如何解决超抢(或超卖库存不足为负数的问题)呢?常规写法:查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否大于0处,如果在高并发下就会有问题,导致库存量出现负数这里我就只谈redis的解决方案吧...我们先来看以下代码(这里我以laravel为例吧)是否能正确解决超抢/卖的问题:<?php...原创 2019-01-22 20:33:42 · 380 阅读 · 0 评论