项目1

Q1、此项目的整个流程?

  卖家扫码登录:(基于微信开放平台开台);

  1、卖家扫码发起微信授权登录请求,微信重定向至第三方网站(定到自己的项目地址,需要注册自己域名,并且备案),同时会附带上code参数(换取access_token的票据)

  2、code + AppID【?】 + AppSecret【?】,通过API换取access_token (包含有openid,一个账号在一个AppID下有一个openid)

    appID和AppSecrect怎么来的? appID是公众号的唯一标识。

    从哪获取的公众号?用的是微信官方给的测试号,扫码会给你一个appID和appSecret。

  3、通过token进行接口调用,获取用户数据资源,实现用户操作

  

  卖家端的二维码怎么出来的?

  答:

  买家端购买流程?

  1、选择商品,创建订单。

  2、支付,传入的参数为订单id,细节进入数据库查询。

  3、更新库存等操作。

  

Q2、本项目中,Redis存储的key-value是什么?

  答:redis中的key为token值,key为openid,即用户在卖家端的身份唯一标识。

  唯一标识怎么来的?

  答:卖家在一个平台下有一个appId,同时对应一个openid,此openid即为在该平台下的唯一标识。

  用户没有openid吗?

  答:有。

  浏览器的cookie里有什么?

  答:cookie的name是token,value是token值,同时作为redis的key。

Q3、微信授权、微信支付和微信退款?

  答:项目是基于微信的,因此首先需要获得微信授权,获得openID。

  怎么获取OpenId?

  答:

Q4、项目基于token,实现身份验证

   答:token是服务端生成的一串字符串,作为客户端请求的一个令牌。

     第一次登录后,服务器生成token,将此token返回给客户端,存储在cookie中。下次客户端再次访问服务端时,依据此token

     即可免密登录。

   token存放在那?

    答:存放在cookie中 和 内存中,如redis中,可以减小访问时间。

  

Q0、遇到的问题?怎么解决的?

   答:

Redis

  1. 项目中使用Redis缓存
  • 引入依赖
  • 项目启动类上添加@Enable注解;
  • 若在某方法中使用(如select查询,则直接查询缓存)缓存,则在方法上添加@Cachable注解,常用字段:cacheNames,value,unless;——注意:注解返回的类型需要实现序列化
  • 更新缓存(比如保存方法,写入,则需要更新缓存)——1、@CachePut注解,cacheNames,value,2、@CacheEvict注解  区别:1删除缓存内容 2则是更新缓存内容,需要和Cacheable注解下的方法的返回值相同
一回生,二回熟
原文地址:https://www.cnblogs.com/zzytxl/p/12649800.html