Configuración
En esta sección, encontrarás la configuración que se debe realizar al proyecto antes de iniciar la integración.
Crear la clase AppfinRestClientConfigure
Esta clase se requiere para configurar el host que el SDK usará para comunicarse con las APIs de Menta.
import com.menta.android.restclient.core.RestClientConfigure
class AppfinRestClientConfigure : RestClientConfigure {
override fun loginDeeplink(): String =
"menta://login.ui/unauthorized"
override fun urlBase(): String =
"https://api.menta.global/"
}
Agregar permisos
El permiso de internet es requerido para que el SDK pueda conectarse con las APIs de Menta. Para las terminales con Android 12 se requiere otros permisos.
<uses-permission android:name="android.permission.INTERNET" />
//Para Android 12 en adelante
<uses-permission
android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
Configuración de build.gradle para terminales > Android 12
Para asegurar la compatibilidad con dispositivos que usan Android 12 o versiones más recientes, es necesario realizar una configuración adicional en el archivo build.gradle del proyecto. Dentro del bloque defaultConfig, se debe agregar la sección ndk con los filtros ABI requeridos, para garantizar que el proyecto compile correctamente y se ejecute sin problemas en esas versiones del sistema operativo.
defaultConfig {
ndk {
abiFilters.add("armeabi-v7a")
}
}
Crear acceso a los datos de configuración del merchant
Los siguientes datos se utilizará como datos entrada en los diferentes flujos del SDK. Te recomendamos asegurarte de que tu aplicación tenga acceso a cada uno de ellos.
- API Key merchant: Como parte de los requisitos previos, es necesario generar una API Key de tipo merchant. Esta API Key es única para cada merchant y tiene el formato UUID.
- Merchant ID: Es el identificador del merchant
- Customer ID: Es el identificador del cliente dentro de la plataforma de Menta
- Currency Code: Código de moneda con el que opera el comercio.
- Country Code: Código de país con el que opera el comercio.
- Listago de Tags EMV: Listado de TAGs EMV requeridos por el adquirente en cada transacción.
Listado de TAGs EMV
//Acquirer GPS
val tagList: MutableList<String> = ArrayList()
tagList.add("9F26")
tagList.add("82")
tagList.add("9F36")
tagList.add("9F10")
tagList.add("9F33")
tagList.add("95")
tagList.add("9F37")
tagList.add("9A")
tagList.add("9C")
tagList.add("9F02")
tagList.add("9F03")
tagList.add("9F27")
tagList.add("9F34")
tagList.add("5F2A")
tagList.add("9F1A")
tagList.add("5F25")
tagList.add("84")
tagList.add("9F1E")
tagList.add("9F6E")
//Adquirer PRISMA
val tagList: MutableList<String> = ArrayList()
tagList.add("9F33")
tagList.add("95")
tagList.add("9F37")
tagList.add("9F1E")
tagList.add("9F10")
tagList.add("9F26")
tagList.add("9F36")
tagList.add("82")
tagList.add("9A")
tagList.add("9C")
tagList.add("9F03")
tagList.add("9F02")
tagList.add("9F27")
tagList.add("5F25")
tagList.add("9F34")
tagList.add("9F6E")
tagList.add("84")
//Acquirer Banorte
val tagList: MutableList<String> = ArrayList()
tagList.add("4f")
tagList.add("50")
tagList.add("57")
tagList.add("5A")
tagList.add("82")
tagList.add("84")
tagList.add("8A")
tagList.add("95")
tagList.add("9A")
tagList.add("9B")
tagList.add("9C")
tagList.add("5F20")
tagList.add("5F24")
tagList.add("5F25")
tagList.add("5F28")
tagList.add("5F2A")
tagList.add("5F30")
tagList.add("5F34")
tagList.add("9F02")
tagList.add("9F03")
tagList.add("9F07")
tagList.add("9F09")
tagList.add("9F0D")
tagList.add("9F0E")
tagList.add("9F0F")
tagList.add("9F10")
tagList.add("9F12")
tagList.add("9F15")
tagList.add("9F1A")
tagList.add("9F1C")
tagList.add("9F1E")
tagList.add("9F21")
tagList.add("9F26")
tagList.add("9F27")
tagList.add("9F33")
tagList.add("9F34")
tagList.add("9F35")
tagList.add("9F36")
tagList.add("9F37")
tagList.add("9F39")
tagList.add("9F41")
tagList.add("9F53")
tagList.add("9F6E")