发表于: 2018-09-10 21:43:40

1 396


今日完成:

一、上午主要是完成了支付模块的回调接口校验和生成交易bug排除

因为之前前端已经做好了跳转,渲染支付页面,并且成功支付,所以我这边就需要去测试回调接口是否能正常回调。

但是看服务器日志,是回调失败的,去线上测试很麻烦,就想着用内网穿透,找了半天,找到一个很方便的软件——花生壳,花了六块钱,办了内网穿透,结果告诉我只支持上海电信。。。而我这的网是上海移动。。。这就很尴尬了,最后没办法,只能暂时放弃,先去研究demo,后来发现我的问题是出在这个version和type上,我之前的代码里面,version和type是按照接口文档的举例去写死的,但是我看它的demo里面是从request里面去获取的,所以我就在想是不是不能写死,可能是举例的只是单纯举例。

然后观察服务器日志,发现果然是我加密之后生成的签名和它给的签名不一致,于是我就将写死的version和type改为动态获取,将方法的参数多传两个进去。。。然后,就解决了。。。

这证明了有的时候真的不能自以为是啊,还是要多看demo去学习才行。

二、然后是生成交易数据出现问题

按照日志去定位可能发生bug的代码,将其一步一步拆分开,做trycatch,最后解决了,虽然我自己都不知道为啥出问题,因为我原代码自测是通过的。。。

三、前端查看已签署合同无法查看

最后定位,是因为没有做参数校验,查看合同时,因为是新交易,所以没有匹配债权,但是我的代码里默认已经匹配债权,所以就出现了空指针。。。最后加了一个判断,如果为空就不执行查询债权的操作,成功解决


四、对之前的try-catch做修改

主要就是加了参数校验,有的地方做了非空判断,然后将大部分trycatch都扔到了service中,controller中只有很少的代码量,目前完成了前台的trycatch调整,同时,我感觉每次throw一个异常之后还得写一遍log.error很麻烦,就在异常处理类里面加了一个打印日志。。。

public class MyExceptionHandler {
private static final Logger log= LoggerFactory.getLogger(MyExceptionHandler.class);
@ExceptionHandler(MyException.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public void handlerMyException(MyException ex, HttpServletResponse response) {
JSONObject json = new JSONObject();
json.put("code", ex.getCode());
json.put("message", ex.getMessage());
log.error(ex.getMessage());
try {
SendMsgUtil.sendJsonMessage(response,json);
catch (Exception e) {
e.printStackTrace();
}
}
}

算是偷懒吧。。。


明日计划:

完成后台代码try-catch,晚上进行第二遍demo


遇到的困难:

在支付回调这一块纠结了很久,一直找不到错误。。。其实还是自己的第一映像导致的


收获:

对异常的处理,解决了几个小bug



返回列表 返回列表
评论

    分享到