源码介绍:

个人免签支付是指使用自己的微信支付宝账号作为个人网站的收款账号,网站订单支付成功后,网站能实时收到成功回调信息。
        系统基于xposed逆向微信、支付宝、云闪付来实现个人收款免签支付。(tag:个人收款,免签支付,微信免签,支付宝免签,云闪付免签)

源码地址:https://github.com/wxs2/xposed-pay

测试地址(点我跳转)

目前支持如下免签支付:

  • 微信二维码 、支付宝二维码、支付宝红包、支付宝主动收款、支付宝银行卡、云闪付

系统介绍:

  • 使用个人支付宝或微信账号收款,无须公司资质接入支付宝微信平台
  • 基于xposed逆向支付宝微信App实现自动生成指定金额二维码,支付成功后自动回调
  • 系统包含PHP后台和Android监听客户端
  • 支持多账号,多客户端运行
  • 自动H5唤醒:支付宝红包、支付宝主动收款均支持自动唤醒原生支付宝支付,无须手动扫码。该功能请使用手机浏览器测试,生码后点击 <打开支付宝>即可

运行效果:

核心代码:

hook微信二维码生成函数

private void hookQRCreat(final ClassLoader appClassLoader, final Context context) {
Class<?> clazz = XposedHelpers.findClass("com.tencent.mm.plugin.collect.b.s", appClassLoader);
XposedBridge.hookAllMethods(clazz, "a", new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param)
throws Throwable {
} @Override
protected void afterHookedMethod(MethodHookParam param) {
try {
LogUtils.log("hookQRCreat start:");
QrBean qrBean = new QrBean();
qrBean.setChannel(QrBean.WECHAT); Field moneyField = XposedHelpers.findField(param.thisObject.getClass(), "kcp");
Double money = (Double) moneyField.get(param.thisObject);
LogUtils.log("hookQRCreat money:"+money.toString());
Field markField = XposedHelpers.findField(param.thisObject.getClass(), "desc");
String mark = (String) markField.get(param.thisObject);
LogUtils.log("hookQRCreat mark:"+mark);
Field payurlField = XposedHelpers.findField(param.thisObject.getClass(), "kco");
String payurl = (String) payurlField.get(param.thisObject);
LogUtils.log("hookQRCreat payurl:"+payurl); qrBean.setMark_sell(mark);
qrBean.setUrl(payurl); LogUtils.log( "com.tencent.mm.plugin.collect.b.s qrBean:"+ JSON.toJSONString(qrBean));
Intent broadCastIntent = new Intent();
broadCastIntent.putExtra("data", qrBean.toString());
broadCastIntent.setAction(HookMain.RECEIVE_QR_WECHAT);
// broadCastIntent.setComponent( new ComponentName( "com.sjk.tpay" ,
// "com.sjk.tpay.ReceiverMain") );
context.sendBroadcast(broadCastIntent);
LogUtils.log("hookQRCreat end:"+JSON.toJSONString(param));
}catch (Exception e){
LogUtils.log("hookQRCreat exception:"+Log.getStackTraceString(e));
}
}
});
}

  

hook支付宝二维码生成函数

private void hookQRCreat(final ClassLoader appClassLoader, final Context context) {
XposedHelpers.findAndHookMethod("com.alipay.mobile.payee.ui.PayeeQRSetMoneyActivity", appClassLoader, "a",
XposedHelpers.findClass("com.alipay.transferprod.rpc.result.ConsultSetAmountRes", appClassLoader), new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable { Field moneyField = XposedHelpers.findField(param.thisObject.getClass(), "g");
String money = (String) moneyField.get(param.thisObject); Field markField = XposedHelpers.findField(param.thisObject.getClass(), "c");
Object markObject = markField.get(param.thisObject);
String mark = (String) XposedHelpers.callMethod(markObject, "getUbbStr"); Object consultSetAmountRes = param.args[0];
Field consultField = XposedHelpers.findField(consultSetAmountRes.getClass(), "qrCodeUrl");
String payurl = (String) consultField.get(consultSetAmountRes); Field consultField2 = XposedHelpers.findField(consultSetAmountRes
.getClass(), "printQrCodeUrl");
String payurloffline = (String) consultField2.get(consultSetAmountRes); QrBean qrBean = new QrBean();
qrBean.setChannel(QrBean.ALIPAY);
qrBean.setMark_sell(mark);
qrBean.setUrl(payurl); Intent broadCastIntent = new Intent()
.putExtra("data", qrBean.toString())
.setAction(RECEIVE_QR_ALIPAY);
context.sendBroadcast(broadCastIntent);
}
});
}

  

微信支付宝xposed个人收款免签支付源码的更多相关文章

  1. xposed实现个人收款免签支付

    想必很多程序员都有这样的烦恼,想做个人网站,但如何实现收款功能? 今天我就给大家分享一下我的实现方案:基于xposed逆向框架实现微信免签支付.支付宝免签支付 接下来给大家简单分享一下实现过程,这个过 ...

  2. 微信支付系列(2)——jsapi支付源码解析

    版权声明:转载请注明出处:http://blog.csdn.net/m0sh1 http://www.share345.com 在微信支付 开发者文档页面 下载最新的 PHP SDK http://m ...

  3. android手机安全卫士、Kotlin漫画、支付宝动画、沉浸状态栏等源码

    Android精选源码 轻量级底部导航栏   android手机卫士源码   android实现高仿今日头条源码   一个用Kotlin写的简单漫画App源码   android吐槽项目完整源码   ...

  4. 微信公众平台开发-微信服务器IP接口实例(含源码)

    微信公众平台开发-access_token获取及应用(含源码)作者: 孟祥磊-<微信公众平台开发实例教程> 学习了access_token的获取及应用后,正式的使用access_token ...

  5. WeMall微信商城签到插件Sign的主要源码

    WeMall微信商城源码签到插件Sign,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php namespace Ad ...

  6. 微信小程序demo——入门级(附源码)

    最近小程序又蠢蠢欲动,出了一个公众号绑定小程序功能,目测不错,就看了下微信小程序文档,顺便写了几行代码,后续有空会持续更新维护. 源码:https://github.com/SibreiaDante/ ...

  7. 微信小程序实现左滑删除源码

    左滑删除效果在app的交互方式中十分流行,比如全民应用微信 微信左滑删除 再比如曾引起很大反响的效率app Clear Clear左滑删除 从技术上来说,实现这个效果并不困难,响应一下滑动操作,移动一 ...

  8. 微信商城小程序 带java后台源码

    微信小程序商城(Java版) 技术选型 1 后端使用技术 1.1 spring-web-4.0.2.RELEASE 1.2 mybatis3.2.8 1.3 shiro1.2.3 1.4 servle ...

  9. Redis秒杀实战-微信抢红包-秒杀库存,附案例源码(Jmeter压测)

    导读 前二天我写了一篇,Redis高级项目实战(点我直达),SpringBoot整合Redis附源码(点我直达),今天我们来做一下Redis秒杀系统的设计.当然啦,Redis基础知识还不过关的,先去加 ...

随机推荐

  1. js之数据类型(对象类型——构造器对象——日期)

    Date对象是js语言中内置的数据类型,用于提供日期与时间的相关操作.学习它之前我们先了解一下什么是GMT,什么时UTC等相关的知识. GMT: 格林尼治标准时间(Greenwich Mean Tim ...

  2. java中long类型转换为int类型

    由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参考: 一.强制类型转换 [java] l ...

  3. C语言——指针总结

    在创建指针时,我们首先要做的是先初始化它,没有初始化的指针是很危险的,因为指针可以指向一个地址后直接改变它的值,所以为了避免我们的指针在创建后指向一个危险区域(即可能指向系统文件等),我们会先给它一个 ...

  4. python编程中常见错误

    python编程培训中常见错误最后,我想谈谈使用更多python函数(数据类型.函数.模块.类等)时可能遇到的问题.由于篇幅有限,我们试图将其简化,特别是一些高级概念.有关更多详细信息,请阅读学习py ...

  5. canvas-八卦图和时钟实现

    八卦图: <body> canvas id="></canvas> <script> //获取到画布元素 let myCanvas = docume ...

  6. selenium 12306模拟登陆

    代码应用场景 :基于第三方打码网站模拟登陆12306 验证码识别 基于第三方平台超级鹰识别 超级鹰官网:http://www.chaojiying.com/user/ 超级鹰使用流程: 注册 登陆(用 ...

  7. libusb移植

    下载 https://sourceforge.net/projects/libusb/ 编译 # ./configure --build=i686-linux --host=arm-linux --p ...

  8. 如何使用cgdb(一)——窗口切换

    cgdb是一个轻量级的基于控制台的多窗口gdb调试界面.除了标准的gdb控制台之外,cgdb还提供了一个分屏视图,可以在执行的时候显示具备语法高亮的源代码.键盘控制是仿照vim设计的,所以vim用户使 ...

  9. dict 字典 函数值应用

    函数 说明 D代表字典对象   D.clear() 清空字典 D.pop(key) 移除键,同时返回此键所对应的值 D.copy() 返回字典D的副本,只复制一层(浅拷贝) D.update(D2) ...

  10. 【3】Kafka安装及部署

    一.环境准备 Linux操作系统 Java运行环境(1.6或以上) zookeeper 集群环境,可参照Zookeeper集群部署 . 服务器列表: 配置主机名映射. vi /etc/hosts ## ...