Soap w PHP

0

Witam
Proszę o pomoc w obsłudze SOAP napisanego w PHP : http://panel.bps-paczka.pl/api/api.php?wsdl
Nie bardzo wiem jak się do tego dobrać.
Mam taki początek :
SoapActionsService s = new SoapActionsService();
Object x = s.Wersja();
ale jak ze zmiennej x wyciągnąć dane ??
Może ktoś robił jakąś integracje z takim kurierem ??
Bardzo proszę o pomoc.

0
  1. trzeba się dostać do jakiegoś opisu tego API
  2. trzeba znaleźć jak tam wygląda typ WersjaOut i na tej podstawie wyciągać dane

Np. dla wersji może to wyglądać tak:

            var kurier = new kurierpbs.SoapActionsService();
            var w = (System.Xml.XmlNode[])kurier.Wersja();  //1

            var wersja = w.Where(n => n.Name.ToLower().Equals("item")).FirstOrDefault();  //2
            if (wersja != null)
            {               
                Console.WriteLine(wersja.SelectSingleNode("value").InnerText);  //3
            }
  1. Wersja() zwraca tablice obiektów, które tak naprawdę są typu XmlNode, tu są to dwa obiekty
  2. wyszukujemy w tablicy pozycji, której nazwa to item, tu jest to drugi obiekt (ale czy zawsze tak będzie)
  3. jednym z dzieci znalezionej node w pkt 2 powinno być takie, które się nazywa value i w nim siedzi wersja

Tak można wyciągać dane "na ślepo" po prostu patrząc co zwraca dana metoda. O ile z prostymi metodami, gdzie te dane są stałe nie ma problemu o tyle problem będzie z takimi metodami, które zwracają różne dane. Oczywiście problemu by nie było gdybyś miał opis do tego co zwraca dana metoda.

0

mam opis

to jest przykład struktury jaka trzeba przesłać, tylko jak to ma wyglądać w c# ??

2.1 Struktura login:
Parametr: Typ: Wymagane: Opis:
bpsid string Tak Numer klienta w systemie BPS
klucz string Tak Klucz API otrzymany od BPS
Przykład:
$parametry['login']['bpsid'] = 'Numer klienta w systemie BPS';
$parametry['login']['klucz'] = 'klucz API';

3.3 Saldo:
Wynikiem działania metody jest tablica zawierająca aktualną informacje o stanie
finansów klienta w PLN. W tej metodzie wymagane jest użycie struktury
autoryzacyjnej.
3.3.1 Parametry wejściowe:
Nazwa pola: Typ: Wymagane: Opis:
login array Tak Struktura login (pkt 2.1)
Przykład:
$parametry['login']['bpsid'] = '00001';
$parametry['login']['klucz'] = '00002';
3.3.2 Wywołanie:
$client->Saldo($parametry);
3.3.3 Dane wyjściowe:
Parametr: Opis:
finanse Tablica zawierająca informacje o stanie finansów na koncie
klienta lub informacje o błędzie.
Definicje w danych wyjściow y c h :
saldo: Stan finansów na koncie klienta w PLN.
kredyt: Maksymalny kredyt przyznany klientowi w PLN.
srodki: Stan środków dostępnych na kolejne operacje w PLN.
Przykład A :
$wynik['finanse']['saldo'] = -5112.23;
$wynik['finanse']['kredyt'] = 10000.00;
$wynik['finanse']['srodki'] = 4887.77;

0

w C# należy sobie wygerewować z WSDL-a kod interfejsowy, i używać C# type-safe.
Jak masz SOAP to masz WSDL-a (tydzień temu był wątek), bliźnięta-bracia - kogo bardziej matka-historia ceni *) ?

*) kto starszy, zrozumie ;)

0

zaimportuj sobie to WSDL i zobacz co z tego wyjdzie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1