Cobrancas online na sua aplicacao com MoIP

Preview:

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/