近期开发一个项目,需要网站与线下crm系统数据同步,因此需要PHP调用crm接口,但是这个接口不是常用的API接口,而是web service,以前没接触过,现在需要用到了,搞了一段时间,没搞出来,距离项目交单期越来越近,故之到博客园向各路大神虚心求教。
目前需要写一个demo来调用接口
接口的网址是:http://222.221.248.166
大概是看这个的:http://222.221.248.166/PosWebService.asmx?op=GetCardBuyList
写了一下,不成功。估计是xml没有传过去,所以提示“object(stdClass)#2 (2) { ["GetCardBuyListResult"]=> bool(false) ["msg"]=> string(35) "登录BFCRM的用户代码不存在" }”。
我是这样写的,但是就是提示不成功
ini_set("soap.wsdl_cache_enabled", "0"); header("content-type:text/html;charset=utf-8"); header("SOAPAction:http://tempuri.org/GetCardBuyList"); $url = 'http://222.221.248.166/PosWebService.asmx?WSDL'; $uri = 'http://tempuri.org/'; try{ $string = "<?xml version='1.0' encoding='utf-8'?> <soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'> <soap:Header> <CrmSoapHeader xmlns='http://tempuri.org/'> <UserId>用户名,这里是用户名,不敢泄露,忘大神理解</UserId> <Password>密码</Password> </CrmSoapHeader> </soap:Header> <soap:Body> <GetCardBuyList xmlns='http://tempuri.org/'> <vipId>20000003</vipId> <strStartDate>2014-01-01</strStartDate> <strEndDate>2015-05-10</strEndDate> </GetCardBuyList> </soap:Body> </soap:Envelope>"; /**************************************************************/ $client = new SoapClient($url, array('trace'=>true,'exceptions'=>true)); //Body of the Soap Header. // $headerbody = array( // 'CrmSoapHeader'=>array( // 'UserId'=>'NYCRM', // 'Password'=>'Nydc123Crm' // ) // ); //Create Soap Header. // $header = new SOAPHeader($uri, 'CrmSoapHeader', $headerbody); //set the Headers of Soap Client. // $client->__setSoapHeaders($header); $ret = $client->__soapCall('GetCardBuyList',array($string)); var_dump($ret); } catch (SOAPFault $e) { print $e; }
试一下吧.没有验证! <?php $client = new SoapClient("http://222.221.248.166/PosWebService.asmx?WSDL"); $userId=''; $password=''; $headerbody = array('UserId' => $userId, 'Password' => $password); $header = new SOAPHeader('http://tempuri.org', 'CrmSoapHeader', $headerbody); $client->__setSoapHeaders($header); //参数值 $vipId= '20000003'; $strStartDate= '2014-01-01'; $strEndDate= '2015-05-10'; $param = array('vipId' => $vipId,'strStartDate' =>$strStartDate,'strEndDate' => $strEndDate); $arr = $client->__soapCall(GetCardBuyList,array('parameters' => $param)); //$arr = $client->ServiceMethod($param); print_r($arr); ?>