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

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

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

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

时间: 2024-08-12 15:16:08

支付宝回调之后修改账单的状态的相关文章

java实现网站paypal支付功能并且异步修改订单的状态

java实现网站paypal支付功能并且异步修改订单的状态:步骤如下 第一步:去paypal的官网https://www.paypal.com注册一个个人账号,在创建沙箱测试账号时需要用到 第二步:paypal提供了模拟的测试环境,我们需要在https://www.sandbox.paypal.com/去创建一个虚拟卖家账号和买家账号 (必须用第一步注册的真实账号才能登录进去,沙箱账号是登录不进去的) 第三步:登录成功后创建卖家.买家账号,如果不知道在哪创建账号可以直接点击这个链接https:/

Linux下文件的三种时间标记:访问时间、修改时间、状态改动时间 (转载)

在windows下,一个文件有:创建时间.修改时间.访问时间. 而在Linux下,一个文件也有三种时间,分别是:访问时间.修改时间.状态改动时间. 两者有此不同,在Linux下没有创建时间的概念,也就是不能知道文件的建立时间,但如果文件建立后就没有修改过,修改时间=建立时间;如果文件建立后, 状态就没有改动过,那么状态改动时间=建立时间;如果文件建立后,没有被读取过,那么访问时间=建立时间,因为不好判断文件是否被改过.读过.其状态是否 变过,所以判断文件的建立时间基本上能为不可能. 如何查一个文

关于支付宝回调接口,签名验证不相同原因

1.首先确保支付宝回调接口是否被调用(该接口的参数在支付宝支付时,客户端参数中药填写) 2.确认你的支付宝公钥是下图中的公钥.(红色圈圈中公钥)

支付宝回调监控,支付宝客户端和网页支付宝回调方式不一样

支付宝客户端回调会在AppDelegate里面: - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{ //支付宝支付 if ([url.host isEqualToString:@"safepay"]) { [[AlipaySDK defaultService] processOrderWithPayment

【转载】在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态改动时间

在windows下,一个文件有:创建时间.修改时间.访问时间.而在Linux下,一个文件也有三种时间,分别是:访问时间.修改时间.状态改动时间. 两者有此不同,在Linux下没有创建时间的概念,也就是不能知道文件的建立时间,但如果文件建立后就没有修改过,修改时间=建立时间;如果文件建立后,状态就没有改动过,那么状态改动时间=建立时间;如果文件建立后,没有被读取过,那么访问时间=建立时间,因为不好判断文件是否被改过.读过.其状态是否变过,所以判断文件的建立时间基本上能为不可能. 如何查一个文件的三

支付宝回调app失败

app迭代新版本,发现从支付宝支付完成后,返回客户端的方法不执行了 //支付宝客户支付端回调函数 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { //解析url,处理结果 [self parse:url application:application]; return YES; } 查找原因:新版本增加了友盟的分享功能,发现了下面方法 // 客户端回调接收方法 - (BOOL)applic

bbed修改undo段状态(ORA-01578)

[email protected]>select * from zbdba; select * from zbdba * ERROR at line 1: ORA-01578: ORACLE data block corrupted (file # 3, block # 1449) ORA-01110: data file 3: '/opt/oracle/oradata/orcl11g/undotbs01.dbf' 这里是事务正在执行,但是数据库直接以abort方式关机,并且对应的回滚段损坏 当

Java+微信支付(下预购单+回调+退款+查询账单)

前言: 现在的APP的离不开微信支付, 现在项目里接入微信支付 , 微信支付的官方文档是:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1 . 也很明了,这里是我的示例. 作为客户端, 需要接入的功能大概四个: 1  下预购单, 这里生成签名去请求微信, 返回预购单交易号. 再拼接客户端需要的对象,让客户端发起支付. 2  回调接口, 当APP完成支付, 微信会调用商户的回调接口, 告诉回调结果. 3  退款, 发起的支

iOS 微信和支付宝关于回调处理

在支付这一块,发现讲支付集成的比较多,但是关于支付后回调处理的不多见,(当时因为这个问题懵逼了好久)就自己总结一下, 1.支付宝回调 支付宝的回调想对来说比较简单一些,因为支付宝的回调就在调起支付宝的那个方法中的block中, NSString *orderString = nil; if (signedString != nil) {orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_