CORS, o URL do proxy da aplicação e as chamadas do navegador

Um webhook é normalmente acionado de servidor para servidor. Se pretender acionar um a partir de um navegador - a sua loja virtual, uma página de destino, um portal do cliente - , há duas definições importantes: «Ativar CORS» e «Utilizar URL de proxy da aplicação». Ambas se encontram nas «Definições avançadas» do webhook.

Ativar o CORS

Os navegadores recusam um pedido entre origens, a menos que o servidor de destino indique que tal é permitido. Ative a opção «Ativar CORS» e o webhook responderá ao pedido de pré-verificação do navegador e aceitará a chamada.

A verificação prévia também permite que qualquer cabeçalho contenha o seu token, incluindo um nome de cabeçalho personalizado definido por si, para que o navegador não tenha dificuldades em reconhecê-lo.

Utilizar o URL do proxy da aplicação

Cada webhook tem dois endereços, ambos apresentados com um botão «Copiar» nas definições de URL:

URL Parece que Notas
URL direta da aplicação o domínio da nossa aplicação, terminando no código do webhook Funciona sempre, inclusive em lojas de desenvolvimento e nas que estão protegidas por palavra-passe
URL do proxy da aplicação um caminho no domínio da própria loja Tem a mesma origem que a sua loja virtual, pelo que o navegador trata-a como um pedido de primeira parte

Ative a opção «Utilizar URL do proxy da aplicação» para publicar o endereço do proxy. Esta opção integra-se de forma mais harmoniosa com a loja virtual e, uma vez que se trata de uma origem idêntica, muitas vezes nem sequer é necessário recorrer ao CORS.

Duas coisas que deve saber antes de o ligar:

  • A loja deve estar ativa e não pode estar protegida por palavra-passe. O Shopify não encaminha pedidos de proxy da aplicação para uma loja virtual bloqueada; por isso, numa loja de desenvolvimento, o URL do proxy não responderá. Mantenha-o desativado nesse caso.
  • O Listas de endereços IP autorizados não se aplica ao URL do proxy: essas solicitações chegam-nos a partir dos servidores da Shopify, pelo que o seu endereço não revela qualquer informação sobre o remetente original.

A autenticação funciona da mesma forma em ambos os endereços. O mesmo se aplica a Proteção contra entregas duplicadas, ao histórico e ao limite do plano.

Permitir um corpo de pedido personalizado

Também nas «Definições avançadas»: a opção «Permitir corpo de pedido personalizado» desativa a validação rigorosa do corpo, pelo que o webhook aceita qualquer formato JSON, em vez de apenas os campos que mapeou. Utilize-a quando a carga útil do remetente for dinâmica ou quando não a controlar. Os campos mapeados continuam a chegar ao Shopify Flow da mesma forma - consulte Mapeamento da carga útil e variáveis de fluxo.

Relacionado