码迷,mamicode.com
首页 > 其他好文 > 详细

支付宝回调之后修改账单的状态

时间:2017-09-02 18:01:31      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:oda   ber   success   font   orm   rto   span   blank   form   

//这个是回调地址之后更新一些订单状态的方法

    public ServerResponse aliCallback(Map<String,String> params){
        //订单号
       Long orderNo = Long.parseLong(params.get("out_trade_no"));
        //支付宝的交易号
        String tradeNo = params.get("trade_no");
        //支付宝的交易状态
        String tradeStatus = params.get("trade_status");
        //在这个方法里面查询一下,看一下这个订单号码是否存在
        Order order = orderMapper.selectByOrderNo(orderNo);
        if(order == null){
            return ServerResponse.createByErrorMessage("非快乐慕商城的订单,回调忽略");
        }
        //在这里调用枚举类,判断订单是否已经支付
        if(order.getStatus() >= Const.OrderStatusEnum.PAID.getCode()){
            return ServerResponse.createBySuccess("支付宝重复调用");
        }
        //这里调用的是支付宝官方的枚举
        //“TRADE_STATUS_TRADE_SUCCESS”是交易完成的意思
        if(Const.AlipayCallback.TRADE_STATUS_TRADE_SUCCESS.equals(tradeStatus)){
            //记录交易的时间,这个字符串是固定的
            order.setPaymentTime(DateTimeUtil.strToDate(params.get("gmt_payment")));
            order.setStatus(Const.OrderStatusEnum.PAID.getCode());
            orderMapper.updateByPrimaryKeySelective(order);
            //把订单状态改成已付款
        }

        PayInfo payInfo = new PayInfo();
        payInfo.setUserId(order.getUserId());
        payInfo.setOrderNo(order.getOrderNo());
        payInfo.setPayPlatform(Const.PayPlatformEnum.ALIPAY.getCode());
        payInfo.setPlatformNumber(tradeNo);
        payInfo.setPlatformStatus(tradeStatus);

        payInfoMapper.insert(payInfo);

        return ServerResponse.createBySuccess();
    }

如果你感觉本文对你有帮助,欢迎进群一起探讨交流:点我加群

支付宝回调之后修改账单的状态

标签:oda   ber   success   font   orm   rto   span   blank   form   

原文地址:http://www.cnblogs.com/suiyisuixing/p/7467182.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!