package Ġcom . stripe . android . networking Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . annotation . Visible ForTesting Ċ import Ġcom . stripe . android . ApiVersion Ċ import Ġcom . stripe . android . App Info Ċ import Ġcom . stripe . android . Default F raud Detection Data Repository Ċ import Ġcom . stripe . android . F raud Detection Data Repository Ċ import Ġcom . stripe . android . Stripe Ċ import Ġcom . stripe . android . Stripe Api Beta Ċ import Ġcom . stripe . android . cards . Bin Ċ import Ġcom . stripe . android . core . Logger Ċ import Ġcom . stripe . android . core . exception . API Connection Exception Ċ import Ġcom . stripe . android . core . exception . API Exception Ċ import Ġcom . stripe . android . core . exception . Invalid RequestException Ċ import Ġcom . stripe . android . core . exception . Stripe Exception Ċ import Ġcom . stripe . android . core . injection . IO Context Ċ import Ġcom . stripe . android . core . model . Stripe Model Ċ import Ġcom . stripe . android . core . networking . Analytics Request Ċ import Ġcom . stripe . android . core . networking . Analytics Request Executor Ċ import Ġcom . stripe . android . core . networking . Default Analytics Request Executor Ċ import Ġcom . stripe . android . core . networking . Default Stripe Network Client Ċ import Ġcom . stripe . android . core . networking . HTTP _ TOO _ MAN Y _ REQUEST S Ċ import Ġcom . stripe . android . core . networking . RequestId Ċ import Ġcom . stripe . android . core . networking . Stripe Network Client Ċ import Ġcom . stripe . android . core . networking . Stripe Response Ċ import Ġcom . stripe . android . core . networking . response Json Ċ import Ġcom . stripe . android . exception . Authentication Exception Ċ import Ġcom . stripe . android . exception . Card Exception Ċ import Ġcom . stripe . android . exception . Permission Exception Ċ import Ġcom . stripe . android . exception . RateLimit Exception Ċ import Ġcom . stripe . android . model . Bank Statuses Ċ import Ġcom . stripe . android . model . Card Metadata Ċ import Ġcom . stripe . android . model . Confirm Payment Intent Params Ċ import Ġcom . stripe . android . model . Confirm Setup Intent Params Ċ import Ġcom . stripe . android . model . Confirm Stripe Intent Params Ċ import Ġcom . stripe . android . model . Customer Ċ import Ġcom . stripe . android . model . List Payment Methods Params Ċ import Ġcom . stripe . android . model . Payment Intent Ċ import Ġcom . stripe . android . model . PaymentMethod Ċ import Ġcom . stripe . android . model . PaymentMethod Create Params Ċ import Ġcom . stripe . android . model . Rad ar Session Ċ import Ġcom . stripe . android . model . Setup Intent Ċ import Ġcom . stripe . android . model . Shipping Information Ċ import Ġcom . stripe . android . model . Source Ċ import Ġcom . stripe . android . model . Source Params Ċ import Ġcom . stripe . android . model . Stripe 3 ds 2 Auth Params Ċ import Ġcom . stripe . android . model . Stripe 3 ds 2 Auth Result Ċ import Ġcom . stripe . android . model . Stripe Error Json Parser Ċ import Ġcom . stripe . android . model . Stripe File Ċ import Ġcom . stripe . android . model . Stripe File Params Ċ import Ġcom . stripe . android . model . Stripe Intent Ċ import Ġcom . stripe . android . model . Token Ċ import Ġcom . stripe . android . model . Token Params Ċ import Ġcom . stripe . android . model . parsers . Card Metadata Json Parser Ċ import Ġcom . stripe . android . model . parsers . Customer Json Parser Ċ import Ġcom . stripe . android . model . parsers . F px Bank Statuses Json Parser Ċ import Ġcom . stripe . android . model . parsers . Iss uing Card Pin Json Parser Ċ import Ġcom . stripe . android . model . parsers . Model Json Parser Ċ import Ġcom . stripe . android . model . parsers . Payment Intent Json Parser Ċ import Ġcom . stripe . android . model . parsers . PaymentMethod Json Parser Ċ import Ġcom . stripe . android . model . parsers . PaymentMethod Preference For Payment Intent Json Parser Ċ import Ġcom . stripe . android . model . parsers . PaymentMethod Preference For Setup Intent Json Parser Ċ import Ġcom . stripe . android . model . parsers . PaymentMethod Preference Json Parser Ċ import Ġcom . stripe . android . model . parsers . Payment Methods List Json Parser Ċ import Ġcom . stripe . android . model . parsers . Rad ar Session Json Parser Ċ import Ġcom . stripe . android . model . parsers . Setup Intent Json Parser Ċ import Ġcom . stripe . android . model . parsers . Source Json Parser Ċ import Ġcom . stripe . android . model . parsers . Stripe 3 ds 2 Auth Result Json Parser Ċ import Ġcom . stripe . android . model . parsers . Stripe File Json Parser Ċ import Ġcom . stripe . android . model . parsers . Token Json Parser Ċ import Ġcom . stripe . android . payments . core . injection . PRODUCT _ USAGE Ċ import Ġcom . stripe . android . payments . core . injection . PUBL ISH ABLE _ KEY Ċ import Ġcom . stripe . android . utils . Stripe Url Utils Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ import Ġjava . io . IOException Ċ import Ġjava . net . Http URLConnection Ċ import Ġjava . security . Security Ċ import Ġjava . util . Locale Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Named Ċ import Ġkotlin . coroutines . Coroutine Context Ċ Ċ /** Ċ Ġ* ĠAn Ġimplementation Ġof Ġ[ Stripe Repository ] Ġthat Ġmakes Ġnetwork Ġrequests Ġto Ġthe ĠStripe ĠAPI . Ċ Ġ*/ Ċ internal Ġclass ĠStripe Api Repository Ġ@ Jvm Over loads Ġinternal Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġpublish able Key Provider : Ġ() Ġ-> ĠString , ĊĠĠĠ Ġprivate Ġval Ġapp Info : ĠApp Info ? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġval Ġlogger : ĠLogger Ġ= ĠLogger . noop (), ĊĠĠĠ Ġprivate Ġval Ġwork Context : ĠCor outine Context Ġ= ĠDispatch ers . IO , ĊĠĠĠ Ġprivate Ġval Ġproduct Usage Tokens : ĠSet < String > Ġ= Ġempty Set (), ĊĠĠĠ Ġprivate Ġval Ġstripe Network Client : ĠStripe Network Client Ġ= ĠDefault Stripe Network Client ( ĊĠĠĠĠĠĠĠ Ġwork Context Ġ= Ġwork Context , ĊĠĠĠĠĠĠĠ Ġlogger Ġ= Ġlogger ĊĠĠĠ Ġ), ĊĠĠĠ Ġprivate Ġval Ġanalytics Request Executor : ĠAnalytics Request Executor Ġ= ĊĠĠĠĠĠĠĠ ĠDefault Analytics Request Executor ( logger , Ġwork Context ), ĊĠĠĠ Ġprivate Ġval Ġf raud Detection Data Repository : ĠF raud Detection Data Repository Ġ= ĊĠĠĠĠĠĠĠ ĠDefault F raud Detection Data Repository ( context , Ġwork Context ), ĊĠĠĠ Ġprivate Ġval Ġpayment Analytics Request Factory : ĠPayment Analytics Request Factory Ġ= ĊĠĠĠĠĠĠĠ ĠPayment Analytics Request Factory ( context , Ġpublish able Key Provider , Ġproduct Usage Tokens ), ĊĠĠĠ Ġprivate Ġval Ġf raud Detection Data Params Utils : ĠF raud Detection Data Params Utils Ġ= ĠF raud Detection Data Params Utils (), ĊĠĠĠ Ġbet as : ĠSet < Stripe Api Beta > Ġ= Ġempty Set (), ĊĠĠĠ ĠapiVersion : ĠString Ġ= ĠApi Version ( bet as Ġ= Ġbet as ). code , ĊĠĠĠ Ġsdk Version : ĠString Ġ= ĠStripe . VERSION Ċ ) Ġ: ĠStripe Repository () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġapp Context : ĠContext , ĊĠĠĠĠĠĠĠ Ġ@ Named ( PUBL ISH ABLE _ KEY ) Ġpublish able Key Provider : Ġ() Ġ-> ĠString , ĊĠĠĠĠĠĠĠ Ġ@ IO Context Ġwork Context : ĠCor outine Context , ĊĠĠĠĠĠĠĠ Ġ@ Named ( PRODUCT _ USAGE ) Ġproduct Usage Tokens : ĠSet < String >, ĊĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory : ĠPayment Analytics Request Factory , ĊĠĠĠĠĠĠĠ Ġanalytics Request Executor : ĠAnalytics Request Executor , ĊĠĠĠĠĠĠĠ Ġlogger : ĠLogger ĊĠĠĠ Ġ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġapp Context , ĊĠĠĠĠĠĠĠ Ġpublish able Key Provider Ġ= Ġpublish able Key Provider , ĊĠĠĠĠĠĠĠ Ġlogger Ġ= Ġlogger , ĊĠĠĠĠĠĠĠ Ġwork Context Ġ= Ġwork Context , ĊĠĠĠĠĠĠĠ Ġproduct Usage Tokens Ġ= Ġproduct Usage Tokens , ĊĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory Ġ= Ġpayment Analytics Request Factory , ĊĠĠĠĠĠĠĠ Ġanalytics Request Executor Ġ= Ġanalytics Request Executor ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġapi Request Factory Ġ= ĠApi Request . Factory ( ĊĠĠĠĠĠĠĠ Ġapp Info Ġ= Ġapp Info , ĊĠĠĠĠĠĠĠ ĠapiVersion Ġ= ĠapiVersion , ĊĠĠĠĠĠĠĠ Ġsdk Version Ġ= Ġsdk Version ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġf raud Detection Data : ĠF raud Detection Data ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġf raud Detection Data Repository . get Cached () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġfire F raud Detection Data Request () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġretrieve Stripe Intent ( ĊĠĠĠĠĠĠĠ Ġclient Secret : ĠString , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options , ĊĠĠĠĠĠĠĠ Ġexpand Fields : ĠList < String > ĊĠĠĠ Ġ): ĠStripe Intent Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Intent . Client Secret . is Match ( client Secret ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire NotNull ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretrieve Payment Intent ( client Secret , Ġoptions , Ġexpand Fields ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Could Ġnot Ġretrieve ĠPayment Intent ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSetup Intent . Client Secret . is Match ( client Secret ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire NotNull ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretrieve Setup Intent ( client Secret , Ġoptions , Ġexpand Fields ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Could Ġnot Ġretrieve ĠSetup Intent ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" Invalid Ġclient Ġsecret .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConfirm Ġa Ġ[ Payment Intent ] Ġusing Ġthe Ġprovided Ġ[ Confirm Payment Intent Params ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Payment Intent Confirm ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġconfirm Payment Intent Params Ġcontains Ġthe Ġconfirmation Ġparams ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ Payment Intent ] Ġreflect ing Ġthe Ġupdated Ġstate Ġafter Ġapplying Ġthe Ġparameter ĊĠĠĠĠ Ġ* Ġprovided ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġconfirm Payment Intent ( ĊĠĠĠĠĠĠĠ Ġconfirm Payment Intent Params : ĠConfirm Payment Intent Params , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options , ĊĠĠĠĠĠĠĠ Ġexpand Fields : ĠList < String > ĊĠĠĠ Ġ): ĠPayment Intent ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġf raud Detection Data Params Utils . add F raud Detection Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġpayment _ user _ agent Ġif Ġthe ĠPayment ĠMethod Ġis Ġbeing Ġcreated Ġon Ġthis Ġcall ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaybe Add Payment UserAgent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Payment Intent Params . to Param Map (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Payment Intent Params . payment Method Create Params , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Payment Intent Params . source Params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). plus ( create Expand Param ( expand Fields )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf raud Detection Data ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġapi Url Ġ= Ġget Confirm Payment Intent Url ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Intent . Client Secret ( confirm Payment Intent Params . client Secret ). payment Intent Id ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġfire F raud Detection Data Request () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( api Url , Ġoptions , Ġparams ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Intent Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpayment MethodType Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Payment Intent Params . payment Method Create Params ?. type Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġconfirm Payment Intent Params . source Params ?. type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Payment Intent Confirmation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment MethodType ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRetrieve Ġa Ġ[ Payment Intent ] Ġusing Ġits Ġclient _ secret ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Payment Intent Retrieve ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġclient Secret Ġclient _ secret Ġof Ġthe ĠPayment Intent Ġto Ġretrieve ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġretrieve Payment Intent ( ĊĠĠĠĠĠĠĠ Ġclient Secret : ĠString , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options , ĊĠĠĠĠĠĠĠ Ġexpand Fields : ĠList < String > ĊĠĠĠ Ġ): ĠPayment Intent ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpayment Intent Id Ġ= ĠPayment Intent . Client Secret ( client Secret ). payment Intent Id ĊĊĠĠĠĠĠĠĠ Ġfire F raud Detection Data Request () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Retrieve Payment Intent Url ( payment Intent Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Client Secret Param ( client Secret , Ġexpand Fields ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Intent Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Request ( Payment Analytics Event . Payment Intent Retrieve ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRefresh Ġa Ġ[ Payment Intent ] Ġusing Ġits Ġclient _ secret ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Payment Intent Refresh ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġclient Secret Ġclient _ secret Ġof Ġthe ĠPayment Intent Ġto Ġretrieve ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġrefresh Payment Intent ( ĊĠĠĠĠĠĠĠ Ġclient Secret : ĠString , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options , ĊĠĠĠ Ġ): ĠPayment Intent ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpayment Intent Id Ġ= ĠPayment Intent . Client Secret ( client Secret ). payment Intent Id ĊĊĠĠĠĠĠĠĠ Ġfire F raud Detection Data Request () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Refresh Payment Intent Url ( payment Intent Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Client Secret Param ( client Secret , Ġempty List ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Intent Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Request ( Payment Analytics Event . Payment Intent Refresh ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRetrieve Ġa Ġ[ Payment Intent ] Ġusing Ġits Ġclient _ secret , Ġwith Ġthe Ġaccepted Ġpayment Ġmethod Ġtypes ĊĠĠĠĠ Ġ* Ġordered Ġaccording Ġto Ġthe Ġ[ locale ] Ġprovided . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Payment Intent Retrieve ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġclient Secret Ġclient _ secret Ġof Ġthe ĠPayment Intent Ġto Ġretrieve ĊĠĠĠĠ Ġ* Ġ@ param Ġlocale Ġlocale Ġused Ġto Ġdetermine Ġthe Ġorder Ġof Ġthe Ġpayment Ġmethod Ġtypes ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġretrieve Payment Intent With Ordered Payment Methods ( ĊĠĠĠĠĠĠĠ Ġclient Secret : ĠString , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options , ĊĠĠĠĠĠĠĠ Ġlocale : ĠLocale ĊĠĠĠ Ġ): ĠPayment Intent ? Ġ= Ġretrieve Stripe Intent With Ordered Payment Methods ( ĊĠĠĠĠĠĠĠ Ġclient Secret , ĊĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠ Ġlocale , ĊĠĠĠĠĠĠĠ Ġparser Ġ= ĠPayment Method Preference For Payment Intent Json Parser (), ĊĠĠĠĠĠĠĠ Ġanalytics Event Ġ= ĠPayment Analytics Event . Payment Intent Retrieve ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Payment Intent Cancel Source ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcancel Payment Intent Source ( ĊĠĠĠĠĠĠĠ Ġpayment Intent Id : ĠString , ĊĠĠĠĠĠĠĠ Ġsource Id : ĠString , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options ĊĠĠĠ Ġ): ĠPayment Intent ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfire F raud Detection Data Request () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Cancel Payment Intent Source Url ( payment Intent Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" source " Ġto Ġsource Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Intent Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( Payment Analytics Event . Payment Intent Cancel Source ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConfirm Ġa Ġ[ Setup Intent ] Ġusing Ġthe Ġprovided Ġ[ Confirm Setup Intent Params ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Setup Intent Confirm ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġconfirm Setup Intent Params Ġcontains Ġthe Ġconfirmation Ġparams ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ Setup Intent ] Ġreflect ing Ġthe Ġupdated Ġstate Ġafter Ġapplying Ġthe Ġparameter ĊĠĠĠĠ Ġ* Ġprovided ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġconfirm Setup Intent ( ĊĠĠĠĠĠĠĠ Ġconfirm Setup Intent Params : ĠConfirm Setup Intent Params , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options , ĊĠĠĠĠĠĠĠ Ġexpand Fields : ĠList < String > ĊĠĠĠ Ġ): ĠSetup Intent ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsetup Intent Id Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSetup Intent . Client Secret ( confirm Setup Intent Params . client Secret ). setup Intent Id ĊĊĠĠĠĠĠĠĠ Ġfire F raud Detection Data Request () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Confirm Setup Intent Url ( setup Intent Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf raud Detection Data Params Utils . add F raud Detection Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġpayment _ user _ agent Ġif Ġthe ĠPayment ĠMethod Ġis Ġbeing Ġcreated Ġon Ġthis Ġcall ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaybe Add Payment UserAgent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Setup Intent Params . to Param Map (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Setup Intent Params . payment Method Create Params ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). plus ( create Expand Param ( expand Fields )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf raud Detection Data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSetup Intent Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Setup Intent Confirmation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Setup Intent Params . payment Method Create Params ?. type Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRetrieve Ġa Ġ[ Setup Intent ] Ġusing Ġits Ġclient _ secret ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Setup Intent Retrieve ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġclient Secret Ġclient _ secret Ġof Ġthe ĠSetup Intent Ġto Ġretrieve ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġretrieve Setup Intent ( ĊĠĠĠĠĠĠĠ Ġclient Secret : ĠString , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options , ĊĠĠĠĠĠĠĠ Ġexpand Fields : ĠList < String > ĊĠĠĠ Ġ): ĠSetup Intent ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsetup Intent Id Ġ= ĠSetup Intent . Client Secret ( client Secret ). setup Intent Id ĊĊĠĠĠĠĠĠĠ Ġfire F raud Detection Data Request () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Retrieve Setup Intent Url ( setup Intent Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Client Secret Param ( client Secret , Ġexpand Fields ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSetup Intent Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Request ( Payment Analytics Event . Setup Intent Retrieve ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRetrieve Ġa Ġ[ Setup Intent ] Ġusing Ġits Ġclient _ secret , Ġwith Ġthe Ġaccepted Ġpayment Ġmethod Ġtypes ĊĠĠĠĠ Ġ* Ġordered Ġaccording Ġto Ġthe Ġ[ locale ] Ġprovided . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Setup Intent Retrieve ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġclient Secret Ġclient _ secret Ġof Ġthe ĠSetup Intent Ġto Ġretrieve ĊĠĠĠĠ Ġ* Ġ@ param Ġlocale Ġlocale Ġused Ġto Ġdetermine Ġthe Ġorder Ġof Ġthe Ġpayment Ġmethod Ġtypes ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġretrieve Setup Intent With Ordered Payment Methods ( ĊĠĠĠĠĠĠĠ Ġclient Secret : ĠString , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options , ĊĠĠĠĠĠĠĠ Ġlocale : ĠLocale ĊĠĠĠ Ġ): ĠSetup Intent ? Ġ= Ġretrieve Stripe Intent With Ordered Payment Methods ( ĊĠĠĠĠĠĠĠ Ġclient Secret , ĊĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠ Ġlocale , ĊĠĠĠĠĠĠĠ Ġparser Ġ= ĠPayment Method Preference For Setup Intent Json Parser (), ĊĠĠĠĠĠĠĠ Ġanalytics Event Ġ= ĠPayment Analytics Event . Setup Intent Retrieve ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Setup Intent Cancel Source ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcancel Setup Intent Source ( ĊĠĠĠĠĠĠĠ Ġsetup Intent Id : ĠString , ĊĠĠĠĠĠĠĠ Ġsource Id : ĠString , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options ĊĠĠĠ Ġ): ĠSetup Intent ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Cancel Setup Intent Source Url ( setup Intent Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" source " Ġto Ġsource Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSetup Intent Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( Payment Analytics Event . Setup Intent Cancel Source ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa Ġ[ Source ] Ġusing Ġthe Ġinput Ġ[ Source Params ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Source Create ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsource Params Ġa Ġ[ Source Params ] Ġobject Ġwith Ġ[ Source ] Ġcreation Ġparams ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ Source ] Ġif Ġone Ġcould Ġbe Ġcreated Ġfrom Ġthe Ġinput Ġparams , ĊĠĠĠĠ Ġ* Ġor Ġ` null ` Ġif Ġnot ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcreate Source ( ĊĠĠĠĠĠĠĠ Ġsource Params : ĠSource Params , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options ĊĠĠĠ Ġ): ĠSource ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfire F raud Detection Data Request () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsources Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Params . to Param Map () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( build Payment UserAgent Pair ( source Params . at tribution )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( f raud Detection Data ?. params . or Empty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSource Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Source Creation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Params . type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Params . at tribution ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRetrieve Ġan Ġexisting Ġ[ Source ] Ġobject Ġfrom Ġthe Ġserver . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsource Id Ġthe Ġ[ Source . id ] Ġfield Ġfor Ġthe ĠSource Ġto Ġquery ĊĠĠĠĠ Ġ* Ġ@ param Ġclient Secret Ġthe Ġ[ Source . client Secret ] Ġfield Ġfor Ġthe ĠSource Ġto Ġquery ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ Source ] Ġif Ġone Ġcould Ġbe Ġretrieved Ġfor Ġthe Ġinput Ġparams , Ġor Ġ` null ` Ġif ĊĠĠĠĠ Ġ* Ġno Ġsuch ĠSource Ġcould Ġbe Ġfound . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġretrieve Source ( ĊĠĠĠĠĠĠĠ Ġsource Id : ĠString , ĊĠĠĠĠĠĠĠ Ġclient Secret : ĠString , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options ĊĠĠĠ Ġ): ĠSource ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Retrieve Source Api Url ( source Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSource Params . create Retrieve Source Params ( client Secret ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSource Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Request ( Payment Analytics Event . Source Retrieve ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . PaymentMethod Create ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcreate PaymentMethod ( ĊĠĠĠĠĠĠĠ Ġpayment Method Create Params : ĠPayment Method Create Params , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options ĊĠĠĠ Ġ): ĠPayment Method ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfire F raud Detection Data Request () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Methods Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Method Create Params . to Param Map () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( build Payment UserAgent Pair ( payment Method Create Params . at tribution )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( f raud Detection Data ?. params . or Empty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Method Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create PaymentMethod Creation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Method Create Params . type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Usage Tokens Ġ= Ġpayment Method Create Params . at tribution ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa Ġ[ Token ] Ġusing Ġthe Ġinput Ġtoken Ġparameters . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Token Create ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtoken Params Ġa Ġ[ Token Params ] Ġrepresenting Ġthe Ġobject Ġfor Ġwhich Ġthis Ġtoken Ġis Ġbeing Ġcreated ĊĠĠĠĠ Ġ* Ġ@ param Ġoptions Ġa Ġ[ ApiRequest . Options ] Ġobject Ġthat Ġcontains Ġconnection Ġdata Ġlike Ġthe Ġapi ĊĠĠĠĠ Ġ* Ġkey , Ġapi Ġversion , Ġetc ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ Token ] Ġthat Ġcan Ġbe Ġused Ġto Ġperform Ġother Ġoperations Ġwith Ġthis Ġcard ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcreate Token ( ĊĠĠĠĠĠĠĠ Ġtoken Params : ĠToken Params , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options ĊĠĠĠ Ġ): ĠToken ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfire F raud Detection Data Request () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtokens Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Params . to Param Map () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( build Payment UserAgent Pair ( token Params . at tribution )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( f raud Detection Data ?. params . or Empty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToken Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Token Creation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Usage Tokens Ġ= Ġtoken Params . at tribution , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Type Ġ= Ġtoken Params . token Type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Customer Add Source ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class , ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġadd Customer Source ( ĊĠĠĠĠĠĠĠ Ġcustomer Id : ĠString , ĊĠĠĠĠĠĠĠ Ġpublish able Key : ĠString , ĊĠĠĠĠĠĠĠ Ġproduct Usage Tokens : ĠSet < String >, ĊĠĠĠĠĠĠĠ Ġsource Id : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ Source . Source Type Ġsource Type : ĠString , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠSource ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Add Customer Source Url ( customer Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" source " Ġto Ġsource Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSource Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Add Source ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Usage Tokens , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Customer Delete Source ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class , ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdelete Customer Source ( ĊĠĠĠĠĠĠĠ Ġcustomer Id : ĠString , ĊĠĠĠĠĠĠĠ Ġpublish able Key : ĠString , ĊĠĠĠĠĠĠĠ Ġproduct Usage Tokens : ĠSet < String >, ĊĠĠĠĠĠĠĠ Ġsource Id : ĠString , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠSource ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Delete ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Delete Customer Source Url ( customer Id , Ġsource Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSource Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Delete Source ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Usage Tokens ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Customer Attach PaymentMethod ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class , ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġattach PaymentMethod ( ĊĠĠĠĠĠĠĠ Ġcustomer Id : ĠString , ĊĠĠĠĠĠĠĠ Ġpublish able Key : ĠString , ĊĠĠĠĠĠĠĠ Ġproduct Usage Tokens : ĠSet < String >, ĊĠĠĠĠĠĠĠ Ġpayment Method Id : ĠString , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠPayment Method ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfire F raud Detection Data Request () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Attach PaymentMethod Url ( payment Method Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" customer " Ġto Ġcustomer Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Method Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Attach PaymentMethod ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Usage Tokens ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Customer Detach PaymentMethod ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class , ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdetach PaymentMethod ( ĊĠĠĠĠĠĠĠ Ġpublish able Key : ĠString , ĊĠĠĠĠĠĠĠ Ġproduct Usage Tokens : ĠSet < String >, ĊĠĠĠĠĠĠĠ Ġpayment Method Id : ĠString , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠPayment Method ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Detach PaymentMethod Url ( payment Method Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Method Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Detach PaymentMethod ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Usage Tokens ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRetrieve Ġa ĠCustomer 's Ġ[ PaymentMethod ] s ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Customer Retrieve Payment Methods ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class , ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Payment Methods ( ĊĠĠĠĠĠĠĠ Ġlist Payment Methods Params : ĠList Payment Methods Params , ĊĠĠĠĠĠĠĠ Ġpublish able Key : ĠString , ĊĠĠĠĠĠĠĠ Ġproduct Usage Tokens : ĠSet < String >, ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠList < PaymentMethod > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpayment Methods List Ġ= Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Methods Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Payment Methods Params . to Param Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Methods List Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Analytics Event . Customer Retrieve Payment Methods , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Usage Tokens Ġ= Ġproduct Usage Tokens ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġpayment Methods List ?. payment Methods . or Empty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Customer SetDefault Source ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class , ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun ĠsetDefault Customer Source ( ĊĠĠĠĠĠĠĠ Ġcustomer Id : ĠString , ĊĠĠĠĠĠĠĠ Ġpublish able Key : ĠString , ĊĠĠĠĠĠĠĠ Ġproduct Usage Tokens : ĠSet < String >, ĊĠĠĠĠĠĠĠ Ġsource Id : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ Source . Source Type Ġsource Type : ĠString , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠCustomer ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Retrieve Customer Url ( customer Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" default _ source " Ġto Ġsource Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCustomer Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= ĠPayment Analytics Event . Customer SetDefault Source , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Usage Tokens Ġ= Ġproduct Usage Tokens , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Type Ġ= Ġsource Type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Customer Set Shipping Info ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class , ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġset Customer Shipping Info ( ĊĠĠĠĠĠĠĠ Ġcustomer Id : ĠString , ĊĠĠĠĠĠĠĠ Ġpublish able Key : ĠString , ĊĠĠĠĠĠĠĠ Ġproduct Usage Tokens : ĠSet < String >, ĊĠĠĠĠĠĠĠ Ġshipping Information : ĠSh ipping Information , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠCustomer ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Retrieve Customer Url ( customer Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" shipping " Ġto Ġshipping Information . to Param Map ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCustomer Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Analytics Event . Customer Set Shipping Info , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Usage Tokens Ġ= Ġproduct Usage Tokens ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Customer Retrieve ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class , ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġretrieve Customer ( ĊĠĠĠĠĠĠĠ Ġcustomer Id : ĠString , ĊĠĠĠĠĠĠĠ Ġproduct Usage Tokens : ĠSet < String >, ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠCustomer ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Retrieve Customer Url ( customer Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCustomer Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Analytics Event . Customer Retrieve , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Usage Tokens Ġ= Ġproduct Usage Tokens ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Iss uing Retrieve Pin ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class , ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class , ĊĠĠĠĠĠĠĠ ĠJSON Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġretrieve Iss uing Card Pin ( ĊĠĠĠĠĠĠĠ Ġcard Id : ĠString , ĊĠĠĠĠĠĠĠ Ġverification Id : ĠString , ĊĠĠĠĠĠĠĠ Ġuser One Time Code : ĠString , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġiss uing Card Pin Ġ= Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Iss uing Card Pin Url ( card Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" verification " Ġto Ġcreate Verification Param ( verification Id , Ġuser One Time Code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIss uing Card Pin Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( Payment Analytics Event . Iss uing Retrieve Pin ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġiss uing Card Pin ?. pin ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Iss uing Update Pin ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class , ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġupdate Iss uing Card Pin ( ĊĠĠĠĠĠĠĠ Ġcard Id : ĠString , ĊĠĠĠĠĠĠĠ Ġnew Pin : ĠString , ĊĠĠĠĠĠĠĠ Ġverification Id : ĠString , ĊĠĠĠĠĠĠĠ Ġuser One Time Code : ĠString , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmake ApiRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Iss uing Card Pin Url ( card Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" verification " Ġto Ġcreate Verification Param ( verification Id , Ġuser One Time Code ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pin " Ġto Ġnew Pin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( Payment Analytics Event . Iss uing Update Pin ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget F px Bank Status ( ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options ĊĠĠĠ Ġ): ĠBank Statuses Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf px Bank Statuses Ġ= Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Api Url (" f px / bank _ statuses "), ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdon 't Ġpass Ġconnected Ġaccount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . copy ( stripe Account Ġ= Ġnull ), ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" account _ holder _ type " Ġto Ġ" individual ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF px Bank Statuses Json Parser () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( Payment Analytics Event . F px Bank Statuses Retrieve ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire NotNull ( f px Bank Statuses ) ĊĠĠĠĠĠĠĠ Ġ}. get OrDefault ( Bank Statuses ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Card Metadata ( ĊĠĠĠĠĠĠĠ Ġbin : ĠBin , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options ĊĠĠĠ Ġ): ĠCard Metadata ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Edge Url (" card - metadata "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . copy ( stripe Account Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" key " Ġto Ġoptions . apiKey , Ġ" bin _ prefix " Ġto Ġbin . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Metadata Json Parser ( bin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġno - op ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( Payment Analytics Event . Card Metadata Load Failure ) ĊĠĠĠĠĠĠĠ Ġ}. get OrNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . Auth 3 ds 2 Start ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġstart 3 ds 2 Auth ( ĊĠĠĠĠĠĠĠ Ġauth Params : ĠStripe 3 ds 2 Auth Params , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠStripe 3 ds 2 Auth Result ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Api Url (" 3 ds 2 / authenticate "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauth Params . to Param Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStripe 3 ds 2 Auth Result Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Request ( Payment Analytics Event . Auth 3 ds 2 Start ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcomplete 3 ds 2 Auth ( ĊĠĠĠĠĠĠĠ Ġsource Id : ĠString , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠStripe 3 ds 2 Auth Result ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Api Url (" 3 ds 2 / challenge _ complete "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" source " Ġto Ġsource Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStripe 3 ds 2 Auth Result Json Parser () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġno - op ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnalytics Ġevent : Ġ[ Payment Analytics Event . File Create ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcreate File ( ĊĠĠĠĠĠĠĠ Ġfile Params : ĠStripe File Params , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠStripe File Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġmake FileUpload Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Upload Request ( file Params , Ġrequest Options , Ġapp Info ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( Payment Analytics Event . File Create ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠStripe File Json Parser (). parse ( response . response Json ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠIllegalArgumentException :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class , ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġretrieve Object ( ĊĠĠĠĠĠĠĠ Ġurl : ĠString , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠJSONObject Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Stripe Url Utils . is Stripe Url ( url )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Unrecognized Ġdomain : Ġ$ url ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġmake ApiRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( Payment Analytics Event . Stripe Url Retrieve ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresponse . response Json () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġlatest Ġ[ F raud Detection Data ] Ġfrom Ġ[ F raud Detection Data Repository ] Ġand Ġsend Ġin ĠPOST Ġrequest ĊĠĠĠĠ Ġ* Ġto Ġ`/ v 1 / radar / session `. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcreate Rad ar Session ( ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ): ĠRad ar Session ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( Stripe . advanced F raud Signals Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Stripe . advanced F raud Signals Enabled Ġmust Ġbe Ġset Ġto Ġ' true ' Ġto Ġcreate Ġa ĠRad ar ĠSession ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire NotNull ( f raud Detection Data Repository . get Latest ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Could Ġnot Ġobtain Ġf raud Ġdata Ġrequired Ġto Ġcreate Ġa ĠRad ar ĠSession ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġit . params . plus ( build Payment UserAgent Pair ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Api Url (" radar / session "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRad ar Session Json Parser () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Request ( Payment Analytics Event . Rad ar Session Create ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. getOrElse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠStripe Exception . create ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / payment _ methods /: id / detach ` ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠ Ġinternal Ġfun Ġget Detach PaymentMethod Url ( payment Method Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" payment _ methods /% s / detach ", Ġpayment Method Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġ< T Ġ: ĠStripe Intent > Ġretrieve Stripe Intent With Ordered Payment Methods ( ĊĠĠĠĠĠĠĠ Ġclient Secret : ĠString , ĊĠĠĠĠĠĠĠ Ġoptions : ĠApi Request . Options , ĊĠĠĠĠĠĠĠ Ġlocale : ĠLocale , ĊĠĠĠĠĠĠĠ Ġparser : ĠPayment Method Preference Json Parser < T >, ĊĠĠĠĠĠĠĠ Ġanalytics Event : ĠPayment Analytics Event ĊĠĠĠ Ġ): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfire F raud Detection Data Request () ĊĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġcreate Client Secret Param ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Secret , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" payment _ method _ preference .${ parser . stripe Intent FieldName }. payment _ method ") ĊĠĠĠĠĠĠĠ Ġ). plus ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type " Ġto Ġparser . stripe Intent FieldName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" locale " Ġto Ġlocale . to Language Tag () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Request Factory . create Get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Api Url (" elements / sessions "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparser ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire Analytics Request ( payment Analytics Request Factory . create Request ( analytics Event )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġfun Ġhandle ApiError ( response : ĠStripe Response < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠrequestId Ġ= Ġresponse . requestId ?. value ĊĠĠĠĠĠĠĠ Ġval Ġresponse Code Ġ= Ġresponse . code ĊĠĠĠĠĠĠĠ Ġval Ġstripe Error Ġ= ĠStripe Error Json Parser (). parse ( response . response Json ()) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( response Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp URLConnection . HTTP _ BAD _ REQUEST , ĠHttp URLConnection . HTTP _ NOT _ FOUND Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInvalid RequestException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstripe Error , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠrequestId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp URLConnection . HTTP _ UN AUTHORIZ ED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAuthentication Exception ( stripe Error , ĠrequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp URLConnection . HTTP _ PAYMENT _ REQUIRED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠCard Exception ( stripe Error , ĠrequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp URLConnection . HTTP _ FOR BID DEN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠPermission Exception ( stripe Error , ĠrequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHTTP _ TOO _ MAN Y _ REQUEST S Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRate Limit Exception ( stripe Error , ĠrequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAPI Exception ( stripe Error , ĠrequestId , Ġresponse Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġ< Model Type Ġ: ĠStripe Model > Ġfetch Stripe Model ( ĊĠĠĠĠĠĠĠ Ġapi Request : ĠApi Request , ĊĠĠĠĠĠĠĠ Ġjson Parser : ĠModel Json Parser < Model Type >, ĊĠĠĠĠĠĠĠ Ġon Response : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠModel Type ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjson Parser . parse ( make ApiRequest ( api Request , Ġon Response ). response Json ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġinternal Ġsuspend Ġfun Ġmake ApiRequest ( ĊĠĠĠĠĠĠĠ Ġapi Request : ĠApi Request , ĊĠĠĠĠĠĠĠ Ġon Response : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠStripe Response < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdns Cache Data Ġ= Ġdisable Dns Cache () ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstripe Network Client . execute Request ( api Request ) ĊĠĠĠĠĠĠĠ Ġ}. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Response () ĊĠĠĠĠĠĠĠ Ġ}. getOrElse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠIOException Ġ-> ĠAPI Connection Exception . create ( it , Ġapi Request . baseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( response . isError ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle ApiError ( response ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreset Dns Cache ( dns Cache Data ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠAuthentication Exception :: class , ĊĠĠĠĠĠĠĠ ĠInvalid RequestException :: class , ĊĠĠĠĠĠĠĠ ĠAPI Connection Exception :: class , ĊĠĠĠĠĠĠĠ ĠCard Exception :: class , ĊĠĠĠĠĠĠĠ ĠAPI Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġinternal Ġsuspend Ġfun Ġmake FileUpload Request ( ĊĠĠĠĠĠĠĠ Ġfile Upload Request : ĠFile Upload Request , ĊĠĠĠĠĠĠĠ Ġon Response : Ġ( RequestId ?) Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠStripe Response < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdns Cache Data Ġ= Ġdisable Dns Cache () ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstripe Network Client . execute Request ( file Upload Request ) ĊĠĠĠĠĠĠĠ Ġ}. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Response ( it . get OrNull ()?. requestId ) ĊĠĠĠĠĠĠĠ Ġ}. getOrElse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠIOException Ġ-> ĠAPI Connection Exception . create ( it , Ġfile Upload Request . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( response . isError ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle ApiError ( response ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreset Dns Cache ( dns Cache Data ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisable Dns Cache (): ĠD ns Cache Data Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal Dns Cache T tl Ġ= ĠSecurity . getProperty ( DNS _ CACHE _ TTL _ PROPERTY _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdisable ĠDNS Ġcache ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSecurity . setProperty ( DNS _ CACHE _ TTL _ PROPERTY _ NAME , Ġ" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠD ns Cache Data . Success ( original Dns Cache T tl ) ĊĠĠĠĠĠĠĠ Ġ}. get OrDefault ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠD ns Cache Data . Failure ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreset Dns Cache ( dns Cache Data : ĠD ns Cache Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( dns Cache Data Ġis ĠD ns Cache Data . Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġvalue Ġunspecified Ġby Ġimplementation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDNS _ CACHE _ TTL _ PROPERTY _ NAME Ġof Ġ- 1 Ġ= Ġcache Ġforever ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSecurity . setProperty ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDNS _ CACHE _ TTL _ PROPERTY _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdns Cache Data . original Dns Cache T tl Ġ?: Ġ"- 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfire F raud Detection Data Request () Ġ{ ĊĠĠĠĠĠĠĠ Ġf raud Detection Data Repository . refresh () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠ Ġevent : ĠPayment Analytics Event ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Analytics Request Factory . create Request ( event ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠ Ġinternal Ġfun Ġfire Analytics Request ( ĊĠĠĠĠĠĠĠ Ġparams : ĠAnalytics Request ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġanalytics Request Executor . execute Async ( params ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Client Secret Param ( ĊĠĠĠĠĠĠĠ Ġclient Secret : ĠString , ĊĠĠĠĠĠĠĠ Ġexpand Fields : ĠList < String > ĊĠĠĠ Ġ): ĠMap < String , ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmap Of (" client _ secret " Ġto Ġclient Secret ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( create Expand Param ( expand Fields )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Payment UserAgent Pair ( at tribution : ĠSet < String > Ġ= Ġempty Set ()) Ġ= ĊĠĠĠĠĠĠĠ ĠP AY MENT _ USER _ AGENT Ġto ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of (" stripe - android /${ Stripe . VERSION _ NAME }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( product Usage Tokens ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( at tribution ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ("; ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ĠAdd Ġpayment _ user _ agent Ġto Ġthe Ġmap Ġif Ġit Ġcontains ĠPayment ĠMethod Ġdata , ĊĠĠĠĠ Ġ* Ġ Ġincluding Ġat tribution Ġfrom Ġ[ payment Method Create Params ] Ġor Ġ[ source Params ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġmaybe Add Payment UserAgent ( ĊĠĠĠĠĠĠĠ Ġparams : ĠMap < String , ĠAny >, ĊĠĠĠĠĠĠĠ Ġpayment Method Create Params : ĠPayment Method Create Params ?, ĊĠĠĠĠĠĠĠ Ġsource Params : ĠSource Params ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠMap < String , ĠAny > Ġ= ĊĠĠĠĠĠĠĠ Ġ( params [ Confirm Stripe Intent Params . PARAM _ PAYMENT _ METHOD _ DATA ] Ġas ? ĠMap < *, Ġ* >) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . plus ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfirm Stripe Intent Params . PARAM _ PAYMENT _ METHOD _ DATA Ġto Ġit . plus ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Payment UserAgent Pair ( payment Method Create Params ?. at tribution Ġ?: Ġempty Set ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġ( params [ Confirm Payment Intent Params . PARAM _ SOURCE _ DATA ] Ġas ? ĠMap < *, Ġ* >) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . plus ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfirm Payment Intent Params . PARAM _ SOURCE _ DATA Ġto Ġit . plus ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Payment UserAgent Pair ( source Params ?. at tribution Ġ?: Ġempty Set ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġparams ĊĊĠĠĠ Ġprivate Ġsealed Ġclass ĠD ns Cache Data Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠSuccess ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal Dns Cache T tl : ĠString ? ĊĠĠĠĠĠĠĠ Ġ) Ġ: ĠD ns Cache Data () ĊĊĠĠĠĠĠĠĠ Ġobject ĠFailure Ġ: ĠD ns Cache Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDNS _ CACHE _ TTL _ PROPERTY _ NAME Ġ= Ġ" network address . cache . ttl " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠP AY MENT _ USER _ AGENT Ġ= Ġ" payment _ user _ agent " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Verification Param ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverification Id : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser One Time Code : ĠString ĊĠĠĠĠĠĠĠ Ġ): ĠMap < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id " Ġto Ġverification Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" one _ time _ code " Ġto Ġuser One Time Code ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / tokens ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġtokens Url : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Api Url (" tokens ") ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / sources ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġsources Url : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Api Url (" sources ") ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / payment _ methods ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġpayment Methods Url : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Api Url (" payment _ methods ") ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / payment _ int ents /: id ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Retrieve Payment Intent Url ( payment Intent Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" payment _ int ents /% s ", Ġpayment Intent Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġis Ġan Ġund ocument ed ĠAPI Ġand Ġis Ġonly Ġused Ġfor Ġcertain ĠP Is Ġwhich Ġhave Ġa Ġdelay Ġto ĊĠĠĠĠĠĠĠĠ Ġ* Ġtransfer Ġits Ġstatus Ġout Ġof Ġ" requires _ action " Ġafter Ġuser Ġperforms Ġthe Ġconfirmation . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / payment _ int ents /: id / refresh ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Refresh Payment Intent Url ( payment Intent Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" payment _ int ents /% s / refresh ", Ġpayment Intent Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / payment _ int ents /: id / confirm ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Confirm Payment Intent Url ( payment Intent Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" payment _ int ents /% s / confirm ", Ġpayment Intent Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / payment _ int ents /: id / source _ cancel ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Cancel Payment Intent Source Url ( payment Intent Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" payment _ int ents /% s / source _ cancel ", Ġpayment Intent Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / setup _ int ents /: id ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Retrieve Setup Intent Url ( setup Intent Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" setup _ int ents /% s ", Ġsetup Intent Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / setup _ int ents /: id / confirm ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Confirm Setup Intent Url ( setup Intent Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" setup _ int ents /% s / confirm ", Ġsetup Intent Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / setup _ int ents /: id / source _ cancel ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Cancel Setup Intent Source Url ( setup Intent Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" setup _ int ents /% s / source _ cancel ", Ġsetup Intent Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / customers /: customer _ id / sources ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Add Customer Source Url ( customer Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" customers /% s / sources ", Ġcustomer Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / customers /: customer _ id / sources /: source _ id ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Delete Customer Source Url ( customer Id : ĠString , Ġsource Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" customers /% s / sources /% s ", Ġcustomer Id , Ġsource Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / payment _ methods /: id / attach ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Attach PaymentMethod Url ( payment Method Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" payment _ methods /% s / attach ", Ġpayment Method Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / customers /: id ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Retrieve Customer Url ( customer Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" customers /% s ", Ġcustomer Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / sources /: id ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Retrieve Source Api Url ( source Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" sources /% s ", Ġsource Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / tokens /: id ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Retrieve Token Api Url ( tokenId : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" tokens /% s ", Ġtoken Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ` https :// api . stripe . com / v 1 / iss uing / cards /: id / pin ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Iss uing Card Pin Url ( card Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url (" iss uing / cards /% s / pin ", Ġcard Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Api Url ( path : ĠString , Ġvar arg Ġargs : ĠAny ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Api Url ( String . format ( Locale . EN GL ISH , Ġpath , Ġ* args )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Api Url ( path : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"${ ApiRequest . API _ HOST }/ v 1 /$ path " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Edge Url ( path : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"${ ApiRequest . API _ HOST }/ edge - internal /$ path " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Expand Param ( expand Fields : ĠList < String >): ĠMap < String , ĠList < String >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġexpand Fields . take If Ġ{ Ġit . isNotEmpty () Ġ} ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" expand " Ġto Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. or Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ