Coder Social home page Coder Social logo

douglara / boletosimples-ruby Goto Github PK

View Code? Open in Web Editor NEW

This project forked from boletosimples/boletosimples-ruby

0.0 0.0 0.0 196 KB

Biblioteca Ruby para API do Boleto Simples

Home Page: http://api.boletosimples.com.br

License: MIT License

Ruby 100.00%

boletosimples-ruby's Introduction

Boleto Simples Ruby

Gem Version Build Status Coverage Status

Biblioteca Ruby para acessar informações do Boleto Simples através da API.

Instalação

Adicione a linha a baixo no seu Gemfile:

gem 'boletosimples'

Execute:

$ bundle install

Ou instale você mesmo:

$ gem install boletosimples

Configuração

require 'boletosimples'

BoletoSimples.configure do |c|
  c.environment = :production # defaut :sandbox
  c.access_token = 'access-token'
end

Variáveis de ambiente

Você também pode configurar as variáveis de ambiente a seguir e não será necessário chamar BoletoSimples.configure

ENV['BOLETOSIMPLES_ENV']
ENV['BOLETOSIMPLES_APP_ID']
ENV['BOLETOSIMPLES_APP_SECRET']
ENV['BOLETOSIMPLES_ACCESS_TOKEN']

Configurando cache

É altamente recomendável utilizar o cache para evitar chegar no limite de requisições

Para isso recomendamos a utilização da gem Dalli

Exemplo:

  require 'dalli'

  BoletoSimples.configure do |c|
    c.cache = ActiveSupport::Cache.lookup_store(:dalli_store, ['localhost:11211'], namespace: 'boletosimples_client', compress: true)
  end

Exemplos

Boletos Bancários

# Criar um boleto
@bank_billet = BoletoSimples::BankBillet.create({
  amount: 9.01,
  description: 'Despesas do contrato 0012',
  expire_at: '2014-01-01',
  customer_address: 'Rua quinhentos',
  customer_address_complement: 'Sala 4',
  customer_address_number: '111',
  customer_city_name: 'Rio de Janeiro',
  customer_cnpj_cpf: '012.345.678-90',
  customer_email: '[email protected]',
  customer_neighborhood: 'Sao Francisco',
  customer_person_name: 'Joao da Silva',
  customer_person_type: 'individual',
  customer_phone_number: '2112123434',
  customer_state: 'RJ',
  customer_zipcode: '12312-123'
})

# Criar um novo boleto instanciando o objeto
@bank_billet = BoletoSimples::BankBillet.new(amount: 199.99, expire_at: '2020-01-01')
@bank_billet.description = 'Cobrança XPTO'
@bank_billet.save

# Mensagens de erro na criação do boleto
@bank_billet = BoletoSimples::BankBillet.create(amount: 199.99)
@bank_billet.response_errors
  # {:expire_at=>["não pode ficar em branco", "não é uma data válida"], :customer_person_name=>["não pode ficar em branco"], :customer_cnpj_cpf=>["não pode ficar em branco", "não é um CPNJ ou CPF válido"], :description=>["não pode ficar em branco"], :customer_zipcode=>["não pode ficar em branco"]

# Pegar informações de um boleto
@bank_billet = BoletoSimples::BankBillet.find(1) # onde 1 é o id do boleto.

 # Se o não for encontrado nenhum boleto com o id informado, uma exceção será levantada com a mensagem:
 # Couldn't find BankBillet with 'id'=1

# Listar os boletos
@bank_billets = BoletoSimples::BankBillet.all(page: 1, per_page: 50)
@bank_billets.each do |bank_billet|
  puts bank_billet.attributes
end

 # Após realizar a chamada na listagem, você terá acesso aos seguintes dados:

BoletoSimples.last_request.total # número total de boletos
BoletoSimples.last_request.links[:first] # url da primeira página
BoletoSimples.last_request.links[:prev] # url da página anterior
BoletoSimples.last_request.links[:next] # url da próxima página
BoletoSimples.last_request.links[:last] # url da última página

# Cancelar um boleto
@bank_billet = BoletoSimples::BankBillet.find(1)
@bank_billet.cancel

Clientes

# Criar um cliente
@customer = BoletoSimples::Customer.create({
  person_name: "Joao da Silva",
  cnpj_cpf: "012.345.678-90",
  email: "[email protected]",
  address: "Rua quinhentos",
  city_name: "Rio de Janeiro",
  state: "RJ",
  neighborhood: "bairro",
  zipcode: "12312-123",
  address_number: "111",
  address_complement: "Sala 4",
  phone_number: "2112123434"
})

# Mensagens de erro na criação do cliente
@customer = BoletoSimples::Customer.new(person_name: '')
@customer.response_errors
  # {:person_name=>["não pode ficar em branco"], :cnpj_cpf=>["não pode ficar em branco"], :zipcode=>["não pode ficar em branco"]}

# Listar os clientes
@customers = BoletoSimples::Customer.all(page: 1, per_page: 50)
@customers.each do |customer|
  puts customer.attributes
end

 # Após realizar a chamada na listagem, você terá acesso aos seguintes dados:

BoletoSimples.last_request.total # número total de clientes
BoletoSimples.last_request.links[:first] # url da primeira página
BoletoSimples.last_request.links[:prev] # url da página anterior
BoletoSimples.last_request.links[:next] # url da próxima página
BoletoSimples.last_request.links[:last] # url da última página

# Atualizar um cliente
@customer = BoletoSimples::Customer.find(1)
@customer.person_name = 'Novo nome'
@customer.save

Extrato

# Listar todas as transações
@transactions = BoletoSimples::Transaction.all
@transactions.each do |transaction|
  puts transaction.attributes
end

Extras

# Dados do usuário logado
@userinfo = BoletoSimples::Extra.userinfo

OAuth 2.0 Authentication (para acessar as contas dos usuários)

Comece solicitando um cadastro de OAuth 2.0 application

boletosimples-ruby's People

Contributors

dirceu-jr avatar kivanio avatar marcioj avatar rafaelp avatar tiutalk avatar williamweckl 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.