O check-out fica paralisado quando o método de pagamento Authorize.net é usado

Este artigo fornece uma explicação e uma correção para o problema do Adobe Commerce 2.3.X em que o check-out fica interrompido se Authorize.net for usado, com a mensagem de erro 'Não é possível ler a propriedade 'length' de null' no log de console do navegador.

Produtos e versões afetados

  • Adobe Commerce 2.3.X
NOTE
A integração de pagamento principal do Adobe Commerce Authorize.Net foi descontinuada desde a versão 2.3.4 e foi completamente removida na versão 2.4.0. Em vez disso, use uma extensão que atenda às suas necessidades da Adobe Commerce Marketplace.

Problema

Etapas a serem reproduzidas

  1. Configure o método de pagamento Authorize.net no Commerce Admin.
  2. Vá para a loja.
  3. Adicione um produto ao carrinho e prossiga para a finalização da compra.
  4. Escolha Authorize.net como um método de pagamento.
  5. Clique em Fazer pedido.

Resultado esperado

O iframe Authorize.net é carregado.

Resultado real

O ponteiro do Ajax é exibido e a página nunca é carregada. O seguinte erro JS é exibido no log do console do navegador: 'TypeError Não Capturado: Não é possível ler a propriedade 'length' de nulo em b (jstest.authorize.net/v1/AcceptCore.js:1)'

Causa

Um dos motivos mais comuns para esse problema é a chave pública do cliente não ser especificada na configuração Authorize.Net no Commerce Admin.

Solução

Em Lojas > Configurações > Configuração > Vendas > Métodos de Pagamento, na seção Authorize.net, verifique se o valor está especificado no campo Chave Pública do Cliente. Se estiver vazio, insira o valor da chave da sua conta de comerciante Authorize.Net.

Para que as alterações sejam aplicadas, limpe o cache executando

bin/magento cache:clean
recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a