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

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.