2013-09-24 38 views

回答

1

請看看我下面的自定義代碼,可能是它的幫助你,

api.xml

<config> 
    <modules> 
     <Agentgallery> 
      <version>0.1.0</version> 
     </Agentgallery> 
    </modules> 
    <api> 
     <resources> 
      <agentgallery translate="title" module="agentgallery"> 
       <model>agentgallery/api</model> 
       <title>Tax Rule Api</title> 
       <acl>agentgallery</acl> 
       <methods> 
        <gettaxrule translate="title" module="agentgallery"> 
         <title>Retrieve tax rule data</title> 
         <acl>agentgallery/gettaxrule</acl> 
        </gettaxrule>      
       </methods>    
      </agentgallery> 
     </resources> 
     <acl> 
      <resources> 
       <agentgallery translate="title" module="agentgallery"> 
        <title>Tax Rule</title> 
        <gettaxrule translate="title" module="agentgallery"> 
         <title>Get tax rule</title> 
        </gettaxrule>      
       </agentgallery> 
       <all> 
       </all> 
      </resources> 
     </acl> 
    </api> 
</config> 

wsdl.xml

<?xml version="1.0" encoding="UTF-8"?> 
<definitions xmlns:typens="urn:{{var wsdl.name}}" 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="{{var wsdl.name}}" targetNamespace="urn:{{var wsdl.name}}"> 

    <message name="agentgalleryGettaxruleRequest"> 
     <part name="sessionId" type="xsd:string" /> 
     <part name="arg" type="xsd:string" /> 
    </message>  
    <message name="agentgalleryGettaxruleResponse"> 
     <part name="result" type="xsd:string" /> 
    </message> 
    <portType name="{{var wsdl.handler}}PortType"> 
     <operation name="agentgalleryGettaxrule"> 
      <documentation>Test Method</documentation> 
      <input message="typens:agentgalleryGettaxruleRequest" /> 
      <output message="typens:agentgalleryGettaxruleResponse" /> 
     </operation>  
    </portType> 
    <binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType"> 
     <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> 
     <operation name="agentgalleryGettaxrule"> 
      <soap:operation soapAction="urn:{{var wsdl.handler}}Action" /> 
      <input> 
       <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> 
      </input> 
      <output> 
       <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> 
      </output> 
     </operation>   
    </binding> 
</definitions> 

Api.php模塊內的模型文件夾

<?php 
class Namespace_Modulename_Model_Api extends Mage_Api_Model_Resource_Abstract 
{ 

    public function gettaxrule($customerTaxClass,$productTaxClass) 
    {       
     $result = Mage::getResourceModel('tax/calculation')->getRatesForWebservices($customerTaxClass,$productTaxClass); 

     //here you can paste your code whatever you need instead of $result variable 

     return $result; 
    } 

} 
?> 

模型/ Objectmodel/API /文件夾內V2.php文件

<?php 
class Namespace_Modulename_Model_Objectmodel_Api_V2 extends Companyname_Modulename_Model_Objectmodel_Api 
{  

} 
?> 

後,你可以打電話給你的方法,如下面 這裏你喜歡這個

調用方法後創建API的對象
$result = $checkData->proxyObj()->call($sessionId, 'agentgallery.gettaxrule',array($customerTaxClass,$productTaxClass)); 

這裏「agentgallery.gettaxrule」是自定義方法。

試試這個

相關問題