Integrar para aplicaciones mĂłviles - Tarjeta - Mercado Pago Developers
IntegraciĂłn para aplicaciones mĂłviles
La integraciĂłn mediante los Core Methods del SDK Nativo de Mercado Pago ofrece control total sobre la captura y el procesamiento de la informaciĂłn de pago, permitiendo crear y personalizar formularios segĂșn tus necesidades.
Para integrar el SDK Nativo de Mercado Pago utilizando los Core Methods, consulta las instrucciones especĂficas para cada tecnologĂa:
Requisitos
Antes de comenzar la integraciĂłn, asegĂșrate de que tu proyecto cumpla con los siguientes requisitos:
El SDK nativo de Mercado Pago proporciona una soluciĂłn robusta y segura para la integraciĂłn de tarjetas, asegurando el total cumplimiento con las normas PCI.
Para integrar el SDK de Mercado Pago en tu proyecto Android, sigue los pasos descritos en la documentaciĂłn del SDK Nativo.
Configurar campos seguros
Los campos seguros son componentes desarrollados para garantizar la privacidad y la protecciĂłn de los datos sensibles introducidos por el comprador. En total conformidad con los estĂĄndares PCIConjunto de reglas de seguridad que buscan proteger los datos de las tarjetas de pago contra fraudes y filtraciones de datos., estos campos aseguran que la aplicaciĂłn nunca tenga acceso directo a la informaciĂłn ingresada, que se transmite de forma segura solo para la creaciĂłn de tokens y transacciones.
Los datos introducidos en los campos seguros nunca estĂĄn disponibles para la aplicaciĂłn integradora. Se envĂan de forma segura solo para la creaciĂłn de tokens y transacciones.
En la tabla a continuaciĂłn encontrarĂĄs el detalle de los componentes disponibles. Para mĂĄs informaciĂłn sobre la configuraciĂłn, consulta la referencia correspondiente a cada uno de ellos en GitHub.
Campo seguro para ingresar el cĂłdigo de seguridad (CVV).
Core Methods
Los Core Methods son esenciales para construir un flujo de checkout integrado con Mercado Pago. Utilizan la informaciĂłn capturada por los campos seguros y permiten ejecutar las principales operaciones de pago.
val coreMethods = MercadoPagoSDK.getInstance().coreMethods
coroutineScope {
// Se debe usar el bin retornado del CardNumberTextFieldEvent.OnBinChanged
val result = coreMethods.getPaymentMethods(bin = bin)
when (result) {
is Result.Success -> {
// Ăxito de la llamada
print("Ăxito de la request: ${result.data}")
}
is Result.Error -> {
when (result.error) {
is ResultError.Request -> {
// Error de la llamada de tipo request
print("Error de request: ${result.error}")
}
is ResultError.Validation -> {
// Error de la llamada de tipo validation
print("Error de validaciĂłn: ${result.error}")
}
}
}
}
}
Los parĂĄmetros estĂĄn listados en la tabla a continuaciĂłn.
val coreMethods = MercadoPagoSDK.getInstance().coreMethods
coroutineScope {
// Se debe usar el bin retornado del CardNumberTextFieldEvent.OnBinChanged
val result = coreMethods.getInstallments(
bin = bin,
amount = BigDecimal("100.00")
)
when (result) {
is Result.Success -> {
// Ăxito de la llamada
print("Ăxito de la request: ${result.data}")
}
is Result.Error -> {
when (result.error) {
is ResultError.Request -> {
// Error de la llamada de tipo request
print("Error de request: ${result.error}")
}
is ResultError.Validation -> {
// Error de la llamada de tipo validation
print("Error de validaciĂłn: ${result.error}")
}
}
}
}
}
Utiliza la informaciĂłn del Installment para mostrar al comprador todos los detalles del valor y del plan de cuotas de la compra, antes de finalizar el pago.
Los parĂĄmetros estĂĄn listados en la tabla a continuaciĂłn.
val coreMethods = MercadoPagoSDK.getInstance().coreMethods
coroutineScope {
// Se debe usar el bin retornado del CardNumberTextFieldEvent.OnBinChanged
// Se debe usar el paymentMethodId retornado de la request de PaymentMethods
val result = coreMethods.getCardIssuers(
bin = bin,
paymentMethodId = paymentMethodId,
)
when (result) {
is Result.Success -> {
// Ăxito de la llamada
print("Ăxito de la request: ${result.data}")
}
is Result.Error -> {
when (result.error) {
is ResultError.Request -> {
// Error de la llamada de tipo request
print("Error de request: ${result.error}")
}
is ResultError.Validation -> {
// Error de la llamada de tipo validation
print("Error de validaciĂłn: ${result.error}")
}
}
}
}
}
Los parĂĄmetros estĂĄn listados en la tabla a continuaciĂłn.
val coreMethods = MercadoPagoSDK.getInstance().coreMethods
coroutineScope {
val result = coreMethods.getIdentificationTypes()
when (result) {
is Result.Success -> {
// Ăxito de la llamada
print("Ăxito de la request: ${result.data}")
}
is Result.Error -> {
when (result.error) {
is ResultError.Request -> {
// Error de la llamada de tipo request
print("Error de request: ${result.error}")
}
is ResultError.Validation -> {
// Error de la llamada de tipo validation
print("Error de validaciĂłn: ${result.error}")
}
}
}
}
}
val coreMethods = MercadoPagoSDK.getInstance().coreMethods
coroutineScope {
val result = coreMethods.generateCardToken(
cardNumberState = cardNumberPCIFieldState,
expirationDateState = expirationDatePCIFieldState,
securityCodeState = securityCodePCIFieldState,
buyerIdentification = BuyerIdentification(
name = "APRO",
number = "12345678909",
type = "CPF"
)
)
when (result) {
is Result.Success -> {
// Ăxito de la llamada
print("Ăxito de la request: ${result.data}")
}
is Result.Error -> {
when (result.error) {
is ResultError.Request -> {
// Error de la llamada de tipo request
print("Error de request: ${result.error}")
}
is ResultError.Validation -> {
// Error de la llamada de tipo validation
print("Error de validaciĂłn: ${result.error}")
}
}
}
}
}
Los parĂĄmetros estĂĄn listados en la tabla a continuaciĂłn.
En las transacciones con Mercado Pago, los datos de las tarjetas registradas por el comprador se almacenan de forma segura y no son accesibles desde tu backend. SĂłlo se proporciona el ID de la tarjeta a la aplicaciĂłn, que deberĂĄs utilizar para generar un token temporal. Esto protege la informaciĂłn sensible, ya que sĂłlo se maneja el ID, mientras que el nĂșmero de tarjeta, CVV y fecha de vencimiento no se exponen y se mantienen seguros.
kotlin
val coreMethods = MercadoPagoSDK.getInstance().coreMethods
coroutineScope {
val result = coreMethods.generateCardToken(
cardId = cardId,
expirationDateState = expirationDatePCIFieldState,
securityCodeState = securityCodePCIFieldState,
buyerIdentification = BuyerIdentification(
name = "APRO",
number = "12345678909",
type = "CPF"
)
)
when (result) {
is Result.Success -> {
// Ăxito de la llamada
print("Ăxito de la request: ${result.data}")
}
is Result.Error -> {
when (result.error) {
is ResultError.Request -> {
// Error de la llamada de tipo request
print("Error de request: ${result.error}")
}
is ResultError.Validation -> {
// Error de la llamada de tipo validation
print("Error de validaciĂłn: ${result.error}")
}
}
}
}
}
Los parĂĄmetros estĂĄn listados en la tabla a continuaciĂłn.
Consulta en la siguiente tabla las descripciones de los parĂĄmetros que tienen alguna particularidad importante a destacar:
Atributo
Tipo
DescripciĂłn
Obligatoriedad
Authorization
Header
Hace referencia a tu clave privada, el Access Token.
Obligatorio
X-Idempotency-Key
Header
Clave de idempotencia. Esta clave garantiza que cada solicitud sea procesada solo una vez, evitando duplicidades. Usa un valor exclusivo en el header de la solicitud, como un UUID V4 o una cadena aleatoria.
Obligatorio
token
Body.String
Identificador del token de la tarjeta. El token se genera a partir de los datos de la propia tarjeta, proporcionando mayor seguridad en el proceso de pago. Tras ser utilizado en una compra, el token se descarta, exigiendo la creaciĂłn de un nuevo token para cada transacciĂłn.
Obligatorio
transaction_amount
Body.String
Costo del producto. Para Chile, debe ser un nĂșmero entero.
Para conocer en detalle todos los parĂĄmetros enviados en esta solicitud, consulta la Referencia de API.
Ejemplos y referencias
Para profundizar en la implementaciĂłn y uso del SDK, revisa el repositorio en GitHub.
El repositorio incluye un mĂłdulo de ejemplo completo, que demuestra la integraciĂłn de campos seguros y los Core Methods, ademĂĄs de presentar un flujo de checkout integrado y seguro.