Crear un objeto de Pago
Para integrar la función de pago con Clip, se requiere:
- Crear un objeto de pago en la aplicación
- Agregar un botón o elemento gráfico de pago en tu aplicación

Pantallas del flujo de pago con tarjeta.
Para crear un objeto de pago, implementa la siguiente función dentro del estado de login didLLoginSDKProtocologinSuccess():
let payWrapper = PaymentProcessManager()
.set(amount: NSDecimalNumber(value: ))
.set(baseview: )
.set(tips: )
.set(contactlessEnabled: )
.set(delegate: )
.set(payWithPoints: )
.set(reference: )
payWrapper.startPayment()
La siguiente tabla describe los elementos del objeto PaymentProcessManager:
Elemento |
Tipo de Dato |
Descripción |
||
amount |
NSDecimalNumber |
Cantidad de la transacción. |
||
baseView |
ViewController |
Clase base que presenta las vistas que se utilizan en la aplicación. |
||
tips |
Boolean |
Permite mostrar la pantalla de selección de propina en el flujo de pago. Se modifica con las propiedades noTip o enabled . |
||
|
.noTip |
|
Propinas desactivadas. |
|
|
.enabled |
|
Propinas activadas. Tiene propiedades adicionales para calcular con o sin centavos. |
|
|
|
.roundUp |
|
Redondea la cantidad de propina. |
|
|
.exact |
|
Propinas exactas con pesos y centavos. |
contactlessEnabled |
Boolean |
Permite recibir pagos contactless en terminales Clip Plus 2. |
||
delegate |
Clase |
Clase que recibe los errores y status del proceso de la transacción. |
||
payWithPoints |
Boolean |
Permite recibir pagos con los puntos que otorga el banco al usuario de la tarjeta. |
||
reference |
String |
Referencia personalizada proporcionada por el cliente. Longitud: 100 caracteres Validación: cadena alfanumérica y los siguientes caracteres especiales @ # $ & ( ) _ - , . |
Iniciar una transacción
En el listener del botón de pago de tu aplicación, agrega la siguiente función:
.startPayment()
Implementar la clase Delegate
Después de crear un objeto de pago, se requiere implementar un Delegate para poder manejar el estado de éxito o error que resulta de la transacción.
Crea una extensión de la clase PaymentProcessDelegate:
Extension PrincipalViewController: PaymentProcessDelegate{
func onErrorOcurred(_ error: StatusCode, _ subStatusDetail: SubStatusDetail?){
}
func successTransaction(_ payment: Payment) {
}
}
La siguiente tabla muestra una descripción de las funciones contenidas en la clase PaymentProcessDelegate:
Elemento |
Descripción |
|
onErrorOcurred |
Regresa un error de tipo StatusCode. Algunos errores incluyen una descripción adicional subStatusDetail . |
|
successTransaction |
Regresa un objeto tipo Payment con la información del pago que se realizó. |
Esquema del objeto Payment:
ClipTransaction {
var totalAmount: Decimal
let cardType: CardType
let currency: String?
let paymentDate: Date
let invoiceNumber: String?
let last4: String
let latitude: String?
let longitude: String?
let receiptNumber: String
let installment: Installment?
let amount: Decimal
let tip: Decimal?
let status: TransactionStatus
}
La siguiente tabla incluye una descripción para los parámetros del objeto tipo Payment:
Elemento |
Descripción |
Tipo de dato |
|||
receiptNumber |
Identificador único de la transacción |
String |
|||
amount |
Cantidad del pago |
Decimal |
|||
tip |
Cantidad de la propina |
Decimal |
|||
totalAmount |
Cantidad total del pago incluyendo propina |
Decimal |
|||
cardType |
Tipo de tarjeta utilizada para el pago:
CardType
|
Enum |
|||
last4 |
Últimos cuatro dígitos de la tarjeta utilizada para el pago |
String |
|||
installment |
Indica si el pago se difiere en mensualidades:
Installment
|
Enum |
|||
merchantInvoiceId |
Referencia alfanumérica proporcionada por el vendedor |
String |
|||
status |
Estado de la transacción. Lista de posibles estados de la transacción:
TransactionStatus
|
Enum |
|||
currency |
Código de divisa para la transacción del pago conforme a ISO 4217 |
String |
|||
paymentDate |
Fecha de creación del pago |
Date |
|||
latitude |
Coordenada de latitud para la ubicación de la transacción |
String |
|||
longitude |
Coordenada de longitud para la ubicación de la transacción |
String |
Mira cómo hacerlo
Consulta la receta con los pasos necesarios para recibir un pago con tarjeta en tu proyecto.