Androidi微信支付流程理论详解

               微信支付流程详解,从理论的角度来看微信支付


     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学起,有错误的地方欢迎大家指正,理论上还有不懂得也可以留言追问,谢谢支持!