我正在尝试在opencart中创建nusoap webservice。为此我下载了nusoap库并将其复制到system / library / lib中,然后我在checkout模块中创建了一个控制器类,如下所示
<?php class ControllerCheckoutCamero extends Controller { public function index() { //require_once('lib/nusoap.php'); $this->load->library('lib/nusoap'); // Create the server instance $server = new soap_server(); // Initialize WSDL support $server->configureWSDL('hellowsdl', 'urn:hellowsdl'); // Register the method to expose $server->register('hello', // method name array('name' => 'xsd:string'), // input parameters array('return' => 'xsd:string'), // output parameters 'urn:hellowsdl', // namespace 'urn:hellowsdl#hello', // soapaction 'rpc', // style 'encoded', // use 'Says hello to the caller' // documentation ); // Define the method as a PHP function function hello($name) { return 'Hello, ' . $name; } // Use the request to (try to) invoke the service $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); } } ?>
然后我通过访问localhost / myopencart / index.php检查了我的控制器?route = checkout / camero
我得到nusoap默认的webservice页面,如
但是当我点击该页面上的WSDL链接时,我被重定向到opnecart主页
我认为opencart路由器会出现这个问题,但我不知道如何处理它,我刚刚开始探索opencart。我找到了类似的问题here,但我找不到合适的答案。任何人都可以给出一些建议。提前致谢
答案 0 :(得分:0)
我认为你的代码是正确的。 我自己尝试了,如果你去localhost / myopencart / index.php它应该工作吗?route = checkout / camero&amp; wsdl
nusoap代码将使用PHP_SELF,因此不会为您的服务提供完整的URL。
此外,在对客户端进行编码时,请使用$ client = new nusoap_client('http://localhost/myopencart/index.php?route = checkout / camero&amp; wsdl',true); ...
希望有帮助