Integração de pagamento no Ruby On Rails com Moip (passo a passo)

Utilizando o MOIP em uma aplicação Rails

Amigos developers, neste artigo veremos uma aplicação introdutória usando o método de pagamento do Moip, para comprar um ingresso para o evento OneBitConf, uma conferência da Onebitcode.

Calma! ✋ Essa conferência OneBitConf ainda não existe. Usaremos apenas como exemplo, mas futuramente teremos uma OneBitConf 😉

 

Introdução

Vamos criar uma aplicação de amostra, bem simples, enviando um pedido de compra de ingresso para o evento que falamos anteriormente.

Sigam o tutorial e construam a aplicação na seção “Passo a Passo da criação do APP”. Assim, os conceitos, a integração da gem moip2 com Rails e alguns outros detalhes podem ficar mais claros.

Espero que este material seja útil. Aproveitem e deixem uma mensagem. 😊

Bóra ler o post 🚀

 

O que é Moip?

Moip é uma empresa que oferece soluções de pagamento. Sua missão é facilitar pagamentos online, offline e mobile, viabilizando o recebimento de pagamentos em vários canais de venda.

Mas MOIP também é o nome da gem que facilita o uso das APIs disponibilizadas pela empresa Moip. A gem moip2 é um cliente em Ruby para integração server-side com APIs Moip v2.

Segundo o próprio site desta gem, usando a gem moip2, é o jeito mais simples e rápido de integrar o Moip a uma aplicação Ruby.

 

O que vamos criar?

A aplicação que vamos criar aqui, é apenas um exemplo. É uma amostra, porém, suficiente para enviarmos um pedido de compra de ingresso para um evento. Dessa forma, mostraremos como utilizar o básico da gem da Moip.

Vamos criar também, uma conta tipo “sandbox” no site da Moip, para termos “Chaves de Acesso” aos serviços Moip.

Uma conta “sandbox” é específica para testes de desenvolvimento como esse que estamos fazendo e não implica em custos 💰. Fique tranquilo, você terá que criar a sua conta, mas não pagará nada. 😊

A conta Moip “sandbox” é uma conta totalmente separada da conta Moip Produção, caso você tenha essa conta de produção algum dia.

 

Ferramentas:

  • * Rails 5.2
  • * MOIP
  • * moip2 (gem)

 

Links da Moip para desenvolvedores:

  1. Criar conta sandbox: https://bem-vindo-sandbox.moip.com.br
  2. Acessar sua conta sandbox: https://conta-sandbox.moip.com.br
  3. Comandos da API: https://dev.moip.com.br/v2.0/reference
  4. Chaves de acesso: https://conta-sandbox.moip.com.br/configurations/api_credentials
  5. Suporte, caso necessário: https://suporte.moip.com.br/hc/pt-br

 

 

Passo a Passo de criação do App

I – Criar a conta Sandbox

Para criar sua conta sandbox, entre no link https://bem-vindo-sandbox.moip.com.br e forneça os dados necessários. E logo após o cadastro, você terá que confirmar seu email.

É só seguir o processo que logo em seguida, a Moip irá disponibilizar uma conta para você poder usar na aplicação que iremos criar.

Após criar sua conta, você poderá acessa-la usando este link: https://conta-sandbox.moip.com.br

 

II – Obter as chaves de acesso

Para podermos realizar chamadas para as APIs da Moip precisamos ter as chaves de acesso ou ter as chamadas “credenciais de api”.

Então vamos acessar as credenciais da api de sua conta sandbox, e guardar a “chave” e o “token” para usa-los posteriormente.

 

III – Instalação

1. Para nosso projeto, vamos criar uma pasta e entrar dentro dela.

 

2. Execute este passo somente se você usa o gerenciador de versões Ruby, RVM:

 

3. Agora vamos instalar a versão 5.2 do Rails

 

4. Agora vamos efetivamente criar nossa aplicação Rails.

 

5. No Gemfile, inclua a gem:

 

6. Agora instale a gem na aplicação, com o comando:

 

7. E agora o comando para criar o banco:

 

IV – Credenciais

Continuando, vamos atribuir no nosso sistema, as credenciais que guardamos no item “II – Obter as chaves de acesso” e para isso usaremos o recurso do Rails chamado “Credentials”.  

Se você quiser saber mais, temos um ótimo artigo específico: Rails 5.2: Encrypted Credentials (O novo Secrets)

 

1. Abra o arquivo de credenciais com seu editor de preferência, no meu caso é o Vim.

 

2. Agora tenha suas credenciais que pegamos no item “II – Obter as chaves de acesso”. Os valores de token e key (chave) são fictícios, para nosso artigo. Informe as seguintes linhas e depois salve e saia do arquivo:

 

V – Criando a lib Moip

Vamos criar uma “lib”, uma biblioteca para nos permitir acessar as APIs da Moip e dentro dessa nossa biblioteca, ficará a inteligência que nos dará acesso as operações que a Moip disponibiliza via APIs.

 

1. Precisamos dizer ao Rails, que no momento da aplicação entrar no ar, queremos carregar a pasta “lib” e para isso, faça seu arquivo config/application.rb ficar parecido com esse trecho de código:

 

2. Agora crie o arquivo moip.rb dentro da pasta app/libs:

 

3. Esta é a lib que iremos usar.  Apenas copie e cole o trecho de código a seguir para dentro do arquivo app/libs/moip.rb:

 

4. Agora é o momento de saber se o Moip está funcionando 😏. Entre no console do Rails e instancie a lib:

Se aparecer algo como o resultado seguinte, então a nossa lib Moip está funcionando e você pode prosseguir tranquilo 😎

Saia do console do Rails:

 



12 formas de vencer o bloqueio criativo e escrever textos memoráveis (e 6 dicas extras)

Não perca nenhum conteúdo

Receba nosso resumo semanal com os novos posts, cursos, talks e vagas o/



 

VI – Criando controller e views para realizar um pedido de compra

Chegou o momento onde vamos criar a tela ao usuário e para este app faremos somente a parde de pedido de compra com uma tela bem simples, contendo apenas alguns campos. Isso dará uma noção básica e você poderá acrescentar campos necessários quando construir sua aplicação usando o método de pagamento Moip.

 

1. Gerando o controller com as actions new e create.

 

2. Corrigindo as rotas agora. Faça ficar dessa forma o config/routes.rb:

 

3. Abra a view new criada junto com o controller, que é o formulário que irá colher os dados do cliente e do pedido, e a deixe como seguinte conteúdo (app/views/orders/new.html.erb):

 

 

4. A view create é a tela de confirmação do pedido. Deixe com o seguinte conteúdo (app/views/orders/create.html.erb).

 

5. No controller, acrescentaremos alguns dados estão fixos. Quando você criar sua própria aplicação, esses campos fixos, ficarão na view para captar os dados que o usuário informar ou dados do pedido. Deixe o controller OrdersController com o seguinte conteúdo (app/controllers/orders_controller.rb):

 

5. Inicie o servidor do Rails digitando no terminal:

 

6. Visite no seu browser: http://localhost:3000/

 

Esta é a tela do pedido. Estão sendo apresentados dados do pedido e do cliente. Dê um click no botão “confirma” para confirmar o pedido e ir para a próxima tela.

 

 

 

Esta tela a seguir é a que aparece após dar click no botão confirma. O número do pedido que aparece, pode ser usado para fazer uma consulta na tela da Moip.

 

 

 

 

Agora entre na tela da Moip e consulte o pedido que foi gerado para você. É claro que não será o mesmo número gerado neste exemplo.

Para ir diretamente na tela de consulta de pedidos da Moip, acesse este endereço e informe o número do pedido no campo indicado na imagem: https://conta-sandbox.moip.com.br/orders/list

 

 

 

 

VII – Utilizando a solução

Confira no vídeo, como ficou a utilização da nossa aplicação criada nesse artigo e também a consulta do pedido criado, no site da Moip.

 

 

Conclusão

Neste artigo, criamos uma aplicação com uma tela para o cliente fazer um pedido de compra, usando o método de pagamento da Moip em Ruby on Rails com a gem moip2 e acompanhamos na prática a criação da solução, aplicando alguns recursos que a API da empresa Moip disponibiliza.

Na parte teórica do artigo, ficamos sabendo que é necessário ter uma conta na Moip para que essas operações possam ser realizadas. A conta tipo “sandbox” é uma conta para desenvolvedores e usamos esse tipo de conta para este artigo. A conta da Moip para produção, caso você venha a ter, será uma conta separada da conta “sandbox”.

Espero que o artigo seja útil em algum momento, e espero que tenham gostado! 👍

 



12 formas de vencer o bloqueio criativo e escrever textos memoráveis (e 6 dicas extras)

Não perca nenhum conteúdo

Receba nosso resumo semanal com os novos posts, cursos, talks e vagas o/




Primeira vez no OneBitCode? Curtiu esse conteúdo?
O OneBitCode tem muito mais para você!


O OneBitCode traz conteúdos de qualidade, e em português, sobre programação com foco em Ruby on Rails e também JavaScript.
Além disso, aqui sempre levamos à você conteúdos valiosos sobre a carreira de programação, dicas sobre currículos, portfólios, perfil profissional, soft skills, enfim, tudo o que você precisa saber para continuar evoluindo como Programador(a)!

Fique por dentro de todos os conteúdos o/

 

Nossas redes sociais:

📹 • https://youtube.com/Onebitcode [Live todas as terças-feiras às 19h)
💻 • https://linkedin.com/company/onebitcode
🙂 • https://facebook.com/onebitcode
 📱  • https://instagram.com/one_bit_code
🐦 • https://twitter.com/onebitcode

 

Nossos cursos:

🥇 • Programador Full Stack Javascript em 8 Semanas
💎 • Curso Completo de Ruby
 ⚙  • Minicurso: API Rails 5 Completo
🐞 • Minicurso de Testes para Ruby on Rails com RSpec

 

Espero que curta nossos conteúdos e sempre que precisar de ajuda, fala com a gente!
E
stamos aqui para você 🙂

Bem-vindo à família OneBitCode o/

 

0 0 vote
Article Rating
janeiro 17, 2020
Subscribe
Notify of
guest
2 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Cheila
Cheila
7 meses atrás

Olá, Sérgio. Primeiro, obrigada pelo texto. Eu fiz todo o processo conforme indicado e após a submissão obtive meu próprio número de pedido. Mas ao buscar pelo filtro pelo pedido já no painel da Moip/Wirecard, ele me retorna um erro 404. Também não vejo em nenhum lugar o pedido. O que diferiu do seu tutorial é que estou usando rails 6. Você acredita que possa ter algo a ver com isso. (Obs: aquele passo intermediário de verificação no rails console eu fiz e estava ok!) Eis o que obtenho ao submeter o pedido: Started GET “/orders/new” for ::1 at 2020-02-06… Read more »

Cheila
Cheila
7 meses atrás

UPDATE:

após a 2ª tentativa de submeter o form, a view create mostrou esse erro associado (e não gerou novo pedido):

Started GET “/manifest.json” for ::1 at 2020-02-06 18:23:17 -0300
Started POST “/orders” for ::1 at 2020-02-06 18:23:23 -0300
Processing by OrdersController#create as HTML
Parameters: {“authenticity_token”=>”iYLlVs/eZVvwgTK5WYr/XMA3dc3vft94O2FoMPl32h+MSGTOa3Toupeqih0Bop1fGAjIM6qM+AxeVrmKvQloBQ==”, “order”=>{“ownId”=>”pedido-0001”, “product”=>”Ingresso para a OneBitConf”, “customerOwnId”=>”customer-001”, “customerFullName”=>”Jose da Jac”, “customerEmail”=>”jose_da_silva@gmail.com”}}
Completed 500 Internal Server Error in 810ms (ActiveRecord: 0.0ms | Allocations: 2522)

Moip2::NotFoundError (Resource not found):

app/controllers/orders_controller.rb:7:in `create’

Feito com s2 por OneBitCode
2
0
Would love your thoughts, please comment.x
()
x
%d blogueiros gostam disto: