目录
支付资质:必须是企业才能申请,必须有营业执照,个人不能申请。
支付理论部分>实践
支付资质:必须是企业才能申请,必须有营业执照,个人不能申请。
支付场景:微信/支付宝
以下是微信/支付宝的支付产品,支付产品中的加粗项是本项目中用到的。
微信:
1.付款码支付(商户扫顾客的码)
2.JSAPI支付/公众账号支付(不需要关注公众号)在微信类打开网页
3.Native支付(用户打开扫一扫,扫描商户的付款码)
4.APP支付
5.H5支付(在微信客户端以外,比如短信的支付链接,点进去会进入手机自带的浏览器,再跳转到微信支付界面)
6.小程序支付,和公众账号支付很像,也是用的JSAPI
7.人脸支付
支付宝:
1.当面付
1)条码支付:商户扫用户
2)扫码支付:用户扫支付码
2.刷脸付
3.APP支付
4.手机网站支付(类似于H5支付,手机自带的浏览器)
5.电脑网站支付
支付名词解释
1.appid:
这里的app是application的缩写,即应用的id。
学会查看微信和支付宝中的appid。
支付宝的应用:
无论是小程序也好、移动应用也好、网页应用也好,都是应用,每个应用都有它的appid。
一个应用可以有多个支付产品。
支付宝的应用都在开放平台openhome.alipay.com中。
微信的应用:
不同的应用域名不一样。
不同支付用的不同的appid。
2.openid(微信独有):
图片1:因为用的是JSAPI,所以是公众号和小程序支付需要openid。
图片2:appid不同,则获取到的openid就不同。
![](https://img-blog.csdnimg.cn/direct/2152683de79440919145a3b997e45650.png)
支付-同步异步
同步:电话版约人吃饭,对方会立刻给出回应。/支付完会立马跳转到某个界面。
异步:发微信约人吃饭,等对方回消息,对方不会立刻响应。/支付后稍等几秒到账。
支付的结果是成功还是失败以异步为准。因为真正收到钱了才会发起异步通知。
支付-系统架构
支付需要一个独立的系统,要新建一个Java项目,它要有一个专用的数据库/数据表。
为什么支付需要一个独立的系统?在公司里面随着业务的增多,很多不同部分的工作都需要用到支付,这时候拷贝代码显得繁琐,一旦账号密钥发生改变也很难去管理,所以对重复代码的优化就是设立为一个独立的系统。
如上图,支付系统会配置密钥,左边的业务系统是不会直接和微信、支付宝打交道的。它只有发起支付、支付成功两步。左边业务系统携带参数跳转到支付界面(get请求:请求源码 跳转:跳转到浏览器的页面)。
支付后微信会有异步通知到支付系统,支付系统再去通知业务系统(我们使用MQ来做异步通知)。如此便把支付和业务系统解耦。