1

こんにちは、返信の仕方を教えてください

私は wsdl を持っていて、それを介して awebservice を呼び出したいと思っています。

作成する必要があるxmlリクエストも提供しています

 <?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header    /><soapenv:Body>
  <q2:OneOffDeductionRequestMsg
   xmlns:q0="http://www.huawei.com/bme/accountmgr"
   xmlns:q1="http://www.huaweiommon"
   xmlns:q2="http://www.accountmgrmsg">
   <RequestHeader>
   <q1:CommandId>OneOffDeduction</q1:CommandId>

   <q1:Version>1</q1:Version>
   <q1:TransactionId/>
   <q1:SequenceId>1</q1:SequenceId>

 <q1:RequestType>Event</q1:RequestType>
   <q1:SessionEntity>
  <q1:Name>NET</q1:Name>
  <q1:Password>084912FA9733C4A0115D</q1:Password>
 <q1:RemoteAddress>10.176.122.2</q1:RemoteAddress>
</q1:SessionEntity>
<q1:SerialNo>192741328589162212</q1:SerialNo>
</RequestHeader>
<OneOffDeductionRequest>
<q0:SubscriberNo>XXXXXX73</q0:SubscriberNo>
<q0:OperationID>4059999</q0:OperationID>
<q0:AdditionalInfo>VNET</q0:AdditionalInfo>
<q0:DeductAmt>100</q0:DeductAmt>
<q0:MinMeasureId>101</q0:MinMeasureId>
</OneOffDeductionRequest>
</q2:OneOffDeductionRequestMsg>
</soapenv:Body></soapenv:Envelope>

これを利用するPHPコードは次のとおりです。

<?php

  $RequestHeader = array( 
           'CommandId' => 'OneOffDeduction',
    'Version' => '1',
    'TransactionId' => '34234',
    'SequenceId'  =>  '1',
    'RequestType' => 'EVENT',    
    'SerialNo' => '1527013286284589162212');


   $SessionEntity =array(
    'Name'      =>    'V', 
            'Password'  =>    'v',
        'RemoteAddress' =>'10.0.0.0');


 $wsdl ="http://eAccountMgrService?wsdl";
 $client = new SoapClient($wsdl);

  $param =array('SubscriberNo'=>'54321',
 'OperationID' =>'4059999',
 'AdditionalInfo'=>'VAS2NET',
 'DeductAmt'=>'10',
 'MinMeasurId'=>'101');

 var_dump($client);

  $Result = $client->__call('OneoffDeduction',array( 
            'CommandId' => 'OneOffDeduction',
    'Version' => '1',
    'TransactionId' => '34234',
    'SequenceId'  =>  '1',
    'RequestType' => 'ET',    
    'SerialNo' => '1527',
  'sessionEntity' =>array(
    'Name'      =>    'V', 
            'Password'  =>    'v',
        'RemoteAddress' =>'10.0.0.0')));
  var_dump($Result);

  echo $client->__getLastRequest();

 $Response = $client->__call('OneoffDeduction',array('SubscriberNo'=>'54321',
'OperationID' =>'4059999',
' AdditionalInfo'=>'VAET',
 'DeductAmt'=>'10',
'MinMeasurId'=>'101'));

   echo $client->__getLastRequest();
   ?>
4

1 に答える 1

0

コードを DRY して整理するまで、問題をデバッグするのは簡単ではありません。

決して使用しない変数を定義するため、どの変数が実際に API に送信されているかについて混乱する可能性が$paramsあります

正しいリストを渡していることを確認するために、soapClient のドキュメントを参照することをお勧めします。

于 2013-01-25T15:40:43.883 に答える