Integração de Cupons: Envio para Webservice

Neste documento técnico iremos mostrar como é feito o envio de informações de uso de cupons para Webservices externos.

É importante que o desenvolvedor compreenda que nosso sistema não é autorizado à enviar detalhes de promoções ou informações de usuários do aplicativo para terceiros, portanto as informações enviadas se limitarão aos campos não relacionados diretamente ao utilizador do aplicativo no momento que a emissão de um cupom for efetivada.

Cadastramento dos parâmetros da requisição

A URL da Integração deve ser configurada no campo respectivo do Estabelecimento, selecionando-se a opção de Envio para Webservice no campo de Tipo de Integração de Cupom.

Localização dos campos de Tipo de Integração de Cupom e URL de Integração no cadastro do Estabelecimento.

Execução da requisição

A requisição ocorre quando um usuário do aplicativo consegue criar um código de cupom com sucesso. Neste caso são enviados os seguintes parâmetros através da URL configurada:

  • operation uma string com valor igual à “register_coupon”;
  • promotion_code uma string com o Código da Promoção;
  • coupon_code uma string com o código de cupom gerado pelo aplicativo.
Localização do Código da promoção no Cadastro da Promoção

À cargo de referência esta é uma forma de simular o envio dos parâmetros através de um script utilizando Javascript e a biblioteca axios:

const axios = require('axios').default;
const Api = axios.create();
let body = {};        
body = {
        "operation": "register_coupon",
        "promotion_code": "THEPROMOTIONCODEGOESHERE",
        "coupon_code": "COUPONCODEGOESHERE"
};
let result = await Api.post("https://myhost.com/myapi/myapimethod",body,{headers:{'Content-Type':'multipart/form-data'}});
console.log(result);

É altamente indicado que esta URL de Integração utilize protocolo HTTPS e seja tokenizada. Só assim será possível ao desenvolvedor se certificar de que a requisição recebida está sendo enviada através dos nossos servidores.

A forma como a requisição será recebida deverá ser tratada pelo desenvolvedor de forma que ele possa ativar o cupom no ambiente utilizando o promotion_code como referência e o coupon_code como código do cupom.

Um exemplo simples de implantação é de se criar um cupom-base referenciado ao promotion_code e, ao receber uma requisição, duplicar tal cupom dando à ele o coupon_code recebido.

Nota: se você possui um e-Commerce baseado em WooCommerce para WordPress leia aqui nosso artigo e saiba como integrar a criação de cupons no seu site!

Casos de Exceção conhecidos

Em aplicações que utilizam regras de segurança para entrada de dados externos desenvolvidas em PHP (como CodeIgniter e Laravel) os parâmetros enviados na requisição podem não serem reconhecidos nas variáveis $_POST ou nos objetos $this->input->post() e $request->all() do CodeIgniter e Laravel, respectivamente.

Nestes casos pode ser necessário se utilizar da solução de contorno abaixo:

$data = json_decode(file_get_contents('php://input'), true);

No bloco de código exemplificado acima um var_dump($data) exibiria o seguinte resultado baseando-se no conteúdo do script de exemplo:

array(
     "operation": "register_coupon",
     "promotion_code": "THEPROMOTIONCODEGOESHERE",
     "coupon_code": "COUPONCODEGOESHERE"
)

Indicamos o uso do site Webhook.site para que você possa testar a integração da API, lembrando que o envio da notificação só ocorre quando o cupom é ativado com sucesso.

Barra lateral