1.支付流程
1.1 扫码支付流程详解
1.生成支付的订单
2.收银台会向支付宝发起预下单请求
3.预下单请求会调用商家后台的接口,调用支付宝的API接口
4.支付宝会返回二维码的连接
5.商家后台将二维码的链接转换为一个二维码的图片,返回给商家收银台
6.商家收银台会将二维码图片展示给用户
7.用户扫描二维码,会唤醒用户手机上的支付宝,进行付款
8.支付宝会马上告知用户支付的结果
9.支付宝通过异步通知的方式,通知商家后台,用户已经成功支付
1.2 系统交互流程(时序图) 所有的系统支付操作通用
1.2.1 根据图片所写的支付流程
1.商户系统会调用alipay_trade_create(设置超时时间),向支付宝系统发送请求生成二维码链接
- 创建订单的时候会传递一个URL地址,即通知用户支付成功的回调地址,从而在用户支付成功时,通知商户系统
- 支付宝系统向商户系统同步返回二维码链接
2.商户系统会将二维码链接转换成二维码图片,展示给用户
3.用户会打开支付宝APP进行支付
- 用户进行扫描商家提供的二维码支付
- 输入支付密码完成向支付宝系统的支付,注意支付操作只有用户和支付宝之间进行交互,和商家后台无关,这部分对商户后台透明
- 支付宝向用户返回支付成功的消息
- 支付成功,会异步通知商户系统
商户收到消息,会给支付宝进行响应
- 如果支付宝异步通知没有成功
4.商户通过调用alipay_trade_query的查询接口,进行查询
支付宝会向商家返回用户支付的信息
支付的三种情况:
1.支付成功,流程结束
2.等待用户付款,还在能够支付的指定时间之内,就不停的循环
3.在指定事件之内未完成支付,商户系统调用alipay_trade_cancel关闭交易,支付宝同步返回撤销结果,二维码无效(可以设置二维码的超时时间)
1.3 支付对接准备-沙箱环境
沙箱环境:沙箱环境是协助开发者进行接口开发及主要功能联调的模拟环境
1.通过支付宝账号登录支付宝开放平台(开放平台)
2.在控制台找到沙箱,选择沙箱管理
3.手机下载沙箱APP
1.4 支付宝对接准备-加密逻辑
将金额支付给张三,不能明文在网络上传输,这样攻击者可以轻易修改金额,因此要采用加密形式
支付包加密采用的方式--非对称加密
特点:公钥加密,只有私钥才能解密
1.4.1 支付过程的加密验签
加密和解密:支付宝将支付信息用公钥加密之后,密文会通过网络传输给支付宝的服务器,支付宝服务器中保存着密文的私钥,将密文解密之后,以明文的形式,将密文显示
攻击者也可能直接将密文进行篡改,导致最终私钥无法解析对应的支付信息,或者解析错误
签名和验签:应用需要给支付信息进行签名,然后将签名和密文都传递给支付宝,支付宝先进进行验签,通过公钥进行验签,检查是否被篡改过
公钥:加密、验签
私钥:解密、签名
总结:1.支付宝公钥加密、应用私钥签名
2.支付宝私钥解密、应用公钥验签
支付成功之后,返回信息的加密验签
1.应用公钥加密,支付宝私钥签名
2.支付宝公钥验签,应用私钥解密
标签:支付宝,私钥,用户,二维码,支付,沙箱,加密 From: https://blog.csdn.net/2301_81453175/article/details/144918874