1. Forum używa plików Cookies. Dowiedz się więcej o celu ich używania i możliwości zmiany ustawień Cookies w przeglądarce. Czytaj więcej...

W TRAKCIE WebAPI SOAP przez VBA Excel

Dyskusja w 'Dodatki oraz integracje' rozpoczęta przez użytkownika GD-sklep, 21 Marzec 2017.

  1. GD-sklep

    GD-sklep Uczestnik

    Wiadomości:
    29
    Docenione treści:
    4
    Witam,
    widzę, że jest dużo obecnie wątków o integracji i WebAPI. Czy ktoś jest w stanie mi pomóc, ponieważ nie mogę odnaleźć analogii między php i C w dokumentacji WebAPI Click Shopa, a komunikacją SOAP z poziomu VBA w Excelu (tak potrzebuję zrobić).
    Korzystając z pomocy google doszedłem do utworzenia takiego kodu:
    Sub DoIt2()
    Dim sURL As String
    Dim sEnv As String
    Dim xmlhttp As New MSXML2.xmlhttp
    Dim xmlDoc As New DOMDocument
    sURL = "http://adresWWWstrony/webapi/soap/"

    sEnv = "<?xml version=""1.0"" encoding=""utf-8""?>"
    sEnv = sEnv & "<soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"
    sEnv = sEnv & " <soap:Body>"
    sEnv = sEnv & " <login>"
    sEnv = sEnv & " <username>mojLogin</username>"
    sEnv = sEnv & " <password>mojeHaslo</password>"
    sEnv = sEnv & " </login>"
    sEnv = sEnv & " </soap:Body>"
    sEnv = sEnv & "</soap:Envelope>"

    With xmlhttp
    .Open "post", sURL, False
    ' .setRequestHeader "Host", "webservices.gama-system.com"
    .setRequestHeader "Content-Type", "text/xml; charset=utf-8"
    .setRequestHeader "soapAction", "http://adresWWWstrony/webapi/soap/?wsdl"
    .setRequestHeader "Accept-encoding", "win-8"
    .send sEnv
    xmlDoc.LoadXML .responseText
    'xmlDoc.Save ThisWorkbook.Path & "\WebQueryResult.xml"
    MsgBox .responseText
    End With
    End Sub

    Niestety uruchamiając ten kod otrzymuję kod błędu Nieprawidłowy login lub hasło. Ale nie wiem czy dobrze wywołuję funkcję "login"? Czy dobrze podaję jej argumenty login i hasło? Czy w dobrym miejscu podaję link "wsdl"? Czy konstrukcja kodu sEnv jest dobra?

    Login i hasło działa na aplikacji Androidowej Click Shop, więc sprawdzony login WebAPI jest dobrze skonfigurowany.
     
  2. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    FEEDBACK-1074 chociaż to API przekazałem pytanie do opiekuna, może ma jakieś rozwiązanie/pomysł/sugestię.
     
  3. GD-sklep

    GD-sklep Uczestnik

    Wiadomości:
    29
    Docenione treści:
    4
    Czy może ktokolwiek ma pomysł jak mogę sprawdzić czy poszczególne kroki robię dobrze?
    Na razie zakomentarzowałem wiersz w nazwą funkcji "login", co zmieniło mi komunikat błędu, co mam nadzieję oznacza, że jakoś tak to powinno wyglądać.
     
  4. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    pytanie może proste, ale czy dany login ma dostęp do API?
     
  5. GD-sklep

    GD-sklep Uczestnik

    Wiadomości:
    29
    Docenione treści:
    4
    Odpowiedź też jest prosta, dodałem to na końcu swojego pytania: korzystam z niego w aplikacji Click Shop, dostępnej w Google Play (legalne zrodlo).
    W moim odczuciu wpisuje również dobre hasło to tego loginu.
     
  6. GD-sklep

    GD-sklep Uczestnik

    Wiadomości:
    29
    Docenione treści:
    4
    TheL, a co jeśli twoje pytanie jest trafione. Mam użytkownika zdefiniowanego, ale jak mam sprawdzić czy nie popełniam jakiegoś prostego błędu typu literówka w nazwie funkcji, loginie lub haśle, a może cokolwiek mało skomplikowanego? Jest jakaś możliwość sprawdzenia, że moje zapytanie dochodzi do serwera home.pl?
     
  7. GD-sklep

    GD-sklep Uczestnik

    Wiadomości:
    29
    Docenione treści:
    4
    Hej, udało się coś uzyskać?
     
  8. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    Jeśli chodzi o całą konstrukcję, rozwiązania nie wskażę Ci, ale otrzymałem taką podpowiedź:

    Informacje o API znajdziesz na www.tech.clickshop.pl
    jest metoda: interlas.validation.errors - można nią sprawdzić gdzie generowany jest błąd.
     
  9. GD-sklep

    GD-sklep Uczestnik

    Wiadomości:
    29
    Docenione treści:
    4
    metoda: internals.validation.errors - niestety do jej wywołania potrzebne jest ID sesji, ja niestety do tego momentu nie doszedłem. nie dostaję informacji do id sesji, bo mam problem z zalogowaniem.
     
  10. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    Podpowiedź jaką znalazłem:

    Jeśli nie ma ID sesji, to oznacza to tyle, że logowanie się po api do sklepu jest błędne. Nie mniej na tym etapie wyczerpała się nasza wiedza o dalszym wykorzystaniu API, więc być może to pora skorzystać z pomocy zew. firmy, która np. na codzień tworzy rozwiązania do komunikacji API z aplikacjami typu sklep Click Shop i mu podobne.
     
  11. GD-sklep

    GD-sklep Uczestnik

    Wiadomości:
    29
    Docenione treści:
    4
    OK, pozostawiam komunikację z WebAPI spod VBA Excel na boku. Wracam do projektu przez php, ale tutaj napotykam błąd. Gdy ściągnąłem dane z Click Shop przez php za pomocą dostępnych skryptów http://tech.sklep-pomoc.home.pl/webapi:order.new.list zamiast polskich znaków pojawiają się znaki zapytania.
    Czy ktoś może mnie wesprzeć? Ustawienia serwera php (lokalnie zainstalowałem sobie na komputerze ze względów bezpieczeństwa)
    W pliku wynikowym nadałem w HTML, żeby kodował UTF-8, nic to nie dało.
     

Poleć forum znajomym