APIs e Microsserviços

6 nov, 2013

Testando as APIs PayPal no Sandbox

Publicidade

O PayPal Sandbox é um ambiente isolado, que imita o ambiente de produção. Ele oferece uma forma segura de se efetuar testes de integração, sem envolvimento de contas ou dinheiro, antes de ir para produção.

Utilize o PayPal Sandbox para testar e depurar as rotinas de sua aplicação, que fazem uso das APIs PayPal.

Atenção: Este artigo é um complemento do artigo Utilizando o novo PayPal Sandbox. Caso ainda não tenha tido nenhum contato com o PayPal Sandbox, sugerimos que comece a leitura pelo artigo anterior.

Este guia está dividido em cinco tópicos:

  1. Visão Geral
  2. Criando contas de teste
  3. Gerando as credenciais da API
  4. Fazendo chamadas da API
  5. Indo para produção

Visão geral

O PayPal Sandbox espelha todos os recursos encontrados no ambiente de produção PayPal. Enquanto alguns recursos não são aplicáveis no Sandbox, como fechamento de contas, o Sandbox possui uma paridade com os recursos suportados pelas APIs no ambiente de produção. Isso significa que você pode testar sua integração PayPal e ter a certeza de o comportamento será exatamente o mesmo no ambiente de produção.

No Sandbox, as contas são fictícias. Por isso, é possível testar e depurar sua aplicação sem fazer referência a contas de usuários ou valores reais do ambiente de produção. O Sandbox permite que você teste sua integração de forma segura e permite que você implemente sua integração da melhor forma possível antes de ir para produção.

Ao iniciar uma transação utilizando contas do Sandbox, a PayPal cria um mock da transação, que se comporta exatamente como uma transação no ambiente de produção. Todas as transações do Sandbox são acompanháveis no site de teste do Sandbox, exatamente como no ambiente de produção são acompanháveis no site de produção.

O ambiente Sandbox

O ambiente Sandbox é composto pelo seguinte:

  • Site Sandbox – Para teste e acompanhamento de histórico de transações;
  • Site Developer – Para criação e gerenciamento de contas fictícias e testes de notificações.

Durante os testes, utilize os endpoints do Sandbox e as credenciais da sua conta de teste em cada requisição que fizer. Crie e gerencie suas contas na página de contas do Developer. Utilize o site Sandbox para visualizar as transações relacionadas com suas chamadas da API.

Dica: Você pode utilizar a mesma senha em todas as contas de teste. Isso facilita na hora de acessar o site Sandbox para visualizar o histórico de transações e revisar o processo de integração.

O processo de teste

O trabalho no Sandbox consiste em criar contas de teste de cliente para cada caso de uso da sua aplicação. Abaixo, um sumário do processo de teste:

  • Crie uma conta PayPal (de produção) e utilize essa conta para fazer login no site developer;
  • Crie uma série de contas de cliente e vendedor, para simular cada caso de uso da sua aplicação;
  • Configure suas requisições à API para utilizar os detalhes de suas contas e execute as requisições nos endpoints do Sandbox;
  • Revise as respostas e faça os ajustes na sua aplicação, quando necessários;
  • Quando sua aplicação estiver completamente testada, cobrindo todos os casos de uso, e sem bugs, vá para produção apenas modificando as credenciais da API e os endpoints das requisições.

Dica: Quando você cria uma nova conta PayPal, você precisa verificar o e-mail dessa conta antes de utilizá-la. Verifique sua caixa de e-mail e localize o e-mail enviado pela PayPal. Caso não tenha recebido o e-mail em alguns minutos, verifique se não foi bloqueado ou se não foi marcado como spam.

Dica: Quado você estiver criando uma nova conta no Developer, considere criar uma conta que não utilize sua conta de produção. Ao fazer isso, você poderá compartilhar a conta do Developer com outros desenvolvedores, sem que isso comprometa a segurança da sua conta de produção.

Criando contas de teste

Contas de teste no Sandbox, são contas PayPal virtuais, que apenas existem no ambiente Sandbox. Essas contas representam os clientes dos mock de transações que serão criadas enquanto você estiver na fase de testes da sua aplicação. Crie ao menos uma conta de teste para cada caso de uso, quando você estiver testando sua integração com as APIs.

O Sandbox suporta dois tipos diferentes de contas:

  • Pessoal – representa o cliente que está comprando na loja;
  • Vendedor – representa a loja, que está vendendo seus produtos.

Atenção: Para testar uma transação PayPal típica, você precisa de pelo menos uma conta de cliente e uma conta de vendedor. Quando você se registra no Sandbox, uma conta de vendedor é criada automaticamente para facilitar o processo. Entretanto, para testar a integração, você precisará criar pelo menos uma conta de cliente.

Dica: O artigo Utilizando o novo PayPal Sandbox ilustra passo a passo como criar uma conta de teste no Sandbox.

Gerando as credenciais da API

Todas as requisições à API PayPal requer que você utilize credenciais para verificar e garantir que a requisição está sendo feita por uma conta PayPal. As requisições no Sandbox não são diferentes, mas requerem que sejam utilizadas credenciais de teste, que são definidas no Sandbox para suas contas de vendedor.

As credenciais da API podem ser verificadas no ambiente Developer, clicando sobre a conta de vendedor, profile e, então, indo até a aba API credentials:

classicApiCredentials

Atenção: O ambiente Sandbox e o ambiente de produção utilizam credenciais diferentes. Tenha a certeza de utilizar as credenciais corretas dentro do ambiente que estiver trabalhando.

Dica: O artigo Utilizando o novo PayPal Sandbox ilustra passo a passo como gerar as credenciais da API para uma conta de teste no Sandbox

Fazendo chamadas da API

Uma vez configuradas as contas de testes e geradas as credenciais da API, você está pronto para fazer suas requisições no ambiente de testes Sandbox.

Cada API PayPal possui um conjunto de campos específicos, que variam de API para API. Contudo, em todas as requisições, os campos USERPWD e SIGNATURE são comuns e identificam a conta que está fazendo a requisição. Além desses campos, o campo METHOD e VERSION são utilizados para identificar a API e sua versão.

Abaixo, um exemplo de requisição à operação SetExpressCheckout, da API Express Checkout:

USER=API_username&
 PWD=API_password&
 SIGNATURE=API_signature&
 VERSION=106.0&
 METHOD=SetExpressCheckout&
 PAYMENTREQUEST_0_PAYMENTACTION=SALE&
 PAYMENTREQUEST_0_AMT=22.00&
 PAYMENTREQUEST_0_CURRENCYCODE=BRL&
 PAYMENTREQUEST_0_ITEMAMT=22.00&
 PAYMENTREQUEST_0_INVNUM=1234&
 L_PAYMENTREQUEST_0_NAME0=Item+A&
 L_PAYMENTREQUEST_0_DESC0=Produto+A+110V&
 L_PAYMENTREQUEST_0_AMT0=11.00&
 L_PAYMENTREQUEST_0_QTY0=1&
 L_PAYMENTREQUEST_0_ITEMAMT=11.00&
 L_PAYMENTREQUEST_0_NAME1=Item+B&
 L_PAYMENTREQUEST_0_DESC1=Produto+B+220V&
 L_PAYMENTREQUEST_0_AMT1=11.00&
 L_PAYMENTREQUEST_0_QTY1=1&
 RETURNURL=http://PayPalPartner.com.br/VendeFrete?return=1&
 CANCELURL=http://PayPalPartner.com.br/CancelaFrete

Dica: Você pode utilizar o API Explorer para fazer testes de requisição de uma API PayPal. O API Explorer permite que você visualize a requisição e resposta das APIs, que poderão ajudá-lo na integração ou depuração da integração. Acesso o API Explorer através da seguinte URL: API Explorer

Indo para produção

Ao terminar a integração, você precisará migrar seu código para o ambiente de produção. Para isso, será necessário atualizar as credenciais da API e os endpoints. Abaixo, um sumário do processo de migração para produção:

  • Crie uma conta no ambiente de produção: https://www.paypal.com/;
  • Gere as credenciais da API para o ambiente de produção. Veja o seguinte passo a passo: Gerar as credenciais da API;
  • Atualize as credenciais da API no seu código;
  • Atualize os endpoints da API no seu código. Abaixo, os endpoints de produção:
    • Endpoint da API – https://api-3t.paypal.com/nvp.
    • Endpoint do redirecionamento – https://www.paypal.com/cgi-bin/webscr?cmd=_expresscheckout&useraction=commit&token={TOKEN}.