No commit activity in last 3 years
No release in over 3 years
Gem desenvolvida para atender aos requisitos do moip api de assinaturas
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 3.2.12, ~> 3.2.12
>= 0.11.0, ~> 0.11.0
>= 0.6.1, ~> 0.6.1
>= 1.7.7, ~> 1.7.7

Runtime

>= 3.2.12
>= 0.11.0
>= 0.6.1, ~> 0.6.1
>= 1.7.7
 Project Readme

API MOIP ASSINATURAS

Introdução

Gem desenvolvida para consumir a API BETA do Moip Assinaturas Brasil,
a gem segue as especificações do MOIP apresentadas neste endereço:
http://moiplabs.github.io/assinaturas-docs/api.html

Gem Version

Configurando

Instalando a gem

$ gem install api-moip-assinaturas

Gemfile

gem 'api-moip-assinaturas', :git => 'git://github.com/xdougx/api-moip-assinaturas.git', :require => 'moip'

Initializer

# myapp/config/initializers/moip_assinaturas.rb
require 'moip'
require 'moip/configuration'

Moip.configure do |config|
  config.token = "your secret token"
  config.acount_key = "your secret key"
end 

Planos
Inicialmente você vai precisar cadastrar os planos de assinaturas para seus clientes, vamos a um exemplo:

# amount e setup_fee são em centavos
# http://moiplabs.github.io/assinaturas-docs/api.html#criar_plano
params = { 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 }

plan = Moip::Plan.build params

if plan.create
	# do some awesome things
else
	raise Exception.new plan.errors.full_messages.first
end

Para consultar um plano é bem simples:

  plan = Moip::Plan.new
  plan.find "plano01"
  
  puts plan.name
  # => Plano Especial

Caso precise atualizar o seu plano

  plan = Moip::Plan.new
  plan.find "plano01"
  
  plan.name = "Plano Muito Especial"
  # => Plano Muito Especial
  
  begin
    plan.update
  rescue Exception => error
    puts error.message
  end

Desativar um plano:

  plan = Moip::Plan.new
  plan.find "plano01"
  
  # só será possivel se não haver nenhuma assinatura ativa
  plan.inactivate
  # => true

Ativar um plano:

  plan = Moip::Plan.new
  plan.find "plano01"
  
  plan.activate
  # => true

Usando os Webhooks

A classe Moip::Webhooks foi desenvolvida para ser bem simples de ser usada então veja um exemplo do seu uso:

# como eu costumo usar o rails então
class WebhooksController < ApplicationController
  def moip
    json =  JSON.parse(request.body.read) # hash
    
    # http://moiplabs.github.io/assinaturas-docs/webhooks.html
    # hook.on :model, :event => todo hook enviado pelo moip possui um dado chamado event
    # o valor dele sempre contém model.method, veja a página de webhooks para maiores informações
    # sobre os eventos
    Moip::Webhooks.listen json do |hook|
      # quando o moip envia dado sobre a criação de um plano
      hook.on :plan, :created do
        # quero criar avisar o meu chefe
        # hook.resource pode ser um Plan, Customer, Subscription
        # Invoice ou Payment
        BossMailer.avisa_criacao_de_um_novo_plano(hook.resource).deliver
      end
      
      hook.on :payment, :status_updated do
        # quando o pagamento do meu cliente está confirmado
        if hook.resource.status[:code] == 4
          # vou avisar o meu chefe támbem
          BossMailer.pagamento_do_cliente_confirmado(hook.resource).deliver
          # vou avisar o meu cliente que a assinatura dele está em dia
          ClientMailer.avisa_confirmacao_pagamento(hook.resource).deliver
        end
      end
      
      hook.on :subscription, :created do
        BossMailer.avisa_novo_cliente(hook.resource).deliver
      end
      
    end
    render :text => "done ok"
  end
end

Desenvolvido por: