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
);