Primeros pasos
La integraciĂłn de Main Apps se realiza por medio de SDKs. Para comenzar, instala la Demo App del Kit de Desarrollo en el dispositivo SmartPOS. Esta app puede servir como referencia en la integraciĂłn.
Luego, sigue estos pasos para poder utilizar los SDKs:
- Agrega la biblioteca del Kit de Desarrollo en el directorio app/libs.
- Incluye la dependencia para la biblioteca en el archivo .gradle del mĂłdulo en el que se usarĂĄ el SDK. AsĂ:
gradle
dependencies {
....
implementation files("libs/nativesdk-0.1.0.aar")
...
}
La configuraciĂłn correcta de metadata en el archivo AndroidManifest.xml es crucial para garantizar el funcionamiento Ăłptimo y la integraciĂłn completa de nuestras SDKs en tu aplicaciĂłn. La metadata permite definir configuraciones esenciales y personalizadas que el SDK necesita para operar adecuadamente, adaptĂĄndose a las necesidades especĂficas de cada aplicaciĂłn y su entorno de uso. Para ello, configura la siguiente informaciĂłn:
- CLIENT_ID: para identificar las transacciones de los integradores, indica la credencial Client ID que fue asignada a la aplicaciĂłn creada en Tus integraciones.
xml
<application ...> <meta-data android:name="com.mercadolibre.android.sdk.CLIENT_ID" android:value="123456789L" /> <!-- Otras configuraciones de la aplicaciĂłn --> </application>
- OAUTH_ENABLED: utiliza el campo
OAUTH_ENABLED
para activar el protocolo de autorizaciĂłn OAuth, necesario para cuando los dispositivos se utilicen con cuentas diferentes a la del desarrollador de la aplicaciĂłn. Este campo es opcional y, si no se agrega en la metadata, se considerarĂĄ el valor predeterminadofalse
.
xml
<application ...> <meta-data android:name="com.mercadolibre.android.sdk.OAUTH_ENABLED" android:value="true" /> <!-- Otras configuraciones de la aplicaciĂłn --> </application>
AĂșn en el archivo AndroidManifest.xml, define la actividad principal que se establecerĂĄ como launcher de la app. Agrega los siguientes
intent-filter
:
xml
<intent-filter>
...
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
- Crea la clase heredada de la clase Application de Android e ingresa la configuraciĂłn del SDK:
class MainApplication : Application() {
override fun onCreate() {
super.onCreate()
val config = MPConfigBuilder(this, "123456789")
.withBluetoothConfig()
.withBluetoothUIConfig()
.build()
MPManager.initialize(this, config)
}
}
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
MPConfig config = new MPConfigBuilder(this, "123456789")
.withBluetoothConfig()
.withBluetoothUIConfig()
.build();
MPManager.INSTANCE.initialize(this, config);
}
}
- Empieza a utilizar el SDK para procesar pagos:
val paymentFlow = MPManager.paymentFlow
val uriSuccess = paymentFlow.buildCallbackUri(
"mercadopago://launcher_native_app",
"success",
hashMapOf("attr" to "123"),
"demo_app"
)
val uriError = paymentFlow.buildCallbackUri(
"mercadopago://launcher_native_app",
"error",
hashMapOf("attr" to "456"),
"demo_app"
)
paymentFlow.launchPaymentFlowActivity(
amount,
description,
uriSuccess,
uriError,
context,
lastPaymentMethodSelected
) { response ->
response.doIfError { error ->
error.message?.let { errorMessage -> setLayoutError(errorMessage) }
}
}
PaymentFlow paymentFlow = MPManager.INSTANCE.getPaymentFlow();
HashMap<String, String> metadata = new HashMap<>();
Uri uriSuccess = paymentFlow.buildCallbackUri(
"mercadopago://launcher_native_app",
"success",
metadata,
"demo_app"
);
Uri uriError = paymentFlow.buildCallbackUri(
"mercadopago://launcher_native_app",
"error",
metadata,
"demo_app"
);
Function1<MPResponse, Unit> callback = (MPResponse response) -> {
return;
};
paymentFlow.launchPaymentFlowActivity(
"1",
"My Payment Description",
uriSuccess,
uriError,
getApplicationContext(),
"credit",
callback
);