实现支付宝订单状态查询_大数据培训

发布时间:2020年11月23日作者:atguigu浏览次数:1,292

实现支付宝订单状态查询

支付宝文档中的样例

大数据培训

1、首先通过基本参数初始化AlipayClient,此处和支付模块部分相同,不再详述。

2、业务参数

大数据培训

业务参数就两个,选哪个都可以,其中out_trade_no是电商系统生成的,trade_no是支付宝回调后产生的。因为有可能一直就没收到支付宝的回调,也就没有trade_no,所以咱们这里使用out_trade_no。

 

@Autowired
AlipayClient alipayClient;

public PaymentStatus checkAlipayPayment(PaymentInfo paymentInfo){

    System.out.println(开始主动检查支付状态,paymentInfo.toString() = ” + paymentInfo.toString());
    //先检查当前数据库是否已经变为“已支付状态”
   
if(paymentInfo.getId()==null){
        System.out.println(“outTradeNo:”+paymentInfo.getOutTradeNo()  );
        paymentInfo = getPaymentInfo(paymentInfo);
    }
    if (paymentInfo.getPaymentStatus()== PaymentStatus.PAID){
        System.out.println(该单据已支付:”+paymentInfo.getOutTradeNo());
        return PaymentStatus.PAID;
    }

    //如果不是已支付,继续去查询alipay的接口
   
System.out.println(“%% % % 查询alipay的接口”  );
    AlipayTradeQueryRequest alipayTradeQueryRequest=new AlipayTradeQueryRequest();
    alipayTradeQueryRequest.setBizContent(“{\”out_trade_no\”:\””+paymentInfo.getOutTradeNo()+“\”}”);
    AlipayTradeQueryResponse response=null;
    try {
        response = alipayClient.execute(alipayTradeQueryRequest);
    } catch (AlipayApiException e) {
        e.printStackTrace();
    }

 
    if(response.isSuccess()){
        String tradeStatus = response.getTradeStatus();

        if (“TRADE_SUCCESS”.equals(tradeStatus)){
            System.out.println(支付完成  ======================  ”    );
            //如果结果是支付成功 ,则更新支付状态
           
PaymentInfo paymentInfo4Upt=new PaymentInfo();
            paymentInfo4Upt.setPaymentStatus(PaymentStatus.PAID);
            paymentInfo4Upt.setCallbackTime(new Date());
            paymentInfo4Upt.setCallbackContent(response.getBody());
            paymentInfo4Upt.setId(paymentInfo.getId());
            paymentInfoMapper.updateByPrimaryKeySelective(paymentInfo4Upt);

            // 然后发送通知给订单
           
sendPaymentResult(paymentInfo,“success”);
            return PaymentStatus.PAID;
        }else{
            System.out.println(支付尚未完成 ?????????? ”    );
            return PaymentStatus.UNPAID;
        }
    }else{
        System.out.println(支付尚未完成 ?????????? ”    );
        return    PaymentStatus.UNPAID;
    }

}

 


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦3层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)

西安市雁塔区和发智能大厦B座3层(西安校区)

成都市成华区北辰星拱青创园综合楼3层(成都校区)