前言

最近开发了PC端支付宝扫码支付的功能,使用的是沙箱环境。所谓的沙箱环境,其实就是支付宝提供的测试环境(毕竟正式环境需要营业执照等信息进行注册,注册通过后还有一些流程,才能进行正式的扫码支付。对于学习来说,并没有必要)。下面做一个简单的小结。

业务流程

前端页面:

  1. 用户选择商品,点击购买,调用后台:生成商品支付二维码的接口。该接口返回二维码字符串。前台页面根据该字符串生成支付二维码(调用二维码生成组件)。
  2. 生成二维码后,页面以轮询的方式(3-5s一次,限定轮询次数),调用后台:查询订单支付状态接口。该接口会返回订单的支付状态。
  3. 如果到达轮询次数上限后,订单状态仍是未完成支付,则调用后台取消订单接口。取消该订单。
  4. 如果在轮询次数内,订单完成支付,则跳转到支付成功页面。

后台

后台需要提供三个接口:

  1. 生成支付宝支付二维码接口。核心在于调用:alipay.trade.precreate接口。该接口的详细参数,请参考蚂蚁金服开放平台。如果不清楚该如何调用该接口,请点击在线调试(沙箱环境),会有针对不同开发语言的示例代码。
    https://docs.open.alipay.com/api_1/alipay.trade.precreate
  2. 查询订单支付状态接口。调用:alipay.trade.query接口。对于示例代码,同上。详情参考:
    https://docs.open.alipay.com/api_1/alipay.trade.query/
  3. 取消订单接口。调用:alipay.trade.cancel接口。参考:
    https://docs.open.alipay.com/api_1/alipay.trade.cancel/
  4. 后台根据查询接口返回的订单支付状态,做下一步操作,例如:轮询结果为支付完成时,进行扣减库存、生成订单等操作,具体结合实际的业务需求进行操作。

具体操作步骤

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版(沙箱环境)相关推荐

  1. 【SpringBoot深入浅出系列】SpringBoot之实现支付宝扫码支付(沙箱环境编码实现)

    目录 一.准备工作 1.应用 APPID 2.商户私钥,即应用私钥 3.支付宝公钥 4.签名方式 5.字符编码格式 6.支付宝网关 二.沙箱环境编码实现 1.项目说明 2.创建 Spring Init ...

  2. 支付宝扫码支付,回调和退款(沙箱环境配置和完整代码)

    支付宝扫码支付 最近重构项目时,负责了支付模块,微信扫码支付(NATIVE)和 支付宝扫码支付,也是第一次接触,虽然根据官方文档和一些博客写出来了,但是遇到的问题却很多,走了很多弯路,浪费了很多精力和 ...

  3. 支付宝扫码支付(沙箱环境)

    支付宝扫码支付(沙箱环境) 编写时间:2021年7月23日 什么是支付宝扫码支付? ​ 现如今,手机支付已相当普遍,而作为开发人员应该对手机支付操作有所了解.而支付宝接口是支付宝提供的一个接口,用来对 ...

  4. Java PC端微信、支付宝扫码支付(二)

    Java PC端微信.支付宝扫码支付(二) 前几天写了微信支付,附上链接 https://blog.csdn.net/qq_43494610/article/details/90411391 ,今天抽 ...

  5. java调用支付宝扫码支付接口

    说明: 由于没有商户账号,所以本文使用的是沙箱账号,本质跟真实账号是一样的,是支付宝为了方便开发人员开发调试而推出的策略.在真实开发中将商户公钥等修改为真实的商户即可. 支付基本流程 用户下单 商户账 ...

  6. C# Winform窗体实现支付宝扫码支付

    C# Winform窗体项目实现支付宝扫码支付 一.内容介绍 啪嗒!( 搬好小板凳 ) 大家好,本次学习的内容是在博主大一winform窗体项目中实现的一个功能--支付宝扫码支付: 主要功能通过支付宝 ...

  7. JAVA支付宝扫码支付开发流程

    近期工作遇到支付宝扫码支付,经开发研究与3年前相比  API调用与配置更加简单方便,整体开发流程如下(后期会有对应的支付宝APP支付) 登录支付宝开发平台 -->开发接入    链接:https ...

  8. 支付宝--扫码支付流程

    1.首次知道,原来(支付宝支付接口)需要去蚂蚁金服开发者帮助文档(尴尬). 附带链接地址:https://docs.open.alipay.com 2.创建自己的应用,我选的是[自研接入](这是一个坑 ...

  9. Java-Spring Boot支付宝扫码支付以及支付回调

    前言:最近开发支付宝支付功能,总结一下做个分享 官方文档:https://opendocs.alipay.com/apis 支付宝沙箱地址: https://openhome.alipay.com/p ...

最新文章

  1. Laravel 传递数据到视图
  2. 学习AI可能不需要那么多数学知识:20小时进阶计划
  3. 面试常考!缓存三大问题及解决方案
  4. php漏洞书籍,PHP漏洞全解(一)-PHP网站的安全性问题
  5. Property “pageNumber“ was accessed during render but is not defined on instance.
  6. 【递归练习】阿克曼函数
  7. Windows下装ubuntu系统
  8. 华为上机题之Word Maze(单词迷宫)
  9. Bandizip Archiver for mac(便捷解压缩软件)
  10. android 解决微信登录白屏样式问题
  11. 无为职中计算机专业期中考试高一,无为县襄安高级职业中学
  12. HDU4544 湫湫系列故事――消灭兔子
  13. 网站首页被篡改? 看我使用PhantomJS利器实现网站自动监控修改并截图发送企业微信预警
  14. ROS语音交互系统_(3)ROS中接入图灵机器人语音理解系统
  15. 100ms的延迟让亚马逊损失1%销量,如何快速降低网站延迟?
  16. 设计模式相关内容介绍
  17. JAVA计算机毕业设计租车管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
  18. 机器人正运动学(2)—— 自由度
  19. 概率论——均匀分布、指数分布
  20. 仿微信列表显示时间(年月日、昨天、时间)

热门文章

  1. C# - 音乐小闹钟_BetaV1.0
  2. Mybatis-Plus 新手入门,一篇足以
  3. SMB 协议操作共享盘
  4. 高德地图鼠标划线显示距离并生成坐标点数据
  5. Cplusplus实现的爱心代码,爱心里面有三个字李欣怡
  6. alios things开发板_AliOS Things图形界面开发指南
  7. 蓝牙调试器 接收处理 hc-05蓝牙上传数据
  8. deep-daze给你一个五彩斑斓的黑
  9. 算法很没:快速渡河问题
  10. 搭建企业级微信公众号管理平台(三)----注册码实现与校验,Redis存储