Configuração
1) Adicionar repositórios
Primeiramente, será necessário adicionar os repositórios Maven necessários para o desenvolvimento no arquivo settings.gradle.kts:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
// Outros repositorios (google, mavenLocal, etc)
maven {
url = uri("https://jitpack.io")
}
// Maven PayOsSdkDebug
maven {
url = uri("URL_MAVEN_PAYTIME_PAYOSSDK_DEBUG")
credentials {
username = "USERNAME_MAVEN_PAYTIME_PAYOSSDK_DEBUG"
password = "PASSWORD_MAVEN_PAYTIME_PAYOSSDK_DEBUG"
}
authentication {
create<BasicAuthentication>("basic")
}
}
// Somente PagBank (A930, P2, GPOS780, A50, A50S)
maven {
url = uri("https://github.com/pagseguro/PlugPagServiceWrapper/raw/master")
}
}
}
Credenciais MavenPara acessar o repositório Maven privado, a Paytime irá providenciar a URL de conexão, nome de usuário e senha.
São usadas 2 configurações Maven diferentes, uma para PayOsSdkDebug e outra para PayOsSdkRelease, cada uma com sua própria URL, nome de usuário e senha.
A configuração para PayOsSdkRelease só será disponibilizada após a conclusão do processo de homologação.
Boas práticas e segurançaÉ importante que as credenciais de conexão com o repositório Maven não sejam adicionadas diretamente no código (hard-coded). Recomenda-se utilizar arquivos de ambiente (.env) ou o local.properties e não adicionar esses arquivos na ferramenta de controle de versão (git, por exemplo).
2) Configuração e dependências do Gradle
Artefatos terminais PAX - A960, A910S, A910
- debug:
com.paytime:payossdk-pax-debug:1.2.0 - release:
com.paytime:payossdk-pax:1.2.0
Artefatos terminais Nexgo - N62
-
debug:
com.paytime:payossdk-nexgo-debug:1.2.0 -
release:
com.paytime:payossdk-nexgo:1.2.0
Artefatos terminais PagBank - A930, P2, GPOS780, A50, A50S
-
debug:
com.paytime:payossdk-pags-debug:1.2.0 -
release:
com.paytime:payossdk-pags:1.2.0
Adicione as seguintes configurações e dependências ao arquivo build.gradle.kts da sua aplicação:
plugins {
// Outros plugins
id("com.google.devtools.ksp") version "2.3.5"
}
android {
defaultConfig {
minSdk = 24
ndk {
abiFilters.clear()
abiFilters.add("armeabi-v7a")
}
packaging {
jniLibs.useLegacyPackaging = true
}
}
// Crie a assinatura para release
signingConfigs {
create("release") {
storeFile = file("release.keystore")
storePassword = "APP_KEY_PASSWORD"
keyAlias = "APP_KEY_ALIAS"
keyPassword = "APP_KEY_PASSWORD"
}
}
buildTypes {
release {
signingConfig = signingConfigs.getByName("release")
// Habilitar Minify
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
kotlin {
jvmToolchain(11)
}
}
dependencies {
// Outras dependencias do seu app
// Implementacao do PayOsSdkDebug
// Terminais PAX - A960, A910S, A910
debugImplementation("com.paytime:payossdk-pax-debug:1.2.0")
// Implementacao do PayOsSdkDebug
// Terminais Nexgo - N62
// debugImplementation("com.paytime:payossdk-nexgo-debug:1.2.0")
// Implementacao do PayOsSdkDebug
// Terminais PagBank - A930, P2, GPOS780, A50, A50S
// debugImplementation("com.paytime:payossdk-pags-debug:1.2.0")
// Implementacao do PayOsSdkRelease
// Terminais PAX - A960, A910S, A910
releaseImplementation("com.paytime:payossdk-pax:1.2.0")
// Implementacao do PayOsSdkRelease
// Terminais Nexgo - N62
// releaseImplementation("com.paytime:payossdk-nexgo:1.2.0")
// Implementacao do PayOsSdkRelease
// Terminais PagBank - A930, P2, GPOS780, A50, A50S
// releaseImplementation("com.paytime:payossdk-pags:1.2.0")
}3) Configurar o AndroidManifest.xml
Adicione as seguintes permissões ao arquivo AndroidManifest.xml da sua aplicação:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />4) Minification (Pro Guard / R8)
É crucial que, para a versão release, você habilite a minificação. Isso reduzirá drasticamente o tamanho do seu APK de release (economia de banda para isntalar/atualizar o app), além de adicionar uma camada de segurança maior contra engenharia reversa do APK.
Como habilitar a minificação:No arquivo build.gradle.kts da sua aplicação, em android -> buildTypes -> release, adicione a opção isMinifyEnabled = true
-> Verificar item 2) Configuração e dependências do Gradle dessa página
O PayOsSdk já fornece, através do consumer-rules.pro todas as regras de ProGuard necessárias para a SDK. Você só precisará adicionar suas próprias regras, caso necessário, dependendo das outras dependências que seu app usa e da sua própria implementação.
5) Instâncias expostas pela PayOsSdk
IMPORTANTE!Todas as instâncias da SDK possuem o prefixo PayOsSdk. É crucial que durante a implementação sejam utilizadas essas instâncias e seus métodos, a fim de evitar possíveis bugs.
São expostas 3 principais instâncias:
- PayOsSdkPayment: instância principal, que realiza todo o processo de pagamento;
- PayOsSdkDevice: instância que possibilita configurar ativação e horário de reinicialização do dispositivo;
- PayOsSdkPrinter: instância que expõe acesso à impressora do dispositivo, possibilitando a criação de layouts de impressão personalizados.
Updated 17 days ago