当前位置: 首页 > 工具软件 > PHP Soap > 使用案例 >

PHP SOAP使用 心得

上官德寿
2023-12-01

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

 类似资料: