Esta Gem permite utilizar a API do MoIP, gateway de pagamentos do IG.
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
Instale a Gem gem install moip
Adicione a Gem ao Gemfile gem "moip"
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.
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 => "presidente@planalto.gov.br",
: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.
- Pagamento Simples
- Pagamento Recorrente
Baseado no projeto do Daniel Lopes.