CORS, a URL do proxy do aplicativo e as chamadas do navegador

Um webhook é normalmente chamado de servidor para servidor. Caso deseje chamá-lo a partir de um navegador - sua loja virtual, uma página de destino ou um portal do cliente - , há duas configurações importantes: “Ativar CORS” e “Usar URL de proxy do aplicativo”. Ambas se encontram nas configurações avançadas do webhook.

Ativar CORS

Os navegadores rejeitam uma solicitação entre origens, a menos que o servidor destinatário autorize tal solicitação. Ative a opção “Habilitar CORS” e o webhook responderá à solicitação de pré-verificação do navegador e aceitará a chamada.

A verificação prévia também permite que qualquer cabeçalho contenha seu token, incluindo um nome de cabeçalho personalizado definido por você mesmo, para que o navegador não encontre dificuldades com ele.

Utilizar a URL do proxy do aplicativo

Cada webhook possui dois endereços, ambos exibidos com um botão “Copiar” nas configurações de URL:

URL Parece que Notas
URL direta do aplicativo o domínio do nosso aplicativo, terminando com o código do webhook Funciona sempre, inclusive em lojas de desenvolvimento e protegidas por senha
URL do proxy do aplicativo um caminho no domínio da própria loja De mesma origem que a sua loja virtual, de modo que o navegador a trata como uma solicitação de primeira parte

Ative a opção “Usar URL de proxy do aplicativo” para publicar o endereço do proxy. Isso se integra de forma mais harmoniosa com a loja virtual e, como se trata de uma origem idêntica, muitas vezes você nem precisa do CORS.

Duas coisas que você deve saber antes de ligá-lo:

  • A loja deve estar ativa e não protegida por senha. O Shopify não encaminha solicitações de proxy do aplicativo para uma loja virtual bloqueada; portanto, em uma loja de desenvolvimento, a URL do proxy não responderá. Mantenha-a desativada nesse ambiente.
  • O Listas de endereços IP permitidos não se aplica à URL do proxy: essas solicitações chegam até nós a partir dos servidores do Shopify; portanto, o endereço delas não fornece nenhuma informação sobre o remetente original.

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

Permitir um corpo de solicitação personalizado

Ainda nas configurações avançadas: a opção “Permitir corpo de solicitação personalizado” desativa a validação rigorosa do corpo, de modo que o webhook aceita qualquer formato JSON, e não apenas os campos que você mapeou. Utilize-a quando a payload do remetente for dinâmica ou quando você não tiver controle sobre ela. Os campos mapeados continuam chegando ao Shopify Flow da mesma forma - consulte Mapeamento de payload e variáveis de fluxo.

Relacionado