PHP SOAP使用
无head 的情况
$client = new \SoapClient(C("COUPON"));
$infos = $client->GetCoupnListsByMobileNo($data);
return $infos;
COUPON 是对应的wsdl 请求路径
指向对应的方法 和 传入对应的值 就可以了
有head 的情况
先用soapUI 测试接口是否能跑通 正常返回数据
如果可以 开始
<soapenv:Envelope xmlns:soapenv="" xmlns:tem="">
<soapenv:Header>
<tem:VerifySoapHeader>
<tem:CallKey></tem:CallKey>
</tem:VerifySoapHeader>
</soapenv:Header>
<soapenv:Body>
<tem:GetMemberTierHistory>
<tem:CompanyCode></tem:CompanyCode>
<tem:BrandCode></tem:BrandCode>
</tem:GetMemberTierHistory>
</soapenv:Body>
</soapenv:Envelope>
这是工具请求示例
php
$client = new \SoapClient(C("LOYALTY"));
$auth = array(
'CallKey'=>C("LOYALTY_KEY"),
);
$header = new \SoapHeader(C("LOYALTY_NAMESPACE"), 'VerifySoapHeader', $auth, false);
$client->__setSoapHeaders(array($header));
$infos = $client->GetLoyaltyInfo($data);
这里主要说明下 SoapHeader
SoapHeader 第一个参数指向 xmlns:tem= 的链接
VerifySoapHeader 就是head 的命名
$auth 就是head 里对应的参数
接下来就 可以直接调用对应的方法
如果 SoapClient SoapHeader 报错
打开php.ini,找到php_soap.dll , 把前面的分号去掉
;extension=php_soap.dll
前提是,已经安装了 php_soap.dll