0

Web サービスへの非 wsdl ソープ コールを使用しており、必要な方法でリクエストを作成できますが、エンベロープ ボディ内にスキーマ バージョンを設定する必要があります。

PHP SoapClient を使用してこのリクエストを作成できます。

<?xml version="1.0" encoding="UTF-8"?> 
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://schemas.discovery.co.za/vitality">
<env:Body>
<ns1:UsageEligibilityRequest>
        <ns1:RequestingEntityNumber>12345678</ns1:RequestingEntityNumber>
         <ns1:Entities>
            <ns1:EntityNumber>12345678</ns1:EntityNumber>

            <ns1:DateOfBirth>1980-01-01</ns1:DateOfBirth>

            <ns1:Gender>M</ns1:Gender>
            <ns1:FirstInitial>H</ns1:FirstInitial>
         </ns1:Entities>
</ns1:UsageEligibilityRequest>
</env:Body>
</env:Envelope> 

ただし、次の行が必要です。

<ns1:UsageEligibilityRequest> 

することが

<ns1:UsageEligibilityRequest schemaVersion="1.0">

組み込みの関数/オプションを使用してPHPでこれを行う方法がわからず、Googleにとっては難しいようです。

これは、次のようなコードを使用して構築されます。

$client->__soapCall('UsageEligibilityRequest', array($options));

ありがとう。

4

1 に答える 1

0

これを行うには2つの方法があります

$requestingUser = 12345678;
$entityNumber = 12345678;
$dateOfBirth = '1980-01-01';
$gender = 'M';
$firstInitial = 'H';
  1. 次のような SoapVar を使用します。

    $paramsSOAPVar = new SoapVar('<ns1:UsageEligibilityRequest schemaVersion="1">  
       <ns1:RequestingEntityNumber>' . $requestingUser. '</ns1:RequestingEntityNumber>  
          <ns1:Entities>  
             <ns1:EntityNumber>' . $entityNumber. '</ns1:EntityNumber>
             <ns1:DateOfBirth>' .$requestingUser. '</ns1:DateOfBirth>
             <ns1:Gender>' .$gender. 'M</ns1:Gender>
             <ns1:FirstInitial>' .$firstInitial. '</ns1:FirstInitial>
          </ns1:Entities>
       </ns1:UsageEligibilityRequest>', XSD_ANYXML);  
    
  2. パラメータの配列を設定します。

    $params = array(
       'schemaVersion' => 1,
       'RequestingEntityNumber' => $requestingUser, 
       'Entities' => array(
           'EntityNumber' => $entityNumber,
           'DateOfBirth' => $dateOfBirth,
           'Gender' => $gender,
           'FirstInitial' => $firstInitial
        ) 
    );
    
于 2013-10-14T20:26:56.193 に答える