Enviar um cancelamento
Para fazer o cancelamento, é preciso criar uma Intent, adicionando as informações como parâmetros dessa Intent.
val uriBuilder = Uri.Builder()
uriBuilder.authority("cancel")
uriBuilder.scheme("cancel-app")
uriBuilder.appendQueryParameter("returnscheme", "returnScheme")
uriBuilder.appendQueryParameter("atk", "atk")
uriBuilder.appendQueryParameter("amount", "amount")
uriBuilder.appendQueryParameter("editable_amount", "true/false")
val intent = Intent(Intent.ACTION_VIEW)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.data = uriBuilder.build()
startActivity(intent)
Campos utilizados para envio
Todos os campos estão em formato String
Atenção
Se os campos opcionais não forem enviados via deeplink, serão solicitados no aplicativo de Cancelamento.
Campo | Obrigatório? | Descrição |
---|---|---|
amount | Não | Valor do cancelamento, em centavos. Aceita valores entre 0 e 999999999 |
atk | Não | Código único da transação gerado pelo autorizador da Stone |
editable_amount | Não | Permite que o valor do cancelamento seja editado diretamente no aplicativo de Cancelamento |
return_scheme | Sim | Determina para onde será o retorno do deeplink. Deve ser o mesmo valor configurado no lugar da variável scheme no AndroidManifest |
Retorno do cancelamento
Para conseguir o retorno do deeplink de cancelamento, pode ser utilizada a função abaixo que captura a informação que foi retornada pela Intent.
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
try {
Log.i("onNewIntent", intent?.data.toString())
if (intent?.data != null) {
Toast.makeText(this, intent.data.toString(), Toast.LENGTH_LONG).show()
Log.i("DeeplinkCancel Response", intent.data.toString())
}
} catch (e: Exception) {
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show()
Log.e("Deeplink error", e.toString())
}
}
Exemplos de Retorno
Exemplo suceso!
deeplinktest://cancel?success=true&atk=39031080354321&canceledamount=0&paymenttype=2&transactionamount=100&orderid=&authorizationcode=395178&reason=APPROVED&responsecode=0000
Exemplo erros
deeplinktest://cancel?success=false&reason=7011&responsecode=-2
deeplinktest://cancel?success=false&reason=7202&responsecode=-2