因为AccessibilityService的使用很简单,本文第一篇只讲实现微信个人收款回调服务的思路以及介绍使用到的技术。我个人认为这部分的内容对比编写一个安卓脚本更有价值。

本文仅供技术交流,切勿用于非法用户

一、 了解AccessibilityService

无障碍服务旨在帮助残疾人使用Android设备和应用程序。它们在后台运行,当系统被触发时接收系统的回调。这样的事件表示用户界面中的一些状态转换,例如,焦点已经改变,按钮被点击等。这样的服务可以可选地请求查询活动窗口的内容的能力。可访问性服务的开发需要扩展该类并实现其抽象方法。

在AccessibilityService的支持下,可以使你的安卓程序支持监听页面、页面组件和消息通知等事件并支持一系列例如点击、滑动和手势等操作。由此,我们可以通过继承AccessibilityService编写脚本。但是仅仅是操作UI层面的脚本辅助,,好处是使用场景不需要root,只需要打开一些权限即可。

一般使用场景是微信抢红包、自动点赞之类的。理论上,我们能拿到通知栏就可以实现微信收款的回调。所以本文讲了如果投入到生产环境需要考虑的设计以及方案。

二、 收款回调服务

总体的逻辑是:自动生成二维码、解析二维码上传到服务器、收到收款通知的时候回调到服务器
里面就包括了一些细节,例如:请求时传输内容的加密、设备的唯一ID、心跳机制等

这样完成的支付是有很大的局限性的。例如:在设备数量有限的情况只能支持到低并发的支付请求、对设备的正常运行完全依赖

1. 自动生成收款二维码

这个步骤主要是脚本的操作。重复输入金额生成二维码。
这里说一下个人支付的方案: 假设用户目标支付是金额5元,那么最先5元的收款码一定要保留支付时间的,正常用户支付完成了就可以释放了,如果用户放弃支付,可能在1-2分钟释放这个付款码。所以我们有两种方法:

(1) 多台设备&&多个收款账户
(2) 金额偏移

第一个方案固然是可行并且最理想的。所以我们这里讲求次方案,就是生成5元支付金额时,向前(–)或者向后(++)生成数个支付码,例如4.99、4.98、5.01、5.02。当然我更倾向于向前的。

(3)两者结合

这样并发量就是一个组合结果了,对于个人收款应该足够(如果不够,应该去申请商业支付啦)

2. 解析二维码上传到服务端

因为权限问题,在一个service里面截图是被拒绝的。

(1) DisplayManagerService

这个方案是可行的。自行了解

(2) 利用微信本身的保存收钱码功能


嗯…这个香

3. 收到通知回调到服务器

(1) 生成设备指纹

这个搜索(android 设备指纹)一大堆啊就不过多阐述了。主要是生成一个唯一标识去辨别设备的。

(2) 传输加密

如果明文传输也可以。
这里加密主要是为了验证消息的确来自设备,万一接口暴露了,被伪造请求,会直接造成经济损失啊。
因为设备是自己保管的,不存在被逆向然后密钥泄漏风险(如果服务器被注入我就管不着了)
这里也是用常用的CBC加密PKCS7PADDING填充
具体好像搜索(android cbc)又有答案了…

(3) 心跳机制、前台服务

因为回调服务是完全依赖设备正常运行的。但是这里比较简单只是细节问题。

(1) 轮询

开一个子线程定时请求服务器,服务器去做检测,上次心跳时差大于30s就不要使用这个设备的收钱码了,并且发出通知,然后人工处理就好了。

(1) Socket

没啥好说的,自带心跳。还可以对接函数进行云控app。有想象力的自行发挥吧。

本文介绍就到这里了,下面上个demo演示视频

视频中就是我的收款码,觉得有用的直接可以赞赏咯

使用Android AccessibilityService完成个人收款服务

第四方支付:使用Android AccessibilityService完成个人收款服务相关推荐

  1. java ios支付接口开发_微信支付接入(Android/IOS(swift)/Java后台)

    创建 包名.wxapi.WXPayEntryActivity 文件,保证内容如下(WechartUtils下面会给出): import android.app.Activity; import and ...

  2. android accessibilityservice自动点击_【Android】无障碍服务(一)入门轻踩

    无障碍服务是一种应用,可提供界面增强功能,来协助残障用户或可能暂时无法与设备进行全面互动的用户完成操作.小编这边用无障碍服务实现一系列自动化操作,有点像按键精灵,踩了不少坑.首要部署声明才能被 And ...

  3. 企业级php第三方支付平台,ThinkPHP新版企业级php第三方api第四方支付平台程序源码商业版 带接口文件等 某宝售价3000元...

    本帖最后由 商业源码网 于 2017-12-21 11:23 编辑7 h$ `. `, C  u0 R3 R+ y$ z! ] ' q( D' D$ s( Y 源码说明:) G: y; R# G0 ` ...

  4. 聚合支付与第四方支付平台的本质区别

    聚合支付和第四方支付平台是现今移动支付领域中的两种常见支付方式,它们在实际应用中有很多相同之处,并且都带来了人们生活中的便利.然而,这两种支付方式也存在本质上的区别,下面我将从不同角度对它们进行比较和 ...

  5. 三方支付四方支付聚合支付系统 集成 支付宝分账 代付 多商户 短信邮件 谷歌令牌验证

    三方 四方支付聚合系统 集成 支付宝分账 短信 邮件 谷歌令牌多种验证 1.系统为成熟运营版,完美对接邮件系统2.短信系统为阿里和短信宝,可多通道切换 3.增加安全机制集成了谷歌令牌 4.成熟的商户, ...

  6. 第三方支付和第四方支付有什么区别?

    四方支付 什么叫做第四方支付,第四方支付=聚合支付,同时也算是第三方支付平台服务的一个延伸.是指很多家支付机构的微二维码或者其他支付通道,实现「一码多用」.从这一方面帮助商户解决多种支付方式带来的麻烦 ...

  7. 第四方支付平台哪个好?这类第四方支付或惨遭淘汰

    "无互联网不金融,无移动不金融",互联网金融繁荣发展三年多后,监管落地.行业逐渐成熟.砍掉不合规业务.发力集团化.转型Fintech公司,成为2016年互联网金融公司的方向.201 ...

  8. 2018最新支付系统/第三方支付系统/第四方支付系统/聚合支

    2018最新支付系统/第三方支付系统/第四方支付系统/聚合支这里写自定义目录标题 2018最新第三方API第四方支付平台程序源码完整开源全套完美运营版聚合支付平台源码,此平台源码是客户独家运营的版本, ...

  9. 第四方支付平台有哪些?

    今年下半年以来,第四方聚合支付服务成为支付行业备受关注的话题. 所谓聚合支付服务,提供的是支付基础之上的多种衍生服务,它不具备支付牌照,而是通过聚合多种第三方支付平台.合作银行及其他服务商接口等支付工 ...

最新文章

  1. 第三章--数据链路层
  2. concurrent.futures dataset
  3. 数据结构实验之图论三:判断可达性(dfs/bfs)
  4. zabbix在configure时候遇到的问题(Ubuntu\debian)
  5. Boost::context模块callcc的jump测试程序
  6. 0x80070003系统找不到指定路径_Win7系统中gpedit.msc找不到应该如何解决?
  7. 结对作业2:单元测试
  8. WordPress 博客平台
  9. Android 数据库 SQLite
  10. .NetCore上传多文件的几种示例
  11. Spark将数据写入Mysql
  12. JAVA 调用Web Service的方法(转)
  13. 16.最接近的三数之和
  14. testbench的设计
  15. CentOS 7 安装 jdk11
  16. 计算机进制转换列表,计算机进制转换汇总
  17. 品优购---品优购项目制作---8.4
  18. Android native和h5混合开发几种常见的hybrid通信方式
  19. python 赌场掷骰子游戏
  20. 计算机输入法不能切换用户登录,输入法不能正常切换,输入法切换不出来 - 输入法切换不了,输入法不能切换怎么办? - 安全专题...

热门文章

  1. dell 显示器突然黑屏
  2. 不要和一种编程语言厮守终生:为工作正确选择 !
  3. Pygame Surface创建图像
  4. 智能仓储机器人公司Geek+完成1.5亿美元B轮融资,将拓展美国市场
  5. Unicode控制字符
  6. VBS-标记excel单元格红色背景
  7. windows与Linux查看端口占用并终止端口占用
  8. 【导航】矜辰所致的博客导航(所有博客的汇总帖,还有未来博文内容预告哦~)
  9. 内容页posts的制作(一)
  10. 程序员到底要不要接外包?