基于支付宝微信通知的一种个人收款回调方案(转)

最近闲来无事,看到网上有一些免签支付回调的服务商,当时感觉很新奇,于是自己动手看看怎么玩的,先看成果

App上监听通知并向服务器POST支付信息

基于支付宝微信通知的一种个人收款回调方案(转)

服务端的支付订单表

基于支付宝微信通知的一种个人收款回调方案(转)

下面说原理及流程

1.App上使用NotificationListenerService监听通知栏通知,一旦微信支付或者支付宝收款收到消息,读取消息的内容,然后使用正则匹配金额

2.App读取到金额后,构造支付订单,支付订单包含:订单号(App自己生成,不是真实的支付方订单号),金额,App端标识,支付方式,签名(保证数据不被篡改)

3.App将订单POST到填写的URL中

4.服务端收到订单信息,先校验签名是否相符,再查看订单是否存在(防止重放攻击),验证通过后存入数据库,并向指定的回调地址发起请求

5.服务端如果向指定的回调地址发起请求失败,使用定时任务重复发起回调,直到回调成功或达到指定次数

以上就是全部过程,服务端使用springboot,可以很快速搭建

当然为了保证可靠性需要给App加固,防止退出,还有这种只能读取到金额,其他信息一无所知,有些局限性

2019-03-14补充:

代码很简单,上传github完全是小题大做,下面贴出关键代码

App部分

继承NotificationListenerService重写onNotificationPosted方法

复制代码

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwpjs.html