Der Checkout ist blockiert, wenn die Zahlungsmethode Authorize.net verwendet wird

Dieser Artikel enthält eine Erklärung und Fehlerbehebung für das Adobe Commerce 2.3.x-Problem, bei dem der Checkout hängen bleibt, wenn Authorize.net verwendet wird, mit der Fehlermeldung Cannot read property 'length' of null im Protokoll der Browser-Konsole.

Betroffene Produkte und Versionen

  • Adobe Commerce 2.3.x
NOTE
Die zentrale Adobe Commerce Authorize.Net-Zahlungsintegration ist seit 2.3.4 veraltet und wurde in 2.4.0 vollständig entfernt. Verwenden Sie stattdessen eine Erweiterung, die Ihren Anforderungen entspricht, über die Adobe Commerce Marketplace.

Problem

Schritte zur Reproduktion

  1. Konfigurieren Sie die Zahlungsmethode Authorize.net in der Commerce Admin Console.
  2. Geh zum Laden.
  3. Fügen Sie ein Produkt zum Warenkorb hinzu und fahren Sie mit der Kasse fort.
  4. Wählen Sie Authorize.net als Zahlungsmethode.
  5. Klicken Sie Bestellung aufgeben.

Erwartetes Ergebnis

Der iframe Authorize.net wird geladen.

Tatsächliches Ergebnis

Ajax-Spinner wird angezeigt, und die Seite wird nie geladen. Der folgende JS-Fehler wird im Protokoll der Browser-Konsole angezeigt: 'Uncatch TypeError: Die Eigenschaft 'length' von null kann bei b nicht gelesen werden (jstest.authorize.net/v1/AcceptCore.js:1)'

Ursache

Einer der häufigsten Gründe für dieses Problem ist, dass der öffentliche Clientschlüssel in der Authorize.Net-Konfiguration in Commerce Admin nicht angegeben ist.

Lösung

Überprüfen Sie unter Stores > Settings > Configuration > Sales > Payment Methods im Abschnitt authorize.net, ob der Wert im Public Client Key-Feld angegeben ist. Wenn es leer ist, geben Sie den Schlüsselwert aus Ihrem Authorize.Net-Händlerkonto ein.

Damit die Änderungen angewendet werden können, bereinigen Sie den Cache, indem Sie Folgendes ausführen

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