Wir entwickeln eine Android-App für eine Magento-Site. Wir müssen die SOAP-API von Magento an Android übergeben, um die Sitzungs-ID zu erhalten.
Wir haben SOAP-Webbenutzer und -Rollen im Magento-Administrationsbereich über diesen Link erstellt:
https://www.yireo.com/tutorials/magebridge/administration/596-step-by-step-create-a-magento-api-user
Wenn wir versuchen, eine Verbindung von Android zu Magento herzustellen, wird eine Fehlermeldung angezeigt. Dies ist der Link, den wir verwenden:
magento-1.9
soap
soap-api-v2
Baby in Magento
quelle
quelle
Antworten:
Der SOAP-Server muss mit WSDL initialisiert werden, um zu verstehen, wie eingehende Anforderungen verarbeitet werden (bei Magento wird WSDL grundsätzlich von der angegebenen URL geladen). Dies geschieht in
\Mage_Api_Model_Server_Adapter_Soap::_instantiateServer()
:Beachten Sie, dass
getWsdlUrl()
die WSDL-URL basierend auf Ihrer Magento-Instanz-Basis-URL erstellt wird. Dies bedeutet, dass der SOAP-Server WSDL während der Initialisierung nicht laden kann, wenn auf Ihren Magento-Speicher nicht von dem Host aus zugegriffen werden kann, auf dem er bereitgestellt wird. Infolgedessen tritt ein solcher Fehler auf, wenn Sie versuchen, Anforderungen an die Magento SOAP-API auszuführen.quelle
/etc/hosts
auf dem Server hinzu.\Mage_Api_Model_Server_Adapter_Soap::_instantiateServer()
Ich hatte das gleiche Problem. Ich habe die orocrm-Brücke installiert, die auf die Seifen-API zugreifen muss, habe die angegebenen Schritte ausgeführt, um eine Seifenrolle und einen Benutzer zu konfigurieren, und dann habe ich versucht, eine Verbindung herzustellen: 💥
Nachdem ich die Protokolle durchsucht hatte, bemerkte ich diesen Fehler:
Ich habe herausgefunden, warum ich dieses Problem erlebt habe. Eigentlich hatte das nichts mit Orocrm zu tun, sondern mit Magento. Das war ein Firewall-Problem. Eigentlich habe ich die Regeln korrekt hinzugefügt, damit der crm-Server die magento-API angreifen kann, aber diese muss sich selbst erreichen! Nach einigen Kopfschmerzen füge ich einfach eine Regel zur Firewall des Magento-Servers hinzu, damit sich selbst (der Magento-Server) seine eigene API (Art der externen Suche) erreichen kann ...
Wie auch immer, ich hoffe, das spart jemandem einige Stunden
quelle