Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MagentoAPI示例_Api_Magento - Fatal编程技术网

MagentoAPI示例

MagentoAPI示例,api,magento,Api,Magento,我正在寻找启用Magento API的模块的工作示例。我如何定义它、为它编写代码并调用它?一个工作配置(在app/code/local/ModuleName/etc/中。我将我的代码写到api.xml中): 实际调用SOAP接口的PHP代码: $mageUrl = 'http:/local.magecomm/api/?wsdl'; $mageUser = 'soaptest'; $mageApiKey = 'apitest'; $soap = new SoapClient($m

我正在寻找启用Magento API的模块的工作示例。我如何定义它、为它编写代码并调用它?

一个工作配置(在app/code/local/ModuleName/etc/中。我将我的代码写到api.xml中):

实际调用SOAP接口的PHP代码:

$mageUrl    = 'http:/local.magecomm/api/?wsdl'; 
$mageUser   = 'soaptest'; 
$mageApiKey = 'apitest'; 

$soap = new SoapClient($mageUrl); 

$sessionID = $soap->login($mageUser, $mageApiKey);

var_dump($soap->call($sessionID, 'customer.info', array()));
运行所述脚本的结果:

C:/Temp>php magesoap.php
string(3) "xxx"
一些注意事项:

o错误:“无效的api路径。”

  • 这意味着Magento找不到模块
o错误:“资源路径不可调用。”

  • 这意味着Magento无法调用模块中的方法

  • 您可以使用system.log文件对此进行调试。它将显示一个或多个有关无法从计算文件路径自动加载请求类的错误

    2011-04-13T15:15:24+00:00调试(7):包含(Mage/Customer/Model/Api.php)[function.include]:打开流失败:没有这样的文件或目录c:/Development/Projects/MagentoCommercial/lib/Varien/Autoload.php

    2011-04-13T15:15:24+00:00调试(7):include()[function.include]:打开要包含的“Mage/Customer/Model/Api.php”失败(包括:C:/Development/Projects/MagentoCommercial/app/code/local;C:/Development/Projects/MagentoCommercial/app/code/community;C:/Development/Projects/MagentoCommercial/lib;C:/Development/Libraries;C:/Development/Libraries/Standard/_Pear'))C:/Development/Projects/MagentoCommercial/lib/Varien/Autoload.php

o上面的模块配置XML将此SOAP接口链接到“Customers”组下名为“Get Info Test”的API权限中的一个新项。然后,它将可用于允许或拒绝特定API用户/角色

o模块config XML中/config/api/resources/customer/methods/info下的值是应该绑定到SOAP资源名称的方法的内部方法名称。如果它们相同,则可以忽略此项

o/config/api/resources/customer(即“ModuleName_Model_api”)下的值是此处的完整类名,因为它显然指的是我的类,而我的类不是Mage的一部分。如果您试图调用Mage中的现有类,您可以使用简写符号(xxx/yyy,xxx/yyy_zzz,等等)

o只有在模块配置的ACL部分,“模块”属性()的值才有意义。尽管如此,还是要确保在任何地方都正确设置了它(大小写不重要)。可能是因为他们还没有将其实现为主流,而忽略它只会在以后给您带来问题


Dustin Oprea

此处使用的“API”不清楚。SOAP?RPC?本机Magento PHP调用?更具体一些,有人会提供帮助。只需要XML就可以定义API连接的模块。您的笔记部分帮了我很多忙!我希望我能投票支持您更多!如果有人获得资源,则无法调用路径。可能会有模块冲突覆盖相同的文件。
$mageUrl    = 'http:/local.magecomm/api/?wsdl'; 
$mageUser   = 'soaptest'; 
$mageApiKey = 'apitest'; 

$soap = new SoapClient($mageUrl); 

$sessionID = $soap->login($mageUser, $mageApiKey);

var_dump($soap->call($sessionID, 'customer.info', array()));
C:/Temp>php magesoap.php
string(3) "xxx"