![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 10.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam bardzo nietypowy problem. Potrzebuje napisać aplikacje w php która będzie wykożystywać API zainstalowane na systemie windosowym. Do API mam dostęp przez COM (Component Object Model). Wiem że w php COM jest dostępny tylko dla wersji Windosowych więc postawiłem sobie pod XP serwer IIS oraz PHPv5.1.6. Problem jest tego typu: jak dostać się do dostarczonego API? w necie nic nie znalazłem co mogłoby mnie naprowadzić jak używać COM w php i prawdę mówiąc nie mam zielonego pojęcia jak uruchomić to API z php (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) w manualu php też niewiele pisze:( Plik PDF z dokumentacją znajduje się pod tym adresem: plik pdf. API dotyczy platformy inwestycyjnej o której możesz poczytać na tej stronie: http://cms-forex.com/, dodatkowo możesz załozyć konto demo które będzie potrzebne do testowania API. Sama platforma oraz API dla tej platformy jest dostępne na stronie http://vtsystems.com/en/products/. I teraz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) po zainstalowaniu platformy (VT Trader) na dysku a następnie API (VT Trader API) możesz mieć dostęp do swojego konta inwestycyjnego poprzez inne oprogramowania niżeli VT Trader (to chyba oczywiste). W katalogu gdzie instaluje się API są dostępne przykłady dla różnych języków programowania takich jak VB, C#, PERL, JAVA oraz pliki excelowskie z makrami pisanymi w VB dla excela. Brak przykładu dla php (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ;P Moim zadaniem jest napisanie aplikacji która będzie umożliwiała połączenie się z serwerami platformy (dla demo serwera adres: vtdemo.fxserver.com) a następnie pobranie informacji o stanie konta (czyli otwarte pozycje stan konta etc.) oraz sprawdzenie aktualnych notowań. W sumie całość będzie podobna do przykładowego pliku excelowego z katalogu z API. Cała aplikacja ma chodzić na serwerze z systemem Windows XP (najpierw a później będzie migracja na win2k3) a dostęp musi być poprzez WWW. Defakto całość nie wydaje się jakoś szczególnie trudna zwarzywszy że API dostarcza gotowych funkcji które mają zwracać z serwera odpowiednie dane więc moja praca będzie się ograniczać do obrobienia i wyświetlenia danych wyjściowych i tyle. Najtrudniejszą rzeczą w chwili obecnej jest połączenie się poprzez API. Nigdy wcześniej nie miałem do czynienia z COM i dlatego to dla mnie jest nie do przejścia w chwili obecnej (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Co prawda mógłbym napisać w jakimś języku programowania lecz niestety c++ znam słabo a za jave dopiero się zabrałem więc inne języki poza php odpadają. Z góry wielkie dzięki wszystkim za ewentualną pomoc, woolkan (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
OK. Postaram sie pobawic tym troche.
Chociaz odrazu uprzedzam, ze najwczesniej bede mogl do tego zajrzec w poniedzialek :/ Inna sprawa to taka, ze moze sprawdz (zanim ja to zrobie) jak sie zachowuje ten skrypt na Windowsowym Apacheu - bo i on sie do tego nadaje. Nie wiem czy przypadkiem IIS nie blokuje COMa do wyjscia na zewnatrz. Z tego co opisales wyglada jakby nie mogl nawiazac polaczenia, a sam COM zaladowal sie bez problemu. Ten post edytował Seth 7.10.2006, 02:09:25 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 10.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
OK. Postaram sie pobawic tym troche. Chociaz odrazu uprzedzam, ze najwczesniej bede mogl do tego zajrzec w poniedzialek :/ Inna sprawa to taka, ze moze sprawdz (zanim ja to zrobie) jak sie zachowuje ten skrypt na Windowsowym Apacheu - bo i on sie do tego nadaje. Nie wiem czy przypadkiem IIS nie blokuje COMa do wyjscia na zewnatrz. Z tego co opisales wyglada jakby nie mogl nawiazac polaczenia, a sam COM zaladowal sie bez problemu. Sprawdziłem na Apache'u (koniecznie z załadowanym mod_ssl) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) i odkryłem że IIS nie wypuszcza połączeń SSL a API łączy się poprzez SSL. Efekt jest taki że wszystko co trzeba jest pobierane poprzez API z serwera. Natomiast jest jeden kolejny problem na który się natknąłem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Jeśli php łączy się poprzez COM z API to otwierany jest swego rodzaju stały proces który działa dotąd aż go nie zamknie się. Czyli jeśli odpalam pierwszy raz skrypt wywołujący plecenie:
to wszystko jest ok. Ale jeśli wywołam ponownie mój skrypt to następuje kolejne wywołanie COM przez co Apache świruje i nie przetwarza skryptu. Jedyny ratunek to restart Apacha. Najlepszym rozwiązaniem jest sprawdzenie czy COM już został wywołany. I właśnie.. co polecicie? myślałem o funkcji com_get_active_object() (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Albo ja nie rozumiem tej funkcji albo ona nie chce mi działać tak jak należy. Zastanawiałem się też nad przechowywaniem stanu w cookies lub w MySQL ale jeśli zastosuje takie rozwiązanie to nie będę miał tworzonego uchwytu do API więc to nie tędy droga. Seth (lub ktokolwiek inny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) czy mógłbyś mi powiedzieć co mam wpisać jako daną wejściową w funkcji com_get_active_object(string progid). Próbowałem wprowadzić $progid = "vtapi.vt_api" i $progid = "{B4306CAA-55F9-4A84-B792-AA65EA7CECB2}" ale niestety ani dla jednej ani dla drugiej wartości nie działa ta funkcja jak należy. Niestety nie wiem co powinienem podać jako daną wejściową. Help plisss (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam i dziękuję, woolkan Ten post edytował woolkan 8.10.2006, 01:59:18 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 02:13 |