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

实现支付宝订单状态查询

支付宝文档中的样例

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

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值