一、Situation->
这个项目开发的背景有两个方面:
一方面传统的定点车站无法满足乘客想要快捷出行的需求,
另一方面有大量的私家车主愿意在城市间往返时增加一些收入。
所以,XXX出行便作为两者需求交互的公共平台应运而生。
二、Task ->
整理调研数据
编写需求文档
画出业务时序图
定义业务接口
构建业务骨架
编写业务逻辑
进行业务测试
参与前后端联调
三、Action->
乘客登录:
- 认证方式选型
为了方便用户登录,移动端通常提供手机验证码登录的功能。
- 登录流程
输入手机号 -> 获取验证码 -> 输入验证码 -> 点击登录 -> 登录成功
- 前后端交互过程
- 在登录页面输入手机号,点击【获取验证码】按钮,页面发送ajax请求,在服务端调用短信服务API给指定手机号发送验证码短信。
- 在登录页面输入验证码,点击【登录】按钮,发送ajax请求,在服务端处理登录请求。
- 开发手机验证码登录功能,其实就是在服务端编写代码去处理前端页面发送的这两次请求。
应用的技术:
利用redis中key的过期时间和缓存特性,将验证码存入redis保证验证码的时效。
使用JWT解决跨域认证问题,实现用户身份验证。
为了抵御恶意请求,设置安全验证,对达到条件的账户进行一定时间的限制登陆措施。 调用第三方接口发送短信。
预约单功能:
乘客上传自己的出发地和目的地后,调用第三方地图,获取路径规划,时间预估,距离预估等数据。
取得数据后通过计价模块调用行程的计价规则并进行详细的价格计算最终生成初始订单。
将订单保存进数据库并返回给乘客进行确认和支付。
使用柔性事务保证分布式环境下支付库和订单库事务的一致性。
- Result->
- 了解了Redis的缓存特性。
- 了解了JWT的跨域认证。
- 了解了认证方式。
- 了解了柔性事务。