Método InitPayment

Método responsável por iniciar o transacional.

val data: JourneyData = JourneyData(BigDecimal("10.00"), PaymentMethodsEnum.CREDIT_SINGLE, 1)
val tapOnPhoneSdk = TapOnPhone.getInstance()
tapOnPhoneSdk.initPayment(
  context = this,
  logoImageRes = R.drawable.ic_example,
  initialData = data,
  config = config,
  onPaymentStart = { },
  onPaymentSuccess = { receiptPayment: PaymentTransaction? -> },
  onPaymentFailure = { errorsEnum: ErrorsPaymentEnum?, e: Exception? -> },
  onNewSale = {},
  onEnd = {},
  merchantOrderId = "123456789012345",
  counterTimeInSeconds = null,
  toRemoveTextFromBehindThePhone = false
)

Descrição dos parâmetros:

ParâmetroDescriçãoObservações
contextContexto da aplicação.-
logoImageResRecurso da imagem do logotipo exibido na tela transacional, na etapa em que é solicitada a aproximação do cartão.-
initialData (JorneyData)Dados do pagamento.Pode ser informado diretamente ou retornado pelo callback da jornada.
onPaymentStart()Evento acionado quando o método initPayment é chamado.-
onPaymentSuccess(PaymentTransactionReceiptData)Método chamado quando o pagamento é realizado com sucesso.-
onPaymentFailure(ErrorsPaymentEnum)Método chamado quando ocorre um erro no pagamento.-
configMesmo parâmetro obrigatório solicitado na função initialize.O parâmetro é solicitado novamente para permitir a inicialização do SDK antes do pagamento, caso ele ainda não tenha sido inicializado ou esteja expirado.
onNewSaleMétodo opcional chamado ao tocar no botão Nova Venda, exibido na tela de comprovante.O botão só é exibido quando esse parâmetro é informado. Se não for enviado, ou se for enviado como nulo, o botão não aparece. Ao tocar em Nova Venda, um evento é emitido e, em seguida, o TapOnPhone é fechado.
onEndEvento chamado ao finalizar a jornada de pagamento.-
merchantOrderIdIdentificador único da transação definido pelo integrador.Campo opcional. Deve ser uma String contendo apenas números, com 1 a 15 dígitos, e não pode ser duplicado. A responsabilidade por essa informação é do integrador; a duplicação pode causar problemas no desfazimento de transações. Caso seja enviado em formato inválido, será recebida uma Exception. Consulte a seção Tratamento de Erros.
counterTimeInSecondsDefine uma contagem regressiva para fechamento automático da tela de feedback do pagamento e, na mesma jornada, da tela de comprovante.O valor é sempre restrito ao intervalo de 20 a 60 segundos (fora disso, é ajustado para o limite mais próximo).
Se null ou <= 0 (o padrão), nenhuma contagem é aplicada — as telas só fecham por toque manual.
toRemoveTextFromBehindThePhoneControla o texto de instrução exibido na tela de aproximação do cartão/NFC.
  • false (padrão): "Aproxime o cartão ou dispositivo atrás deste celular" — pressupõe que a antena NFC do aparelho fica na parte de trás (o caso comum).
  • true: remove o trecho "atrás deste celular", deixando só "Aproxime o cartão ou dispositivo" — use apenas em aparelhos cuja antena NFC não fique na parte de trás (o padrão é o recomendado para a maioria).
  • É por transação (não é uma configuração global do SDK).
  • Exceção automática confirmada em código: se isEnableLandscape(true) estiver habilitado no ConfigBuilder, esse valor é forçado para true independentemente do que você passar — em initPayment isso acontece no TapOnPhone.kt; em fakeTransactionInitPayment você passa esse valor dentro de InitPaymentTapConfig, e o mesmo comportamento se aplica.
  • Não afeta a tela de cancelamento (initCancellation) — essa sempre usa o texto completo.

Modelo de dados transacionais

data class PaymentTransaction(
    var amount: BigDecimal? = null,
    var applicationId: String? = null,
    var brand: String? = null,
    var cardFirstNumbers: String? = null,
    var cardLastDigits: String? = null,
    var currencyCode: String? = null,
    var date: String? = null,
    var rrn: String? = null,
    var time: String? = null,
    var transactionDate: String? = null,
    var transactionId: String? = null,
    var transactionType: String? = null,
    var status: PaymentStatus? = null,
    var installment: Int? = null,
    var dynamicBankData: String? = null,
    var dynamicBankDataModel: DynamicBankData? = null
) : Parcelable

Did this page help you?