Recibir pagos con tarjeta

El objeto ClipPayment

Crear un objeto de pago

Para integrar la función de pagos con tarjeta usando el Clip Plus, se requiere:

  • Crear un objeto de pago en la aplicación
  • Agregar un listener para el botón o elemento gráfico de pago en tu aplicación
3062

Para crear un objeto de pago, implementa la siguiente función:

val clipPayment = ClipPayment.Builder()
                .amount(amount: BigDecimal)
                .enableContactless(enabled: Boolean)
                .enableTips(enabled: Boolean)
                .roundTips(round: Boolean)
                .enablePayWithPoints(enabled: Boolean)
                .customTransactionId(customTransactionId: String?)
                .build()
ClipPayment clipPayment = new ClipPayment.Builder()
               .amount(BigDecimal: amount)
               .enableContactless(boolean enabled)
               .enabledTips(boolean enabled)
               .roundTips(boolean round)
               .enablePayWithPoints(boolean enabled)
               .customTransactionId(String customTransactionId)
               .build();

La siguiente tabla incluye una descripción para los elementos del objeto ClipPayment:

Elemento

Tipo de Dato

Descripción

amount

Big Decimal

Cantidad de la transacción.

enableContactless

Boolean

Por medio de un switch, permite activar o desactivar las transacciones con tecnología contactless en el dispositivo Clip Plus 2.

enableTips

Boolean

Permite mostrar la pantalla de selección de propina en el flujo de pago.

roundTips

Boolean

Cuando enableTips está activo, permite redondear los decimales de la cantidad de la propina.

enablePayWithPoints

Boolean

Por medio de un switch, permite activar o desactivar el pago con puntos.

customTransactionId

String

Referencia personalizada proporcionada por el cliente.

Longitud: 100 caracteres

Validación: cadena alfanumérica y los siguientes caracteres especiales @ # $ & ( ) _ - , .

En el listener del botón de pago de tu aplicación, agrega la siguiente función:

ClipApi.launchPaymentActivity(activity: Activity, payment: ClipPayment, requestCode: Int)
ClipApi.launchPaymentActivity(Activity activity, ClipPayment payment, int requestCode);

El resultado de una transacción será recibido en el método onActivityResult() del Activity que invocó el método de pago.

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    when (requestCode) {
        REQUEST_CODE_PAYMENT -> {
            when (data?.getIntExtra(StatusCode.RESULT_CODE, StatusCode.FAILURE)) {
                StatusCode.SUCCESSFUL -> {
                    val transactionResult = data.getParcelableExtra<ClipTransaction>(StatusCode.RESULT_PAYMENT_DATA)
                    // Transaction succeeded
                }
                StatusCode.FAILURE -> {
                    // Transaction failed
                }
            }
        }

        else -> super.onActivityResult(requestCode, resultCode, data)
    }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    String content;
    if (requestCode == REQUEST_CODE_PAYMENT) {
        case REQUEST_CODE_PAYMENT_RESULT :
        switch(data.getIntExtra(StatusCode.RESULT_CODE, StatusCode.FAILURE)) {
            case StatusCode . SUCCESSFUL :
            ClipTransaction transactionResult = data . getParcelableExtra (StatusCode.RESULT_PAYMENT_DATA);
            // Transaction succeeded
            break;
            case StatusCode . FAILURE :
            int errorCode = data . getIntExtra (StatusCode.RESULT_ERROR, -1);
            String errorCodeDesc = data . getStringExtra (StatusCode.RESULT_ERROR_DESC);
            String messageError = data . getStringExtra (StatusCode.RESULT_ERROR_MESSAGE);
            // Transaction failed
            break;
        }
    } else {
        super.onActivityResult(requestCode, resultCode, data);
    }
}

👍

Mira cómo hacerlo

Consulta la receta con los pasos necesarios para recibir un pago con tarjeta en tu proyecto.