kdsoap client for magento soap api
Unsolved
General and Desktop
-
Hello I'm trying to connect kdsoap to magento api, but the examples of kdsoap are not very helpful.
The first problem is that the magento api does not provide a call to Login, for example I don't know if I can do this:KDSoapMessage response = client.call(QLatin1String("Login"), message);
This is the full code:
const QString endPoint = QLatin1String("https://magentohost.com/api/soap/?wsdl"); const QString messageNamespace = QLatin1String("https://magentohost.com/api/soap/"); KDSoapClientInterface client(endPoint, messageNamespace); KDSoapMessage message; message.addArgument(QLatin1String("apiUser"), "user"); message.addArgument(QLatin1String("apiKey"), "key"); KDSoapMessage response = client.call(QLatin1String("Login"), message); const QString sessionId = response.arguments()[0].value().toString(); KDSoapMessage header; header.addArgument(QLatin1String("SessionId"), sessionId); client.setHeader(QLatin1String("SessionHeader"), header); if (response.isFault()) printf("%s\n", qPrintable(response.faultAsString())); else printf("%s\n", qPrintable(response.arguments()[0].value().toString()));
Runnig this code I get these errors:
qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method Fault code 6: SSL handshake failed
What's the problem?
-
OK I had problem with the subdomain so I tried with the main domain and I get this response:
qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns:typens="urn:Magento" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" name="Magento" targetNamespace="urn:Magento"> <types> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:Magento"> <!-- <import namespace="http://schemas.xmlsoap.org/soap/encoding/" schemaLocation="http://schemas.xmlsoap.org/soap/encoding/" />--> <complexType name="FixedArray"> <complexContent> <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:anyType[]" /> </restriction> </complexContent> </complexType> </schema> </types> <message name="call"> <part name="sessionId" type="xsd:string" /> <part name="resourcePath" type="xsd:string" /> <part name="args" type="xsd:anyType" /> </message> <message name="callResponse"> <part name="callReturn" type="xsd:anyType" /> </message> <message name="multiCall"> <part name="sessionId" type="xsd:string" /> <part name="calls" type="typens:FixedArray" /> <part name="options" type="xsd:anyType" /> </message> <message name="multiCallResponse"> <part name="multiCallReturn" type="typens:FixedArray" /> </message> <message name="endSession"> <part name="sessionId" type="xsd:string" /> </message> <message name="endSessionResponse"> <part name="endSessionReturn" type="xsd:boolean" /> </message> <message name="login"> <part name="username" type="xsd:string" /> <part name="apiKey" type="xsd:string" /> </message> <message name="loginResponse"> <part name="loginReturn" type="xsd:string" /> </message> <message name="resources"> <part name="sessionId" type="xsd:string" /> </message> <message name="resourcesResponse"> <part name="resourcesReturn" type="typens:FixedArray" /> </message> <message name="globalFaults"> <part name="sessionId" type="xsd:string" /> </message> <message name="globalFaultsResponse"> <part name="globalFaultsReturn" type="typens:FixedArray" /> </message> <message name="resourceFaults"> <part name="resourceName" type="xsd:string" /> <part name="sessionId" type="xsd:string" /> </message> <message name="resourceFaultsResponse"> <part name="resourceFaultsReturn" type="typens:FixedArray" /> </message> <message name="startSession" /> <message name="startSessionResponse"> <part name="startSessionReturn" type="xsd:string" /> </message> <portType name="Mage_Api_Model_Server_HandlerPortType"> <operation name="call"> <documentation>Call api functionality</documentation> <input message="typens:call" /> <output message="typens:callResponse" /> </operation> <operation name="multiCall"> <documentation>Multiple calls of resource functionality</documentation> <input message="typens:multiCall" /> <output message="typens:multiCallResponse" /> </operation> <operation name="endSession"> <documentation>End web service session</documentation> <input message="typens:endSession" /> <output message="typens:endSessionResponse" /> </operation> <operation name="login"> <documentation>Login user and retrive session id</documentation> <input message="typens:login" /> <output message="typens:loginResponse" /> </operation> <operation name="startSession"> <documentation>Start web service session</documentation> <input message="typens:startSession" /> <output message="typens:startSessionResponse" /> </operation> <operation name="resources"> <documentation>List of available resources</documentation> <input message="typens:resources" /> <output message="typens:resourcesResponse" /> </operation> <operation name="globalFaults"> <documentation>List of resource faults</documentation> <input message="typens:globalFaults" /> <output message="typens:globalFaultsResponse" /> </operation> <operation name="resourceFaults"> <documentation>List of global faults</documentation> <input message="typens:resourceFaults" /> <output message="typens:resourceFaultsResponse" /> </operation> </portType> <binding name="Mage_Api_Model_Server_HandlerBinding" type="typens:Mage_Api_Model_Server_HandlerPortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> <operation name="call"> <soap:operation soapAction="urn:Mage_Api_Model_Server_HandlerAction" /> <input> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> <output> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> <operation name="multiCall"> <soap:operation soapAction="urn:Mage_Api_Model_Server_HandlerAction" /> <input> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> <output> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> <operation name="endSession"> <soap:operation soapAction="urn:Mage_Api_Model_Server_HandlerAction" /> <input> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> <output> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> <operation name="login"> <soap:operation soapAction="urn:Mage_Api_Model_Server_HandlerAction" /> <input> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> <output> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> <operation name="startSession"> <soap:operation soapAction="urn:Mage_Api_Model_Server_HandlerAction" /> <input> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> <output> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> <operation name="resources"> <soap:operation soapAction="urn:Mage_Api_Model_Server_HandlerAction" /> <input> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> <output> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> <operation name="globalFaults"> <soap:operation soapAction="urn:Mage_Api_Model_Server_HandlerAction" /> <input> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> <output> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> <operation name="resourceFaults"> <soap:operation soapAction="urn:Mage_Api_Model_Server_HandlerAction" /> <input> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> <output> <soap:body namespace="urn:Magento" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> </binding> <service name="MagentoService"> <port name="Mage_Api_Model_Server_HandlerPort" binding="typens:Mage_Api_Model_Server_HandlerBinding"> <soap:address location="https://magentohost.com/index.php/api/soap/index/" /> </port> </service> </definitions> Fault code 2: XML error: [4:49] Invalid SOAP Message, Envelope expected
-
Hi and welcome to devnet,
Did you install OpenSSL on your system ?