kdsoap client for magento soap api
-
wrote on 13 Mar 2019, 08:44 last edited by
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?
-
wrote on 13 Mar 2019, 10:37 last edited by antonio84
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 ?
1/3