发表于: 2018-01-05 23:35:57
1 601
今天完成的事情
1.完成了微信支付的Demo
还是比较简单的,主要是坑多,一步小心就完了.
2.构思出了对于支付结果的处理.整个流程梳理通了.
http://my.wiki.ptteng.com/pages/viewpage.action?pageId=32544341
虽然说还是有点问题,主要是单点故障...因为资源有限所以通过打印日志处理..后期订单插入DB失败修改订单状态失败可以通过查询日志来确定.
3.前端取消支付后端代码写完
/**
* 前端通知用户已取消支付
* @param sign 签名
* @return
*/
@RequestMapping(value = "/a/u/cancel/order",method = RequestMethod.PUT)
public String cancelPrepaidOrder(String sign,String outTradeNo ,Model model) {
if (null==sign||null==outTradeNo) {
log.info("sing is null,see sign is==="+sign);
model.addAttribute("code",-2307);
return "common/error";
}
//查询缓存是否存在
String key = sign+outTradeNo;
Long orderStartTimeOfMillis = null;
Long nowTimeOfMillis = System.currentTimeMillis()/1000;
Long orderContinuanceTimeOfMillis;
Long timeExpireOfMillis = Long.valueOf(timeExpire *60 * 1000 + "");
try {
String value = RedisCacheUtil.getValue(key);
orderStartTimeOfMillis = null!=value?Long.valueOf(value):null;
if (null==orderStartTimeOfMillis) {
model.addAttribute("code",-2307);
return "common/error";
}
orderContinuanceTimeOfMillis = nowTimeOfMillis - orderStartTimeOfMillis;
if (orderContinuanceTimeOfMillis >= timeExpireOfMillis) {
model.addAttribute("code",-2308);
return "common/error";
}
//更改订单状态
orderService.changeOrderStateToPayCancel(outTradeNo);
model.addAttribute("code",0);
log.info("success to change state to cancel pay");
}catch (Exception e) {
log.error("has an error,see===="+e);
model.addAttribute("code",-1);
//向中心线程报告支付相关DB异常次数
OpenPayThread.setCountOfDBError(OpenPayThread.getCountOfDBError()+1);
}
return "common/error";
}
明天计划完成的事情
1.将构思付诸实践,并测试
2.改bug
遇到的困难
无
收获
了解了微信支付的流程,了解了一点支付这块处理的流程.
评论