2

phpを使用してSitelinkを自分のWebサイトと統合したいと思います。デモのために、彼らはちょうどこのコードを提供しました

    echo '<p>Testing SiteLink...</p>';
    define( 'SITELINK_URL', "https://www.smdservers.net/CCWs_3.5/CallCenterWs.asmx?WSDL");
    define( 'SITELINK_CORP_CODE', "CCTST" );
    define( 'SITELINK_LOC_CODE', "Demo" );
    define( 'SITELINK_CORP_LOGIN', "Administrator" );
    define( 'SITELINK_CORP_PASS', "Demo" );
    $client = new SoapClient( SITELINK_URL );
    $params->sCorpCode = SITELINK_CORP_CODE;
    $params->sLocationCode = SITELINK_LOC_CODE;
    $params->sCorpUserName = SITELINK_CORP_LOGIN;
    $params->sCorpPassword = SITELINK_CORP_PASS;
    try
    {
    $units = $client->SiteInformation( $params );
    $result = $units->SiteInformationResult;
    }
    catch (Exception $e )
    {
    die( 'Error: '.$e->getMessage().'<br>'.$e );
    }
    echo htmlentities( $result->any );

しかし、データに影響を与え、phpを使用して処理する方法を理解できません。ユニットサイズとそれぞれの価格を取得する必要があります。どんな助けでも大歓迎です。前もって感謝します。

4

3 に答える 3

1

SiteInformation配列を期待しておらずObject$params宣言されたことはありません

define('SITELINK_URL', "http://www.smdservers.net/CCWs_3.5/CallCenterWs.asmx?WSDL");
define('SITELINK_CORP_CODE', "CCTST");
define('SITELINK_LOC_CODE', "Demo");
define('SITELINK_CORP_LOGIN', "Administrator");
define('SITELINK_CORP_PASS', "Demo");
$client = new SoapClient(SITELINK_URL);
$params = array("sCorpCode" => SITELINK_CORP_CODE,"sLocationCode" => SITELINK_LOC_CODE,"sCorpUserName" => SITELINK_CORP_LOGIN,"sCorpPassword" => SITELINK_CORP_PASS);

try {
    $units = $client->SiteInformation($params);

    header("Content-Type: text/xml");
    print($units->SiteInformationResult->any);

} catch ( Exception $e ) {
    die('Error: ' . $e->getMessage() . '<br>' . $e);
}

ライブデモを見る

于 2012-10-09T12:04:22.573 に答える
1

あなたはあなたが得ているユニットを手に入れようとはしていませんSiteInformation

$params最初にタイプを追加します。

$params = new stdClass; // as stdClass
$params->sCorpCode = SITELINK_CORP_CODE;
$params->sLocationCode = SITELINK_LOC_CODE;
$params->sCorpUserName = SITELINK_CORP_LOGIN;
$params->sCorpPassword = SITELINK_CORP_PASS;

それから:

$units = $client->UnitTypePriceList($params);
$result = $units->UnitTypePriceListResult->any;

を使用してデータを解析しDOMDocument、表示するタグ名を確認して印刷する必要があります。

$dom = new DOMDocument;
$dom->loadXML($result);

$xpath = new DOMXPath($dom);
$el = $xpath->query('//Table');

foreach($el as $units){
    $UnitID = $xpath->query('UnitID_FirstAvailable', $units)->item(0)->nodeValue;
    echo $UnitID;
}

希望する値はわかりませんがUnitID_FirstAvailable、例として取り上げました。

于 2012-10-09T12:04:42.507 に答える
1

私はこれがちょっと古いことを知っていますが、私はAPIを使っていくつかの広範な作業を行ってきました。まず、これが必要になります:SiteLinkAPIドキュメント

使用可能なすべてのユニットを取得するには、次のようにします。

// define API connection credentials
define('SITELINK_URL', "http://www.smdservers.net/CCWs_3.5/CallCenterWs.asmx?WSDL");
define('SITELINK_CORP_CODE', "CCTST");
define('SITELINK_LOC_CODE', "Demo");
define('SITELINK_CORP_LOGIN', "Administrator");
define('SITELINK_CORP_PASS', "Demo");

$client = new SoapClient( SITELINK_URL );
$params->sCorpCode = SITELINK_CORP_CODE;
$params->sLocationCode = SITELINK_LOC_CODE;
$params->sCorpUserName = SITELINK_CORP_LOGIN;
$params->sCorpPassword = SITELINK_CORP_PASS;
$params->lngLastTimePolled = 0;
$params->bTestMode = true;

try
                        {
                        $units = $client->UnitsInformationAvailableUnitsOnly_v2($params);
                        $result = $units->UnitsInformationAvailableUnitsOnly_v2Result;
                        }
                        catch (Exception $e)
                        { 
                        die( 'Error: '.$e->getMessage().'<br />'.$e ); 
                        }
echo '<table>';
                        $formatUnits = new SimpleXMLElement($result->any);
                        foreach($formatUnits->NewDataSet->Table as $unit){
                            echo "<tr>\r\n";
                            echo "<td><a href='#' data-unit-number='".$unit->sUnitName."' data-unit-id='".$unit->UnitID."' data-rate='".$rate."' class='res-unit-link'>".$unit->sUnitName."</a></td>\r\n";
                            echo "<td>".$unit->sTypeName."</td>\r\n";
                            echo "</tr>\r\n";
}
echo '</table>';

var_dump($formatUnits)SiteLinkによって返されるオブジェクトで利用可能なすべてのデータを表示するために行うことができます。上記のコードは、jQueryをdata-使用してリンクからすべての属性を取得し、レンタル/予約プロセスに使用したものの例です。

これが誰かに役立つことを願っています。私が最初にAPIを使い始めたとき、私は本当にそれを使うことができたでしょう。

于 2015-05-22T17:32:30.123 に答える