package Ġcom . will . play . pay . wechat . wx pay Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . TextUtils Ċ import Ġcom . tencent . mm . opens dk . constants . Build Ċ import Ġcom . tencent . mm . opens dk . model base . Base Resp Ċ import Ġcom . tencent . mm . opens dk . model msg . Send Auth Ċ 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 . will . play . constant . Wx Info Ċ import Ġcom . will . play . pay . base . IP ay Strategy Ċ import Ġcom . will . play . pay . callback . I Auth Callback Ċ import Ġcom . will . play . pay . callback . IP ay Callback Ċ Ċ class ĠW X Pay Ġprivate Ġconstructor () Ġ: ĠIP ay Strategy < WX Pay Info Impl > Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġpay Info Imp li : ĠW X Pay Info Impl ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġw X Api : ĠI WX API ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġprivate Ġvar Ġinitial iz ated Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġfun Ġinit WX Api ( context : ĠContext , ĠappId : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġw X Api Ġ= ĠW X API Factory . create WX API ( context . application Context , ĠappId ) ĊĠĠĠĠĠĠĠ Ġw X Api ?. register App ( appId ) ĊĠĠĠĠĠĠĠ Ġinitial iz ated Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġauth ( activity : ĠActivity , Ġpay Callback : ĠI Auth Callback ? ){ ĊĠĠĠĠĠĠĠ Ġs Auth Callback Ġ= Ġpay Callback ĊĠĠĠĠĠĠĠ Ġif Ġ(! initial iz ated ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit WX Api ( activity . application Context , ĠW x Info . APP ID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġreq Ġ= ĠSend Auth . Req () ĊĠĠĠĠĠĠĠ Ġreq . scope Ġ= Ġ" sns api _ userinfo " ĊĠĠĠĠĠĠĠ Ġreq . state Ġ= Ġ" dou q up ai _ api " ĊĠĠĠĠĠĠĠ Ġw X Api ?. send Req ( req ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpay ( activity : ĠActivity , Ġpay Info : ĠW X Pay Info Impl , Ġpay Callback : ĠIP ay Callback ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġpay Info Imp li Ġ= Ġpay Info ĊĠĠĠĠĠĠĠ Ġs Pay Callback Ġ= Ġpay Callback ĊĠĠĠĠĠĠĠ Ġif Ġ( pay Info Imp li Ġ== Ġnull Ġ|| ĠText Utils . isEmpty ( pay Info Imp li !!. appid ) Ġ|| ĠText Utils . isEmpty ( pay Info Imp li !!. partner id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ĠText Utils . isEmpty ( pay Info Imp li !!. pre pay Id ) Ġ|| ĠText Utils . isEmpty ( pay Info Imp li !!. package Value ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText Utils . isEmpty ( pay Info Imp li !!. nonce Str ) Ġ|| ĠText Utils . isEmpty ( pay Info Imp li !!. timestamp ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText Utils . isEmpty ( pay Info Imp li !!. sign )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpay Callback ?. failed ( WX Err Code Ex . CODE _ IL LEG AL _ ARG URE , ĠW X Err Code Ex . getMessage By Code ( WX Err Code Ex . CODE _ IL LEG AL _ ARG URE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! initial iz ated ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit WX Api ( activity . application Context , Ġpay Info Imp li !!. appid ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! check ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpay Callback ?. failed ( WX Err Code Ex . CODE _ UN SUPPORT , ĠW X Err Code Ex . getMessage By Code ( WX Err Code Ex . CODE _ UN SUPPORT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġreq Ġ= ĠPay Req () ĊĠĠĠĠĠĠĠ Ġreq . appId Ġ= Ġpay Info Imp li !!. appid ĊĠĠĠĠĠĠĠ Ġreq . partner Id Ġ= Ġpay Info Imp li !!. partner id ĊĠĠĠĠĠĠĠ Ġreq . pre pay Id Ġ= Ġpay Info Imp li !!. pre pay Id ĊĠĠĠĠĠĠĠ Ġreq . package Value Ġ= Ġpay Info Imp li !!. package Value ĊĠĠĠĠĠĠĠ Ġreq . nonce Str Ġ= Ġpay Info Imp li !!. nonce Str ĊĠĠĠĠĠĠĠ Ġreq . time Stamp Ġ= Ġpay Info Imp li !!. timestamp ĊĠĠĠĠĠĠĠ Ġreq . sign Ġ= Ġpay Info Imp li !!. sign ĊĠĠĠĠĠĠĠ Ġw X Api !!. send Req ( req ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĶ¯ä»ĺ åĽŀè°ĥ åĵįåºĶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġon Resp ( errorCode : ĠInt , Ġerror Msg : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( s Pay Callback Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhen Ġ( errorCode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase Resp . Err Code . ERR _ OK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Pay Callback !!. success () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase Resp . Err Code . ERR _ COMM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Pay Callback !!. failed ( errorCode , Ġerror Msg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase Resp . Err Code . ERR _ USER _ CANCEL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Pay Callback !!. cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Pay Callback !!. failed ( errorCode , Ġerror Msg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġs Pay Callback Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĶ¯ä»ĺ åĽŀè°ĥ åĵįåºĶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġon Auth Resp ( errorCode : ĠInt , Ġresp : Send Auth . Resp ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( s Auth Callback Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhen Ġ( errorCode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase Resp . Err Code . ERR _ OK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Auth Callback !!. success ( resp . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase Resp . Err Code . ERR _ AUTH _ DEN IED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Auth Callback !!. failed ( errorCode , Ġ" çĶ¨æĪ· æĭ Ĵ ç»Ŀ æİĪæĿĥ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase Resp . Err Code . ERR _ USER _ CANCEL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Auth Callback !!. cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Auth Callback !!. failed ( errorCode , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġs Pay Callback Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ£Ģ æµĭ æĺ¯åĲ¦ æĶ¯æĮģ å¾®ä¿¡ æĶ¯ä»ĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcheck (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġw X Api !!. is WX App Installed Ġ&& Ġw X Api !!. wx App Support API Ġ>= ĠBuild . PAY _ SUPPORTED _ SDK _ INT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġs Pay Callback : ĠIP ay Callback ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġs Auth Callback : ĠI Auth Callback ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġval Ġinstance : ĠW X Pay Ġ= ĠW X Pay () ĊĊĠĠĠ Ġ} Ċ }