Giter Site home page Giter Site logo

ooherbethoo / direct-checkout-android Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tamojuno/direct-checkout-android

0.0 0.0 0.0 166 KB

SDK para criptografia e validação de dados do cartão de crédito para integração com a API de pagamentos da Juno/BoletoBancário.

Kotlin 100.00%

direct-checkout-android's Introduction

DirectCheckout Android

SDK para criptografia e validação de dados de cartão de crédito para integração com a API de pagamentos da Juno/BoletoBancário.

Visando garantir a segurança das transações realizadas em nossa plataforma, a API da Juno adota uma política de criptografia dos dados de cartão de crédito de ponta-a-ponta.

Para mais informações acesse nossa página de integração:

Integração via API

Setup

Adicione o JitPack repository em seu build.gradle (top level module):

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

Adicione o SDK nas dependências do seu aplicativo

dependencies {
    implementation "com.github.tamojuno:direct-checkout-android:1.0.2"
}

No arquivo Manifest adicione a permissão de acesso à internet, e seu token público que pode ser obtido em nossa página de integração

<manifest>

    <uses-permission android:name="android.permission.INTERNET"/>

    <application
           ...
           android:name=".MyApplication"
           ...>

        <meta-data
                android:name="br.com.juno.directcheckout.public_token"
                android:value="YOUR_PUBLIC_TOKEN"/>
        <meta-data
                android:name="br.com.juno.directcheckout.public_token_sandbox"
                android:value="YOUR_PUBLIC_TOKEN_SANDBOX"/>

            ...

    </application>

</manifest>

Na sua classe application inicialize o SDK:

class MyApplication:Application(){

    override fun onCreate() {
        super.onCreate()
        DirectCheckout.initialize(this)
    }
}

Para utilizar o ambiente de testes (Sandbox) basta passar false no segundo parâmetro (prod):

class MyApplication:Application(){

    override fun onCreate() {
        super.onCreate()
        DirectCheckout.initialize(this, prod = false)
    }
}

Utilização

Detalhamos a seguir um exemplo de utilização de nossa biblioteca de como obter o hash do cartão de crédito:

  val card = Card(
      cardNumber = "999999999",
      holderName = "Teste",
      securityCode = "111",
      expirationMonth = "6",
      expirationYear = "2022"
  )

  DirectCheckout.getCardHash(card, object : DirectCheckoutListener<String> {
      
      override fun onSuccess(cardHash: String) {
          /* Sucesso - A variável cardHash conterá o hash do cartão de crédito */
      }

      override fun onFailure(exception: DirectCheckoutException) {
          /* Erro - A variável exception conterá o erro ocorrido ao obter o hash */
      }
  })

Caso esteja utilizando a linguagem Java:

  Card card  = new Card(
      "9999 9999 9999 9999",
      "Teste",
      "111",
      "6",
      "2022"
  );


  DirectCheckout.getCardHash(card, new DirectCheckoutListener<String>() {
      @Override
      public void onSuccess(@NotNull String cardHash) {
          /* Sucesso - A variável cardHash conterá o hash do cartão de crédito */
      }

      @Override
      public void onFailure(@NotNull DirectCheckoutException exception) {
          /* Erro - A variável exception conterá o erro ocorrido ao obter o hash */
      }
  });

Funções Auxiliares

A biblioteca disponibilizada também possui uma série de métodos auxiliares para a validação de dados do cartão de crédito, conforme demonstrado a seguir:

  /* isValidSecurityCode: Valida número do cartão de crédito (retorna true se for válido) */
  DirectCheckout.isValidCardNumber("9999999999999999")

  /* isValidSecurityCode: Valida código de segurança do cartão de crédito (retorna true se for válido) */
  DirectCheckout.isValidSecurityCode("9999999999999999", "111")

  /* isValidExpireDate: Valida data de expiração do cartão de crédito (retorna true se for válido) */
  DirectCheckout.isValidExpireDate("05", "2021")

  /* isValidCardData: Validação dos dados do cartão de crédito(retorna true se for válido) */
  DirectCheckout.isValidCardData(card)

  /* getCardType: Obtém o tipo de cartão de crédito (bandeira) */
  DirectCheckout.getCardType("9999999999999999")}

Algumas funções também podem ser acessadas diretamente da classe Card:

  val card = Card(
    cardNumber = "999999999",
    holderName = "Teste",
    securityCode = "111",
    expirationMonth = "6",
    expirationYear = "2022"
  )

  /* isValidSecurityCode: Valida número do cartão de crédito (retorna true se for válido) */
  card.validateNumber()

  /* isValidSecurityCode: Valida código de segurança do cartão de crédito (retorna true se for válido) */
  card.validateCVC()

  /* isValidExpireDate: Valida data de expiração do cartão de crédito (retorna true se for válido) */
  card.validateExpireDate()

  /* getCardType: Obtém o tipo de cartão de crédito (bandeira) */
  card.getType()

Proguard

-keep class br.com.juno.** { *; }

Contato

Para mais informações entre em contato com a Juno:

direct-checkout-android's People

Contributors

diefferson avatar rafaeldalbosco avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.