1、概述
昨天聊了聊微信支付的对接流程与实现,今天咱们聊聊支付宝支付的对接与实现。
2、准备工作
在支付宝开放平台(https://open.alipay.com/platform/home.htm)创建应用并配置应用,下载相应的SDK,详情可参考官方文档“接入准备”章节。
3、支付宝支付的方式
支付宝支付的方式很多,主要包括以下几种方式:
1)当面付:包括付款码支付和扫码支付两种收款方式,比较适合线下实体店、自动售货机,通过硬件设备扫描用户付款码或是用户扫描商家的收款二维码完成支付。
2)APP支付:在商家APP中调起支付宝APP完成支付,如果手机没有安装支付宝APP,则调起支付宝网页支付收银台完成支付。
3)手机网站支付:商家在手机某浏览器APP中调起支付宝APP完成支付,如果手机没有安装支付宝APP,则调起支付宝网页支付收银台完成支付。
4)电脑网站支付:在 PC 端访问商家网站,支付时,会生成支付宝付款二维码,用户可通过手机支付宝扫码支付,也可登录网页支付宝账户进行付款。
5)刷脸付:需要依靠硬件,通过刷脸进行支付。
这里主要介绍一下,手机网站支付和电脑网站支付两种方式。
4、支付流程概述
支付宝支付的流程与微信支付有些不同,但大体思路类似。
步骤一:生成订单
步骤二:使用支付宝提供的SDK调用支付宝创建订单接口
步骤三:唤起支付
步骤四:返回回调页面
步骤五:接收支付结果回调通知
5、与微信支付的区别
1)支付宝提供了专用的SDK
2)在创建支付宝订单时,多传了一个页面回调地址(return_url)参数,用于支付宝支付成功后的跳转。
3)调用创建订单接口后返回值差异较大
微信的下单接口会返回 prepay_id(预支付交易会话标识)、 h5_url(支付跳转链接)、code_url(二维码链接)等信息,前端页面根据支付方式不同,依据返回值唤起支付。
支付宝在创建订单后,会返回一段HTML代码,前端页面只需将其渲染到页面上即可。
6、订单状态
根据支付流程,订单的状态可以大致分为:待支付、支付中、支付成功、支付失败。
7、步骤一:生成订单
该步骤不需要与支付宝的接口交互,完全是业务系统自己的逻辑,主要是记录订单中商品的明细、数量、金额等信息。
生成订单后,订单的初始状态为 待支付。
8、步骤二:使用支付宝提供的SDK调用支付宝创建订单接口
手机网站支付调用 alipay.trade.wap.pay 接口,电脑网站支付调用 alipay.trade.page.pay 接口。
返回值都是一段 html 代码。
参数中有两个回调参数 return_url 和 notify_url,return_url 用于支付成功后返回的页面,notify_url 用于异步通知回调结果。
支付宝创建订单接口调用成功后,订单的状态可更改为 支付中,如果调用不成功则订单状态改为 支付失败。
9、步骤三:唤起支付
前端页面将创建订单接口返回的html 代码 直接渲染到页面即可。
10、步骤四:返回回调页面
在支付宝页面完成支付后,会自动跳转到 return_url 参数指定的页面。
11、步骤五:接收支付结果回调通知
接收支付结果的回调通知,修改订单的状态。
12、综述
好了,大家对支付宝支付应该也有个初步认识了吧, 欢迎多多交流。