ここで誰かが OpenCart に精通していることを願っています。OpenCart での Nusoap の実装に問題があります。これは私の実装です
- ws.php という名前の新しいライブラリ ファイルを作成しました (system/library/ に nusoap フォルダー全体があります)。
<?php final class Ws { public function __construct() { require_once('nusoap/nusoap.php'); } } ?>
- catalog/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", array( "id" => "xsd:int", ), array("return"=>"xsd:string"), "urn:MemberWSDL", "urn :MemberWSDL#selectMemberInfo", "rpc", "encoded", "メンバーの情報を取得" ); }
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")); } } ?>
- これは、OpenCart のアプリケーションに常駐する SOAP クライアントです。
$nusoap_client=新しい nusoap_client("http://localhost/opencart/index.php?route=webservice/ws"); $ ID = 90001; if($nusoap_client->fault) { $text = 'エラー: '.$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 日付: 2011 年 10 月 4 日 04:47:41 GMT コンテンツ タイプ: text/xml; charset=ISO-8859-1 X-Powered-By: PHP/5.3.1 Set-Cookie: PHPSESSID=fas5fisb84rcs3g94njljhrhk4; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 プラグマ: no-cache Set-クッキー: language=en; 有効期限 = 2011 年 11 月 3 日木曜日 04:47:41 GMT; パス=/; domain=localhost Set-Cookie: currency=MYR; 有効期限 = 2011 年 11 月 3 日木曜日 04:47:41 GMT; パス=/; domain=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' がサービスで定義されていません
誰かが OpenCart で Nusoap/SOAP を実装しようとしたことがありますか、または私の実装で何がうまくいかないのか考えていますか?
前もって感謝します。