package Ġcom . xx l . double pay Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . os . Message Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . widget . Toast Ċ import Ġcom . alipay . sdk . app . Pay Task Ċ import Ġcom . tencent . mm . opens dk . model pay . Pay Req Ċ import Ġcom . tencent . mm . opens dk . openapi . I WX API Ċ import Ġcom . tencent . mm . opens dk . openapi . WX API Factory Ċ import Ġcom . xx . any pay . Wx App ID Provider Ċ import Ġcom . xx . any pay . Xx Any Pay Result CallBack Ċ import Ġcom . xx l . double pay . entity . Ali Pay Result Entity Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject ĊĊ Ċ /** Ċ Ġ* ĠX x Any Pay Ċ Ġ* Ġ( ãĢĤ ãĥ» âĪ Ģ ãĥ» ) ãĥİ Ċ Ġ* ĠDescribe ï¼ļ æĶ¯ä»ĺ éĽĨ æĪĲ SDK { æĶ¯ä»ĺ åĮħ ï¼Į å¾®ä¿¡ } Ċ Ġ* ĠCreated Ġby Ġ éĽ · å°ı æĺŁ ðŁ į Ģ Ġon Ġ 2 0 1 7 / 7 / 1 8 Ġ 9 : 4 4 . Ċ Ġ*/ Ċ Ċ class ĠX x Double Pay Ġprivate Ġconstructor () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcall Back : ĠX x Any Pay Result CallBack ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmsg Api : ĠI WX API ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® æĶ¯ä»ĺ ä¿¡æģ¯ æıĲä¾Ľ èĢħ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġwx App ID Provider : ĠW x App ID Provider ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( wx App ID Provider ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wx App ID Provider Ġ== Ġnull Ġ|| ĠText Utils . isEmpty ( wx App ID Provider . we Chat App ID )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ?. on Pay F ia le (" å¾®ä¿¡ ä¿¡æģ¯ æıĲä¾Ľ èĢħ æľª è®¾ç½® æĪĸ è®¾ç½® åĨħå®¹ ä¸ºç©º ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġwx App ID Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Api Ġ= ĠW X API Factory . create WX API ( context , Ġwx App ID Provider . we Chat App ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Api !!. register App ( wx App ID Provider . we Chat App ID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ å®īè£ħ å¹¶ä¸Ķ æĶ¯æĮģ å¾®ä¿¡ API ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġæĺ¯åĲ¦ æĶ¯æĮģ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġis WX App Installed And Supported : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmsg Api !!. is WX App Installed ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ£Ģ æŁ¥ æĶ¯ä»ĺ å®Ŀ æĺ¯åĲ¦ å®īè£ħ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress Lint (" Query Permissions Needed ") ĊĠĠĠ Ġprivate Ġfun Ġcheck Ali Pay Installed (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= ĠUri . parse (" al ip ays :// platform api / start App ") ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW , Ġuri ) ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Name Ġ= Ġintent . resolve Activity ( context !!. package Manager ) ĊĠĠĠĠĠĠĠ Ġreturn Ġcomponent Name Ġ!= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ æĶ¯ä»ĺ ç»ĵæŀľ åĽŀè°ĥ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ æĶ¯ä»ĺ ç»ĵæŀľ åĽŀè°ĥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget CallBack (): ĠX x Any Pay Result CallBack Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( call Back Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back Ġas ĠX x Any Pay Result CallBack ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠX x Any Pay Result CallBack Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Pay Success () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" æĶ¯ä»ĺ æĪĲåĬŁ ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Pay F ia le ( error : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġerror , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æŃ¥éª¤ ä¸Ģ ĊĠĠĠĠ Ġ* Ġ æŃ¥éª¤ äºĮ [ . set Wx App ID Provider ] ĊĠĠĠĠ Ġ* ĠåĪĿå§ĭåĮĸ SDK ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext Ġ åĨħå®¹ æıĲä¾Ľ èĢħ ï¼Į å»ºè®® æĶ¾åľ¨ åºĶçĶ¨ åħ¥ åı£ å¤Ħ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinit ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġis ĠApplication ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . register Activity Lifecycle Callbacks ( getActivity Lifecycle Callback ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( context . application Context Ġas ĠApplication ). register Activity Lifecycle Callbacks ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetActivity Lifecycle Callback () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm Activity Lifecycle Callbacks : ĠApplication . Activity Lifecycle Callbacks ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Activity List : ĠArrayList < Activity >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġfun ĠgetActivity Lifecycle Callback (): ĠApplication . Activity Lifecycle Callbacks Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Activity Lifecycle Callbacks Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity Lifecycle Callbacks Ġ= Ġobject Ġ: ĠApplication . Activity Lifecycle Callbacks Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Created ( activity : ĠActivity , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Started ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Res umed ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Activity æ¿Ģ æ´» æĹ¶ æī§è¡Į ä¸Ģä¸ĭ æĵįä½ľ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ å·²ç»ı åŃĺåľ¨ è¯¥ Activity , ç§»éĻ¤ å®ĥ ï¼Į å¹¶ å°Ĩ å®ĥ éĩįæĸ° æ·»åĬł åĪ° é¡¶ éĥ¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Activity List !!. contains ( activity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity List ?. remove ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity List ?. add ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Paused ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Stopped ( activity : ĠActivity ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Save InstanceState ( activity : ĠActivity , Ġout State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Destroyed ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Activity éĶĢ æ¯ ģ æĹ¶ ç§»éĻ¤ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Activity List !!. contains ( activity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity List ?. remove ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġm Activity Lifecycle Callbacks !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ æľĢ é¡¶ ä¸Ĭ æ¿Ģ æ´» çĬ¶æĢģ çļĦ Activity ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Top Activity (): ĠActivity Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Activity List ! ![ 0 ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĶ¯ä»ĺ å®Ŀ æĶ¯ä»ĺ ĊĠĠĠĠ Ġ* Ġä½¿çĶ¨ æĶ¯ä»ĺ å®Ŀ æĶ¯ä»ĺ åīį , éľĢ ä½¿çĶ¨ Activity å¯¹ SDK åĪĿå§ĭåĮĸ ä¸Ģæ¬¡ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġali Pay Info ĠåıĤæķ° ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġopen Ali Pay ( ali Pay Info : ĠString , Ġcall Back : ĠX x Any Pay Result CallBack ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . call Back Ġ= Ġcall Back ĊĠĠĠĠĠĠĠ Ġif Ġ( check Ali Pay Installed ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ali Pay ( ali Pay Info ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ²¡æľī å®īè£ħ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ?. on Pay F ia le (" è¯· åħĪ å®īè£ħ æĶ¯ä»ĺ å®Ŀ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĲ¯åĬ¨ æĶ¯ä»ĺ å®Ŀ æĶ¯ä»ĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġstart Ali Pay ( ali Pay Info : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpay Runnable Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġal ipay Ġ= ĠPay Task ( get Top Activity ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġal ipay . pay V 2 ( ali Pay Info , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= ĠMessage () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmsg . what Ġ= ĠX XP AY _ ALI ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmsg . obj Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Handler . sendMessage ( msg ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ å¿ħé¡» å¼ĤæŃ¥ è°ĥçĶ¨ ĊĠĠĠĠĠĠĠ Ġval Ġpay Thread Ġ= ĠThread ( pay Runnable ) ĊĠĠĠĠĠĠĠ Ġpay Thread . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æīĵå¼Ģ æĮĩå®ļ ç±»åŀĭ æĶ¯ä»ĺ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġxx Pay Type ĠSDK æĶ¯ä»ĺ ç±»åŀĭ {@ value ĠX XP AY _ ALI }{ @ value ĠX XP AY _ WX } ĊĠĠĠĠ Ġ* Ġ@ param Ġpay Info ĠĠ Ġ æĶ¯ä»ĺ ä¿¡æģ¯ , å¾®ä¿¡ æĶ¯ä»ĺ æĹ¶ éľĢè¦ģ ä½¿çĶ¨ G SON åºıåĪĹåĮĸ åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* Ġ@ param Ġcall Back Ġ Ġ æĶ¯ä»ĺ ç»ĵæŀľ åĽŀè°ĥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġopen Pay ( xx Pay Type : ĠInt , Ġpay Info : ĠString , Ġcall Back : ĠX x Any Pay Result CallBack ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( xx Pay Type Ġ== ĠX XP AY _ ALI ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Ali Pay ( pay Info , Ġcall Back ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( xx Pay Type Ġ== ĠX XP AY _ WX ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Wx Pay ( pay Info , Ġcall Back ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġ@ Suppress Lint (" Handler Leak ") ĊĠĠĠ Ġprivate Ġval Ġm Handler : ĠHandler Ġ= Ġobject Ġ: ĠHandler ( Looper . get Main Looper ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Message ( msg : ĠMessage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( msg . what ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX XP AY _ ALI Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Status Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAli Pay Result Entity ( msg . obj Ġas ĠMap < String , ĠString >? ). result Status ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¯¥ ç¬Ķ è®¢åįķ æĺ¯åĲ¦ çľŁ å®ŀ æĶ¯ä»ĺ æĪĲåĬŁ ï¼Į éľĢè¦ģ ä¾Ŀèµĸ æľįåĬ¡ ç«¯ çļĦ å¼ĤæŃ¥ éĢļçŁ¥ ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ result Status Ġä¸º 9 0 0 0 åĪĻ ä»£è¡¨ æĶ¯ä»ĺ æĪĲåĬŁ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . equals ( result Status , Ġ" 9 0 0 0 ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( call Back Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back !!. on Pay Success () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( call Back Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back !!. on Pay F ia le (" æĶ¯ä»ĺ å¤±è´¥ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¾®ä¿¡ åŃĹç¬¦ä¸² è§£æŀĲ ä¸º Pay Req å®ŀä½ĵ ĊĠĠĠĠ Ġ* Ġ éĢĤ éħį ä¸¤ç§į è§£æŀĲ æĸ¹å¼ı ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġwx Json Str Ġ å°ģè£ħ åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġjson Str To Pay Req ( wx Json Str : ĠString ): ĠPay Req Ġ{ ĊĠĠĠĠĠĠĠ Ġ// è§£æŀĲ Java åĲİåı° è¿ĶåĽŀ æķ°æį® ĊĠĠĠĠĠĠĠ Ġval Ġwx Json Obj Ġ= ĠJSONObject ( wx Json Str ) ĊĠĠĠĠĠĠĠ Ġvar ĠappId Ġ= Ġwx Json Obj . opt String (" appId ") ĊĠĠĠĠĠĠĠ Ġvar Ġpartner Id Ġ= Ġwx Json Obj . opt String (" partner Id ") ĊĠĠĠĠĠĠĠ Ġvar Ġpre pay Id Ġ= Ġwx Json Obj . opt String (" pre pay Id ") ĊĠĠĠĠĠĠĠ Ġvar Ġnonce Str Ġ= Ġwx Json Obj . opt String (" nonce Str ") ĊĠĠĠĠĠĠĠ Ġvar Ġtime Stamp Ġ= Ġwx Json Obj . opt String (" time Stamp ") ĊĠĠĠĠĠĠĠ Ġvar Ġpackage Value Ġ= Ġwx Json Obj . opt String (" package Value ", Ġ" Sign = WX Pay ") ĊĠĠĠĠĠĠĠ Ġvar Ġsign Ġ= Ġwx Json Obj . opt String (" sign ") ĊĊĠĠĠĠĠĠĠ Ġ// é© ¼ å³ ° åŃĹæ®µ è§£æŀĲ ä¸ºç©º æĹ¶ , å°Ŀè¯ķ ä½¿çĶ¨ - è¿ŀæİ¥ ç¬¦ åŃĹæ®µ è¿Ľè¡Į è§£æŀĲ ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( appId )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è§£æŀĲ Php åĲİåı° è¿ĶåĽŀ æķ°æį® , åŃĹæ®µ ä»¥ _ è¿ŀæİ¥ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠappId Ġ= Ġwx Json Obj . opt String (" appid ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpartner Id Ġ= Ġwx Json Obj . opt String (" m ch _ id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpre pay Id Ġ= Ġwx Json Obj . opt String (" pre pay _ id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnonce Str Ġ= Ġwx Json Obj . opt String (" nonce _ str ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Stamp Ġ= Ġwx Json Obj . opt String (" time ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Value Ġ= Ġwx Json Obj . opt String (" package ", Ġ" Sign = WX Pay ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsign Ġ= Ġwx Json Obj . opt String (" sign ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ ä»¥ä¸Ĭ åĨħå®¹ è§£æŀĲ è¿ĺ ä¸ºç©º , äº¤ ç»Ļ Pay Req åĨħéĥ¨ æ£ĢæŁ¥ åİ» åĪ¤æĸŃ äºĨ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// åĪĽå»º Pay Req å®ŀä½ĵ å¯¹è±¡ å¹¶ èµĭåĢ¼ ĊĠĠĠĠĠĠĠ Ġval Ġpay Req Ġ= ĠPay Req () ĊĠĠĠĠĠĠĠ Ġpay Req . appId Ġ= ĠappId ĊĠĠĠĠĠĠĠ Ġpay Req . partner Id Ġ= Ġpartner Id ĊĠĠĠĠĠĠĠ Ġpay Req . pre pay Id Ġ= Ġpre pay Id ĊĠĠĠĠĠĠĠ Ġpay Req . nonce Str Ġ= Ġnonce Str ĊĠĠĠĠĠĠĠ Ġpay Req . time Stamp Ġ= Ġtime Stamp ĊĠĠĠĠĠĠĠ Ġpay Req . package Value Ġ= Ġpackage Value ĊĠĠĠĠĠĠĠ Ġpay Req . sign Ġ= Ġsign ĊĠĠĠĠĠĠĠ Ġreturn Ġpay Req ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¼Ģå§ĭ å¾®ä¿¡ æĶ¯ä»ĺ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġwx Pay Info Ġ å¾®ä¿¡ æĶ¯ä»ĺ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġopen Wx Pay ( wx Pay Info : ĠString , Ġcall Back : ĠX x Any Pay Result CallBack ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . call Back Ġ= Ġcall Back ĊĠĠĠĠĠĠĠ Ġ// æ£ĢæŁ¥ æīĭæľº ä¸Ĭ æĺ¯åĲ¦ å®īè£ħ äºĨ å¾®ä¿¡ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is WX App Installed And Supported ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ?. on Pay F ia le (" è¯· åħĪ å®īè£ħ å¾®ä¿¡ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrequest : ĠPay Req ? ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= Ġjson Str To Pay Req ( wx Pay Info ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ?. on Pay F ia le (" json æł¼å¼ı éĶĻè¯¯ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( msg Api Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ?. on Pay F ia le (" è¯· åħĪ è®¾ç½® å¾®ä¿¡ ä¿¡æģ¯ æıĲä¾Ľ èĢħ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// åīį ç½® æŃ¥éª¤ æŃ£å¸¸ , è°ĥ èµ· å¾®ä¿¡ æĶ¯ä»ĺ ĊĠĠĠĠĠĠĠ Ġmsg Api ?. send Req ( request ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠX XP AY _ ALI Ġ= Ġ 0 x 0 0 0 0 0 0 0 0 // æĶ¯ä»ĺ å®Ŀ æĶ¯ä»ĺ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠX XP AY _ WX Ġ= Ġ 0 x 0 0 0 0 0 0 0 1 // å¾®ä¿¡ æĶ¯ä»ĺ ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Static Field Leak ") ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġpay SDK : ĠX x Double Pay ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ åįķ ä¾ĭ èİ·åıĸ SDK å®ŀä¾ĭ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġint ance : ĠX x Double Pay ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pay SDK Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( Xx Double Pay :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pay SDK Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpay SDK Ġ= ĠX x Double Pay () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpay SDK !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ