保姆级教程:SpringBoot 对接支付宝完成扫码支付,完整流程梳理!

本文详述了使用SpringBoot对接支付宝完成扫码支付的全过程,包括支付方式选择、交互流程、对接准备(加密解密、沙箱环境、内网穿透)、二维码生成、下单、异步通知回调、查询支付结果、退款以及通用版SDK的使用。通过实例代码展示了每个步骤的关键操作,是对接支付宝支付的实用教程。
摘要由CSDN通过智能技术生成

文章目录

1、支付方式选择 2、交互流程 3、1. 对接准备 2.加密解密 + 签名验签 3.沙箱环境 4、内网穿透 5、二维码 6、下单 7、异步通知回调 8、查询支付结果 9、退款 10、通用版SDK

需求:系统A对接支付宝,实现支持用户扫码支付

1、支付方式选择

对接的API文档:

  • https://open.alipay.com/api

可选的支付方式有:

  • 扫码付:出示付款码或者用户扫码付款

  • APP支付:在APP中唤起支付宝

  • 手机网站支付:在移动端网页中唤起支付宝 App 或支付宝网页

  • 电脑网站支付:在PC端唤起支付宝App或者网页登录支付宝账户

  • 刷脸付:需硬件支持

  • 商家扣款:类似每月会员扣款

  • 预授权支付:冻结对应额度,交易完成后给商家

  • JSAPI支付:小程序

这里选择扫码付的方式,点击下单后,返回支付二维码,用户扫码支付。

 

2、交互流程

画个下单流程的时序图:

大致流程:

  • 用户下单,系统A组装信息后(订单信息、回调地址、签名),调用支付宝预下单接口,返回二维码链接

  • 系统A将二维码链接转二维码图片

  • 用户扫码,唤醒本地支付宝,完成支付

  • 支付宝返回支付成功信息给用户

  • 支付宝异步通知系统A支付成功的消息(回调地址),如果用户支付成功,支付宝就调用回调地址的API,回调接口中自然是系统A收到用户支付成功消息后的动作

  • 上一步如果通知失败,比如网络异常或支付宝调用异步通知接口时系统A正好挂了 ⇒ 可主动调支付宝提供的查询支付结果接口,或者加定时任务轮询来查询交易状态,如3s-5s

  • 还可以考虑在第一步请求支付宝接口时加上二维码的有效时间,过期就重新发起

查询支付结果流程:

退款流程同上查询支付结果。PS:注意下单、退款过程中,相关订单的业务数据落库到系统A。

3、对接准备

1)加密解密 + 签名验签

支付信息不能在网络上明文传输,以防被篡改。系统A到支付宝的方向,采用:

  • 支付宝公钥加密 + 系统A的私钥签名(系统A做的事)

  • 支付宝私钥解密 + 系统A的公钥验签(收到信息后,支付宝做的事)

同理,支付宝返回支付结果时,就是在支付宝中用系统A的公钥加密+支付宝的私钥签名,传输到系统A后,则是先用支付宝的公钥验签,再用系统A的私钥解密支付结果

 

2)沙箱环境

调试过程中,可采用支付宝提供的沙箱环境,点击右上角控制台,登录后选择沙箱:

 

 这里有一套可调试的APPID、系统A的公钥、密钥、支付宝的公钥、支付宝的网关地址,以及商家账户和用户账户(用于后续登录沙箱版本支付宝APP完成支付)

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z.jiaminf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值