Primeiros passos
Assegure-se de ter o Demo App instalado no dispositivo SmartPOS do Kit de Desenvolvimento. Este aplicativo pode servir como referência na integração.
Para usar o SDK, siga estes passos:
- Adicione a biblioteca do Kit de Desenvolvimento no diretório app/libs.
- Inclua a dependência para a biblioteca no arquivo .gradle do módulo no qual o SDK vai ser usado. Assim:
gradle
dependencies {
....
implementation files("libs/nativesdk-0.1.0.aar")
...
}
A configuração correta de metadata no arquivo AndroidManifest.xml é crucial para garantir o funcionamento ideal e a integração completa do nosso SDK em sua aplicação. A metadata permite definir configurações essenciais e personalizadas que o SDK precisa para operar adequadamente, adaptando-se às necessidades específicas de cada aplicação e seu ambiente de uso. Para isso, configure as seguintes informações:
- CLIENT_ID: para identificar as transações dos integradores, indique a credencial Client ID que foi atribuída à aplicação criada no Painel do desenvolvedor.
xml
<application ...> <meta-data android:name="com.mercadolibre.android.sdk.CLIENT_ID" android:value="123456789L" /> <!-- Outras configurações da aplicação --> </application>
- OAUTH_ENABLED: utilize o campo
OAUTH_ENABLED
para ativar o protocolo de autorização OAuth, que é necessário quando os dispositivos serão usados com contas diferentes da do desenvolvedor da aplicação. Este campo é opcional e, caso não seja adicionado na metadata, será considerado o valor padrãofalse
.
xml
<application ...> <meta-data android:name="com.mercadolibre.android.sdk.OAUTH_ENABLED" android:value="true" /> <!-- Outras configurações da aplicação --> </application>
Ainda no arquivo AndroidManifest.xml, defina a atividade principal que será estabelecida como launcher da aplicação. Adicione os seguintes
intent-filter
:
xml
<intent-filter>
...
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
- Crie a classe herdada da classe Application de Android e insira a configuração do 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);
}
}
- Comece a usar o SDK para processar pagamentos:
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
);