Alipay의 개인 마이크로 채널 지불 비자없이 지불 출처를 xposed

소스 소개 :

        개인 비자 무료 지급 계정 채권 개인 웹 사이트로 자신의 마이크로 채널의 Alipay 계정의 사용을 의미, 지불 주문은 사이트의 성공 후, 사이트는 실시간으로 성공 콜백 정보를받을 수 있습니다.
        시스템이 xposed 역 마이크로 편지를 기반으로, Alipay의는 클라우드 번개 급여는 개인 컬렉션을 지불 무비자 달성했다. (태그 : 개인 컬렉션, 지불 비자, 비자가없는 마이크로 채널, Alipay의 비자, 구름 번개 지불 비자)

원본 주소 : HTTPS : //github.com/cinser/weixin-alipay-yunshanfu-xposed-pay

테스트 주소 (점 I 점프)  

비자 면제 프로그램은 현재 다음 결제를 지원합니다 :

  • 마이크로 채널 이차원 코드의 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); 
                    } 
                }); 
    }

  

추천

출처www.cnblogs.com/cinser/p/11973755.html