一、pc端网站登录
1、获取并过滤用户提交的用户名和密码以及验证码
2、验证用户提交验证码和session中的验证码是否一致
3、验证用户名是否存在
4、根据用户名获取密码,并校验密码是否一致
5、密码一致,则登录成功,跳转到对应的首页
图示:
二、pc端网站注册
1、ajax获取用户要注册的用户名和手机号,并验证是否被占用,如果已经被占用,给出相应提示
2、根据生成的随机数字组合连接短信平台发送验证码
3、删除本号码下验证码缓存
4、添加本号码下验证码缓存
5、Ajax获取两次密码并进行比对,如果不一致,作出相应提示
6、验证验证码是否一致
7、如果密码一致,则执行注册,并跳转到首页,删除当前手机号验证码缓存
图示:
三、第三方登录(qq,微信,微博,coding.net,百度,github等)
各个第三方登录平台流程类似,这里介绍qq第三方登录
1、在qq开发者平台获取到app_id , app_key , 回调地址
2、拼接请求url
3、请求时携带state状态值,用于防范csrf攻击,回调页面会原样返回
4、处理回调,验证返回的state值和本地state值是否一致
5、如果state值一致,则再根据返回的code值获取accsess_token
6、根据accsess_token获取openid和用户资料(在第三方平台上,每一个qq号对应一个唯一的openid)
7、根据openid执行本地登录注册操作
比如(根据openid判断是否为网站新用户,如果是新用户,则执行网站内部的注册程序,并生成一个对应的uid,然后将uid写入session或cookie,实现保持会话。如果openid已经存在,则执行登录操作,直接将openid对应的uid写入session或cookie,保持会话)。
可参考https://blog.csdn.net/xiaoxian8023/article/details/38114921
注:官方参考文档点击这里
四、支付流程(第三方支付)
1、用户将商品加入购物车或立即购买
2、在购物车进行结算或者立即购买时,获取商品数、总价格,携带参数跳转到确认订单页面(包括地址,姓名,商品数,价钱,支付方式等)
3、将订单信息写入数据库,并跳转到订单创建成功页面
4、用户点击支付,确认支付请求时,后端根据订单信息拼接第三方支付请求url ,并进行请求,跳转到第三方支付页面
5、用户登录第三方账户,并进行支付
6、用户支付成功后,跳转到支付成功页面,然后跳转到同步通知页面(请求第三方支付时传入的return_url)
6、商城网站接收到支付异步通知后(notify_url)根据验证规则验证信息的有效性,并作出相应的更改操作(例:有效则更改订单为已付款状态,无效则记录非法请求信息)
详细流程:
退款和关闭订单类似,详细请查看官方文档