MoIP

Esta Gem permite utilizar a API do MoIP, gateway de pagamentos do IG.

Pagamento direto

O Pagamento Direto é um recurso que a MoIP disponibiliza para aqueles clientes que necessitam de uma flexibilidade maior do que a Integração HTML pode oferecer.

Diferentemente de como é feito com a Integração HTML, seu cliente não precisa ser redirecionado para o site da MoIP para concluir a compra: tudo é feito dentro do ambiente do seu site, dando ao cliente uma maior segurança e confiança no processo.

As formas de pagamento disponibilizadas pela Gem são:

  • Boleto
  • Débito
  • Cartão de Crédito

Instalação

Instale a Gem gem install moip

Adicione a Gem ao Gemfile gem "moip"

Utilização

O MoIP possui uma SandBox de testes que permite a simulação de pagamentos. Para utilizar a Gem com o SandBox, adicione a seguinte configuração no arquivo do environment que deseja utilizar.

config/environments/development.rb

MoIP.setup do |config|
  config.uri = https://desenvolvedor.moip.com.br/sandbox
  config.token = SEU_TOKEN
  config.key = SUA_KEY
end

Após realizar os testes na SandBox, você poderá fazer a mudança para o ambiente de produção do MoIP de maneira simples. Basta inserir no arquivo de environment de produção o token e chave que serão utilizados. Por padrão a gem já utiliza a URI de produção do MoIP.

Crie os dados do pagador

pagador = { :nome => "Luiz Inácio Lula da Silva",
            :login_moip => "lula",
            :email => "[email protected]",
            :tel_cel => "(61)9999-9999",
            :apelido => "Lula",
            :identidade => "111.111.111-11",
            :logradouro => "Praça dos Três Poderes",
            :numero => "0",
            :complemento => "Palácio do Planalto",
            :bairro => "Zona Cívico-Administrativa",
            :cidade => "Brasília",
            :estado => "DF",
            :pais => "BRA",
            :cep => "70100-000",
            :tel_fixo => "(61)3211-1221" }

Dados do boleto

boleto = { :valor => "50",
           :id_proprio => "Pag#{rand(1000)}",
           :forma => "BoletoBancario",
           :dias_expiracao => 5,
           :pagador => pagador }

Checkout

def checkout
  response = MoIP::Client.checkout(boleto)

  # exibe o boleto para impressão
  redirect_to MoIP::Client.moip_page(response["Token"])
end

Erros

  • MoIP::MissingPaymentTypeError - Quando falta a razão do pagamento na requisição.
  • MoIP::MissingPayerError - Quando falta as informações do pagador na requisição.
  • MoIP::WebServerResponseError - Quando há algum erro ao se enviar a solicitação ao servidor. Normalmente a razão do erro vem como resposta da mensagem.

Futuras implementações

  • Pagamento Simples
  • Pagamento Recorrente

Baseado no projeto do Daniel Lopes.