xposed云闪付免签支付系统源码

摘要:
云闪付免签支付系统通过暴露的框架Hook云闪付自动生成指定金额的支付二维码。支付完成后,App监控云闪付成功信息,实现自动回拨。支持H5、自动回拨和多客户端多卡轮询。

云闪付免签支付系统是通过xposed框架Hook云闪付,自动生成指定金额的支付二维码,支付完成后App监控云闪付支付成功信息,实现自动回调。

支持H5,支持自动回调,支持多客户端多卡轮询。

xposed云闪付免签支付系统核心源码——生码二维码代码:

    public static void GenQrCode(final String paramString1, final String paramString2, final String bankName, final String bankNo) {
        new Thread(new Runnable() {
            public void run() {
                try {
                    Object localObject1 = paramString2;
                    Object localObject2 = new BigDecimal(paramString1);
                    localObject2 = ((BigDecimal) localObject2).setScale(2, RoundingMode.HALF_UP).toPlainString().replace(".", "");
                    Object localObject3 = new StringBuilder();
                    ((StringBuilder) localObject3).append("https://pay.95516.com/pay-web/restlet/qr/p2pPay/applyQrCode?txnAmt=");
                    ((StringBuilder) localObject3).append(MainHook.Enc((String) localObject2));
                    ((StringBuilder) localObject3).append("&cityCode=");
                    ((StringBuilder) localObject3).append(MainHook.Enc(MainHook.getcityCd()));
                    ((StringBuilder) localObject3).append("&comments=");
                    ((StringBuilder) localObject3).append(MainHook.Enc((String) localObject1));
                    ((StringBuilder) localObject3).append("&virtualCardNo=");
                    CardInfo cardInfo = getEncvirtualCardNo(bankName, bankNo);
                    if (cardInfo == null) {
                        throw new Exception("找不到对应的下单卡");
                    }
                    cardInfo.setAccount(ysfAccount);
                    ((StringBuilder) localObject3).append(Enc(cardInfo.getVirtualCardNo()));
                    localObject1 = ((StringBuilder) localObject3).toString();
                    localObject2 = HttpHelper.getInstance().getOkHttpClient();
                    localObject3 = new okhttp3.Request.Builder();
                    Request.Builder localBuilder = ((Request.Builder) localObject3).url((String) localObject1).header("X-Tingyun-Id", MainHook.getXTid());
                    localObject3 = new StringBuilder();
                    ((StringBuilder) localObject3).append("0;");
                    ((StringBuilder) localObject3).append(System.currentTimeMillis());

                    localObject3 = ((OkHttpClient) localObject2).newCall(localBuilder.header("X-Tingyun-Lib-Type-N-ST", ((StringBuilder) localObject3).toString())
                            .header("sid", MainHook.getSid()).header("urid", MainHook.geturid()).header("cityCd", MainHook.getcityCd())
                            .header("locale", "zh-CN").header("User-Agent", "Android CHSP").header("dfpSessionId", MainHook.getDfpSessionId())
                            .header("gray", MainHook.getgray()).header("key_session_id", "").header("Host", "pay.95516.com").build()).execute().body().string();
                    localObject1 = MainHook.Dec((String) localObject3);
                    localObject2 = new StringBuilder();
                    ((StringBuilder) localObject2).append("GenQrCode RSP=>");
                    ((StringBuilder) localObject2).append((String) localObject1);
                    MainHook.mlog(localObject2.toString());
                    try {
                        localObject2 = new JSONObject((String) localObject1);
                        String certificate = ((JSONObject) localObject2).getJSONObject("params").getString("certificate");
                        QRInfo qrInfo = new QRInfo(certificate, paramString2);
                        qrInfo.setRemark(JSON.toJSONString(cardInfo));
                        String body = JSON.toJSONString(qrInfo);
                        Intent localIntent = new Intent("websocket.sendmsg");
                        localIntent.putExtra("data", "qr:" + body);
                        MainHook.getContext().sendBroadcast(localIntent);
                    } catch (Exception ex) {
                        LogUtils.getInstance().saveLog("二维码广播发送异常:" + ex.getMessage());
                    }
                    return;
                } catch (Exception ex) {
                    LogUtils.getInstance().saveLog("GenQrCode异常:" + ex.getMessage());
                }
            }
        }).start();
    }

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

系统介绍

2019-12-24日更新:最新支持云闪付H5支付,H5唤起云闪付进行支付

2019-12-23日更新:最新支持云闪付静态码支付回调监听,让云闪付24小时都可收款

2019-12-14日更新:解决云闪付7.0强制升级问题

源码标签:个人免签收款支付源码,免签约接口,免签支付接口,云闪付支付接口, 个人收款api,个人免签支付,免签支付源码,支付免签接口源码

跳转:测试地址

免责声明:文章转载自《xposed云闪付免签支付系统源码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Centos 配置mailx使用外部smtp发送邮件thinkphp5.0Traits引入下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android studio搭建xposed环境

一、环境准备 xposed:https://repo.xposed.info/module/de.robv.android.xposed.installer xposed-api:https://forum.xda-developers.com/xposed/xposed-api-changelog-developer-news-t2714067 二、环境...

编译Xposed

Xposed是Android平台上的有名的Hook工具,用它可以修改函数参数,函数返回值和类字段值等等,也可以用它来进行调试。Xposed有几个部分组成: 修改过的android_art,这个项目修改部分art代码,使Hook成为可能 Xposed native部分,该部分主要提供给XposedBridge可调用api和调用修改过的android_art...

StringBuilder类

   ===================================================================================================================== 2.String与StringBuilder原理对比  ============================...

记一次 synchronized 锁字符串引发的坑兼再谈 Java 字符串

业务有一个需求,我把问题描述一下: 通过代理IP访问国外某网站N,每个IP对应一个固定的网站N的COOKIE,COOKIE有失效时间。 并发下,取IP是有一定策略的,取到IP之后拿IP对应的COOKIE,发现COOKIE超过失效时间,则调用脚本访问网站N获取一次数据。 为了防止多线程取到同一个IP,同时发现该IP对应的COOKIE失效,同时去调用脚本更新...

利用反射拿到并递归C#类中的各个字段名字及类型

以下方法实现了遍历一个class中所有的字段, 并且递归遍历sub class。 privateStringBuilder_properties=newStringBuilder(); publicMainView() { TraversalProperties(typeof(StudyInfoModel)); File.WriteAllText(...

MySqlHelper、CacheHelper

MySqlHelper代码: using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Data; using M...