发表于: 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


遇到的困难


收获

了解了微信支付的流程,了解了一点支付这块处理的流程.



返回列表 返回列表
评论

    分享到