一、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)根据验证规则验证信息的有效性,并作出相应的更改操作(例:有效则更改订单为已付款状态,无效则记录非法请求信息)

详细流程:

退款和关闭订单类似,详细请查看官方文档

PHP开发常见功能实现流程相关推荐

  1. 购物商城app开发的功能和流程是什么

    随着互联网时代的到来,电子商务迅猛发展让人们的购物更方便,更随时随地.而商城购物App是专门为商业零售及服务企业开发的手机客户端,帮助商家快速形成自有的用户群体,通过免费的信息推送开展促销活动,有效提 ...

  2. 使用air进行移动app开发常见功能和问题(二)

    1.  Air如何判断android.ios 平台网络连接状态? Android,使用as3原生api: [javascript] view plaincopy if(NetworkInfo.isSu ...

  3. 使用AIR进行移动APP开发常见功能和问题(下)

    1.  Air如何判断android.ios 平台网络连接状态? Android,使用as3原生api: if(NetworkInfo.isSupported)//只有android支持 Networ ...

  4. 软件测试开发:常见测试类型概念

    软件测试是软件开发中非常重要的一个环节,软件测试工程师需要对每个环节进行严格把控,才能保证系统在每个阶段得以控制.下面小编就为大家详细介绍一下软件测试开发:常见测试类型概念的相关内容. 软件测试开发: ...

  5. agilebpm脑图_干货基于SpringBoot2开发的Activiti引擎流程管理项目脚手架

    干货基于SpringBoot2开发的Activiti引擎流程管理项目脚手架 [干货]基于SpringBoot2开发的Activiti引擎流程管理项目脚手架 前言 在工作中,难免会遇到需要开发基于流程管 ...

  6. 成都工控开发:太简单了!串口触摸屏开发HMI的全流程介绍

    成都工控开发:太简单了!串口触摸屏开发HMI的全流程介绍 有很多事,把它说清楚了,就简单了,比如用触摸屏开发HMI. 触摸屏是很常见的,比如说你用的智能手机,用手指在上面划划划就能显示出我们想要的页面 ...

  7. 视频直播APP源码开发iOS音频播放流程

    视频直播APP源码开发iOS音频播放流程 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的, ...

  8. 软件开发可行性分析九个流程的理解

    1.可行性分析 主要是对一个项目是否进行做出决定,一般由公司高层来决定,这种决策对公司尤其是创业公司至关重要.方向搞错了,执行力再强也没用.想创业的同学,这个问题定要多多思考哦. 可行性分析可能包括但 ...

  9. 【RPA之家转载】RPA财务机器人在常见的财务流程中如何工作?

    RPA之家(http://www.rpazj.com)是中国具有影响力的RPA垂直交流社区,社区汇聚了RPA领域的各类从业人员.其中包括RPA开发工程师.售前工程师.业务分析师.架构师.运维工程师.项 ...

最新文章

  1. C++/C union使用记一下锅
  2. Guid和Int还有Double、Date的ToString方法的常见格式
  3. vue 实例化几种方式_Vue组件的三种调用方式
  4. poi读取Excel内容数据
  5. #1176 : 欧拉路·一(欧拉通路的判定)
  6. zen cart 操作-修改
  7. java 计算机开始时间,关于计算Java程序运行时间
  8. 45 张图深度解析 Netty 架构与原理
  9. 轻松搞定 Nginx 配置的好工具!
  10. python表达式352的值为_表达式 3 and 5 的值为
  11. HDFS报错:there are 15871 missing blocks,the following files may be corrupted
  12. mysql创建用户和远程登录授权
  13. oracle11g ora-27154 past/wait 错误解决方法
  14. C++ 命名方式建议
  15. 建立apk定时自动打包系统第一篇——Ant多渠道打包并指定打包目录和打包日期...
  16. phpcms二次开发摘要
  17. C语言入门之鸡兔同笼(简易版)
  18. MATLAB中对于矩阵的算术运算、关系运算、逻辑运算、转置、求逆、求和和求积
  19. 一些个人感觉很不错的特效
  20. 即使被拖库,也可以保证密码不泄露(一种安全的加密方案)

热门文章

  1. 深入了解Oracle ASM(一):基础概念
  2. 安全删除U盘时,遇到提示“无法停止‘通用卷’设备时解决方法
  3. 网管心得:优化网络性能给局域网提速[好文章]
  4. 一键生成Vue.js + Web API前后端集成项目
  5. github开源推荐:SuperSocket, 可扩展的 Socket 服务器框架
  6. Source Generator 单元测试
  7. FastTunnel - 打造人人都能搭建的内网穿透工具
  8. .NET 下载、文档访问新姿势
  9. Nginx实战部署常用功能演示(超详细版),绝对给力~~~
  10. EF Core3.0+ 通过拦截器实现读写分离与SQL日志记录