Ending
Tip:由于文章篇幅有限制,下面还有20个关于MySQL的问题,我都复盘整理成一份pdf文档了,后面的内容我就把剩下的问题的目录展示给大家看一下
如果觉得有帮助不妨【转发+点赞+关注】支持我,后续会为大家带来更多的技术类文章以及学习类文章!(阿里对MySQL底层实现以及索引实现问的很多)
吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。
在classes增加文件,log4j.properties,内容如下:
log4j 在java中的引用、使用:
public static Logger logger = Logger.getLogger(WechatServlet.class);
logger.info(“打印信息”);
二、微信小程序登录+支付
1. 小程序前端目录准备
基于微信小程序工具生成的默认hello world程序,pages下先建立目录order,随后在order目录生成一个新的page,命名为order,结构如下图:
在index中增加按钮,进入order。
index.wxml
order.xml中描述商品信息,增加支付按钮,order.js 支付事件处理。
2. 登录+支付 code
流程大概分为几步:
1)登录,获取code(一个code只能用一次)
2)通过code获取openid(通过请求服务器,由服务器请求微信获取并返回小程序)。微信登录+获取openid接口。
3)小程序请求服务器进行预下单,上送商品详情、金额、openid。
4)服务器端接收请求,根据请求订单数据、生成第三方订单号,调用微信的统一下单接口。
5)服务器收到预下单信息后,签名并组装支付数据,返回给小程序。所需数据见:小程序支付接口
6)小程序前端发起支付,并支付完成
7)服务器收到回调。
2.1 登录,获取code。
2.2 通过code 获取openid(前端)
2.2 服务器端servlet(复写HttpServlet的doGet doPost函数)doPost的代码片段:
2.3 前端上送订单信息、openid请求预下单(在此,为方便,订单信息直接写死在服务器端了),若成功,则根据服务器端返回数据发起支付。
2.4 服务器端预下单,2.5并签名返回支付请求数据。
三、实战中遇到的问题
预下单和支付请求中,签名的密钥使用的是商户密钥,但是用code获取openid是使用小程序对应的secret key,这个可以在小程序的后台看到。
微信小程序前端发起post请求到服务器端时,服务器端收不到请求参数。原因是:微信API接口wx.request中:
a) 对于 GET 方法的数据,会将数据转换成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)…)
b1) 对于 POST 方法且 header[‘content-type’] 为 application/json 的数据,会对数据进行 JSON 序列化
b2) 对于 POST 方法且 header[‘content-type’] 为 application/x-www-form-urlencoded 的数据,会将数据转换成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)…)
最后
学习视频:
大厂面试真题:
e56a57acb)收录**