闲话不多说,之前一直奇怪微信抢红包是怎么玩的,直到了解到**Xposed框架,**没错就是它,一个神奇的东西!
近期有朋友说要搞个小游戏,了解到微信,支付宝个人收款,于是研究了一番,仅此记录一波!
有Xposed框架的支持,理论上是可以实现的,大概流程如下
1:游戏端点击收款,发送到服务器
2:服务器下发收款信息到手机端
3:手机端收到消息通过Xposed调起微信收款吗界面,并生成对应二维码,上传到服务器
4:游戏端展现收款码给用户
5:用户付款后手机端收到消息,通过Xposed拦截后通知服务器,最后订单完成!!!
大概流程就是这样,下面是一些关键源码
/**
* 开始Hook二维码创建窗口,目的是为了创建生成二维码
*
* @param appClassLoader
* @throws Exception
*/
private void hookQRWindows(final ClassLoader appClassLoader) {
Class<?> clazz = XposedHelpers.findClass("com.tencent.mm.plugin.collect.ui.CollectCreateQRCodeUI", appClassLoader);
XposedBridge.hookAllMethods(clazz, "onCreate", new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) {
}
@Override
protected void afterHookedMethod(MethodHookParam param) {
LogUtils.show("Hook到微信窗口");
((Activity) param.thisObject).getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
}
});
XposedHelpers.findAndHookMethod("com.tencent.mm.plugin.collect.ui.CollectCreateQRCodeUI", appClassLoader, "initView",
new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) {
}