简单对象访问协议(SOAP)是用于在Web服务的实现中交换结构化信息的协议规范。
如何在android中使用SOAP从magento框架获取数据?
我想在android中使用SOAP从magento框架获取数据。 参考这个网址:http://inhoo.net/dev-talk/android-development/magento-v2-api-soap-android/ 但我无法获取会话 ID 那个...
C#+Magento API V2:内容类型text/xml;字符集=utf-8,文本/xml;响应消息的 charset=UTF-8 不匹配
我正在开发一个项目,使用C#[MVC4.5]从Magento网站[V1.5.1]下载订单列表, 在开始之前,我构建了一个开发服务器,从 www 服务器复制完整文件,并且我的程序运行 v...
我正在尝试让扩展在 Magento 1.7 中工作,但我收到此 system.log 错误: 错误(3):注意:使用未定义的常量 SOAP_1_2 - 在 /var/www/vhosts/ 中假设为“SOAP_1_2” 调试 (7):呃...
这是我的第一篇文章,所以如果我让事情变得更混乱,我很抱歉...... 我正在尝试在 Magento 1.8 中创建一个新的 API 方法,以便允许将简单产品分配给捆绑产品。我跟随...
android应用程序通过soap webservice连接到magento
我是一名Android应用程序开发人员。我想通过肥皂网络服务将我的 Android 与 magento 连接起来。 我运行此代码,但无法获取会话 ID。 所以请帮助我如何获取会话 ID 和...
我正在开发一个应该集成 Magento 电子商务的 iOS 应用程序。 实际上,我正在尝试将对象放入购物车,当我尝试这样做时,我的应用程序会将此 WSDL 发送到服务器: 我正在开发一个应该集成 Magento 电子商务的 iOS 应用程序。 实际上,我正在尝试将对象放入购物车,当我尝试这样做时,我的应用程序会将此 WSDL 发送到服务器: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:Magento" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <call> <sessionId xsi:type="xsd:string">e976c086bf862d23fcc98e59fb23b499</sessionId> <resourcePath xsi:type="xsd:string">cart_product.add</resourcePath> <args xsi:type="SOAP-ENC:Array"> <item xsi:type="ns2:Map"> <item> <key xsi:type="xsd:string">quoteId</key> <value xsi:type="xsd:int">85</value> </item> <item> <key xsi:type="xsd:string">products</key> <value xsi:type="SOAP-ENC:Array"> <item xsi:type="ns2:Map"> <item> <key xsi:type="xsd:string">product_id</key> <value xsi:type="xsd:string">1</value> </item> <item> <key xsi:type="xsd:string">qty</key> <value xsi:type="xsd:int">1</value> </item> </item> </value> </item> </item> </args> </call> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 当我尝试运行 WSDL 时,我尝试使用 这个 Google Chrome 扩展程序 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>1</faultcode> <faultstring>SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)</faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 我的要求有什么问题吗?有人可以帮助我吗? 现在解决了,我正在发送这个: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:Magento" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <call> <sessionId xsi:type="xsd:string">38fd5af2c7fcfd55884b73ffded29225</sessionId> <resourcePath xsi:type="xsd:string">cart_product.add</resourcePath> <args xsi:type="SOAP-ENC:Array"> <item xsi:type="xsd:int">142</item> <item xsi:type="SOAP-ENC:Array"> <item xsi:type="ns2:Map"> <item> <key xsi:type="xsd:string">product_id</key> <value xsi:type="xsd:string">2</value> </item> <item> <key xsi:type="xsd:string">qty</key> <value xsi:type="xsd:int">1</value> </item> </item> </item> </args> </call> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 我的请求格式错误,事实上,如果您比较这两个请求,您会看到差异:我发送了密钥“quoteId”,但这不是必需的。
SOAP-错误:正在解析 WSDL:无法从以下位置加载:无法加载外部实体
我们收到以下错误 SOAP-错误:解析 WSDL:无法从“https://www.example.com/api/v2_soap?wsdl=1”加载:无法加载外部实体“https://www.example.com/api/” v2_soap...
我正在使用 ksoap2 Android 库通过 SOAP 调用 Magento api。登录方法(获取 sessionId)工作正常,但调用方法不接受额外的参数。 Call方法有3个参数: 打电话(
如何在android中使用SOAP API获取带有过滤器的magento订单列表?
它总是仅在 Android 中返回已完成的订单。 如何在android中编写这段php代码来获取结果 $过滤器=数组(数组( '过滤器' => 数组( 数组(...
Magento SOAP 错误:从 1.9.1 升级到 1.9.2 后解析 WSDL
最近将 Magento 从 1.9.1 更新到 1.9.2。 升级之前,API 连接运行良好。 升级后,我们立即收到以下错误: “SOAP 错误:正在解析 WSDL:Co...
Magento:通过 SOAP 调用 getSingleton('customer/session') 时不会返回信息
我目前正在尝试在提交订单并使用观察者捕获 checkout_submit_all_after 事件后取回客户数据。如果我通过前端下订单,Mage::getSingleton('
尽管SO上有大量“我的观察者没有被触发”的问题,但这个问题尚未被涵盖。 我设置了一个工作观察者来捕获事件 checkout_submit_all_after 。问题...
获取 SoapFault - 故障代码:'SOAP-ENV:服务器' 故障字符串:'过程'登录'不存在' 故障因素:'空'详细信息:空错误
我想在android代码中调用Magento Soap v2 API方法。为此,我需要根据此http://www.magentocommerce.com/api/soap/catalog/catalogCategory/catalog_category.tree.html的session_id 我
您好,我正在使用 Magento Soap clinet。我在一个控制器内创建了很多函数,这就是为什么我想将 $client 和 $session_id 设置为全局的。 这是我的代码- 您好,我正在使用 Magento Soap clinet。我正在一个控制器内创建很多功能,这就是为什么我想将 $client 和 $session_id 设置为全局。 这是我的代码- <?php //关闭所有错误报告 error_reporting(0); //包括 SOAP 客户端 require_once APPPATH.'third_party/client/soap_clinet.php'; //API 类 class Api extends CI_Controller{ //公共变量 public $variable = "tree"; //working fine //如下定义$client对象也会产生错误。 public $client = new SoapClient('http://localhost/mystore/index.php/api/?wsdl'); public $session_id; public function _construct() { parent::_construct(); } function index() { $data['title'] = "SOAP"; $data['heading'] = "Showing Magento SOAP connectiviy"; $this->load->view('apiview', $data); } //我需要此功能的帮助 function login(){ try{ $this->session_id = $this->client->login( 'fmniloy', 'abc123' ); echo 'Connection complete: session id ='.$this->session_id; } catch (SoapFault $fault) { echo 'Fault Code: '.$fault->faultcode.'<br/>'; echo 'Fault Reason: '.$fault->faultstring; } } //login ends function tree() { //it's printing global $variable successfully echo $this->variable; } } ?> 终于我找到了解决方案。 首先,不可能将对象声明为公共对象。我们可以将 $client 对象和 $session_id 传递给其他函数。解决办法如下。 <?php //关闭所有错误报告 错误报告(0); //包括 SOAP 客户端 require_once APPPATH.'third_party/client/soap_clinet.php'; //API 类 class Api extends CI_Controller{ //public variable public $remote_server = "http://localhost/mystore/index.php/api/?wsdl"; public $username = "fmniloy"; public $password = "abc123"; public function _construct() { parent::_construct(); } function index() { $data['title'] = "SOAP"; $data['heading'] = "Showing Magento SOAP connectiviy"; $this->load->view('apiview', $data); } //Login to Server function login(){ //login to Client Serve $client = new SoapClient($this->remote_server); try{ //filled with webservice username and passwd $session_id = $client->login( $this->username, $this->password ); //echo 'Connection complete: session id ='. $session_id; } catch (SoapFault $fault) { echo 'Fault Code: '.$fault->faultcode.'<br/>'; echo 'Fault Reason: '.$fault->faultstring; } //将$client对象和$session_id输入到数组中 $soap_vars = array($client, $session_id); //返回值供其他函数使用 返回 $soap_vars; } //登录结束 function tree() { $soap_vars = $this->login(); $result = $soap_vars[0]->call($soap_vars[1], 'catalog_category.tree'); echo '</br></br></br>Catagory Tree: '; var_dump($result); } } ?>
致命错误:未捕获的 SoapFault 异常:[Client] 函数(“调用”)
我正在使用 SOAP API 在 Magento 中使用其 SKU 打印产品信息。代码在本地服务器上运行良好,但在实时服务器上引发致命错误致命错误:未捕获的 SoapFault 除外...
Magento 1.9.1.0:无法使用soap cleint加载WSDL
我已经尝试了以下线程中给出的所有答案。 [1] Magento SOAP API - PHP 登录方法调用引发异常:“看起来我们没有 XML 文档” [2] Magento SOAP API ...
我有基于 Magento 的 SOAP+XML Web 服务。我正在使用 ksoap2 作为库 Web 服务调用。现在,下面是我的 API 的 magento 请求格式,其名称为“customer.list” 我有基于 Magento 的 SOAP+XML Web 服务。我正在使用 ksoap2 作为库 Web 服务调用。现在,下面是我的 API 的 magento 请求格式,其名称为“customer.list” <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding" xmlns:ns1="urn:Magento" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding"> <SOAP-ENV:Body> <ns1:call> <sessionId xsi:type="xsd:string">(My Seesion ID)</sessionId> <resourcePath xsi:type="xsd:string">customer.list</resourcePath> <args SOAP-ENC:arrayType="ns2:Map[1]" xsi:type="SOAP-ENC:Array"> <item xsi:type="ns2:Map"> <item> <key xsi:type="xsd:string">email</key> <value xsi:type="xsd:string">(User Email ID)</value> </item> </item> </args> </ns1:call> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 我尝试使用此代码,但主要的是我希望根据给定的电子邮件 ID 对所有用户进行归档,就像我只想要单个用户的数据,该用户的电子邮件 ID 与我请求的电子邮件 ID 匹配,问题出在我的编码上它响应所有用户列表,因此我的请求的参数部分不符合 magento 的请求格式。我是基于 SOAP 的 Web 服务的新手,所以,如果有人知道,请给我一些解释。下面的代码是我尝试过的,我 SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); soapEnvelope.implicitTypes = true; soapEnvelope.dotNet = true; soapEnvelope.avoidExceptionForUnknownProperty=true; soapEnvelope.setAddAdornments(false); SoapObject soapReq = new SoapObject("urn:Magento", "call"); soapReq.addProperty("sessionId", sessionId); String NESTED_NAMESPACE = "http://schemas.microsoft.com/2003/10/Serialization/Arrays"; SoapObject recipients = new SoapObject(NESTED_NAMESPACE, "args"); Vector<String> recp = new Vector<String>(); recp.add("email"); recipients.addProperty("key", recp); recp = new Vector<String>(); recp.add("[email protected]"); recipients.addProperty("value", recp); soapReq.addSoapObject(recipients); soapEnvelope.setOutputSoapObject(recipients); HttpTransportSE httpTransport = new HttpTransportSE(url, timeOut); httpTransport.debug = true; try { if (headers != null) { httpTransport.call("urn:Magento/call", soapEnvelope, headers); } else { httpTransport.call("urn:Magento/call", soapEnvelope); } Object retObj = soapEnvelope.bodyIn; Object result = null; try { result = soapEnvelope.getResponse(); } catch (SoapFault soapFault) { soapFault.printStackTrace(); } 我已经解决了我的问题,我认为我的问题不值得负分。无论如何,我正在上传我的解决方案,如下所示, SoapSerializationEnvelopesoapEnvelope=newSoapSerializationEnvelope(SoapEnvelope.VER11); soapEnvelope.dotNet=true; soapEnvelope.implicitTypes=true; soapEnvelope.setAddAdornments(false); SoapObjectsoapReq=newSoapObject(NAMESPACE,"call"); soapReq.addProperty("sessionId",sessionId); soapReq.addProperty("resourcePath","customer.list"); SoapObjectnewObj=newSoapObject(); newObj.addProperty("key","email"); newObj.addProperty("value","[email protected]"); newObj.addAttribute("i:type","ns2:Map"); SoapObjectFINALoBJ=newSoapObject(); FINALoBJ.addProperty("item",newObj); SoapObjectmain_obj=newSoapObject(); main_obj.addProperty("item",FINALoBJ); main_obj.addAttribute("xmlns:ns2","http://xml.apache.org/xml-soap"); main_obj.addAttribute("i:type","c:Array"); main_obj.addAttribute("c:arrayType","ns2:Map[1]"); soapReq.addProperty("args",main_obj); soapEnvelope.setOutputSoapObject(soapReq); HttpTransportSEhttpTransport=newHttpTransportSE(url,timeOut); httpTransport.debug=true; try{ if(headers!=null){ httpTransport.call("urn:Magento/call",soapEnvelope,headers); }else{ httpTransport.call("urn:Magento/call",soapEnvelope); } ObjectretObj=soapEnvelope.bodyIn; Objectresult=null; try{ result=soapEnvelope.getResponse(); }catch(SoapFaultsoapFault){ soapFault.printStackTrace(); }
Magento API 错误:“过程‘loginParam’不存在”
我的 Magento API 调用遇到了问题。他们突然返回一个 SOAP 错误,而之前他们工作得很好。 SoapFault 异常:[SOAP-ENV:Server] 过程 'loginPar...
经过几天的持续努力,我完全不明白为什么我无法让 Soap API 用于我的 Magento 安装。 Magento 安装版本是 1.8.1 PHP 版本 5.3 我有一个脚本
通过 Magento SOAP 服务 API 获取特色产品需要哪些操作?
我正在尝试通过 Midomain.com/index.php/api/v2_soap/?wsdl 中的 WSDL 使用 SOAP v2 服务通过 Magento API 获取数据,但我不知道获取数据的确切操作 我正在努力获得“精选