2013-08-27 3 views
1

Я пытаюсь заставить сегмент viipost для работы.Использование nusoap с API-интерфейсом XML

Я использую эту часть API: https://api.viapost.com/viapostcustomer.asmx?op=SignIn

Вот моя версия этого фрагмента кода:

  <?php 
      require_once('lib/nusoap.php'); 

      $endpoint = "http://api.viapost.com/SignIn"; 

      $client = new nusoap_client($endpoint, false); 

      $xml ='<?xml version="1.0" encoding="utf-8"?> 
      <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
       <soap:Body> 
       <SignIn xmlns="http://api.viapost.com"> 
        <sUserName>[email protected]</sUserName> 
        <sPassword>passwordhere</sPassword> 
        <sReturnMessage>Logged in Successfully</sReturnMessage> 
       </SignIn> 
       </soap:Body> 
      </soap:Envelope>'; 

      $msg = $client->serializeEnvelope($xml); 

      $result=$client->send($msg, $endpoint); 

      print_r($result); 

      ?> 

Сам пароль заменяется здесь, но я знаю, что 100% шахта работает для входа веб-сайт.

Когда я перехожу на страницу, на которой это возможно. Я не возвращаюсь. Только пустая страница

ответ

1

Попробуйте использовать SoapClient.

<?php 
class ViaPost 
{ 
    private $wsdl = 'https://api.viapost.com/viapostcustomer.asmx?wsdl'; 
    private $client; 
    private $token; 

    public function __construct() 
    { 
    $this->client = new SoapClient($this->wsdl, array('trace' => true, 'soap_version' => SOAP_1_2)); 
    } 

    public function SignIn($username, $password) 
    { 
    $result = $this->client->SignIn(array ('sUserName' => $username, sPassword => $password)); 
    $this->token = $result->sLoginToken; 
    } 
} 

$viaPost = new ViaPost(); 
$viaPost->SignIn('[email protected]', 'YourPassword'); 
?> 
+0

найдены также в [ViaPost репозиторий на GitHub] (https://github.com/JANorman/Codeigniter-ViaPost-API). – pritaeas