Giter VIP home page Giter VIP logo

gerencianet / gn-api-sdk-android Goto Github PK

View Code? Open in Web Editor NEW
3.0 9.0 4.0 291 KB

SDK para Android integrada a API Gerencianet. Esta SDK está preparada para integração à API Boletos da Gerencianet, que lhe permite realizar o gerenciamento de cobranças com boleto/Bolix, carnê, cartão de crédito e muito mais.

License: MIT License

Java 100.00%
android sdk marketplace split subscription assinatura card cartao-de-credito boleto billet bolix carnet carne link-de-pagamento

gn-api-sdk-android's Introduction

SDK Gerencianet para ANDROID

SDK Gerencianet para PHP

Português

SDK ANDROID para integração com a API da Gerencianet. Para mais informações sobre parâmetros e valores, consulte a documentação da Gerencianet.

Ir para:

Requisitos

  • Android 7.0+

Instalação

Via gradle:

compile 'br.com.gerencianet.mobile:gn-api-sdk-android:1.0'

Começando

Declare um objeto Map e adicione as informações referentes a sua conta e aplicação Gerencianet.

HashMap<String, Object> options = new HashMap<String Object>();
options.put("client_id", "__CLIENT_ID_");
options.put("client_secret", "__CLIENT_SECRET_");
options.put("sandbox", __SANDBOX__);

Para utilizar a API emissões, instancie um objeto Gerencianet e passe como parametro a variável com as opções declaradas.

Gerencianet gerencianet = new Gerencianet(options);

Para utilizar a API PIX, adicione ao Map das opções, o caminho do certificado PIX dentro do diretorio assets e instancie um objeto Gerencianet, passando como parametro a variável com as opções, juntamente com o context.getAssets().

options.put("pix_cert", "__PATH___");
Gerencianet gerencianet = new Gerencianet(options, context.getAssets());

Exemplos

Criar cobrança (Homologação):

HashMap<String, Object> options = new HashMap<String Object>();
options.put("client_id", "__CLIENT_ID_");
options.put("client_secret", "__CLIENT_SECRET_");
options.put("sandbox", true);

List<Object> items = new ArrayList<Object>();

Map<String, Object> item1 = new HashMap<String, Object>();
item1.put("name", "Item 1");
item1.put("amount", 1);
item1.put("value", 1000);
items.add(item1);

Map<String, Object> body = new HashMap<String, Object>();
body.put("items", items);

try {
    Gerencianet gn = new Gerencianet(options);
    Map<String, Object> response = gn.call("createCharge", new HashMap<String,String>(), body);
    System.out.println(response);
}catch (GerencianetException e){
    System.out.println(e.getCode());
    System.out.println(e.getError());
    System.out.println(e.getErrorDescription());
}
catch (Exception e) {
    System.out.println(e.getMessage());
}

Criar cobrança PIX (Homologação):

HashMap<String, Object> options = new HashMap<String Object>();
options.put("client_id", "__CLIENT_ID_");
options.put("client_secret", "__CLIENT_SECRET_");
options.put("pix_cert", "__PATH_ASSETS__");
options.put("sandbox", true);

Map<String, Integer> calendar = new HashMap<>();
      calendar.put("expiracao", 3600);

Map<String, String> value = new HashMap<>();
value.put("original", "0.01");

Map<String, Object> body = new HashMap<String, Object>();
body.put("calendario", calendar);
body.put("valor", value);
body.put("chave", "sua_chave");


try {
    Gerencianet gn = new Gerencianet(options, context.getAssets());
    Map<String, Object> response = gn.call("pixCreateImmediateCharge", new HashMap<String,String>(), body);
    System.out.println(response);
}catch (GerencianetException e){
    System.out.println(e.getCode());
    System.out.println(e.getError());
    System.out.println(e.getErrorDescription());
}
catch (Exception e) {
    System.out.println(e.getMessage());
}

Gerar PaymentToken (Homologação):

HashMap<String, Object> options = new HashMap<String Object>();
options.put("account_id", "__ACCOUNT_ID__");
options.put("sandbox", true);

Map<String, Object> card = new HashMap<>();
card.put("brand", "mastercard");
card.put("number", "1111111111111111");
card.put("cvv", "123");
card.put("expiration_month", "12");
card.put("expiration_year", "1234");

try {
    Gerencianet gn = new Gerencianet(options);
    Map<String, Object> response = gn.call("paymentToken", new HashMap<String,String>(), card);
    System.out.println(response);
}catch (GerencianetException e){
    System.out.println(e.getCode());
    System.out.println(e.getError());
    System.out.println(e.getErrorDescription());
}
catch (Exception e) {
    e.printStackTrace();
    System.out.println(e.getMessage());
}

Como obter as credenciais Client-Id e Client-Secret

Crie uma nova aplicação para usar a API Gerencianet:

  1. Acesse o painel da Gerencianet no menu API.
  2. No canto esquerdo, clique em Minhas Aplicações depois em Nova Aplicação.
  3. Insira um nome para a aplicação, ative a API de emissões (Boletos e Carnês) e API Pix, e escolha os escopos que deseja liberar em Produção e/ou Homologação conforme sua necessidade (lembrando que estes podem ser alterados posteriormente).
  4. Clique em Criar Nova aplicação.

Crie uma nova aplicação para usar a API Gerencianet

Alterar uma aplicação existente para usar a API Pix:

  1. Acesse o painel da Gerencianet no menu API.
  2. No canto esquerdo, clique em Minhas Aplicações, escolha a sua aplicação e clique no botão Editar (Botão laranja).
  3. Ative API Pix e escolha os escopos que deseja liberar em Produção e/ou Homologação conforme sua necessidade (lembrando que estes podem ser alterados posteriormente)
  4. Clique em Atualizar aplicação.

Alterar uma aplicação existente para usar a API Pix

Como gerar um certificado Pix

Todas as requisições do Pix devem conter um certificado de segurança que será fornecido pela Gerencianet dentro da sua conta, no formato PFX(.p12). Essa exigência está descrita na íntegra no manual de segurança do PIX.

Para gerar seu certificado:

  1. Acesse o painel da Gerencianet no menu API.
  2. No canto esquerdo, clique em Meus Certificados e escolha o ambiente em que deseja o certificado: Produção ou Homologação.
  3. Clique em Novo Certificado.

Para gerar seu certificado

Como cadastrar as chaves Pix

O cadastro das chaves Pix pode ser feito através do aplicativo da Gerencianet ou por um endpoint da API. A seguir você encontra os passos de como registrá-las.

Cadastrar chave Pix pelo aplicativo mobile:

Caso ainda não tenha nosso aplicativo instalado, clique em Android ou iOS, de acordo com o sistema operacional do seu smartphone, para fazer o download.

Para registrar suas chaves Pix por meio do aplicativo:

  1. Acesse sua conta através do app Gerencianet.
  2. No menu lateral, toque em Pix para iniciar seu registro.
  3. Leia as informações que aparecem na tela e clique em Registrar Chave. Se este não for mais seu primeiro registro, toque em Minhas Chaves e depois no ícone (➕).
  4. Selecione os dados que você vai cadastrar como Chave do Pix e toque em avançar – você deve escolher pelo menos 1 das 4 opções de chaves disponíveis (celular, e-mail, CPF e/ou chave aleatória).
  5. Após cadastrar as chaves do Pix desejadas, clique em concluir.
  6. Pronto! Suas chaves já estão cadastradas com a gente.

Cadastrar chave Pix através da API:

O endpoint utilizado para criar uma chave Pix aleatória (evp), é o POST /v2/gn/evp (Criar chave evp). Um detalhe é que, através deste endpoint é realizado o registro somente de chaves Pix do tipo aleatória.

Para consumí-lo, basta executar o exemplo /examples/pix/key/create.php da nossa SDK. A requisição enviada para esse endpoint não precisa de um body.

A resposta de exemplo abaixo representa Sucesso (201), apresentando a chave Pix registrada.

{
  "chave": "345e4568-e89b-12d3-a456-006655440001"
}

Licença

MIT

gn-api-sdk-android's People

Contributors

franciscotfmc avatar guilhermecotagn avatar thomazfeitoza avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gn-api-sdk-android's Issues

javax.net.ssl.SSLHandshakeException: Chain validation failed

Há previsão de correção?

br.com.gerencianet.gnsdksample W: javax.net.ssl.SSLHandshakeException: Chain validation failed
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:229)
br.com.gerencianet.gnsdksample W: at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:338)
br.com.gerencianet.gnsdksample W: at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:123)
br.com.gerencianet.gnsdksample W: at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:147)
br.com.gerencianet.gnsdksample W: at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
br.com.gerencianet.gnsdksample W: at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
br.com.gerencianet.gnsdksample W: at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
br.com.gerencianet.gnsdksample W: at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
br.com.gerencianet.gnsdksample W: at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:147)
br.com.gerencianet.gnsdksample W: at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:178)
br.com.gerencianet.gnsdksample W: at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:109)
br.com.gerencianet.gnsdksample W: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
br.com.gerencianet.gnsdksample W: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
br.com.gerencianet.gnsdksample W: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
br.com.gerencianet.gnsdksample W: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
br.com.gerencianet.gnsdksample W: at java.lang.Thread.run(Thread.java:764)
br.com.gerencianet.gnsdksample W: Caused by: java.security.cert.CertificateException: Chain validation failed
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.TrustManagerImpl.verifyChain(TrustManagerImpl.java:707)
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:539)
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:560)
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:605)
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:495)
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:418)
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:339)
br.com.gerencianet.gnsdksample W: at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94)
br.com.gerencianet.gnsdksample W: at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:88)
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:208)
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.ConscryptFileDescriptorSocket.verifyCertificateChain(ConscryptFileDescriptorSocket.java:404)
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:375)
br.com.gerencianet.gnsdksample W: at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:224)

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.