Java微信支付接入(7) - API V3 Native 商户定时查询本地订单

后端定义商户查单接口

支付成功后,商户侧查询本地数据库,订单是否支付成功

java 复制代码
/**
 * 查询本地订单状态
 */
@ApiOperation("查询本地订单状态")
@GetMapping("/query-order-status/{orderNo}")
public R queryOrderStatus(@PathVariable String orderNo) {
    String orderStatus = orderInfoService.getOrderStatus(orderNo);
    if (OrderStatus.SUCCESS.getType().equals(orderStatus)) {//支付成功
        return R.ok();
   }
    return R.ok().setCode(101).setMessage("支付中...");
}

前端定时轮询查单

在二维码展示页面,前端定时轮询查询订单是否已支付,如果支付成功则跳转到订单页面

javascript 复制代码
//启动定时器
this.timer = setInterval(() => {
    //查询订单是否支付成功
    this.queryOrderStatus()
}, 3000)
javascript 复制代码
// 查询订单状态
queryOrderStatus() {
    orderInfoApi.queryOrderStatus(this.orderNo).then(response => {
        console.log('查询订单状态:' + response.code)
        // 支付成功后的页面跳转
        if (response.code === 0) {
            console.log('清除定时器')
            clearInterval(this.timer)
            // 三秒后跳转到订单列表
            setTimeout(() => {
                this.$router.push({ path: '/success' })
           }, 3000)
       }
   })
}
相关推荐
雪度娃娃1 分钟前
转向现代C++——在创建对象时注意区分()和{}
开发语言·c++
铅笔小新z3 分钟前
【C语言】数组详解
c语言·开发语言
摇滚侠6 分钟前
Java 饿汉式 单例模式
java·开发语言·单例模式
lbb 小魔仙9 分钟前
工业数据困局的破局者:DolphinDB 如何让海量时序数据真正“跑“出价值
开发语言·人工智能·python·langchain
Devin~Y11 分钟前
大厂Java面试实录:Spring Boot/WebFlux、JVM调优、Redis/Kafka、Spring Cloud 与 RAG/Agent 追问
java·jvm·spring boot·maven·mybatis·jpa·spring webflux
枫叶丹411 分钟前
【HarmonyOS 6.0】Device Security Kit安全审计阻断功能深度解析
开发语言·安全·华为·harmonyos
读书札记202212 分钟前
C++ switch..case语句中变量跨域问题探讨及解决方法
开发语言·c++
一轮弯弯的明月12 分钟前
Spring AOP编程
java·开发语言·spring boot·笔记·spring aop·学习心得
Sam_Deep_Thinking14 分钟前
拼单功能的设计实战
java·架构
neo_Ggx2315 分钟前
Linux 日志检索速查:按时间、接口、Trace ID 查询完整请求链路
java·linux·服务器