对于那些不熟悉 MindBody ( http://www.mindbodyonline.com ) 的人来说,它是一个方便的商家处理工具,适用于我工作的瑜伽工作室等健康和保健中心。它可以跟踪客户和管理员工以及各种很棒的东西。一段时间以来,我一直在使用 nuSOAP 和 MindBody SOAP API v0.4 生成报告。当我的客户要求我生成需要更新的 MindBody SOAP API v0.5 的报告时,我决定放弃 nuSOAP 以使用 PHP5 的本机 SOAP。然后我听说 Zend Soap 提供了与本机肥皂相同的速度,但还有许多其他好处,所以我编写了以下代码。
<?php
require_once 'Zend/Soap/Client.php';
$sourceCredentials = array('SourceName'=>'****', 'Password'=>"****", 'SiteIDs'=>array('****'));
try {
$client = new Zend_Soap_Client('https://api.mindbodyonline.com/0_5/ClientService.asmx?WSDL');
$result = $client->GetClients(array("SourceCredentials"=>$sourceCredentials, "XMLDetail"=>"Basic", "PageSize"=>"10", "CurrentPageIndex"=>"0", "ClientIDs"=>array("100009536")));
echo $client->getLastRequest();
} catch (SoapFault $s) {
die('ERROR: [' . $s->faultcode . '] ' . $s->faultstring);
} catch (Exception $e) {
die('ERROR: ' . $e->getMessage());
}
var_dump($client);
var_dump($result);
?>
我不确定我做错了什么。该页面只是不断加载和加载,但从不加载。我希望有人可以查看 WSDL 或 API Docs 并告诉我我缺少什么。这是 API Docs 的链接http://api.mindbodyonline.com/Doc我在这个例子中尝试使用客户端服务。
如果我注释掉 $result = $client->GetClients~ 行然后页面加载并且 $client 的 var_dump 返回这个
object(Zend_Soap_Client)#1 (28) { ["_encoding:protected"]=> string(5) "UTF-8" ["_classmap:protected"]=> NULL ["_faultExceptions:protected"]=> array(0 ) { } ["_soapVersion:protected"]=> int(2) ["_uri:protected"]=> NULL ["_location:protected"]=> NULL ["_style:protected"]=> NULL ["_use: protected"]=> NULL ["_login:protected"]=> NULL ["_password:protected"]=> NULL ["_proxy_host:protected"]=> NULL ["_proxy_port:protected"]=> NULL ["_proxy_login: protected"]=> NULL ["_proxy_password:protected"]=> NULL ["_local_cert:protected"]=> NULL ["_passphrase:protected"]=> NULL ["_compression:protected"]=> NULL ["_connection_timeout:protected"]=> NULL ["_stream_context:protected"]=> NULL ["_features:protected"]=> NULL ["_cache_wsdl:protected"]=> NULL ["_user_agent:protected"]=> NULL [" _wsdl:protected"]=> 字符串(58) "https://api.mindbodyonline.com/0_5/ClientService.asmx?WSDL" ["_soapClient:protected"]=> NULL ["_lastMethod:protected"]=> 字符串(0) "" ["_soapInputHeaders:protected"]=> 数组(0) { } ["_permanentSoapInputHeaders:protected"]=> 数组(0) { } ["_soapOutputHeaders:protected"]=> 数组(0) { } }NULL ["_user_agent:protected"]=> NULL ["_wsdl:protected"]=> 字符串(58) "https://api.mindbodyonline.com/0_5/ClientService.asmx?WSDL" ["_soapClient:protected"] => NULL ["_lastMethod:protected"]=> string(0) "" ["_soapInputHeaders:protected"]=> array(0) { } ["_permanentSoapInputHeaders:protected"]=> array(0) { } [" _soapOutputHeaders:protected"]=> 数组(0) { } }NULL ["_user_agent:protected"]=> NULL ["_wsdl:protected"]=> 字符串(58) "https://api.mindbodyonline.com/0_5/ClientService.asmx?WSDL" ["_soapClient:protected"] => NULL ["_lastMethod:protected"]=> string(0) "" ["_soapInputHeaders:protected"]=> array(0) { } ["_permanentSoapInputHeaders:protected"]=> array(0) { } [" _soapOutputHeaders:protected"]=> 数组(0) { } }受保护的"]=> 数组(0) { } ["_soapOutputHeaders:protected"]=> 数组(0) { } }受保护的"]=> 数组(0) { } ["_soapOutputHeaders:protected"]=> 数组(0) { } }
我不确定这些值应该是什么,但所有这些 NULL 对我来说都很糟糕。我尝试了嵌套传递给 $client->GetClients 的数组的不同组合,并且我还尝试访问 GetClients 以外的不同函数。