Amazon Pay/Login (BESTIT): Adresse unvollständig übertragen

Hallo zusammen,

Amazon-Login über das o.g. Modul funktioniert mittlerweile.
Allerdings wird nach dem erfolgreichen Login nur der Vor- und Nachname, die E-Mail-Adresse und (verborgen für den Nutzer) die Amazon-ID übertragen.
Straße, PLZ, Stadt etc. fehlen komplett.
In der Datenbank-Tabelle kommen die Werte auch nicht an, ist also kein reines Darstellungsproblem im Frontend.

Hat jemand dasselbe Problem?
Oder einen Ansatz, wo ich die Bugsuche beginnen kann?

Ich finde nirgendwo Fehlermeldungen, weder im Error-Log des vHosts noch in Oxids generellem Exception-Log.
Laut Modul-Dokumentation sollte es ein separates Log geben unter /log/bestitamazon/
Ein ensprechendes Verzeichnis gibt es nicht. Die Rechte für den log-Ordner sind derzeit auf 775.
In den Settings für das Modul ist “Logging enabled”.

Im Einsatz ist:
Amazon Pay & Login Modul von BESTIT Version 3.3.0 (NICHT im Sandbox-Modus)
Oxid CE 6.0.4
Flow-Theme

Vielen Dank für eure Hinweise!

Wir hatten die gleichen Probleme, lange nach Hilfe gesucht und da aber nichts anderes geholfen hat, haben wir zwei Dateien des Moduls gefixt und die original Dateien werden bei jedem Deployment überschrieben. Ja, das ist nicht die feinste Art aber es funktioniert und wir bekommen nur noch in seltenen Fällen die Adressfelder nicht befüllt. Falls gewünscht, kann ich dir di e Dateien zukommen lassen. Grüße

2 Likes

Oh, das wäre fantastisch!
Wir haben selbst so einige Workarounds eingebaut, die sicher nicht die “feine Art” sind :slight_smile:
Ich versuche mal, eine PN zu senden…

@ssemiz und @floko2, Ihr könnt die Dateien gern auch hier hochladen oder irgendwo ablegen und von hier darauf verlinken, damit auch die Nachwelt noch etwas davon hat :wink:

Im Wesentlichen sind folgende Methoden gefixt:

  1. bestitamazonpay4oxidaddressutil.php
    _parseSingleAddress -> da wurde im regex Feld dazu genommen
    _parseAddressFields -> zwei Fixes (aufgrund Erfahrungswerte entstanden), siehe Kommentare

  2. bestitamazonpay4oxid_oxorder.php
    _manageFullUserData -> $aDefaultMap erweitert mit ‘oxstreetnr’ => $aParsedData[‘StreetNr’]
    -> Ein ganzer Block mit Lieferadressenbehanldung (ab Zeile 87)
    -> Ein Fix bei dem die leere Rechnungsadressedaten befüllt werden (ab Zeile 140)

Die Dateien liegen hier:

http://5.35.243.173/amazonpay/amazonpay4oxid.zip

Grüße

2 Likes

Super - vielen herzlichen Dank!
Das probiere ich so bald wie möglich aus…

Schade, das hat bei mir immer noch nicht die Lösung gebracht.
Aber jetzt habe ich auf jeden Fall ein paar neue Ansätze um weiter zu forschen :slight_smile:

Ich habe mich jetzt sozusagen bis zur Quelle vorgearbeitet und mir in
/modules/bestit/amazonpay4oxid/vendor/amzn/amazon-pay-sdk-php/AmazonPay/Client.php
anzeigen lassen, was die function getUserInfo direkt von Amazon geliefert bekommt.

Das sind tatsächlich nur die drei Werte, die später auch in der DB-Tabelle landen: Der Name (Vor- und Nachname), die E-Mail-Adresse und die interne ID.

Ist das also kein Bug sondern ein Feature? Gibt Amazon unter bestimmten Umständen nicht alle Angaben weiter? Liegt das an individuellen Einstellungen im Amazon-Nutzerkonto?