No momento do desenvolvimento da integração com a plataforma Vindi, provavelmente você irá se deparar com a necessidade de cadastrar os dados do cartão de crédito do cliente. A plataforma Vindi possui 2 endpoints diferentes para cadastro de perfis de pagamento:
- API privada
- API pública
API privada
Este é o método usado para cadastro de perfis de pagamento onde a requisição é originada a partir dos servidores da sua empresa, usando a chave privada da API Vindi.
Você precisará obter os dados a partir de um formulário próprio, recebê-los em seu backend e encaminhá-los para a Vindi através do método POST /payment_profiles:
POST https://app.vindi.com.br/api/v1/payment_profiles
{ "holder_name": "José da Silva", "card_expiration": "12/2018", "card_number": "5167454851671773", "card_cvv": "123", "payment_method_code": "credit_card", "payment_company_code": "mastercard", "customer_id": 51 }
Através deste método, os dados sensíveis do cartão do cliente irão trafegar pelos seus servidores e você deve assegurar que o mesmo não é armazenado de nenhuma forma.
Mesmo sem armazenar os dados, a especificação PCI-DSS poderá exigir a certificação do seu ambiente simplesmente porque há tráfego de informações sensíveis em seu ambiente.
API pública
Para mitigar riscos e reduzir o escopo de adequação à especificação PCI, recomendamos que os dados sensíveis sejam enviados para a plataforma Vindi diretamente a partir do browser do usuário através do método POST /public/payment_profiles
.
Segue abaixo um exemplo simples usando jQuery:
var profile = { "holder_name": "José da Silva", "card_expiration": "12/2018", "card_number": "5167454851671773", "card_cvv": "123", "payment_method_code": "credit_card", "payment_company_code": "mastercard" }
$.ajax({ type: "POST", url: "https://app.vindi.com.br/api/v1/public/payment_profiles", dataType: "json", headers: { "Authorization": "Basic " + btoa("CHAVE_PÚBLICA" + ":") }, data: profile }).success(function(data) { console.log(data); alert(data.payment_profile.gateway_token); }).error(function(request, status, error) { console.log(error); console.log(request.responseText); alert('Erro ao cadastrar perfil de pagamento'); });
O exemplo acima efetua o cadastro de um novo perfil de pagamento e retorna seu respectivo gateway_token
que por sua vez deverá ser enviado para seu backend por um formulário e registrado através da API privada, informando o código do cliente:
POST https://app.vindi.com.br/api/v1/payment_profiles
{ "gateway_token": "5c303e1c-964d-4602-a62c-e9ea80ad7cc4", "customer_id": 51,
"payment_method_code": "credit_card"
}
Esta operação deve ser executada em até 5 minutos a partir do cadastro inicial, caso contrário o cartão será removido da plataforma Vindi.
Observe que, diferente do primeiro método de envio, a API pública permite que o cartão seja cadastrado sem que os dados trafeguem pelo seu servidor, porém ainda permite que você associe o cliente via backend. Embora o desenvolvimento seja consideravelmente trabalhoso, os riscos são drasticamente reduzidos.
A API pública é suportada apenas pelo browsers compatíveis com a especificação CORS.
Resumo do fluxo da API pública
O diagrama abaixo exibe um exemplo do fluxo da comunicação entre os componentes envolvidos:
- Cliente: Usuário que acessa a loja e deseja efetuar uma compra;
- Checkout Merchant: Interface web fornecida pela loja para preenchimento das informações de pagamento;
- Backend Merchant: Aplicação web que recebe e processa as requisições do checkout frontend;
- Vindi: Plataforma responsável pela gestão de pagamentos e assinaturas.
Comentários
0 comentário
Artigo fechado para comentários.