Upload
herberth-amaral
View
2.195
Download
3
Embed Size (px)
Citation preview
Cobranças online na sua aplicação com MoIP
http://labs.moip.com.br/
MoIP?
• Intermediador de pagamentos
MoIP?
• Intermediador de pagamentos.o Alguém que recebe os pagamentos por você e os
repassa no futuro.
MoIP?
• Intermediador de pagamentos.o Alguém que recebe os pagamentos por você e os
repassa no futuro.o Interessante para quem quer evitar burocracia com
pagamentos online.
MoIP?
• Intermediador de pagamentos.o Alguém que recebe os pagamentos por você e os
repassa no futuro.o Interessante para quem quer evitar burocracia com
pagamentos online.o Solução preferida para Startups e pequenos/médios
negócios.
MoIP?
• Intermediador de pagamentos.o Alguém que recebe os pagamentos por você e os
repassa no futuro.o Interessante para quem quer evitar burocracia com
pagamentos online.o Solução preferida para Startups e pequenos/médios
negócios.o Outras funcionalidades interessantes (comissionamento,
cobrança/débito recorrente, doações, etc)
MoIP?
• Principais vantagens sobre outros intermediadores
MoIP?
• Principais vantagens sobre outros intermediadores.o API simplificada e funcional.
MoIP?
• Principais vantagens sobre outros intermediadores.o API simplificada e funcional.o Amigável ao desenvolvedor.
MoIP?
• Principais vantagens sobre outros intermediadores.o API simplificada e funcional.o Amigável ao desenvolvedor.o Flexibilidade nas formas de pagamento.
MoIP?
• Principais vantagens sobre outros intermediadores.o API simplificada e funcional.o Amigável ao desenvolvedor.o Flexibilidade nas formas de pagamento.o PagamentoDireto.
MoIPLabs
MoIPLabs
• Laboratório criado pela MoIP com o intuito de auxiliar desenvolvedores e incentivar colaboração.
MoIPLabs
• Laboratório criado pela MoIP com o intuito de auxiliar desenvolvedores e incentivar colaboração.o Github (http://github.com/moiplabs/)
MoIPLabs
• Laboratório criado pela MoIP com o intuito de auxiliar desenvolvedores e incentivar colaboração.o Github (http://github.com/moiplabs/)o Forum (http://labs.moip.com.br/forum/)
Métodos de Integração
Ou: como funciona na prática?
Dois ambientes básicos
• Sandbox
Dois ambientes básicos
• Sandboxo feito pra testes.
Dois ambientes básicos
• Sandboxo feito pra testes.o sem envolvimento de valores reais.
Dois ambientes básicos
• Sandboxo feito pra testes.o sem envolvimento de valores reais.
• Produçãoo Envolvimento de valores reais.
Dois ambientes básicos
• Sandboxo feito pra testes.o sem envolvimento de valores reais.
• Produçãoo Envolvimento de valores reais.o Só deve ser utilizado quando a aplicação for validada no
sandbox.
Duas formas básicas
• HTML
Duas formas básicas
• HTML• API
HTML
• É a mais simples das duas.
HTML
• É a mais simples das duas.• Consiste em um formulário HTML que, quando submetido
ao MoIP, mostra a página de checkout.
HTML
• É a mais simples das duas.• Consiste em um formulário HTML que, quando submetido
ao MoIP, mostra a página de checkout.• Sem necessidade de conhecimentos de programação.
HTML
• É a mais simples das duas.• Consiste em um formulário HTML que, quando submetido
ao MoIP, mostra a página de checkout.• Sem necessidade de conhecimentos de programação.
o Se o usuário souber copiar/colar HTML dentro do seu blog/site/cms.
HTML
• É a mais simples das duas.• Consiste em um formulário HTML que, quando submetido
ao MoIP, mostra a página de checkout.• Sem necessidade de conhecimentos de programação.
o Se o usuário souber copiar/colar HTML dentro do seu blog/site/cms.
• GET e POST
HTML
• É a mais simples das duas.• Consiste em um formulário HTML que, quando submetido
ao MoIP, mostra a página de checkout.• Sem necessidade de conhecimentos de programação.
o Se o usuário souber copiar/colar HTML dentro do seu blog/site/cms.
• GET e POSTo Pode-se usar formulários ou links com os parâmetros
requeridos.
HTML
• É a mais simples das duas.• Consiste em um formulário HTML que, quando submetido
ao MoIP, mostra a página de checkout.• Sem necessidade de conhecimentos de programação.
o Se o usuário souber copiar/colar HTML dentro do seu blog/site/cms.
• GET e POSTo Pode-se usar formulários ou links com os parâmetros
requeridos.o GET é interessante para emails e assinaturas de fórum.
HTML
• É a mais simples das duas.• Consiste em um formulário HTML que, quando submetido
ao MoIP, mostra a página de checkout.• Sem necessidade de conhecimentos de programação.
o Se o usuário souber copiar/colar HTML dentro do seu blog/site/cms.
• GET e POSTo Pode-se usar formulários ou links com os parâmetros
requeridos.o GET é interessante para emails e assinaturas de fórum.o POST é interessante para páginas Web comuns.
HTML - Exemplo de form de doação
<form method='post' action='https://desenvolvedor.moip.com.br/sandbox/Process.do'><input type='hidden' name='method' value='donation'/><input type='hidden' name='donation_id' value='35'/><input type='hidden' name='type' value='2'/><input type='image' name='submit' src='https://desenvolvedor.moip.com.br/sandbox/imgs/buttons/bt_doar_c01_e01.png' alt='Ajude a manter o blog!' border='0' /></form>
Resultado:
HTML - Exemplo de link de doação
<a href="https://desenvolvedor.moip.com.br/sandbox/Process.do?method=donation&donation_id=35&type=2"> <img src="https://desenvolvedor.moip.com.br/sandbox/imgs/buttons/bt_doar_c01_e01.png" alt="Ajude a manter o blog!" /></a>
Resultado:
Mais ferramentas de integração HTML
• Carrinho de Compras MoIP.
Mais ferramentas de integração HTML
• Carrinho de Compras MoIP.• Pagamento Simples.
Mais ferramentas de integração HTML
• Carrinho de Compras MoIP.• Pagamento Simples.• Veja nosso canal no Youtube para mais exemplos:
http://www.youtube.com/user/MoIPOficial
HTML
• Desvantagenso Usuário pode ver detalhes da transação.
HTML
• Desvantagenso Usuário pode ver detalhes da transação.o Possível modificar parâmetros importantes (como valor
do pagamento).
HTML
• Desvantagenso Usuário pode ver detalhes da transação.o Possível modificar parâmetros importantes (como valor
do pagamento).o "Never trust user data" - Provérbio Chinês ;)
API
• Comunicação Servidor -> Servidor
API
• Comunicação Servidor -> Servidoro O cliente não "vê" a transação ocorrendo.
API
• Comunicação Servidor -> Servidoro O cliente não "vê" a transação ocorrendo.o Mais segura.
API
• Comunicação Servidor -> Servidoro O cliente não "vê" a transação ocorrendo.o Mais segura.
• Mais funcionalidades.
API
• Comunicação Servidor -> Servidoro O cliente não "vê" a transação ocorrendo.o Mais segura.
• Mais funcionalidades.o PagamentoDireto.
API
• Comunicação Servidor -> Servidoro O cliente não "vê" a transação ocorrendo.o Mais segura.
• Mais funcionalidades.o PagamentoDireto.o Comissionamento de vendedores.
API
• Comunicação Servidor -> Servidoro O cliente não "vê" a transação ocorrendo.o Mais segura.
• Mais funcionalidades.o PagamentoDireto.o Comissionamento de vendedores.o Instruções adicionais (formas múltiplas de pagamento,
dados do boleto,parcelamento e juros, URL de notificação, etc).
API
Instrucao XML
1. <EnviarInstrucao>2. <InstrucaoUnica>3. <Razao>COLOQUE A RAZAO DO PAGAMENTO</Razao>4. <IdProprio>12345</IdProprio>5. <Valores>6. <Valor moeda="BRL">123.45</Valor>7. </Valores>8. </InstrucaoUnica>9. </EnviarInstrucao>
URLs de envio das instruções
• Cada ambiente (sandbox/producao) tem uma URL de envio de instruções e de redirecionamento de clientes.
Enviando instrução XML com cURL
curl -X POST -u seu_token:sua_key \-d "<EnviarInstrucao><InstrucaoUnica>\<Razao>COLOQUE A RAZAO DO PAGAMENTO</Razao> \<IdProprio>abc-12345</IdProprio><Valores><Valor moeda='BRL'>123.45</Valor> \</Valores></InstrucaoUnica></EnviarInstrucao>" \
https://desenvolvedor.moip.com.br/sandbox/ws/alpha/EnviarInstrucao/Unica
Enviando instrução XML com cURL
curl -X POST -u seu_token:sua_key \-d "<EnviarInstrucao><InstrucaoUnica>\<Razao>COLOQUE A RAZAO DO PAGAMENTO</Razao> \<IdProprio>abc-12345</IdProprio><Valores><Valor moeda='BRL'>123.45</Valor> \</Valores></InstrucaoUnica></EnviarInstrucao>" \
https://desenvolvedor.moip.com.br/sandbox/ws/alpha/EnviarInstrucao/Unica
<ns1:EnviarInstrucaoUnicaResponse xmlns:ns1="http://www.moip.com.br/ws/alpha/"><Resposta><ID>201102161007584830000000082983</ID><Status>Sucesso</Status><Token>C2L0S161W0X2E196J1H0Y0J7O5K8M408L3Q050N0X0R0F0O0M0F8G2L9J8X3</Token></Resposta></ns1:EnviarInstrucaoUnicaResponse>
Resposta do servidor MoIP:
Enviando instrução XML com cURL
curl -X POST -u seu_token:sua_key \-d "<EnviarInstrucao><InstrucaoUnica>\<Razao>COLOQUE A RAZAO DO PAGAMENTO</Razao> \<IdProprio>abc-12345</IdProprio><Valores><Valor moeda='BRL'>123.45</Valor> \</Valores></InstrucaoUnica></EnviarInstrucao>" \
https://desenvolvedor.moip.com.br/sandbox/ws/alpha/EnviarInstrucao/Unica
<ns1:EnviarInstrucaoUnicaResponse xmlns:ns1="http://www.moip.com.br/ws/alpha/"><Resposta><ID>201102161007584830000000082983</ID><Status>Sucesso</Status><Token>C2L0S161W0X2E196J1H0Y0J7O5K8M408L3Q050N0X0R0F0O0M0F8G2L9J8X3</Token></Resposta></ns1:EnviarInstrucaoUnicaResponse>
Resposta do servidor MoIP:
Enviando instrução XML com cURL
curl -X POST -u seu_token:sua_key \-d "<EnviarInstrucao><InstrucaoUnica>\<Razao>COLOQUE A RAZAO DO PAGAMENTO</Razao> \<IdProprio>abc-12345</IdProprio><Valores><Valor moeda='BRL'>123.45</Valor> \</Valores></InstrucaoUnica></EnviarInstrucao>" \
https://desenvolvedor.moip.com.br/sandbox/ws/alpha/EnviarInstrucao/Unica
<ns1:EnviarInstrucaoUnicaResponse xmlns:ns1="http://www.moip.com.br/ws/alpha/"><Resposta><ID>201102161009171260000000082984</ID><Status>Falha</Status><Erro Codigo="102">Id Próprio já foi utilizado em outra Instrução</Erro></Resposta></ns1:EnviarInstrucaoUnicaResponse>
Resposta do servidor MoIP (falha):
Redirecionando cliente para página de checkout• O cliente deve ser redirecionado para o seguinte endereço:
https://desenvolvedor.moip.com.br/sandbox/Instrucao.do?token=token_de_resposta• No nosso caso ficaria assim:
https://desenvolvedor.moip.com.br/sandbox/Instrucao.do?token=C2L0S161W0X2E196J1H0Y0J7O5K8M408L3Q050N0X0R0F0O0M0F8G2L9J8X3
Redirecionando cliente para página de checkout• O cliente deve ser redirecionado para o seguinte endereço:
https://desenvolvedor.moip.com.br/sandbox/Instrucao.do?token=token_de_resposta• No nosso caso ficaria assim:
https://desenvolvedor.moip.com.br/sandbox/Instrucao.do?token=C2L0S161W0X2E196J1H0Y0J7O5K8M408L3Q050N0X0R0F0O0M0F8G2L9J8X3
• Se fosse em produção, seria assim:
https://www.moip.com.br/Instrucao.do?token=C2L0S161W0X2E196J1H0Y0J7O5K8M408L3Q050N0X0R0F0O0M0F8G2L9J8X3
URLs de envio das instruções
• Cada ambiente (sandbox/producao) tem uma URL de envio de instruções e de redirecionamento de clientes.
Produção Sandbox
Envio de instrução http://www.moip.com.br/ws/alpha/EnviarInstrucao/Unica
http://www.moip.com.br/sandbox/ws/alpha/EnviarInstrucao/Unica
Redirecionamento do cliente
https://www.moip.com.br/Instrucao.do?token=token_retornado
https://desenvolvedor.moip.com.br/sandbox/Instrucao.do?token=token_retornado
Paralelo API x HTMLIntegração HTML Integração API
Programação server side é opcional. Programação server side é obrigatória.
Mais simples. Mais complexa.
Em boa parte das vezes, não há necessidade de conhecimentos de programação.
Necessita de conhecimentos de programação (a menos que haja um módulo pronto, como o do Magento, Wordpress ou Prestashop)
Sempre redireciona o cliente para o site do MoIP Se a modalidade de pagamento for o Pagamento Direto, o cliente não precisa sair do seu site
Somente uma URL de retorno do NASP* Várias URLs de retorno do NASP, com possibilidade de uso da mesma conta da MoIP em vários sites.
*NASP - Notificação de alteração de status de pagamento
Colaborando no Github
• Criar um repositório e nos mandar o link.
Colaborando no Github
• Criar um repositório e nos mandar o link.o "forkamos" o repo e você ainda ganha um post no
MoIPLabs :)
Colaborando no Github
• Criar um repositório e nos mandar o link.o "forkamos" o repo e você ainda ganha um post no
MoIPLabs :)• Nos enviar um pull request.
Colaborando no Github
• Criar um repositório e nos mandar o link.o "forkamos" o repo e você ainda ganha um post no
MoIPLabs :)• Nos enviar um pull request.• Reportar uma issue.
Colaborando no Github
• Criar um repositório e nos mandar o link.o "forkamos" o repo e você ainda ganha um post no
MoIPLabs :)• Nos enviar um pull request.• Reportar uma issue.• Todos os repositórios em https://github.com/moiplabs
Reportando issues
Colaborando com código
• Parte 1• Parte 2• Parte 3
Obrigado
*http://www.flickr.com/photos/ringoffirehotsauce/5447095375/