Skip to content

Ruby Gem para uso do serviço de assinaturas do Moip

License

Notifications You must be signed in to change notification settings

easyaula/moip-assinaturas

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Moip Assinaturas

Essa gem permite utilizar a API do Moip Assinaturas.

O Moip Assinaturas permite que você faça cobranças de forma automática, no valor e intervalo que escolher por meio da criação de planos.

http://site.moip.com.br/assinaturas/

Instalação

Adicione a Gem no Gemfile da sua aplicação:

gem 'moip-assinaturas'

Então execute:

$ bundle

Ou instale você mesmo:

$ gem install moip-assinaturas

Configuração

Use o generator para gerar o arquivo de inicialização do Rails

$ rails g moip_assinaturas:install

Configure a sua conta

Moip::Assinaturas.config do |config|
  config.sandbox = false
  config.token   = "SEU TOKEN"
  config.key     = "SUA KEY"
end

Usando

Exemplo da criação de um novo plano usando a API do Moip

plan = {
  code: "plano01",
  name: "Plano Especial",
  description: "Descrição do Plano Especial",
  amount: 990,
  setup_fee: 500,
  max_qty: 1,
  interval: {
    length: 1,
    unit: "MONTH"
  },
  billing_cycles: 12
}

request = Moip::Assinaturas::Plan.create(plan)

if request[:success]
  # O plano foi criado com sucesso
else
  # Houve um erro ao gravar o plano, dê uma olhada em request[:errors]
end

O uso é bem simples, basta seguir a API para obter os atributos específicos de cada método. http://moiplabs.github.io/assinaturas-docs/api.html

Planos

Criar um novo plano:

Moip::Assinaturas::Plan.create(plan_attributes)

Listar todos planos:

Moip::Assinaturas::Plan.list

Obter detalhes do plano:

Moip::Assinaturas::Plan.details(plan_code)

Clientes

Criar um novo cliente:

Moip::Assinaturas::Customer.create(customer_attributes, new_valt = true)

Listar todos clientes:

Moip::Assinaturas::Customer.list

Obter detalhes do cliente:

Moip::Assinaturas::Customer.details(customer_code)

Assinaturas

Criar uma nova assinatura:

Moip::Assinaturas::Subscription.create(subscription_attributes, new_customer = false)

Listar todas assinaturas:

Moip::Assinaturas::Subscription.list

Obter detalhes da assinatura:

Moip::Assinaturas::Subscription.details(subscription_code)

Suspender uma assinatura:

Moip::Assinaturas::Subscription.suspend(subscription_code)

Ativar uma assinatura:

Moip::Assinaturas::Subscription.activate(subscription_code)

Faturas

Listar faturas de uma assinatura:

Moip::Assinaturas::Invoice.list(subscription_code)

Obter detalhes da fatura:

Moip::Assinaturas::Invoice.details(invoice_id)

Pagamentos

Listar pagamentos de uma cobrança:

Moip::Assinaturas::Payment.list(invoice_id)

Obter detalhes de um pagamento:

Moip::Assinaturas::Invoice.details(payment_id)

Webhooks

A classe Webhooks foi desenvolvida para cobrir qualquer caso de envio do Moip. Um exemplo de como ela é utilizada.

# como eu costumo usar o rails então
class WebhooksController < ApplicationController
  def webhooks
    Moip::Assinaturas::Webhooks.listen(request) do |hook|

      # quando o moip envia dado sobre a criação de um plano
      hook.on(:plan, :created) do
        # Fazer algo
      end

      hook.on(:payment, :status_updated) do
        # quando o pagamento do meu cliente está confirmado
        if hook.resource['status']['code'] == 4
          # Fazer algo
        end
      end

      hook.on(:subscription, :created) do
        # Fazer algo
      end
    end
    render :text => "done ok"
  end
end

A ideia da arquitetura da classe Webhooks foi baseada na gem - https://github.com/xdougx/api-moip-assinaturas - substituindo os objetos daquela gem por hashs

Contribuindo

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Agradecimentos

Gem baseada no código da gem de pagamentos do Guilherme Nascimento - https://github.com/guinascimento/moip-ruby

About

Ruby Gem para uso do serviço de assinaturas do Moip

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%