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

目录

  • 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测试:

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

漏刻有时百度地图API实战开发(2)文本标签显示和隐藏的切换开关

漏刻有时百度地图API实战开发(1)华为手机无法使用addEventListener click 的兼容解决方案漏刻有时百度地图API实战开发(2)文本标签显示和隐藏的切换开关漏刻有时百度地图API实战开发(3)自动获取地图多边形中心点坐标漏刻有时百度地图API实战开发(4)显示指定区域在移动端异常的解…

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

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

SOME/IP 协议介绍(二)

1. SOME/IP header 出于互操作性的原因,所有SOME/IP的实现都应具有相同的标头布局如图1中显示。字段按传输顺序呈现,即左上方的字段首先进行传输。在接下来的章节中,将描述不同的标头字段及其用途。 1.1. IP地址/端口号 图1中的布局显示了在…

第二十九章 目标检测中的测试模型评价指标(车道线感知)

前言 近期参与到了手写AI的车道线检测的学习中去,以此系列笔记记录学习与思考的全过程。车道线检测系列会持续更新,力求完整精炼,引人启示。所需前期知识,可以结合手写AI进行系统的学习。 介绍 自动驾驶的一大前提是保证人的安全…

「Verilog学习笔记」求两个数的差值

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 timescale 1ns/1ns module data_minus(input clk,input rst_n,input [7:0]a,input [7:0]b,output reg [8:0]c );always (posedge clk or negedge rst_n) begin if (~rst_…

计算机基础知识48

web应用程序 # Django框架是一款专门用来开发web应用的框架 # Web应用程序是一种可以通过浏览器访问的应用程序, B/S架构 案例:淘宝网、京东网... # 应用程序有两种模式: C/S:客户端/服务器端程序,这类程序一般独立运行 B/S&#xff1…

解析几何@平面上点到直线的距离@点到平面的距离@空间中点到直线的距离

文章目录 平面上点到直线的距离点到平面的距离小结 角平分面问题例 点到直线的距离 平面上点到直线的距离 设坐标平面上有点 P ( x 1 , y 1 ) P(x_1,y_1) P(x1​,y1​)和直线 l : A x B y C 0 l:AxByC0 l:AxByC0, A , B A,B A,B不全为0点 P P P到直线 l l l的的距离的算法推…

最新AI系统ChatGPT源码+AI绘画系统源码+支持GPT4.0+Midjourney绘画+搭建部署教程+附源码

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

Linux学习之vim跳转到特定行数

参考的博客:《Vim跳到最后一行的方法》 《oeasy教您玩转vim - 14 - # 行头行尾》 《Linux:vim 中跳到首行和最后一行》 想要跳到特定行的话,可以在命令模式和正常模式进行跳转。要是对于vim的四种模式不太熟的话,可以到博客《Linu…

It Is All About Data: A Survey on the Efects of Data on Adversarial Robustness

It Is All About Data: A Survey on the Effects of Data on Adversarial Robustness----《这一切都关乎数据:关于数据对对抗性鲁棒性影响的调查》 摘要 对抗性示例是攻击者故意设计的机器学习模型的输入,目的是迷惑模型,使其犯错误。这些例…

RxJava/RxAndroid的操作符使用(二)

文章目录 一、创建操作1、基本创建2、快速创建2.1 empty2.2 never2.3 error2.4 from2.5 just 3、定时与延时创建操作3.1 defer3.2 timer3.3 interval3.4 intervalRange3.5 range3.6 repeat 二、过滤操作1、skip/skipLast2、debounce3、distinct——去重4、elementAt——获取指定…

Leetcode-LCR 021 删除链表的倒数第 N 个结点

快慢指针,快指针先移动n-1个节点后,慢指针从虚拟头结点出发(相当于快慢指针相隔n个节点),快慢指针一起向链表尾依次移动一个结点,当快指针移动到表位时,慢指针正好移到被删除元素的前一个结点&a…

采用springboot 2.7.10来操作clickhouse

1、采用springboot与clickhouse结合&#xff0c;其实和操作mysql&#xff0c;oracle区别不大。直接上代码开干 2、所采用的环境 jdk1.8 springboot 2.7.10 clickhouse 22.8.3.13 clickhouse 0.5.0 3、项目的pom.xml文件 <dependency><groupId>com.clickhous…

使用matlab实现图像信号的色彩空间转换

利用matlab对图像信号进行读取&#xff0c;并对RGB空间进行转换&#xff0c;如转换到HSI空间等。 下面的这个代码是在使用了rgb2hsi()方法失败后&#xff0c;进行修改的。 rgb2hsi(img)这个方法可以将RGB图像转换为HIS图像&#xff1b;但是爆出了 Untitled5(line 5)hsi rgb2h…

解决IDEA使用卡顿的问题

*问题&#xff1a;使用IDEA的时候卡顿 原因&#xff1a;IDEA默认分配的内存有上限 **可以查看内存分配情况及使用情况__ 解决&#xff1a; 设置JVM的启动参数&#xff1a; 进入idea的安装目录的bin文件夹 -Xms1024m -Xmx2048m -XX:ReservedCodeCacheSize1024m -XX:UseG1G…

【Java】IntelliJ IDEA使用JDBC连接MySQL数据库并写入数据

目录 0 准备工作1 创建Java项目2 添加JDBC 驱动程序3 创建数据库连接配置文件4 创建一个 Java 类来连接和操作数据库5 运行应用程序 在 IntelliJ IDEA 中连接 MySQL 数据库并将数据存储在数据表中&#xff0c;使用 Java 和 JDBC&#xff08;Java Database Connectivity&#xf…

抓包工具fiddler的基础知识详解

一、简介 fiddler是位于客户端和服务端之间的http代理 1、作用 监控浏览器所有的http/https流量查看、分析请求内容细节伪造客户端请求和服务器请求测试网站的性能解密https的web会话全局、局部断电功能第三方插件 2、使用场景 接口调试、接口测试、线上环境调试、web性能分…

论文速览 | TRS 2023: 使用合成微多普勒频谱进行城市鸟类和无人机分类

注1:本文系“最新论文速览”系列之一,致力于简洁清晰地介绍、解读最新的顶会/顶刊论文 论文速览 | TRS 2023: Urban Bird-Drone Classification with Synthetic Micro-Doppler Spectrograms 原始论文:D. White, M. Jahangir, C. J. Baker and M. Antoniou, “Urban Bird-Drone…

IBM Qiskit量子机器学习速成(一)

声明&#xff1a;本篇笔记基于IBM Qiskit量子机器学习教程的第一节&#xff0c;中文版译文详见&#xff1a;https://blog.csdn.net/qq_33943772/article/details/129860346?spm1001.2014.3001.5501 概述 首先导入关键的包 from qiskit import QuantumCircuit from qiskit.u…

文心一言 VS 讯飞星火 VS chatgpt (131)-- 算法导论11.2 3题

三、用go语言&#xff0c;Marley 教授做了这样一个假设&#xff0c;即如果将链模式改动一下&#xff0c;使得每个链表都能保持已排好序的顺序&#xff0c;散列的性能就可以有较大的提高。Marley 教授的改动对成功查找、不成功查找、插入和删除操作的运行时间有何影响? 文心一…