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

Posted 随意随性

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支付宝回调之后修改账单的状态相关的知识,希望对你有一定的参考价值。

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

    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();
    }

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

以上是关于支付宝回调之后修改账单的状态的主要内容,如果未能解决你的问题,请参考以下文章

iOS 支付宝支付成功不走回调方法

支付宝怎么导出详细账单 支付宝详细账单导出的方法

支付宝沙箱环境测试

支付宝支付接口开发的回调地址怎么写

支付宝怎么查收支明细

支付宝修改回调地址后 issign=false