簡體   English   中英

Php Soap連接拒絕

[英]Php Soap connection refusal

伙計們,我有一個問題,最近幾天我一直在學習肥皂,我一直在嘗試連接到在線商店的網絡服務,以便在用戶購買電視機之前驗證用戶的電視許可證。

我已經編寫了以下代碼來測試電視許可證公司提供的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()時,我確實看到了服務中的函數,但是當我嘗試使用其中一個函數時,卻無法連接到主持人,大家可以幫我連接到該服務。

希望這可以幫助您前進,我假設實時wsdl將正常運行,而無需調用__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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM