微信支付时序图。
微信支付官方文档https://pay.weixin.qq.com/wiki/doc/api/index.html
- xml与对象的互转, 微信使用xml格式而不使用json通信, 也确实有点奇葩
- 签名,千万不要以为只是MD5一下,要是你自己开发,我敢说,你60%的时间都耗在签名调试这一块
以上是微信公众账号支付的时序图,简单概括为2个点。
- 下单,发起支付
- 接收异步通知,修改订单的支付状态
下单和修改支付状态是用户的业务系统干的事,我们主要重点在发起支付和接收异步通知
微信支付流程:
①、用户访问支付页面时,该页面生成支付订单,向微信服务器报备订单,而这里订单的生成则需要商户信息,订单信息,还有用户openid,签名等。
②、订单生成成功,微信返回一个订单的信息,然后将这些信息分配到前段页面。
③、用户点击支付按钮时,调用发起支付的方法,此时微信会验证这个方法是否正确,正确则可出现支付页面。
④、支付成功或失败或取消,微信都会把信息返回,此时可根据返回信息作出不同处理。