admin 管理员组

文章数量: 1184232

仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在: 

【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客


全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代码分析,源码读起来也不复杂~

谨慎:源代码中有一些注释是错误的,有的注释意思完全相反,有的注释对不上号,我在阅读过程中就顺手更新了,并且在我不会的地方添加了新的注释,所以在读源代码过程中一定要谨慎啊! 

目录

No4 业务逻辑的代码开发阶段说明

A1.第三方平台授权登录逻辑(需要了解哦)

B1.微信的授权方式

C1.微信小程序

C2.微信开放平台

C3.微信AppID、openid、unionid(必须要知道)

B2.QQ的授权方式

C1.应用开发平台

C3.QQ的AppID、openid、UnionID(必须要知道)

B3.第三方平台授权登录与自身平台登录的逻辑整合思考(可略过)

C1.逻辑思考 

C2.举例子

B4.shop平台B端会员登录实际逻辑(需了解)

C1.实际第三方和账号登录结果

C2.实际第三方和账号登录逻辑

C3.实际第三方和账号登录代码开发逻辑(主要分析出相似开发逻辑的,减少低质量代码)

A2.会员登录接口

B1.会员接口

B2.微信小程序登录接口

B3.web端第三方授权联合登录


No4 业务逻辑的代码开发阶段说明

第三部分的详细设计基本上差不多了(剩下的都不难理解,后面再补充),现在开始根据业务逻辑开发代码。写代码容易,但前提是要结合业务逻辑,写出漂亮代码,既要考虑代码规范,又要考虑调用是否恰当、依赖是否严格、逻辑是否合理、设计是否环保简洁。

所以我们先学习shop项目的开发思想,分析其优点,琢磨是否有缺点,当然以自己的理解也不一定思考的完全正确,但是自己不思考就永远不知道正确的方案的!

同时也要区分重点,不是什么都需要详细分析的,就像普通的增删改查逻辑就说清楚带过就好,复杂的就要仔细考虑啦~而有些逻辑是作为代码开发经常需要的,例如登录逻辑、支付逻辑等。

由于是要全面分析的,所以就从基础的、关联较少的分析起,大致方向就按照NO3-2接口分析的逻辑走就可以。

大致方向如下:

1.先解决系统设置,因为全局需要的;【例如:物流、区划、配置等,大多是运营端的,或者是系统的】

2.再解决会员基础管理、店铺基础关管理;【例如会员登录、注册、修改,店铺申请、管理等,都涉及到三端】

3.然后开始解决商品的管理、购物车管理、促销管理;【这三块都挺复杂的,涉及到的业务都挺多的呢,而且三块之间还相互关联,要一同考虑】

4.最后在解决其余小的模块,毕竟大多模块都与前三个模块相关呢【例如,会员评价、消息、配送等,也是三端有关的】

分析的内容大致包括:

  • 业务的分析【得先分析清楚要解决的业务吧,然后根据业务思考用什么样的方式来编写代码】
  • 业务类之间的关系【分析清楚涉及到的关键类间的关系,利于理解业务,清楚代码设计架构~】
  • 代码的编写【挑取关键方法逻辑的重点描述,吸取编码思想】
  • 第三方工具【记录使用的工具、为啥使用】

 以上分析不分前后,毕竟我们是要分析shop系统的,和正常的开发流程肯定不一样的。业务分析我们在之前大多都有分析过,所以后面如果非必须就略过了,业务类间的关系肯定是要分析的,之前有的我们也简单分析过,例如促销的。代码编写就是将业务类间的关系思想落实到代码中,而第三方工具有些是影响业务的,有些就是简单的快捷工具,例如第三方登录、支付,hutool 工具等等。

OK,一切思考完毕,要不我们就先从会员登录开始吧~~~~~~~~~~~~~~

A1.第三方平台授权登录逻辑(需要了解哦)

由于我们需要用到第三方工具进行授权登录,所以需要了解他们的使用指南,才能添加到咱们的系统里面。

说白了就是拿到第三方平台里面用户的信息(一定会有一个用户唯一标识),然后将这个信息与我们shop平台的用户进行绑定,这样就能通过第三方登录shop平台了。

所以重点就是要知道怎样从第三方拿到的授权用户信息。

在了解前我们先整理都需要哪些第三方登录方式,然后根据需要的登录方式去了解实际的使用~

  1. PC端,用户名密码登录、手机号码登录、这俩是注册的,所以放到一起
  2. PC端,手机App/小程序扫码登录
  3. PC端,QQ授权登录
  4. PC端,微信扫码授权登录
  5. 微信小程序端,微信授权+手机号码授权登录
  6. 微信浏览器端,微信授权登录
  7. 移动浏览器端,用户名密码登录、手机号码登录
  8. 移动浏览器端,QQ授权登录
  9. APP端,用户名密码登录、手机号码登录
  10. APP端,QQ授权登录
  11. APP端,微信授权登录

 上方绿色的是需要第三方的授权登录方式,其余的是平台的登录方式哦。

B1.微信的授权方式

对于微信来说,他有微信开发平台,并提供了好多种产品的授权指南:小程序、公众号、开放平台、小游戏等等,我们需要了解小程序的、开放平台的。

需要小程序方式是由于我们有小程序端,所以可以直接使用小程序的API来获取到我们想要的用户信息或者手机号码;

需要开放平台方式是由于我们有PC端微信扫码授权、APP端/微信浏览器端调用微信客户端授权,我们需要开放平台授权的appid、secret来调用他提供的API接口,最终获取到我们想要的用户信息;而且开放平台里面又区分为网站应用、移动应用、第三方平台等,我们只需要使用网站应用、第三方平台就可以啦。

C1.微信小程序

微信小程序的授权逻辑时基于微信小程序组件的API的,也就是说在小程序前端拿到授权的用户信息,比如获取手机号码,此时拿到的授权信息是加密的,需要调用微信方接口拿到code值解密才能获取到手机号码。

具体的可以看文档很好理解的,BUT ,需要注意,下面的获取手机号码文档是新的方法!而shop项目是使用的旧版本的方法!!!

新版本逻辑:

通过组件拿到获取手机号码的动态令牌code,然后通过access_token和code调用HTTPS getPhoneNumber 接口,接口响应返回就是手机号码信息。很方便。

旧版本逻辑:

通过拿到获取加密数据encryptedData和加密算法的初始向量iv,并根据微信提供的加密数据解密算法来解密,拿到手机号码信息。不方便,解密需要先拿到用户的sessionKey,并且还要使用微信提供的解密算法。

下图是新版本的文档及文档地址:

微信小程序授权手机号码登录:获取手机号 | 微信开放文档 

获取手机号接口 | 微信开放文档

 旧版本的文档及地址:旧版本获取手机号 | 微信开放文档


 C2.微信开放平台

开放平台的授权逻辑,只说网站应用和第三方平台的哈,他们的授权逻辑都是基于OAuth2的,并且都支持 Authorization code 授权模式,所以步骤都相似:

1. 获取code
2. 通过 code 换取 accesstoken
3. 然后根据 accesstoken 进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。

 微信网站应用授权登录: 网站应用 网站应用微信登录开发指南 | 微信开放文档

本文标签: 涉及到 第三方 后端 逻辑 接口