package Ġcom . em er chan tp ay . gateway . genesis android . api . internal Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġcom . em er chan tp ay . gateway . genesis android . api . constants . Endpoints Ċ import Ġcom . em er chan tp ay . gateway . genesis android . api . constants . Shared Pref Constants Ċ import Ġcom . em er chan tp ay . gateway . genesis android . api . internal . request . Payment Request Ċ import Ġcom . em er chan tp ay . gateway . genesis android . api . internal . request . Re concile Request Ċ import Ġcom . em er chan tp ay . gateway . genesis android . api . internal . request . Retrieve Consumer Request Ċ import Ġcom . em er chan tp ay . gateway . genesis android . api . internal . response . Response Ċ import Ġcom . em er chan tp ay . gateway . genesis android . api . network . Http AsyncTask Ċ import Ġcom . em er chan tp ay . gateway . genesis android . api . util .* Ċ import Ġjava . util . concurrent . ExecutionException Ċ Ċ open Ġclass ĠGen esis Client Ġ: ĠRequest Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġconfiguration : ĠConfiguration ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġgenesis Request : ĠRequest ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext ?, Ġconfiguration : ĠConfiguration ?, Ġrequest : ĠRequest ?) Ġ: Ġsuper () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġthis . configuration Ġ= Ġconfiguration ĊĠĠĠĠĠĠĠ Ġthis . genesis Request Ġ= Ġrequest ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠExecute ĊĠĠĠ Ġprivate Ġvar Ġhttp : ĠHttp AsyncTask ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġresponse : ĠNode Wrapper ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġval Ġtransaction : ĠTransaction Gateway ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġresponse ?. let Ġ{ ĠTransaction Gateway ( configuration , Ġit ) Ġ} ĊĊĠĠĠ Ġfun Ġdebug Mode ( enabled : ĠBoolean ?): ĠGen esis Client Ġ{ ĊĠĠĠĠĠĠĠ Ġconfiguration ?. set Debug Mode ( enabled ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġchange Request ( request : ĠRequest ?): ĠGen esis Client Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . genesis Request Ġ= Ġrequest ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexecute (): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( genesis Request !!. getTransaction Type ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" wp f _ payment " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. language Ġ!= Ġnull Ġ-> Ġconfiguration ?. action Ġ= Ġconfiguration ?. language . toString () Ġ+ Ġ"/ wp f " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġconfiguration ?. action Ġ= Ġ" wp f " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" wp f _ re concile " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ" wp f / re concile " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" re concile " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ" re concile " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" re concile _ by _ date " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ" re concile / by _ date " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" blacklist " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ" black lists " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" charge back " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ" charge back s " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" charge back _ by _ date " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ" charge back s / by _ date " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" reports _ f raud " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ" f raud _ reports " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" reports _ f raud _ by _ date " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ" f raud _ reports / by _ date " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" retrie val _ requests " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ" retrie val _ requests " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" retrie val _ requests _ by _ date " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ" retrie val _ requests / by _ date " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" retrieve _ consumer _ request " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ" process " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġhttp Ġ= ĠHttp AsyncTask ( configuration ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpayment Request : ĠPayment Request ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġwhen Ġ( genesis Request ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRe concile Request Ġ-> Ġhttp ?. execute ( configuration ?. baseUrl , Ġgenesis Request Ġas ? ĠRe concile Request )?. get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Request Ġ= Ġgenesis Request Ġas ? ĠPayment Request ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhttp ?. execute ( configuration ?. baseUrl , Ġpayment Request )?. get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRetrieve Ġand Ġstore Ġconsumer Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshared Prefs Ġ= ĠGen esis SharedPreferences () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġthis . transaction ?. request ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġconsumer Id Ġ= Ġresult ?. transaction ?. consumer Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse ( this ). is Success !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġconsumer Id . isNull OrEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ! payment Request ?. get Customer Email (). isNull OrEmpty () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconsumer Id Ġ= Ġretrieve Consumer Id From Genesis Gateway ( payment Request ?. get Customer Email ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! consumer Id . isNull OrEmpty () Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshared Prefs . putString ( context , ĠShared Pref Constants . CON SUM ER _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKey Store Util ( context ). encrypt Data ( consumer Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshared Prefs ?. getString ( context , ĠShared Pref Constants . CON SUM ER _ ID ). isNull OrEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġresponse ?. is Success Ġ== Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġconsumer Id Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġconsumer Id . isNotEmpty () Ġ-> Ġshared Prefs . putString ( context , ĠShared Pref Constants . CON SUM ER _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKey Store Util ( context ). encrypt Data ( result ?. transaction ?. consumer Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Inter rupted ĠException ", Ġe . toString ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠExecution Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Execution ĠException ", Ġe . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġretrieve Consumer Id From Genesis Gateway ( email : ĠString ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġhttp Ġ= ĠHttp AsyncTask ( configuration ) ĊĊĠĠĠĠĠĠĠ Ġval Ġretrieve Consumer Request Ġ= ĠRetrieve Consumer Request ( context , Ġemail ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( configuration ?. endpoint ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEnd points . EM ER CHAN TP AY Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. endpoint Ġ= ĠEnd points . RE TR IE VE _ CON SUM ER _ EM ER CHAN TP AY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEnd points . E COMP ROC ESS ING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration ?. endpoint Ġ= ĠEnd points . RE TR IE VE _ CON SUM ER _ E COMP ROC ESS ING ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġconfiguration ?. wp f Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġconfiguration ?. token Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġconfiguration ?. action Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġresponse Ġ= Ġhttp !!. execute ( configuration ?. baseUrl , Ġretrieve Consumer Request ). get () ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġthis . transaction ?. request ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ?. transaction ?. consumer Id ĊĠĠĠ Ġ} Ċ } Ċ