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
- 项目中使用Redis缓存
- 引入依赖
- 项目启动类上添加@Enable注解;
- 若在某方法中使用(如select查询,则直接查询缓存)缓存,则在方法上添加@Cachable注解,常用字段:cacheNames,value,unless;——注意:注解返回的类型需要实现序列化
- 更新缓存(比如保存方法,写入,则需要更新缓存)——1、@CachePut注解,cacheNames,value,2、@CacheEvict注解 区别:1删除缓存内容 2则是更新缓存内容,需要和Cacheable注解下的方法的返回值相同