概念

什么是无SDK支付

顾名思义,无SDK支付即是在不引入支付渠道方SDK的情况下,完成支付与确认的功能;

为什么要用无SDK支付

官方SDK支付方式的缺点

  • 需要企业或者组织,才可以申请到支付接口;
  • 官方需收取一定数量的技术服务费;
  • 清算存在一定时间差;

无SDK支付的优点

  • 个人账号即可完成,接入成本低;
  • 无中间商赚差价,支付多少到账多少;
  • 支付完成立即到账,无时差;

无SDK支付只能通过外设的方式,拼接完成支付闭环,当然存在他本身的不足

  • 外设的稳定情况决定了系统的稳定性;
  • 并非官方推出的方法,存在账号被封禁的风险;

实现逻辑

无SDK支付是借助安卓设备对系统通知栏的监控,通过C2C收款的方式,将付款结果返回给服务端,并完成对订单的状态的确认。

业务逻辑图如下:

graph TD
start((开始)) --> payRequest[用户发起支付请求]
payRequest --> midPayCallback("结算页面(修改结算金额尾数)")
midPayCallback --> pay[用户去支付]
pay -->|用户支付完成| monitorMsg(客户端监听收款账号的收款信息)
monitorMsg --> pushMsg(客户端推送监听到的收款消息到服务端)
pushMsg --> marchOrder(金额匹配)
marchOrder -->|金额匹配| successCallback(订单支付成功并返回支付结果)
successCallback --> stop((结束))
marchOrder -->|金额不匹配| continueMonitor(持续监听消息)
continueMonitor -->|超时| failCallback(订单支付失败并返回支付结果)
failCallback --> stop
无SDK支付业务逻辑
## 风险

1、监听权限受系统限制

监听权限是系统的高级权限,除非系统给应用开白名单,否则很容易被杀。

2、系统对通讯录的修改

国产安卓系统为了提高用户的体验,一般都内置了通讯录,各大银行的号码都被备注了。为了兼容各手机的使用情况,监听规则需要判断的短信来源,去匹配银行名称或者银行号码。

限制条件

1、设备限制

仅支持安卓设备,苹果设备无法获取通知栏监听权限。