class TestApp: AppCompatActivity(), PaymentControllerListener {
private lateinit var paymentController: PaymentController
private var paymentUri: Uri? = null
private val fetchTokenCallback: (FetchTokenResult?)->Unit = { result ->
result?.redirectUrl?.let {
paymentUri = Uri.parse(it)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
paymentController = PaymentController()
paymentController.registerListener(this, this)
paymentTokenButton.setOnClickListener { fetchTokenForPayment() }
paymentButton.setOnClickListener {
paymentUri ?: return@setOnClickListener
//On appelle la méthode showPaymentForm avec l'url du tunnel de paiement récupéré en fonction de votre implémentation
paymentController.showPaymentForm(paymentUri!!)
}
}
override fun onDestroy() {
super.onDestroy()
paymentController.unregisterListener()
}
private fun fetchTokenForPayment() {
TokenFetcher(fetchTokenCallback).execute(FetchTokenParams(...))
}
override fun didShowPaymentForm() {
//Gérer l'action ici
}
override fun didFinishPaymentForm(state: WidgetState) {
paymentUri = null
//Gérer l'action ici
}
override fun didGetIsSandbox(isSandbox: Boolean) {
//Gérer l'action ici
}
override fun didGetLanguageCode(language: String) {
//Gérer l'action ici
}
override fun didGetContextInfo(info: ContextInfoResult) {
//Gérer l'action ici
}
}