Salve salve moquerido! Bora estudar mais um meio de pagamento para integrar com as nossas aplicações?
Como você já bem deve saber a Hotmart é uma das pioneiras para pagamento de produtos digitais, por consequência a gente aqui na Up também trabalha com eles...
Eles oferecem apenas um formato de integração com o sistemas deles, que é através do post para uma URL do seu sistema.
Sabendo disso, fica fácil agora o nosso trabalho! Tudo o que precisamos é ter um arquivo para receber esses dados, tratar de acordo com o esperado e jogar para dentro da nossa base para manter tudo sincronizado.
As notificações são feitas de acordo com a mudança de status de cada fatura! Então também é importante ficar atento para não deixar duplicar o conteúdo e acabar prejudicando a integridade dos seus dados.
Processo de Integração
A primeira coisa é resgatar os dados vindo do post! Para isso podemos trabalhar com filter_input_array que já utilizamos em toda a nossa aplicação. Isso vai fazer com que você tenha todos os dados do pagamento dentro de uma única variável.
Depois disso você pode colocar alguns tratamentos por segurança... Como strip_tags, trim e qualquer outro que você julgue necessário. Esse processo acaba sendo opcional, tendo em vista que você só vai receber os dados através da própria hotmart.
Depois disso você precisa identificar 3 itens! Cliente, Produto e Pedido.
A chave para essas 3 informações estarão em posições dentro do vetor recebido... E você pode fazer o teste com mais de uma opção.
Por exemplo: Para resgatar o usuário você pode validar primeiramente o CPF e saber se já existe alguém cadastrado na sua base com esse dado. Caso contrário, faz a verificação através do e-mail. Se isso ainda não funcionar, aí sim você vai para a parte de cadastro de um novo membro e obviamente não esqueça de notificá-lo via e-mail.
Quanto ao produto é mais simples, você só vai ter um campo para fazer a pesquisa. Isso vai fazer com que você receba maiores detalhes sobre o seu próprio produto como o prazo que deve ser liberado o curso como exemplo.
O pedido também só possui uma chave que é gerada automaticamente pelo meio de pagamento! Tem que ficar atento para que essa informação não duplique... Então se receber outro post com o mesmo código de transação você deve editar o pedido existente e não criar um novo.
Até esse ponto você vai ter os 3 objetos mapeados e tratados! Agora só precisa compreender quais são os status da transação para que você possa tomar a melhor decisão.
Se for aprovado, você precisa conceder acesso ao curso que o seu cliente comprou, ou então disponibilizar o conteúdo para download.
Se for cancelado, você precisa remover o acesso! E assim sucessivamente para todas as ações.
Da forma que te mostro no curso não é necessário você atacar todas as possibilidades diferentes, porque no final o que te realmente importa dentro da integração é conceder ou remover o acesso.
Validação extra de segurança
Durante a gravação acabei passando batido por um ponto importante de se adicionar no seu arquivo para ter certeza que somente a hotmart lhe enviará post.
Obviamente que para isso tenha efeito o seu servidor precisa estar configurado corretamente para não receber post de endereços externos.
De qualquer forma, eu vou deixar a dica aqui para vocês :)
header("access-control-allow-origin: https://app-vlc.hotmart.com");
header("Content-Type: text/html; charset=UTF-8");
Só colocar isso logo depois da tag de abertura do PHP! Acima até mesmo do resgate da sua variável de post. Isso permitirá somente que o endereço da hotmart para postar para a sua URL.
Material de Apoio
Como sempre, aqui abaixo está o link para acessar o nosso repositório e pegar o material inicial da aula com o simulador de Post da hotmart, e o código final para que possa consultar durante seus estudos :)
Link para acessar o repositório da Up no GitHub
Feedback
Caso tenha qualquer tipo de dúvidas sobre a integração, só me falar aqui abaixo nos comentários que estarei disponível para auxiliar caso você tenha algum tipo de problema :)
Deixe seu comentário: