springboot+vue简单对接支付宝完整流程

news2024/11/17 16:32:15

源码

前端

vue-demo

https://www.aliyundrive.com/s/dmnY8G6N6RM

点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

后端

aliPay https://www.aliyundrive.com/s/H2JFBjGWuf2

点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

简介

前端使用vue框架和elementUI

后端使用springboot框架

准备工作

支付宝沙箱使用

1.进入支付宝开放平台网页,https://open.alipay.com/

2.登录,点击右上角控制台

 3.页面拉倒最底部左下角,开发工具推荐栏目,点击沙箱

 4.创建应用

5.查看公钥和私钥

点击查看 

 

以上信息后台配置会用到

 下载沙箱支付宝

1.点击沙箱工具

 2.选择支付宝客户端沙箱板

 3.扫码下载

 沙箱支付宝账号

1.点击沙箱账号

2.右侧信息

 3.进行充值

点击买家信息栏目下充值按钮

 4.登录沙箱客户端

使用买家信息栏目下的账号和密码,登录沙箱支付宝客户端

内网穿透

推荐一款免费内网穿透工具 网云穿

 下载客户端,安装配置本地后台ip和端口

配置映射

 点击确定,生成记录

 3.点击启动

 映射地址就是公网域名,默认端口是80

vue项目

执行命令下载依赖库

npm install

 进行依赖版本审核重新拉取不满足的库版本

npm audit fix

启动vue项目

npm run serve

启动后的效果:

页面

springboot项目 

 配置application.properties

server.port= 8080
#应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
ALIPAY.APPID=
#//商户私钥,您的PKCS8格式RSA2私钥
ALIPAY.PRIVATEKEY=
#支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥
ALIPAY.PUBLICKEY=
#服务器异步通知页面路径
ALIPAY.NOTIFY_URL=http://内网穿透公网域名/pay/notify
ALIPAY.RETURNA_URL=http://内网穿透公网域名/pay/return
#签名方式
ALIPAY.SIGN=RSA2
#字符编码格式
ALIPAY.CHARSET=utf-8
#支付宝网关
ALIPAY.gatewayUrl=

正常启动项目

流程

点击立即购买

 选择支付宝,并点击主要按钮

 打开沙箱支付宝进行扫码支付,过程有可能出现异常,多测试几次即可,由于阿里沙箱环境不稳定原因导致。

扫码支付

 

使用沙箱支付宝正常付款即可,网页会正常跳转

支付宝的同步和异步的区别

第一种理解

同步是给客户看的,异步是服务器处理请求。

同步是客户充值或者支付成功了,给客户一个提示,告诉客户这个操作的结果是成功还是失败。起到的作用就是提示客户这个操作的结果是成功还是失败。

异步是服务器在后端处理支付成功或失败时的业务逻辑。同步通知:用于用户在支付宝页面付款完毕后自动跳转;

异步通知:其实是处理业务逻辑,比如说修改客户的支付状态;

同步得到通知后跳转到自己的网址,然后根据参数告诉客户支付结果,然后在更新状态。

异步其实就是一个双保险,如果同步没有跳转你的网址,可能是关机了,或者网速慢,无法完成数据更新的状态,这时候异步就发挥作用了,先判断是否支付,支付了就不必更新了,只返回支付宝 success就行了,不然会一直异步通知

第二种理解

当一个支付请求被发送到支付渠道方,支付渠道会很快返回一个结果。但是这个结果,只是告诉你调用成功了,不是扣款成功,这叫同步调用。
很多新手会拿这个结果 当作支付成功了,那就会被坑死,结果就是支付成功率特别高,伴随着一堆无法解释的坏账率,测试人员尤其要注意测试数据的篡改:金额,同步返回结果,订单号等。

同步请求参数里面会有一个回调地址,这个地址是支付渠道在扣款成功后调用的,这叫异步调用。
一般同步接口仅检查参数是否正确,签名是否无误等。异步接口才告诉你扣款结果。
一般异步接口有5秒以内的延迟。调用不成功会重试。有时候是这边成功了,但支付渠道侧没收到返回,于是会继续调。
当天的支付到第二天还在 被异步调用也都是正常的。这也是开发人员需要特别注意的地方,不要当做重复支付。
测试人员也要对重复回调进行测试,应只有一次有效。这还不是最坑的,一般 支付渠道侧,只有支付成功了才通知你。
要是支付失败了,压根儿都不告诉你。
另一方面,如何老收不到异步结果呢?那就得查查了。同步结果不可靠,异步调用不可靠,那怎么确定支付结果?最终的杀招就是查单了,
反查,一般支付渠道侧都 会提供反查接口,定时获取DB中待支付的订单调用支付渠道侧的反查接口,最终把支付渠道侧扣款成功的订单完成掉。

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

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

相关文章

JVM04 堆

一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 一个JVM实例(一个Runtime)只存在一个堆内存,堆也是Java内存管理的核心区域。 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大…

ios上架及证书最新申请流程

ios上架及证书最新申请流程在使用hbuilderx或apicloud等uniapp框架开发app的时候,需要安卓证书或ios证书,假如是开发ios应用,打包成ipa包后,还需要将这个ipa上架到app store。苹果官网推荐的方法中,生成ios证书和上架i…

字节跳动青训营--前端day9

文章目录前言PC web端一、 前端Debug的特点二、 前端Debug的方式1. 浏览器动态修改元素和样式2. Console3. Sorce Tab4. NetWork5. Application6. Performancee7. Lighthouse移动端调试IOSAndroid通过代理工具调试前言 仅以此文章记录学习。 PC web端 一、 前端Debug的特点 …

Redis学习【6】之BitMap、HyperLogLog、Geospatial操作命令 (1)

文章目录前言BitMap 操作命令1.1 BitMap 简介1.2 setbit1.3 getbit1.4 bitcount1.5 bitpos[pos:position]1.6 bitop1.7 应用场景二 HyperLogLog 操作命令2.1 HyperLogLog 简介2.2 pfadd2.3 pfcount2.4 pfmerge2.5 应用场景三 Geospatial【地理空间】操作命令3. 1 Geospatial 简…

Zynq非VDMA方案实现视频3帧缓存输出,无需SDK配置,提供工程源码和技术支持

目录1、前言2、VDMA的不便之处3、FDMA取代VDMA实现视频缓存输出4、Vivado工程详解5、上板调试验证并演示6、福利:工程代码的获取1、前言 对于Zynq和Microblaze的用户而言,要想实现图像缓存输出,多半要使用Xilinx推荐的VDMA方案,该…

【Ubuntu版】VScode配置Python开发环境

一、相关介绍 1. 快捷键 快捷键解释说明ctrlp全文搜索文件 二、VSCode连接远程服务器开发 1. 安装remote插件 2. 安装Python插件 3. config配置 Host myServerHostName 172.x.x.xUser rootPort 6005参数解释 Host,自定义名称;HostName,远…

Kafka使用规范(纯技术和实战建议)

概述: 1、kafka使用规范主要从,生产、可靠性、和消费为轴线定义使用规范,另外Kafka建议核心业务系统不要使用(对数据可靠性要求高),因为Kafka高效性能源于批量设计思想,要充分利于Kafka高效性能…

【Python小游戏】智商爆棚,推荐一款益智类亲子娱乐首选—某程序员老爸:成语编成填空“游戏”,贪玩女儿1天牢记500词(厉害了我的Python)

前言 成语填空想必大家都是十分熟悉的了,特别是有在上小学的家长肯定都有十分深刻的印象。 在我们的认知里看图猜成语不就是一些小儿科的东西吗? 当然了你也别小看了成语调控小游戏,有的时候知识储备不够,你还真的不一定猜得出…

嵌入式STM32F767BGT6规格STM32F767BIT6引脚图 32Bit MCU+FPU

ARM Cortex-M7 STM32 F7 Microcontroller IC 32-Bit 216MHz 1MB (1M x 8) FLASH 208-LQFP (28x28)产品信息型号:STM32F767BGT6 / STM32F767BIT6类型:ARM微控制器 - MCU封装:LQFP-208明佳达电子下面是产品中文规格,仅供参考&#x…

云帆文档易用性功能设计之文档查阅

云帆文档管理系统是一款基于 SpringBootVue 开发的电子文档管理系统。系统集成了用户管理、角色管理、部门管理、文档管理、新闻管理、问答管理、通告管理、文档全文检索。 支持常用的 office 文档,视频文件、PDF 文档在线预览,下载,笔记&…

ChatGPT中文免费小程序(AI GPGT智能助手) - ChatGPT国内小程序版在线使用

ChatGPT中文网是一个面向中国用户的聊天机器人网站,旨在为国内用户提供一个自然的环境、有趣、实用的聊天体验。它使用最新的自然语言处理技术来帮助用户更好地理解他们的聊天对话,还可以帮助用户解决日常生活中的问题,提供有趣的谈话内容以及…

最新版EasyRecovery数据恢复软件使用测评介绍

我们在逐渐适应信息电子化的同时,也有一些潜在的麻烦接踵而来,其中较为常见的就是文件和数据的保存问题。显然,设备的存储空间是有限的,这就不可避免地会出现数据被删除、覆盖或丢失的现象,如果丢失的是重要数据&#…

【MyBatis】源码学习 01 - 泛型解析器 TypeParameterResolver

文章目录前言参考目录问题引入流程分析TypeParameterResolver#resolveReturnTypeTypeParameterResolver#resolveTypeTypeParameterResolver#resolveParameterizedTypeTypeParameterResolver#resolveTypeVar前言 最近结合着源码书学习 MyBatis,毫不夸张的说&#xf…

Kubernetes基本概念与组件

Kubernetes基本概念与组件 基本概念 Kubernetes 中的绝大部分概念都抽象成 Kubernetes 管理的一种资源对象,下面我们一起学习一下常遇到的一些资源对象: Master:Master 节点是 Kubernetes 集群的控制节点,负责整个集群的管理和控…

Camera | 4.瑞芯微平台MIPI摄像头应用程序编写

前面3篇我们讲解了camera的基础概念,MIPI协议,CSI2,常用命令等,本文带领大家入门,如何用c语言编写应用程序来操作摄像头。 Linux下摄像头驱动都是基于v4l2架构,要基于该架构编写摄像头的应用程序&#xff…

Java 反射深入浅出

Java 反射深入浅出📈 反射的概述:📑 Java Reflection(反射) 被视为动态语言的关键,Java并不是动态语言,但因为反射Java可以被称为准动态语言 反射机制允许程序在执行期 借助于Reflection API取得任何类的内部信息&a…

哪款蓝牙耳机性价比最高?无线蓝牙耳机性价比排行榜

我酷爱音乐,也是游戏发烧友,平时耳机从不离身。用的耳机多了,在选择上也有了自己的一些心得,通常来说,音乐耳机注重音效,游戏耳机注重低延迟,当前蓝牙耳机市场琳琅满目,下面推荐以下…

100M网口客户电脑插上网线就断线,自己工厂正常,是什么问题导致?

Hqst(华强盛科技)导读:物联工程师100M网口产品出现客户电脑插上网线就显示断线,无法通信,在自己工厂又正常使用,是什么问题?问:100M 网口, 使用改电路, 产品出…

Learning C++ No.10【STL No.2】

引言: 北京时间:2023/2/14/23:18,放假两个月,没有锻炼,今天去跑了几圈,一个字,累,感觉人都要原地升天了,所以各位小伙伴,准确的说是各位卷王,一定…

与其被行业内卷,还不如主动出击,打破困境~

如今的 “互联行业内卷”这事好像成为了一种常态,尤其是在一些已处于饱和状态和即将处于饱和状态的行业比较突出,比如:Android 开发行业、前端、……等等 造成行业内卷原因是什么? 市场竞争加剧,企业更加注重成本控制…