码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-01-04 12:20:26      阅读:545      评论:0      收藏:0      [点我收藏+]

标签:highlight   lin   android   inf   system   object   码代码   comment   ble   

云闪付免签支付系统是通过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云闪付免签支付系统源码

标签:highlight   lin   android   inf   system   object   码代码   comment   ble   

原文地址:https://www.cnblogs.com/cinser/p/12148274.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!