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.

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.

À 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.