项目测试问题

1.项目使用的是前后端分离,前段通过js调用后台api获取用户信息,绑定session,session的信息获取是通过第三方jar包调用微信的sdk获取,因此在第三方的拦截器里面,判断当前当前session里面是否有wxUser。如果使用内网穿透,则请求的时候一定要使用域名进行访问,如果使用localhost:8080访问,但是在微信的域名配置里面写的是域名,那么每次微信进行回调授权的时候,sessionId已经改变,所以访问其他URL的时候,微信的拦截器获取session的时候一定是空,如图所示:

项目测试问题_第1张图片

项目测试问题_第2张图片

因为session的id已经改变,在内网穿透的本地端口配置里面,一定写明本地的ip+端口,一定是局域网ip,获取积分兑换的时候,需要先模拟登陆,将session注入,否则将会一直拦截获取积分兑换的请求,将code参数截断,而当微信进行回调的时候会带上一个微信的code参数授权使用,与我们需要的code参数正好冲突,如图所示:

项目测试问题_第3张图片

 

2.A项目调用了另外一个项目B,此时A项目中的调用接口地址需要修改,交接时候未写清楚

3.B项目接口需要参数与A项目调用时候的参数名未统一,A项目为Code,B项目为code_pwd,如图:

项目测试问题_第4张图片

4.A项目的卡密中有加号时,B项目中的参数获取将会把加号变为空格,如图所示:

项目测试问题_第5张图片

此时必须将项目A中的参数值进行urlencode,否则,将会解密失败,改为如下代码:

//获取用卡调用地址
String url = null;
String encrypt = AesUtil.encrypt(code.trim(), AesUtil.KEY);
try {
    encrypt = URLEncoder.encode(encrypt,"utf-8");
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}
url = rechargeUrlConfig.getUseCardUrl() + MessageFormat.format(USE_CARD_PARAM, encrypt, fansAccount.getMobile());
logger.info("请求url:{}",url);

 

你可能感兴趣的:(搬家)