소스 소개 :
개인 비자 무료 지급 계정 채권 개인 웹 사이트로 자신의 마이크로 채널의 Alipay 계정의 사용을 의미, 지불 주문은 사이트의 성공 후, 사이트는 실시간으로 성공 콜백 정보를받을 수 있습니다.
시스템이 xposed 역 마이크로 편지를 기반으로, Alipay의는 클라우드 번개 급여는 개인 컬렉션을 지불 무비자 달성했다. (태그 : 개인 컬렉션, 지불 비자, 비자가없는 마이크로 채널, Alipay의 비자, 구름 번개 지불 비자)
원본 주소 : HTTPS : //github.com/cinser/weixin-alipay-yunshanfu-xposed-pay
비자 면제 프로그램은 현재 다음 결제를 지원합니다 :
- 마이크로 채널 이차원 코드의 2 차원 코드 Alipay의, Alipay의 빨간 봉투, 이니셔티브의 Alipay 지불 Alipay의 은행 카드, 클라우드 번개 지불
시스템 설명 :
- 액세스 자격 마이크로 채널 플랫폼 Alipay의없이 Alipay의 개인 사용 마이크로 채널 매출 채권
- 지정된 금액이 자동적으로 이차원 코드를 생성 한 후 응용 Alipay의 마이크로 채널 자동 콜백 역방향 xposed 기초하여, 결제 성공
- 안드로이드 시스템은 PHP 배경을 포함하고 클라이언트에 대해 듣고
- 여러 계정에 대한 지원, 멀티 클라이언트 작업
운영 결과 :
핵심 코드 :
마이크로 채널 이차원 코드 생성 기능 후크
개인 무효 hookQRCreat (최종 클래스 로더 appClassLoader 최종 컨텍스트 컨텍스트) { 클래스를 clazz = XposedHelpers.findClass ( "com.tencent.mm.plugin.collect.bs"appClassLoader) <?>; XposedBridge.hookAllMethods (clazz에는 "A", 새로운 XC_MethodHook () { @Override가 무효 beforeHookedMethod 보호 (MethodHookParam PARAM) 의 Throwable {던졌습니다 } @Override가 무효 afterHookedMethod 보호 (MethodHookParam PARAM) { 시도 { LogUtils.log ( "hookQRCreat 시작 :") ] ] QrBean qrBean 새로운 QrBean () = qrBean.setChannel (QrBean.WECHAT)는; 필드 moneyField = XposedHelpers.findField (param.thisObject.getClass () "KCP"); 두 번 돈 = (더블) moneyField.get (param.thisObject); LogUtils.log ( "hookQRCreat 돈을 :"+ money.toString ()); 필드 markField = XposedHelpers.findField (param.thisObject.getClass () "DESC"); 문자열 표시 = (문자열) markField.get (param.thisObject); LogUtils.log ( "hookQRCreat 마크 :"+ 마크); 필드 payurlField = XposedHelpers.findField (param.thisObject.getClass () "KCO"); 문자열 payurl = (문자열) payurlField.get (param.thisObject); LogUtils.log ( " qrBean.setMark_sell (막); qrBean.setUrl (payurl); LogUtils.log는 ( "qrBean을 com.tencent.mm.plugin.collect.bs :"+ JSON.toJSONString (qrBean)); 의도가 broadCastIntent = 새) (의도; broadCastIntent.putExtra ( "데이터"qrBean.toString ()); broadCastIntent.setAction (HookMain.RECEIVE_QR_WECHAT); // broadCastIntent.setComponent (새 ComponentName ( "com.sjk.tpay" // "com.sjk.tpay.ReceiverMain")); context.sendBroadcast (broadCastIntent); LogUtils.log ( "hookQRCreat의 말 :"+ JSON.toJSONString (PARAM)); } 캐치 (예외 전자) { LogUtils.log ( "hookQRCreat 예외"Log.getStackTraceString + (E)); } } }); }
Alipay의 2 차원 코드 생성 기능 후크
개인 무효 hookQRCreat (최종 클래스 로더 appClassLoader 최종 컨텍스트 컨텍스트) { XposedHelpers.findAndHookMethod ( "com.alipay.mobile.payee.ui.PayeeQRSetMoneyActivity"appClassLoader, "A", XposedHelpers.findClass ( "com.alipay.transferprod.rpc. result.ConsultSetAmountRes "appClassLoader)는 새로운 XC_MethodHook () { @Override는 무효 afterHookedMethod 보호 (MethodHookParam PARAM)의 Throwable {발생 필드 moneyField = XposedHelpers.findField (param.thisObject.getClass ()"g ") 문자열 돈 = (문자열 ) moneyField.get (param.thisObject) 필드 markField = XposedHelpers.findField (param.thisObject.getClass () "C"); 객체 markObject = markField.get (param.thisObject); 문자열 표시 = (문자열) XposedHelpers.callMethod (markObject, "getUbbStr"); 개체 consultSetAmountRes param.args = [0]; 필드 consultField = XposedHelpers.findField (consultSetAmountRes.getClass () "qrCodeUrl"); 문자열 payurl = (문자열) consultField.get (consultSetAmountRes); 필드 consultField2 = XposedHelpers.findField (consultSetAmountRes .getClass () "printQrCodeUrl"); 문자열 payurloffline = (문자열) consultField2.get (consultSetAmountRes); QrBean qrBean 새로운 QrBean을 () =; qrBean.setChannel (QrBean.ALIPAY); qrBean.setMark_sell (막); qrBean.setUrl (payurl); 의도 broadCastIntent 새로운 텐트 () = .putExtra ( "데이터"qrBean.toString ()) .setAction (RECEIVE_QR_ALIPAY); context.sendBroadcast (broadCastIntent); } }); }