2017-09-22 16 views
0

男私は過去数日間石鹸を学んでいた問題があります。私はオンラインストアのWebサービスに接続して、テレビのセットを購入する前にユーザーのテレビのライセンスを確認しようとしています。PHPの石鹸接続の拒否

テレビライセンス会社が提供するWebサービスをテストするために、次のコードを記述しました。

<?php 

$wdsl = "https://secure4.tvlic.co.za/AccountEnquiryService_Test_1.0/AccountEnquiryService.svc?wsdl"; 


$options = array(
    'trace' => true, 
    'exceptions' => true, 
    'connection_timeout' => 1 
); 

try{ 

    $client = new SoapClient($wdsl,$options); 

$apiauth = array(
    'Rquid' => '3600cd32-28b9-4a4f-a522-4326def4a9c2', 
    'ApiKey' => '5957237e-101c-4ff2-8fdc-4bd6c9393a1d', 
    'AccountIdentifier' => '9211186012088', 
    'AccountIdentifierType' => 'SaidNumber'); 

    $header = new SoapHeader('http://tempuri.org/','Auth',$apiauth,true); 
    $client->__setSoapHeaders($header); 
    $account = $client->GetAccount(); 

    var_dump($account); 

echo "<pre>"; 
    var_dump($client); 
echo "</pre>"; 
}catch (Exception $e) { 

    echo "Error!"; 
    echo $e->getMessage() . "<br>"; 
    echo 'Last response: ' . $client->__getLastResponse(); 
} 

?> 

wdslにはクライアント証明書は必要ありません。上記のapiキーはテスト専用です。

は、問題は、私はいつも

unable to connect to host

を打つしかし、私は、無効な関数を書く場合、私は私が)(__GetFunctionsを使用する場合、私は、関数はこのサービスに対して無効であるというエラーが出ますサービスの機能を参照してください。しかし、私がそれらのうちの1つを使用しようとすると、私はホストに接続できませんでした。あなたがこのサービスに接続するのを手伝ってくれますか?

+0

を呼び出すことなく、正常に動作することを前提とし、私はここにしようとしましたが、私は欠けていますいくつかの情報。時にはSoapUIは、WSを消費するためのより良い、または正しいアプローチを示すことができます。 –

+0

フィードバックをお寄せいただきありがとうございます。 – user1

+1

@GabrielHeming私は上記のツールを使用しました。ツールを使用して接続できます。 – user1

答えて

2

がうまくいけば、これはあなたが軌道に乗る必要があり、私は生きてwsdlがSOAPUIとデWSを消費するようにしてください__setLocation()

<?php 
$wdsl = "https://secure4.tvlic.co.za/AccountEnquiryService_Test_1.0/AccountEnquiryService.svc?wsdl"; 

$options = array(
    'trace' => true, 
    'exceptions' => true, 
    'connection_timeout' => 1 
); 

try { 
    $client = new SoapClient($wdsl, $options); 
    // use https location - the host for http (http://jhb-tvlicweb2.sabc.co.za/AccountEnquiryService_Test_1.0/AccountEnquiryService.svc) dosn't exist 
    $client->__setLocation('https://secure4.tvlic.co.za/AccountEnquiryService_Test_1.0/AccountEnquiryService.svc'); 

    // setup parameters 
    $arrParams = array(
     'request' => array(
      'Header' => array(
       'Rquid' => '3600cd32-28b9-4a4f-a522-4326def4a9c2', 
       'ApiKey' => '5957237e-101c-4ff2-8fdc-4bd6c9393a1d' 
      ), 
      'AccountIdentifier' => '9211186012088', 
      'AccountIdentifierType' => 'SaidNumber' 
     ) 
    ); 

    // request parameters passed in the body not the header 
    $account = $client->GetAccount($arrParams); 

    var_dump($account); 

    echo "<pre>"; 
    var_dump($client); 
    echo "</pre>"; 
} catch (\Exception $e) { 
    echo "Error!"; 
    echo $e->getMessage() . "<br>"; 
    echo 'Last response: ' . $client->__getLastResponse(); 
} 
+0

をテストします。家賃を支払う。ありがとうございます – user1

+0

今すぐどうすれば応答メッセージを取得できますか? – user1

関連する問題