Realizar una transacción

Realizar una transacción

Una vez se han recuperado los datos de la tarjeta durante el proceso de lectura, es posible dar inicio al proceso de pago.

Paso a paso

  1. Instanciar el objeto DoProcessAdquirerOperationData.
  2. Invocar le método doOperation y pasarle como parámetro el tipo de operación.
  3. Configurar un observer para recibir el resultado.

Ejemplo de implementación

 
private val operationFlow: OperationFlow?
     get() = OperationFlowHolder.operationFlow
 
val doPayment = DoProcessAdquirerOperationData(
    context = this,
    version = "",
    transactionDate = DateUtil.getLocalDateTimeWithOffset(),
    dataFlow = operationFlow
)
 
doPayment.doOperation(operationType = OperationType.PAYMENT)
 
doPayment.operationResponse.observe(this) {
    it.data?.let { response ->
        val operationResponse = response as Adquirer
        if (operationResponse.status?.code == OperationResponseCode.APPROVED) {
            Log.i(TAG, "Pago aprobado!")
            Log.i(TAG, "PaymentId: ${operationResponse.id}")
        } else {
            Log.i(TAG, "Pago declinado!")
        }
    } ?: run {
        Log.i(TAG, "Pago no procesado!")
    }
}

Códigos de respuesta

El resultado de la transacción se recibe mediante el objeto Adquirer. En la siguiente tabla se muestran los diferentes códigos de error, estos se recuperan desde Adquirer.status.code

CódigoDescripción
MESSAGE_PAUSED_ERROREl merchant o customer que se están usando, están temporalmente pausados.
MESSAGE_PAUSED_DELETEDEl merchant o customer que se están usando, han sido eliminados.
REJECTTransacción declinada.
APPROVEDTransacción aprobada.
MESSAGE_GENERAL_ERRORError default no determinado.
MESSAGE_NOT_ALLOWEDNo tiene permisos para realizar la transacción. Por ejemplo: Si se intenta realizar un pago en dólares y este feature no se encuentra activo en la configuración del comercio.
MESSAGE_EXPIRED_SESSIONEl token de sesión ha expirado.