Cancelamento

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.

CampoObrigatório?Descrição
amountNãoValor do cancelamento, em centavos. Aceita valores entre 0 e 999999999
atkNãoCódigo único da transação gerado pelo autorizador da Stone
editable_amountNãoPermite que o valor do cancelamento seja editado diretamente no aplicativo de Cancelamento
return_schemeSimDetermina 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