2017-05-31 10 views
0

PHPでSOAP APIを使用するチケットをTicketHeaderとして追加する必要があります。要求はこのようにすべきです。PHP SOAP - TicketHeaderを追加する

<?xml version="1.0" encoding="utf-8"?> 
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> 
    <soap12:Header> 
    <TicketHeader xmlns="http://www.webcrm.com/"> 
     <Guid>***MY_TICKET_ID***</Guid> 
    </TicketHeader> 
    </soap12:Header> 
    <soap12:Body> 
    <ReturnAllUsers xmlns="http://www.webcrm.com/" /> 
    </soap12:Body> 
</soap12:Envelope> 

私は現在このコードを持っています - 適用されたチケットを得ることができず、NAMESPACEが何であるかわかりません。ヘッダーラインが間違っていることはわかっていますが、チケットが収集された場所が始まります。

$wsdlUrl = 'https://webcrmapi5.b2bsys.net/WebCrmApi.asmx?wsdl'; 
$client = new SoapClient($wsdlUrl, array("trace" => 1, "exceptions" => 1));   
$res = $client->Authenticate(array('dbnCode' => $wcrm_dbncode, 'userName' => $wcrm_user, 'password' => $wcrm_pw)); 
$ticket = $client->__getLastResponse(); 

$header = new SoapHeader("http://www.webcrm.com/", "TicketHeader", $ticket, false); 
$client->__setSoapHeaders($header); 

$users = $client->ReturnAllUsers()->ReturnAllUsersResult; 

print_r($users); 

誰かが助けることができますか?

答えて

0

PackageGeneratorプロジェクトなどのPHPジェネレータにWSDLを使用する必要があります。送信するリクエストに関連付けられた生成クラスには、設定するデータと一致する生成クラスを使用して簡単にSoapHeaderを設定するメソッドが含まれています。

さらに、リクエストの作成、リクエストの送信、最後にレスポンスの処理が容易になります。

Set service classに自動生成されたPayPal Soap APIのPHP SDKにサンプルを含めることができます。

関連する問題