学习借鉴Xposed微信支付宝个人免签收款

这里我只是hook到微信收款信息后显示出来

项目github地址ObtainWXBillInfo

资源地址(里面有xml和json转换工具JASONJava.jar包、apk安装包等等......)

链接:https://pan.baidu.com/s/104DBdsSZHnWqlZ0EMLe49g
提取码:t11r

hook代码:

public class XposedProgram implements IXposedHookLoadPackage {private Context wxContext;@Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable{if(loadPackageParam.packageName.equals("com.tencent.mm")){hookWxContext(loadPackageParam.classLoader);hookBill(loadPackageParam.classLoader);return;}}//获取上下文private void hookWxContext(final ClassLoader appClassLoader){try {Class<?> ContextClass = XposedHelpers.findClass("android.content.ContextWrapper", appClassLoader);XposedHelpers.findAndHookMethod(ContextClass, "getApplicationContext", new XC_MethodHook() {@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);if (wxContext != null)return;wxContext = (Context) param.getResult();}});} catch (Throwable t) {XposedBridge.log("获取上下文出错");wxContext = null;}}//hook 。。。。。。private void hookBill(final ClassLoader appClassLoader){XposedHelpers.findAndHookMethod("com.tencent.wcdb.database.SQLiteDatabase", appClassLoader, "insert", String.class, String.class, ContentValues.class,new XC_MethodHook() {@Overrideprotected void beforeHookedMethod(MethodHookParam param)throws Throwable {try {ContentValues contentValues = (ContentValues) param.args[2];String tableName = (String) param.args[0];if (TextUtils.isEmpty(tableName) || !tableName.equals("message")) {return;}Integer type = contentValues.getAsInteger("type");if (null == type) {return;}//                            XposedBridge.log("\n\n\n遍历content里的信息:");
//                            for(Map.Entry<String, Object> item : contentValues.valueSet())
//                            {
//                                XposedBridge.log(item.getKey() + " , " + item.getValue().toString());
//                            }
//                            XposedBridge.log("遍历content里的信息完成\n\n\n");if (type == 318767153) {String contentStr = contentValues.getAsString("content");JSONObject msg = XML.toJSONObject(contentStr);XposedBridge.log("收款信息(json):"+msg);JSONObject mmreader = msg.getJSONObject("msg").getJSONObject("appmsg").getJSONObject("mmreader");//获取时间long time = mmreader.getJSONObject("template_header").getLong("pub_time");Date currentTime = new Date(time);SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");String dateString = formatter.format(currentTime);//获取收款明细JSONObject billDetail = mmreader.getJSONObject("template_detail").getJSONObject("line_content");//获取收款标题、金额等JSONObject topLine = billDetail.getJSONObject("topline");//收款标题String topLineKey = topLine.getJSONObject("key").getString("word");//收款金额String topLineValue = topLine.getJSONObject("value").getString("word");float money = Float.parseFloat(topLineValue.replace("¥", ""));//获取汇总、备注等信息JSONArray line = billDetail.getJSONObject("lines").getJSONArray("line");//获取汇总JSONObject line0Detail = line.getJSONObject(0);String line0Title = line0Detail.getJSONObject("key").getString("word");String line0Msg = line0Detail.getJSONObject("value").getString("word");//获取备注JSONObject line1Detail = line.getJSONObject(1);String line1Title = line1Detail.getJSONObject("key").getString("word");String line1Msg = line1Detail.getJSONObject("value").getString("word");XposedBridge.log("\n\n\n获取到时间:" + dateString  );XposedBridge.log(topLineKey + money);XposedBridge.log(line0Title + " " + line0Msg);XposedBridge.log(line1Title + " " + line1Msg);XposedBridge.log("开始通知客户端");XposedBridge.log("--------------------");String data = "<time>" + dateString + "</time>" +"<topline>" + "<key>" + topLineKey + "</key>" + "<value>" + money + "</value>" + "</topline>" +"<line>" + "<key>" + line0Title + "</key>" + "<value>" + line0Msg + "</value>" + "</line>" +"<line>" + "<key>" + line1Title + "</key>" + "<value>" + line1Msg + "</value>" + "</line>";//把信息广播出去Intent intent = new Intent("com.example.a32960.moudletest");intent.putExtra("xmlData", data);wxContext.sendBroadcast(intent);}} catch (Exception e) {XposedBridge.log("获取信息出错: "+ e.getMessage());}}});}
}

信息获取到了通知后台什么的就不用多说了

Xposed hook微信二维码收款信息相关推荐

  1. 如何解决微信二维码收款总被限封?

    二维彩虹二维码生成器有个多连接二维码功能,可以把实现多个收款二维码共同用一个二维码展示,可以在后台设置扫码次数,一个微信收款码扫购N次,自动换成另外一个收款码,然后以此类推,还可以循环回第一个收款码. ...

  2. 可实现一种个人微信二维码收款接口的方法

    当然只有企业资质才能申请微信支付接口,作为一名程序员要想实现自动收款除了想办法搞到企业资质申请官方的微信支付接口外还可以想办法通过个人收款码来实现. 个人二维码收款码里面除了可以设计金额外还可以设置收 ...

  3. 一种实现个人微信二维码收款接口的方法

    只有企业资质才能申请微信支付接口,作为一名程序员要想实现自动收款除了想办法搞到企业资质申请官方的微信支付接口外还可以想办法通过个人收款码来实现. 个人二维码收款码里面除了可以设计金额外还可以设置收款方 ...

  4. android微信二维码收款hook,【第一篇】【安卓微信】HOOK微信发消息,当HOOK遇上HOOK。...

    前人栽树,后人吃桃. 准备入坑 安卓 xposed hook 微信(及时通信),好吧,第一步当然是论坛里面搜索啦,像掷骰子.计步器什么的都是小孩子过家家入门级别的,当然是要搞就搞(及时通信).微信 a ...

  5. 【亲测】独家更新CcPay多商户码支付系统,码支付易支付+个人支付宝微信二维码收款app监控+搭建教程

    「BudPay 个人收款」 的原理是通过安装到手机的App监控手机微信.支付宝的二维码扫码支付到账通知并回调开发者应用.消费者在支付的时候是扫描开发者的个人微信.支付宝收款二维码. 支持API调用.手 ...

  6. jsp微信二维码收款_java实现微信支付之扫码支付

    public classPayCommonUtil {public static Logger log = LoggerFactory.getLogger(PayCommonUtil.class);/ ...

  7. 免签接口 个人二维码收款系统/微信支付支付宝支付二维码监听自动发货/个人免签系统/个人免签支付 微信.支付宝 个人支付监控

    开源个人收款码免签系统 服务端和监控端全部开源,自建支付平台,安全更放心,二开更方便 没有中间商赚差价,买家扫多少,商家收多少 一.系统特色 1.1 支持 支付宝个人收款的推送通知 支付宝商家二维码的 ...

  8. Kotlin高仿微信-第35篇-支付-二维码收款(二维码)

      Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫. ...

  9. Flutter高仿微信-第22篇-支付-二维码收款(二维码)

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现代 ...

最新文章

  1. 【神经网络】(19) ConvNeXt 代码复现,网络解析,附Tensorflow完整代码
  2. [转] 理解RESTful架构
  3. CyberDuck:Macos和Linux服务器简洁传大文件
  4. centos6.8 安装mysql_Centos6.8通过yum安装mysql5.7
  5. 【Flask项目】项目准备之-创建gitee账户、远程仓库以及pycharm中创建项目
  6. lambda显式声明返回值
  7. 问题:HikariPool-1 - Shutdown initiated...的解决
  8. python tuple类型和list_Python 入门(四)List和Tuple类型
  9. Git GUI基本操作
  10. php使用循环语句输出二位数组,PHP中遍历二维数组—以不同形式的输出操作
  11. Windows下制作苹果电脑U盘启动
  12. 2019年9月全国计算机二级准考证打印,2019年9月计算机二级准考证打印入口公布...
  13. RAID磁盘冗余技术
  14. 长期在计算机房内会有多大辐射,机房辐射范围和预防辐射?计算机房里面适用的屏蔽隔离防辐射材料是什么?...
  15. Android 文件管理器的列表界面
  16. GPIB编程控件指令
  17. javascript 数据类型与类型转换
  18. 压敏电阻的原理和使用介绍
  19. matlab求解杜分方程,[转载]时间序列分析matlab简单函数
  20. window10离线安装net3.5的三种方法

热门文章

  1. ArcGIS符号库制作流程
  2. mongodb移除分片删除分片上数据库和添加分片
  3. 【洛谷】P1145-约瑟夫
  4. 现代图形学入门-18课 高级光线传播
  5. Packet Tracer 配置PAP双向认证
  6. 教你ios10怎么降级到ios9.3.2
  7. uni-app上传图片(选择,预览,删除图片)
  8. 零成本创业项目:豆瓣小组吸粉投放广告自动赚钱
  9. 怎么看燃气表中还剩多少气_怎么看燃气表中还剩多少气
  10. 时间段重叠问题,如何用SQL求解?