/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠThe ĠOpen Flutter ĠOrganization Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . jar van . flu wx . handlers Ċ Ċ import Ġcom . tencent . mm . opens dk . diff dev . Diff Dev OAuth Factory Ċ import Ġcom . tencent . mm . opens dk . diff dev . OAuth Err Code Ċ import Ġcom . tencent . mm . opens dk . diff dev . OAuth Listener Ċ import Ġcom . tencent . mm . opens dk . model msg . Send Auth Ċ import Ġio . flutter . plugin . common . MethodCall Ċ import Ġio . flutter . plugin . common . Method Channel Ċ Ċ internal Ġclass ĠFl u wx Auth Handler ( private Ġval Ġmethod Channel : ĠMethod Channel ) Ġ{ ĊĠĠĠ Ġ// ĠĠĠ Ġprivate ĠDiff Dev OAuth Factory . get Diff Dev OAuth () ĊĠĠĠ Ġprivate Ġval Ġqr Code Auth Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠDiff Dev OAuth Factory . get Diff Dev OAuth () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġqr Code Auth Listener Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠOAuth Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Auth Finish ( p 0 : ĠOAuth Err Code , Ġauth Code : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Channel . invoke Method (" on Auth By QR Code Finished ", Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" err Code " Ġto Ġp 0 . code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" auth Code " Ġto Ġauth Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Auth Got Qr code ( p 0 : ĠString ?, Ġp 1 : ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Channel . invoke Method (" on Auth Got QR Code ", Ġmap Of (" err Code " Ġto Ġ 0 , Ġ" qr Code " Ġto Ġp 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Qr code Sc anned () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Channel . invoke Method (" on QR Code Sc anned ", Ġmap Of (" err Code " Ġto Ġ 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġsend Auth ( call : ĠMethod Call , Ġresult : ĠMethod Channel . Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreq Ġ= ĠSend Auth . Req () ĊĠĠĠĠĠĠĠ Ġreq . scope Ġ= Ġcall . argument (" scope ") ĊĠĠĠĠĠĠĠ Ġreq . state Ġ= Ġcall . argument (" state ") ĊĠĠĠĠĠĠĠ Ġval Ġopen Id Ġ= Ġcall . argument < String ?> (" open Id ") ĊĠĠĠĠĠĠĠ Ġif Ġ(! open Id . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreq . open Id Ġ= Ġcall . argument (" open Id ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġresult . success ( WX AP i Handler . wx Api ?. send Req ( req )) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġauth By QR Code ( call : ĠMethod Call , Ġresult : ĠMethod Channel . Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠappId Ġ= Ġcall . argument (" appId ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġscope Ġ= Ġcall . argument (" scope ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġnonce Str Ġ= Ġcall . argument (" nonce Str ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġtime Stamp Ġ= Ġcall . argument (" time Stamp ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġsignature Ġ= Ġcall . argument (" signature ") Ġ?: Ġ"" Ċ // ĠĠĠĠĠĠĠ Ġval Ġscheme Data Ġ= Ġcall . argument (" scheme Data ") ?: "" ĊĊĠĠĠĠĠĠĠ Ġresult . success ( qr Code Auth . auth ( appId , Ġscope , Ġnonce Str , Ġtime Stamp , Ġsignature , Ġqr Code Auth Listener )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop Auth By QR Code ( result : ĠMethod Channel . Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . success ( qr Code Auth . stop Auth ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove All Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġqr Code Auth . removeAll Listeners () ĊĠĠĠ Ġ} Ċ }