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")
        }
    }
}
🚧

Sincronização Gradle

Obs.: Não se esqueça de sincronizar o projeto após adicionar o repositório.

📘

Credenciais Maven

Para 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")
}
🚧

Sincronização Gradle

Obs.: Não se esqueça de sincronizar o projeto após adicionar as dependências.


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.

Did this page help you?