Programowo dostęp do kursów walut [zamknięty]

Konfiguruję system zamówień online, ale jestem w Australii i dla międzynarodowych klientów chciałbym pokazać ceny w dolarach amerykańskich lub euro, więc nie muszą oni podejmować wysiłku umysłowego, aby przeliczać z dolarów australijskich.

Czy ktoś wie, czy mogę pobrać Aktualne Kursy walut z sieci gdzieś w łatwym do analizy formacie, do którego mogę uzyskać dostęp ze skryptu PHP ?


UPDATE: napisałem teraz klasę PHP, która implementuje to. możesz pobrać kod z mojej strony .

Author: Adam Pierce, 2008-10-08

15 answers

Możesz uzyskać konwersje walut w prostym formacie od yahoo:

Na przykład, aby przeliczyć Z GBP na EUR: http://download.finance.yahoo.com/d/quotes.csv?s=GBPEUR=X&f=sl1d1t1ba&e=.csv

 71
Author: Greg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-06 09:30:27

Ta odpowiedź jest bardzo późna, ale w powyższych odpowiedziach brakuje kluczowego fragmentu informacji.

Jeśli chcesz pokazać klientom dokładne ceny, ważne jest, aby zrozumieć, jak działają kursy walut.

Większość usług FX cytuje tylko kurs kasowy (w połowie drogi między ofertą a zapytaniem). Spot jest rodzajem skrótu dla kursu wymiany, ale nikt nie dostaje spot, ponieważ można sprzedać tylko w bid lub kupić w ask. Zwykle szukasz co najmniej 1% spreadu między ich, więc stawka spot jest 0,5% zniżki dla klientów.

Ale to nie koniec, twoi klienci prawie na pewno używają karty kredytowej i Visa / Mastercard / Amex wszystkie opłaty dewizowe. Są one nietrywialne z mojego doświadczenia, co najmniej 2,5%. Na przykład Citibank Australia pobiera opłaty w wysokości 3,3%. Różnią się one w zależności od karty, więc nie ma sposobu, aby przewidzieć ostateczną cenę, że klienci będą rozliczani.

Jeśli chcesz podać" dokładną " cenę swoim klientom w oparciu o kurs wymiany, musisz uwzględnić powyższe i zapewnić bufor, aby nie skończyć z naliczaniem więcej niż to, co podałeś.

FWIW, dodałem 4% do tego, co inaczej wskazywałaby konwersja F / X.

 39
Author: philoye,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-05 12:18:55

Byłoby miło dodać

Http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml

Do listy.

Oficjalne stopy referencyjne zapewniają Europejski Bank Centralny w oparciu o regularną codzienną procedurę uzgodnieniową pomiędzy bankami centralnymi w ramach Europejskiego Systemu Banków Centralnych i poza nim.

Kanał jest w XML i niektóre inne formaty .
Aktualizacja odbywa się zwykle o 14: 15 czasu EBC (= czas Frankfurtu).

 25
Author: Jacco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-28 16:56:16

Ostatnio zaimplementowałem to samo, ale używając API Google. Adres URL zapytania wygląda tak:

http://www.google.com/ig/calculator?hl=en&q=1GBP=?USD

Wymaga 3 parametrów. Pierwszy parametr to kwota, a następnie kod waluty ISO 4217, z którego przeliczasz, znak równości i znak zapytania oraz Kod waluty, na którą przeliczasz. Listę kodów, które Google obsługuje znajdziesz tutaj . Odpowiedź na zapytanie będzie wyglądała następująco:

{lhs: "1 British pound",rhs: "1.6132 U.S. dollars",error: "",icc: true}

To dość oczywiste, więc ja Nie będę wdawać się w szczegóły. Oto jak poradziłem sobie z odpowiedzią na zapytanie:

function convert_currency($amount, $from_code, $to_code){
    ini_set('max_execution_time', 60);
    $temp = 'http://www.google.com/ig/calculator?hl=en&q=' . $amount . $from_code . '=?' . $to_code;

    $response = file_get_contents($temp);
    $result_string = explode('"', $response);

    $final_result = $result_string['3'];

    $float_result = preg_replace("/[^0-9\.]/", '', $full_result);

    return $float_result;
}

Jestem pewien, że to nie jest najbardziej elegancki sposób, aby to zrobić, ale jestem całkiem nowy w PHP. Mam nadzieję, że to pomoże!

 12
Author: Natsukane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-02 02:04:36

Kolejny bardzo wielki darmowy i opensource link jest taki:

https://raw.github.com/currencybot/open-exchange-rates/master/latest.json
(Znalazłem o tym tutaj: http://josscrowcroft.github.com/open-exchange-rates/)

[Aktualizacja]:
Dane projektu Open Exchange Rates zostały przeniesione z GitHub.
jest już dostępny pod adresem: http://openexchangerates.org/
DANE w formacie JSON są dostępne pod adresem: http://openexchangerates.org/latest.json

brak opłat za dostęp, Brak limitów stawek, brak brzydkiego XML-tylko za darmo, co godzinę aktualizowane kursy walut w formacie JSON.
To nie jest teraz "całkowicie" za darmo. Nowa licencja mówi, że do 1000 odsłon miesięcznie jest dozwolone, a następnie musisz zapłacić. Musisz również zapłacić, jeśli chcesz korzystać z jednego przelicznika walut (podstawowa funkcjonalność).

[ uwaga: możesz też spojrzeć na tę odpowiedź. ]

 12
Author: zeFree,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:18

Dodałem otwartą tabelę danych do YQL, możesz jej użyć do pobierania danych o kursie wymiany z yahoo.Finanse.

Spróbuj w konsoli YQL

Format oddzielony przecinkami jest preferowany niż "gdzie sparować w ('EURUSD','GBPUSD')", ale w każdym razie, można użyć obu, a nawet mieszać je.

 6
Author: mtelis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-25 06:44:01

Oto serwis oferujący kursy walut

Http://www.newyorkfed.org/markets/pilotfx.html

 4
Author: Ólafur Waage,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-08 10:07:16

Ta strona ma usługę przeliczania walut za darmo:

Http://www.webservicex.net/WS/WSDetails.aspx?WSID=10

 4
Author: David Wengier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-08 10:10:31

Spróbuj tego RESTful (nie jestem pewien, czy to naprawdę odpoczynek, ponieważ dostałem to pierwotnie z SOAP, próbowałem uzyskać do niego dostęp za pomocą HTTP GET)

 3
Author: Kevin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-04 08:38:57

IGoogle został wycofany w listopadzie 1, 2013. Ten API już nie działa.

Aby uzyskać kurs wymiany, możesz użyć czegoś takiego:

function get_exchange_rate($from, $to){
    $data = file_get_contents("http://www.google.com/ig/calculator?hl=en&q=1{$from}=?{$to}");
    preg_match('/rhs\:\s?"([0-9\.]+)/', $data, $m);
    return $m[1];
}

Możesz dodać tam DB cache, aby upewnić się, że nie dławisz itp.

Jak wspomniano w innych postach / komentarzach, użyłbyś tego kursu do obliczenia walut

 3
Author: oodavid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-10 18:23:53

XE.com dostarcza paszy dla ich kursów wymiany. Ale nie za darmo.

 2
Author: jop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-08 10:06:48

Oanda.com wyświetla kursy walut jako XML API, ale nie za darmo

 2
Author: Eugene Osovetsky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-01 00:20:18

Coinnill.com ma coś w rodzaju serwisu internetowego.

Http://coinmill.com/rss/AUD_USD.xml

Da ci na przykład kurs AUD --> USD. Musisz tylko przeanalizować XML, który wraca.

 1
Author: cagcowboy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-08 10:03:57

Czuję się zmuszony do dodania:

Http://www.exchangerate-api.com/

Martwy prosty w użyciu z czystym RESTful API i rejestracja trwa 5 sekund. Zawiera przykłady kodowania dla większości głównych języków, większość ma 2-3 linie długości.

Stawki są aktualizowane co godzinę, więc jest to w porządku dla większości zastosowań, i możesz uzyskać 30000 miesięcznych zapytań za $7 miesięcznie. Nigdy nie potrzebowałem więcej niż to, ale stawki są bardzo rozsądne dla większych wolumenów.

 1
Author: Alex Recarey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-19 15:37:08

To działa na mnie .

API kursu walut: http://currency-api.appspot.com/

 1
Author: Nirav Ranpara,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-22 11:31:03