支付宝扫码支付-PC版(沙箱环境)
前言
最近开发了PC端支付宝扫码支付的功能,使用的是沙箱环境。所谓的沙箱环境,其实就是支付宝提供的测试环境(毕竟正式环境需要营业执照等信息进行注册,注册通过后还有一些流程,才能进行正式的扫码支付。对于学习来说,并没有必要)。下面做一个简单的小结。
业务流程
前端页面:
- 用户选择商品,点击购买,调用后台:生成商品支付二维码的接口。该接口返回二维码字符串。前台页面根据该字符串生成支付二维码(调用二维码生成组件)。
- 生成二维码后,页面以轮询的方式(3-5s一次,限定轮询次数),调用后台:查询订单支付状态接口。该接口会返回订单的支付状态。
- 如果到达轮询次数上限后,订单状态仍是未完成支付,则调用后台取消订单接口。取消该订单。
- 如果在轮询次数内,订单完成支付,则跳转到支付成功页面。
后台
后台需要提供三个接口:
- 生成支付宝支付二维码接口。核心在于调用:alipay.trade.precreate接口。该接口的详细参数,请参考蚂蚁金服开放平台。如果不清楚该如何调用该接口,请点击在线调试(沙箱环境),会有针对不同开发语言的示例代码。
https://docs.open.alipay.com/api_1/alipay.trade.precreate
- 查询订单支付状态接口。调用:alipay.trade.query接口。对于示例代码,同上。详情参考:
https://docs.open.alipay.com/api_1/alipay.trade.query/ - 取消订单接口。调用:alipay.trade.cancel接口。参考:
https://docs.open.alipay.com/api_1/alipay.trade.cancel/ - 后台根据查询接口返回的订单支付状态,做下一步操作,例如:轮询结果为支付完成时,进行扣减库存、生成订单等操作,具体结合实际的业务需求进行操作。
具体操作步骤
1.配置沙箱环境参数。请参考:
https://blog.csdn.net/abap_brave/article/details/79215081
2.引入SDK。由于项目是Maven项目,在POM.xml文件中配置Java版本的依赖。如下:
<!-- 阿里支付sdk --><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>3.7.73.ALL</version></dependency>
3.配置参数。示例代码如下:
config.properties
#支付宝扫码支付参数配置
#应用id
app_id= 沙箱环境中的appid
#测试号的私钥
merchant_private_key= 沙箱环境下生成的私钥
#支付宝公钥
alipay_public_key= 沙箱环境中的支付宝公钥
#支付宝网关
#沙箱环境
gatewayUrl=https://openapi.alipaydev.com/gateway.do
#真实环境
#gatewayUrl=https://openapi.alipay.com/gateway.do
#签名方式
sign_type = RSA2
#字符集编码
charset = utf-8
4.开发具体的后台代码,比如:AlipayController。在其中提供上面所说的三个接口即可。
总结
1.注意二维码只有被支付宝App扫码过后,才会在支付宝后台生成订单。在此之前,查询订单状态时,都会报:订单不存在的错误。
支付宝扫码支付-PC版(沙箱环境)相关推荐
- 【SpringBoot深入浅出系列】SpringBoot之实现支付宝扫码支付(沙箱环境编码实现)
目录 一.准备工作 1.应用 APPID 2.商户私钥,即应用私钥 3.支付宝公钥 4.签名方式 5.字符编码格式 6.支付宝网关 二.沙箱环境编码实现 1.项目说明 2.创建 Spring Init ...
- 支付宝扫码支付,回调和退款(沙箱环境配置和完整代码)
支付宝扫码支付 最近重构项目时,负责了支付模块,微信扫码支付(NATIVE)和 支付宝扫码支付,也是第一次接触,虽然根据官方文档和一些博客写出来了,但是遇到的问题却很多,走了很多弯路,浪费了很多精力和 ...
- 支付宝扫码支付(沙箱环境)
支付宝扫码支付(沙箱环境) 编写时间:2021年7月23日 什么是支付宝扫码支付? 现如今,手机支付已相当普遍,而作为开发人员应该对手机支付操作有所了解.而支付宝接口是支付宝提供的一个接口,用来对 ...
- Java PC端微信、支付宝扫码支付(二)
Java PC端微信.支付宝扫码支付(二) 前几天写了微信支付,附上链接 https://blog.csdn.net/qq_43494610/article/details/90411391 ,今天抽 ...
- java调用支付宝扫码支付接口
说明: 由于没有商户账号,所以本文使用的是沙箱账号,本质跟真实账号是一样的,是支付宝为了方便开发人员开发调试而推出的策略.在真实开发中将商户公钥等修改为真实的商户即可. 支付基本流程 用户下单 商户账 ...
- C# Winform窗体实现支付宝扫码支付
C# Winform窗体项目实现支付宝扫码支付 一.内容介绍 啪嗒!( 搬好小板凳 ) 大家好,本次学习的内容是在博主大一winform窗体项目中实现的一个功能--支付宝扫码支付: 主要功能通过支付宝 ...
- JAVA支付宝扫码支付开发流程
近期工作遇到支付宝扫码支付,经开发研究与3年前相比 API调用与配置更加简单方便,整体开发流程如下(后期会有对应的支付宝APP支付) 登录支付宝开发平台 -->开发接入 链接:https ...
- 支付宝--扫码支付流程
1.首次知道,原来(支付宝支付接口)需要去蚂蚁金服开发者帮助文档(尴尬). 附带链接地址:https://docs.open.alipay.com 2.创建自己的应用,我选的是[自研接入](这是一个坑 ...
- Java-Spring Boot支付宝扫码支付以及支付回调
前言:最近开发支付宝支付功能,总结一下做个分享 官方文档:https://opendocs.alipay.com/apis 支付宝沙箱地址: https://openhome.alipay.com/p ...
最新文章
- Laravel 传递数据到视图
- 学习AI可能不需要那么多数学知识:20小时进阶计划
- 面试常考!缓存三大问题及解决方案
- php漏洞书籍,PHP漏洞全解(一)-PHP网站的安全性问题
- Property “pageNumber“ was accessed during render but is not defined on instance.
- 【递归练习】阿克曼函数
- Windows下装ubuntu系统
- 华为上机题之Word Maze(单词迷宫)
- Bandizip Archiver for mac(便捷解压缩软件)
- android 解决微信登录白屏样式问题
- 无为职中计算机专业期中考试高一,无为县襄安高级职业中学
- HDU4544 湫湫系列故事――消灭兔子
- 网站首页被篡改? 看我使用PhantomJS利器实现网站自动监控修改并截图发送企业微信预警
- ROS语音交互系统_(3)ROS中接入图灵机器人语音理解系统
- 100ms的延迟让亚马逊损失1%销量,如何快速降低网站延迟?
- 设计模式相关内容介绍
- JAVA计算机毕业设计租车管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
- 机器人正运动学(2)—— 自由度
- 概率论——均匀分布、指数分布
- 仿微信列表显示时间(年月日、昨天、时间)