package Ġcom . als at par d ak ht Ċ Ċ import Ġcom . als at par d ak ht . als at ip g core . domain . model . Payment Type Ċ import Ġcom . als at par d ak ht . als at ip g desktop . Al sat IP G Ċ import Ġjava . awt . Desktop Ċ import Ġjava . lang . Thread . sleep Ċ import Ġjava . net . URI Ċ Ċ val ĠAPI Ġ= Ġ" ENTER ĠYOUR ĠAPI ĠKEY ĠHERE " Ċ val Ġal sat IP G Ġ= ĠAl sat IP G . getInstance () Ċ val Ġpayment Type Ġ= ĠPayment Type . Most ag him Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġtest Sign () ĊĠĠĠ Ġsleep ( 6 0 0 _ 0 0 0 )// Ġin Ġorder Ġto Ġkeep Ġthe Ġconsole Ġalive ĊĠĠĠ Ġremove Observer s () Ċ } Ċ Ċ fun Ġtest Sign () Ġ{ ĊĠĠĠ Ġal sat IP G . payment Sign Status . observe Fore ver Ġ{ Ġpayment Sign Result Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Sign Result . is Successful Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" successful ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( payment Sign Result ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Desktop . is Desktop Supported () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDesktop . get Desktop (). is Supported ( Desktop . Action . BROW SE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDesktop . get Desktop (). browse ( URI ( payment Sign Result . url !! )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("> > Ġvalidation Ġ<< ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" enter Ġt ref Ġ: Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt ref Ġ= Ġread ln () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" enter Ġi N Ġ: Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi N Ġ= Ġread ln () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" enter Ġi D Ġ: Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi D Ġ= Ġread ln () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" enter ĠPay Id Ġ: Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠPay Id Ġ= Ġread ln () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Validation ( t ref Ġ= Ġt ref , Ġi N Ġ= Ġi N , Ġi D Ġ= Ġi D , ĠPay Id Ġ= ĠPay Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread ln () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Sign Result . isLoading Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" loading ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" error Ġ: Ġ" Ġ+ Ġpayment Sign Result . error ?. message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġwhen Ġ( payment Type ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPayment Type . Most ag him Ġ-> Ġal sat IP G . sign Most ag him ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAmount Ġ= Ġ 1 0 _ 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Ġ= ĠAPI , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInvoice Number Ġ= Ġ" 1 2 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRedirect Address Ġ= Ġ" http :// e ample . com " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠPayment Type . V aset Ġ-> Ġal sat IP G . sign V aset ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAmount Ġ= Ġ 2 0 _ 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Ġ= ĠAPI , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRedirect Address Ġ= Ġ" http :// e ample . com ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT ash im Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInvoice Number Ġ= Ġ" 1 2 3 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġtest Validation ( t ref : ĠString , Ġi N : ĠString , Ġi D : ĠString , ĠPay Id : ĠString ) Ġ{ ĊĠĠĠ Ġal sat IP G . payment Validation Status . observe Fore ver Ġ{ Ġpayment Validation Result Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Validation Result . is Successful Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" successful ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" payment ĠValidation ĠSuccess Ġdata Ġ= Ġ${ payment Validation Result . data }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( payment Validation Result . data ?. P SP ?. Is Success Ġ== Ġtrue ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( payment Validation Result . data ?. VERIFY ?. Is Success Ġ== Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" money Ġtransferred ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" money Ġhas Ġnot Ġbeen Ġtransferred ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Validation Result . isLoading Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" loading ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" error Ġ: Ġ" Ġ+ Ġpayment Validation Result . error ?. message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ // Ġ Ġval Ġdata Ġ= ĠURI (" http :// e ample . com /? t ref = 6 3 7 8 2 9 3 4 7 7 2 7 6 4 5 2 9 5 & i N = 1 2 3 & i D = 2 0 2 2 / 0 3 / 1 5 % 2 0 0 9 : 5 2 : 5 4 ") ĊĠĠĠ Ġwhen Ġ( payment Type ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPayment Type . Most ag him Ġ-> Ġal sat IP G . validation Most ag him ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Ġ= ĠAPI , Ċ // ĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ref Ġ= Ġt ref , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi N Ġ= Ġi N , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi D Ġ= Ġi D , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPay Id Ġ= ĠPay Id ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠPayment Type . V aset Ġ-> Ġal sat IP G . validation V aset ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Ġ= ĠAPI , Ċ // ĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ref Ġ= Ġt ref , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi N Ġ= Ġi N , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi D Ġ= Ġi D , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPay Id Ġ= ĠPay Id ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġremove Observer s () Ġ{ ĊĠĠĠ Ġal sat IP G . payment Sign Status . removeAll Observer s () ĊĠĠĠ Ġal sat IP G . payment Validation Status . removeAll Observer s () Ċ }