在之前的文章里写了小程序后端調用微信支付的内容今天来说一下如何处理微信后台异步推送支付结果给后端的操作。【】
微信支付后台推送支付结果就是微信后台調用我们在支付的时候发送给微信后台的通知地址notifyUrl,将支付结果数据发送给我们自己的后端后端再去解析数据,进行逻辑处理
我们要莋的内容就是在后端写好支付结果通知的处理方法,写好路由操作同时将写好的接收通知的地址发送给微信后台就可以了。
二、支付结果通知处理方法
对通知结果的处理难点在于微信后台是以数据流的形式将数据返回的,同时他返回的数据格式是XML格式而且需要以给定嘚形式给微信后台发送反馈消息,如果微信后台没有收到反馈消息则会每隔一段时间给你发送一次通知。为了便于小程序端进行支付结果查询我们需要将支付结果通知在本地进行存储。
注意:这里的返回结果是给微信后台返回的并不是发给小程序的。
这里使用request.on()的方法來读取数据流使用“xmlreader”包来读取XML格式的数据。WXPayInfoModel是自定义的通知结果数据表我是使用MongoDB数据库来进行数据管理的。
对支付结果通知的处理整体来说还算可以,不是很难当时由于没有看清文档说明,在对通知数据读取的时候费了些时间刚开始没有想到是以数据流的形式返回数据的,感觉还是很奇怪的同样是微信支付的一部分功能,为什么返回数据的形式要不一样呢