Como a política de cookies SameSite do Chrome afeta minha integração?
Após a atualização do Google Chrome sobre a política de cookies SameSite, alguns comerciantes tiveram problemas para processar pagamentos 3DS utilizando o navegador Chrome devido à configuração específica de suas integrações. Os comerciantes relataram problemas com:
- Redirecionamentos 3DS1
- Redirecionamentos 3DS2
Sobre a política de cookies SameSite do Chrome
Na versão atualizada do Chrome 80 e superiores, o Google Chrome está aplicando um sistema de classificação de cookies secure-by-default (segurança por padrão). Isso significa que os cookies sem um atributo SameSite não serão incluídos em um retorno de chamada de redirecionamento POST. Os cookies que não declararam um valor SameSite receberão o valor padrão "samesite=lax". Somente os cookies definidos como "SameSite=None; Secure" estarão disponíveis em contextos de terceiros, contanto que sejam acessados a partir de conexões seguras.
Como posso saber se isso afeta minha integração?
O efeito sobre a sua integração depende do uso de cookies para armazenar informações de pagamento durante o processamento 3DS1 ou o redirecionamento de autorizações 3DS2. Um caso de uso comum é, por exemplo, o armazenamento do atributo paymentData nos cookies.
Como corrigir o problema?
Recomendamos verificar sua integração para garantir a capacidade de lidar com solicitações de redirecionamento POST no navegador Chrome atualizado, e também que elas possam ser processadas em navegadores mais antigos. Observe que o campo SameSite ainda não é amplamente compatível com navegadores mais antigos, nem com o Safari e o Firefox.
Como implementar o SameSite (de web.dev/samesite-cookie-recipes)
No caso de cookies necessários em um contexto de terceiros, você precisará garantir que eles estejam marcados como SameSite=None; Secure. Observe que você precisa dos dois atributos juntos. Se você apenas especificar None sem Secure, o cookie será rejeitado. Existem algumas diferenças mutuamente incompatíveis nas implementações do navegador, então você pode precisar usar algumas das estratégias de solução de problemas descritas em Como lidar com clientes incompatíveis, abaixo.
Set-Cookie: third_party_var=value; SameSite=None; Secure
Como lidar com clientes incompatíveis (de web.dev/samesite-cookie-recipes)
Como essas alterações para incluir None e atualizar o comportamento padrão ainda são relativamente novas, há inconsistências entre os navegadores no processamento delas. Consulte a página de atualizações em chromium.org para ver os problemas conhecidos atualmente. No entanto, não sabemos se essa lista está completa. Embora não seja o ideal, existem soluções alternativas que você pode usar durante essa fase de transição. A regra geral, porém, é tratar clientes incompatíveis como um caso à parte. Não crie uma exceção para navegadores que implementam as regras mais recentes.
A primeira opção é definir os cookies de estilo novos e antigos:
Set-cookie: 3pcookie=value; SameSite=None; Secure
Set-cookie: 3pcookie-legacy=value; Secure
Os navegadores que implementam o comportamento mais recente definirão o cookie com o valor SameSite, enquanto outros navegadores podem ignorá-lo ou configurá-lo incorretamente. No entanto, esses mesmos navegadores definirão o cookie 3pcookie-legacy. Ao processar os cookies incluídos, o site deve primeiro verificar a presença do novo cookie de estilo e, se ele não for encontrado, voltar para o cookie antigo.
Exemplos em idiomas diferentes (de github.com/GoogleChromeLabs/samesite-examples)
Outros links úteis
Os seguintes documentos do Chrome podem ajudar caso seja necessário fazer alterações na sua integração: receitas de cookies SameSite, exemplos de SameSite 3DSv1.0 com diagramas de sequência e Soluções para clientes incompatíveis.
Se estiver tentando testar seu novo fluxo 3DS e não consegue verificar se sua solução está funcionando, habilite as bandeiras experimentais (chrome://flags) e defina todas as funções denominadas "SameSite" para "Enabled". Consulte as dicas para testar e depurar cookies do SameSite, para obter mais informações sobre como realizar testes em integrações que fazem uso dos cookies do SameSite do Chrome.