06、SpringBoot+微信支付 -->商户定时查订单状态、用户取消订单(关闭订单API)、查询订单API--到微信支付平台查询订单

news2024/11/26 4:49:38

目录

  • Native 下单、取消订单
    • 订单功能完善
      • 需求1:商户定时查单
        • 前端代码:
        • 后端代码:
        • 测试:
          • swagger 测试:
      • 需求2:用户取消订单(关闭订单API)
        • 需求:
        • 代码:
          • 前端:
          • 后端:
        • 测试:
      • 需求3:查询订单API--到微信支付平台查询订单
        • 需求:
        • 代码:
          • 后端:
        • swagger测试:

Native 下单、取消订单

订单功能完善

商户定时查订单状态、用户取消订单(关闭订单API)、查询订单API–到微信支付平台查询订单

需求1:商户定时查单

用户点击确认支付,弹出这个支付二维码,在弹出这个二维码的期间内,会调用定时查该订单的方法,如果该订单支付了,就跳转到订单列表。

如果关闭这个二维码,就不会去触发这个定时查询该订单支付状态的方法了。

在这里插入图片描述

前端代码:

代码执行思路
在这里插入图片描述

在这里插入图片描述

后端代码:

就是简单的通过订单的编号获取订单的支付状态,进行判断和返回数据给前端就可以了。

在这里插入图片描述

测试:
swagger 测试:

在这里插入图片描述

在这里插入图片描述
经过测试,可以得到在扫码支付,得到响应的3秒后,能成功的调到这个订单列表页面

在这里插入图片描述

需求2:用户取消订单(关闭订单API)

关闭订单

需求:

根据订单号取消订单-------->点击取消支付,弹出提示框,修改订单状态,关闭订单api。

这个关闭订单API:调用微信支付的关单接口,调用这个关闭订单的接口,该订单就不能再支付了。

在这里插入图片描述

代码:
前端:

在这里插入图片描述

后端:

WxPayController

在这里插入图片描述
WxPayServiceImpl

在这里插入图片描述

调用微信支付的关单接口

在这里插入图片描述
在这里插入图片描述

根据订单号更新订单状态
在这里插入图片描述

测试:

在这里插入图片描述

我把关闭下单api的方法注释掉了,只修改订单状态,发现重新下单的时候,支付二维码也是会变的。

得出的结论是,只有订单的支付状态是【未支付】的情况下,才不会调用微信支付的下单接口,直接返回已有的二维码url,其他支付状态,都是获取新的支付二维码url。

在这里插入图片描述

点击取消支付,弹出提示框,修改订单状态,关闭订单api。

在这里插入图片描述

需求3:查询订单API–到微信支付平台查询订单

需求:

**查询一直没有收到支付结果通知的订单,是根据订单编号调用微信平台的【商户订单号查询订单】接口来查 **

原本支付通知时商户通过二维码扫码支付后,微信支付端那边自动发来的。

如果商户端一直没有收到微信支付端发来的支付通知,比如5分钟或者10分钟,就主调去调用微信支付端的查单的接口。

就是通过商品的订单号,到【微信支付平台】那边查询这个订单的支付情况

注意不是去数据库查,是去微信支付平台查,相当于查支付通知。

商户订单号查询订单

 * 注意:这个【商户订单号查询订单】接口查出来的数据是明文不是密文,不要想成是密文
 * 而且查出来的数据 跟支付通知里面的通知参数的密文ciphertext解密出来的数据是一样的

在这里插入图片描述

代码:
后端:

WxPayController

在controller写接口只是为了测试,后续定时调用的时候是直接调用业务方法

在这里插入图片描述

WxPayServiceImpl
在这里插入图片描述
在这里插入图片描述

swagger测试:

成功通过商品的订单号,到微信支付平台那边查询这个订单的支付情况

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1188815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux安装Python3.10与部署flask项目实战详细记录

java开发新手入门Python,创建flask后端服务对外提供访问.记录一下在阿里云服务器部署flask项目的操作过程,简单介绍一下使用的阿里云服务器系统配置:ubantu16.04,其他内核版本操作部分命令会有所区别,下面开始详细操作过程! 1.pycharm创建flask项目并打包 2.Python3.…

grafana 密码忘记怎么重置

1.重置密码的命令: grafana-cli admin reset-admin-password 新的密码

【JavaEESpring】Spring, Spring Boot 和Spring MVC的关系以及区别

Spring, Spring Boot 和Spring MVC的关系以及区别 Spring:简单来说,Spring 是一个开发应用框架,什么样的框架呢?轻量级、一站式、模块化,其目的是用于简化企业级应用程序开发 Spring的主要功能: 管理对象, 以及对象之…

收银系统有哪些分类 收银软件有哪些类型

收银系统有以下这几种分类,你都清楚么: 一、按是否能数据共享可分为:单机版收银系统、网络版收银系统 这里需要注意,很多地方说单机也能收银,其实单机和网络版只是数据存储地方不同,单机版需要在线收银还是…

2023第六届泰迪杯数据分析,第五届泰迪杯数据分析技能赛B题源码图片分享

需要B题源码以及第六届带队”指导“请私信本人,团队包含技能赛双一等,数学建模省一,泰迪杯挖掘国一,研究生队友。 去年一等作品可视化图如下,私信获取源码

javaSE学习笔记(五)集合框架-Collection,List,Set,Map,HashMap,Hashtable,ConcurrentHashMap

目录 四、集合框架 1.集合概述 集合的作用 集合和数组的区别 集合继承体系 数组和链表 数组集合 链表集合 2.Collection 方法 集合遍历 并发修改异常 3.List List集合的特有功能(核心是索引) 集合遍历 并发修改异常产生解决方案ListIterato…

在虚拟机中新安装的Linux无法联网解决办法

1、我们在虚拟机中新安装了linux,默认是无法连接网络的,这个时候,需要配置自动获取ip的网设置。 2、我们在VMware Workstatio需要配置net网络,如下图 3、进入linux系统,找到 /etc/sysconfig/network-scripts/ [rootn…

腾讯待办关停怎么办?可将导出的ics文件添加到手机待办APP中

有不少网友之前一直使用微信中的“腾讯待办”小程序来记录待办事项并设置定时提醒时间,但是最近一段时间在使用腾讯待办的时候,却发现主页弹出了“业务关停通知”,主要内容是:由于业务发展方向调整,腾讯待办将于2023年…

下载文本标注工具doccano遇到的报错以及解决方案

下载文本标注工具doccano遇到的报错以及解决方案 最近在用doccano搭标注平台的时候遇到了一些问题,总是报错,下面记录一下 pip install doccano首先检查python版本得是3.9,否则会报错 报错信息如下: ERROR: No matching distribution fou…

个人网厅——销户

目录 需求文档 公积金销户类 controller层 service层 service层实现类 1.验证 (个人账户) 2.提交(添加) controller层 service层 service层实现类 3.分页查询 controller层 service层 service层实现类 4. 详情查询…

知了汇智主题讲座走进四川轻化工大学

2011年,Netscape创始人马克安德森一句“软件正在吞噬世界”掀起热浪,随着云计算、大数据、人工智能等技术的日趋成熟,我们发现吞噬当下世界的是数字化技术,而非软件。 数字化技术一方面改变着国家、企业、个人之间的竞争规则&…

U-Mail邮件系统安全登录解决方案

企业邮箱是企业对内对外商务往来的主要通信工具,并且企业邮箱里面还包含了大量企业内部隐私信息、商业机密等,很容易成为黑客的攻击目标。其中邮件盗号是企业邮箱遭受攻击的主要形式,一旦企业邮箱密码被黑客盗取,黑客不仅可以利用…

自主可控的半导体ic测试系统-国产化替代方案ATECLOUD

在当今高速发展的科技时代,半导体和集成电路(IC)已成为推动世界进步的核心驱动力。为了确保半导体/IC在性能、质量和可靠性方面达到最高标准,我们提供一套全面、创新的测试解决方案,以满足不断变化的市场需求。 利用我公司自主研发的ATECLOU…

银行转账p图在线制作生成,回执单凭证,工商农业邮政建设,易语言画板!

小编这边用易语言画板实现了一个可以自动P银行回执单的软件,当然我加了水印的,生成的图片都有水印,防止被恶意利用,然后可以选择模版,通过单选框的方式,生成的是转账成功后的截图奥,在编辑框输入…

Mysql--高级(自定义函数、存储过程、视图、事务、索引)

自定义函数 语法 delimiter $$ create function 函数名称(参数列表) returns 返回类型 begin sql语句 end $$ delimiter ; 说明: delimiter用于设置分割符,默认为分号,主要用于命令行,在“sql语句”部分编写的语句需要以分号结尾,此时回车会…

探秘亚马逊云科技海外服务器 | 解析跨境云计算的前沿技术与应用

目录 一、什么是海外服务器 二、不同主流海外云服务器对比 三、海外服务器的创建(亚马逊为例) 四、个人总结 一、什么是海外服务器 亚马逊云科技海外服务器:指的是部署在世界各地的亚马逊数据中心中的服务器设备。这些服务器提供了计算、存储、数据库、网络等各…

基于RK3568的内部定时器应用示例

1. 内部定时器介绍 内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于kernel/linux/timer.h和kernel/timer.c 文件中。 被调度的函数肯定是异步执行的,它类似于一种“软件中断”&am…

HP惠普暗影精灵9P OMEN 17.3英寸游戏本17-cm2000(70W98AV)原装出厂Windows11-22H2系统镜像

链接:https://pan.baidu.com/s/1gJ4ZwWW2orlGYoPk37M-cg?pwd4mvv 提取码:4mvv 惠普暗影9Plus笔记本电脑原厂系统自带所有驱动、出厂主题壁纸、 Office办公软件、惠普电脑管家、OMEN Command Center游戏控制中心等预装程序 所需要工具:3…

麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包

原文链接:麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包 hello,大家好啊,今天给大家带来麒麟桌面操作系统软件仓库搭建的文章03-软件仓库添加新版本的软件包,本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版…

基于nginx在视频播放器与服务器之间反向代理流程

1 服务器部署 由于我手里只有内网服务器,可以使用,因此在部署nginx代理服务器,使之在播放器和服务器之间实现反向代理并且缓存内容之前,需要做内网穿透,获得可与外界进行通信的地址。 如果想进行内网穿透,…