реализация nusoap для opencart - PullRequest
       13

реализация nusoap для opencart

1 голос
/ 04 октября 2011

Надеюсь, что кто-то знаком с OpenCart здесь.У меня проблема с моей реализацией Nusoap на OpenCart.Это моя реализация

  1. Я создал новый файл библиотеки с именем ws.php (у меня есть вся папка nusoap в system / library /)
<?php
final class Ws {

      public function __construct() {

          require_once('nusoap/nusoap.php');

  }

}
?>
  1. Я создал файл контроллера в каталоге / controller / webservice / ws.php
<?php
class ControllerWebserviceWs extends Controller {
  private $error = array(); 

  function __construct($registry) {

      parent::__construct($registry);

      $this->load->library('ws');
      $ws = new Ws();

          $this->nusoap_server = new soap_server();
        $this->nusoap_server->configureWSDL("MemberWSDL",

"urn: MemberWSDL");$ this-> nusoap_server-> register ("selectMemberInfo", массив ("id" => "xsd: int",), массив ("return" => "xsd: string"), "urn: MemberWSDL", "urn: MemberWSDL # selectMemberInfo "," rpc "," кодированный "," Получить информацию об участнике ");}

  function index(){

      $this->nusoap_server->service(file_get_contents("php://input"));

  }

  function select_member_info() {
        function selectMemberInfo($member_id) {
          return 'hello';
        }

$ this-> nusoap_server-> service (file_get_contents ("php: // input"));}}?>

  1. Это мой мыльный клиент, находящийся в приложении из OpenCart

$ nusoap_client = new nusoap_client ("http://localhost/opencart/index.php?route=webservice/ws"); $ id = 90001; if ($ nusoap_client-> fault) {$ text = 'Error:'. $ Nusoap_client-> fault;

    }
    else
    {
        if ($nusoap_client->getError())
        {
            $text = 'Error: '.$nusoap_client->getError();
        }
        else
        {
          $row = $nusoap_client->call(
                'selectMemberInfo',
                array($id),
                'urn:MemberWSDL',
                'urn:MemberWSDL#selectMemberInfo'
            );
            echo

'

'.htmlspecialchars($nusoap_client->response,
ENT_QUOTES).'
';}}

?>

И вот что я получаю

HTTP / 1.1 500 Внутренняя ошибка сервера Сервер: Microsoft-IIS / 5.1 Дата: вторник, 04 октября2011 04:47:41 GMT Тип содержимого: text / xml; charset = ISO-8859-1 X-Powered-By: PHP / 5.3.1 Набор-Cookie: PHPSESSID = fas5fisb84rcs3g94njljhrhk4; путь = / Истекает: Четверг, 19 ноября1981 08:52:00 GMT Cache-Control: без хранилища, без кэширования, обязательная повторная проверка, пост-проверка = 0, предварительная проверка = 0 Прагма: отсутствие кэширования Set-Cookie: language = en; expires = Thu, 03-Nov-2011 04:47:41 GMT; путь = /; домен = localhost Set-Cookie: currency = MYR; срок действия = чт, 03-ноя-2011 04:47:41 GMT; путь = /; домен =Сервер localhost: Сервер NuSOAP v0.7.3 X-SOAP-Сервер: NuSOAP / 0.7.3 (1.114) Длина содержимого: 692

xmlns: SOAP-ENV = "http://schemas.xmlsoap.org/soap/envelope/"
xmlns: xsd =" http://www.w3.org/2001/XMLSchema"
xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns: SOAP-ENC =" http://schemas.xmlsoap.org/soap/encoding/"> SOAP-ENV: Clientmethod 'selectMemberInfo' не определен в службе

Кто-нибудь пытался внедрить Nusoap / SOAP в OpenCart, или есть идеи, что не так в моей реализации?

Заранее спасибо.

1 Ответ

0 голосов
/ 08 июня 2012

У меня такая же проблема. Но я понял, что если вы поставите select_member_info() вне основного класса, это будет работать!

Я напишу снова, как только получу рабочее решение.

...