微信支付流程详解,从理论的角度来看微信支付
1.先来一张官方文档图解:
官方流程图还是相当不错的,思路非常清晰,标注明确,但是图有图的好处,文字说明也有文字说明的必要,本文我将会将此图流程以文字的形式展示给大家(简单的来说就是将图片成了文字,可能有点啰嗦,懂得或者不爱看字爱看图的右上角就行,谢谢):
2.微信流程文字说明(红字序号为App前端,Android开发者需进行的操作):
a.客户端请求支付过程:
(1)首先就是客户的使用,客户要打开手机App端(即有微信支付功能的任意一款的App)
(2)客户选择商品,确认下单,此时我们的支付订单就会在手机端生成,然后传送给App后台处理
(3)当App后台就收到订单时,就会请求微信支付系统,调用统一下单的API.
b.请求完成,微信后台返回结果过程:
(4)之后微信支付系统便会进行处理,然后生成预付款单(prepay_id)返回给App后台
(5)App后台接收到预付款单后,再生成代签名的客户端支付信息(prepay_id,sign)并返回到App客户端
(6)此时用户这边就会收到确认支付的信息,客户端确认支付之后,程序继续
c.客户端确认支付后支付过程:
(7)用户确认支付后,支付参数通过调用SDK直接向微信支付系统发起支付请求
(8)此时微信支付系统验证支付参数和权限,决定是否返回支付授权(即是否让用户输入密码继续流程)给用户
(9)到此,用户收到输入密码的提示,用户输入密码后,程序继续
(10)用户输入密码后,提交授权给微信支付系统(即同意付款)
(11)微信支付系统得到授权后,就把你的钱扣了,支付到此结束,双方愉快!
d.微信支付系统将最终支付结果返回给App后台系统和用户:
(12)微信支付系统返回支付结果给用户(即微信消息提醒,付款成功)
(13)微信支付系统通过异步处理,将用户付款结果通知给App后台
(14)App后台接受并保存交易记录,并返回告知微信支付系统已成功接收处理,到此我们的微信和App后台都已经知道了处理结果
e.App端的最终支付结果给用户展示:
(15)当后台知道处理结果后,在App端通过已实现的回调接口回调支付状态,然后交给后台查询实际支付结果
(16)若在之前App后台没有收到支付结果,则会再向微信支付系统请求.(与Android前端无关)
(17)App后台将支付结果返回给App端,经过处理后最终展示给用户.
微信支付流程理论到此结束,废话可能有点多,也是为了人人都能看懂,从0学起,有错误的地方欢迎大家指正,理论上还有不懂得也可以留言追问,谢谢支持!