雲閃付免簽支付系統是通過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,個人免簽支付,免簽支付源碼,支付免簽接口源碼
跳轉:測試地址
