Программный доступ к курсам обмена валют [закрыт]

StackOverflow https://stackoverflow.com/questions/181990

  •  05-07-2019
  •  | 
  •  

Вопрос

Я настраиваю систему онлайн-заказов, но я нахожусь в Австралии, и для международных клиентов я бы хотел показывать цены в долларах США или евро, чтобы им не приходилось прилагать умственных усилий для перевода из австралийских долларов.

Кто-нибудь знает, могу ли я где-нибудь найти актуальные обменные курсы из сети в удобном для анализа формате, доступ к которому я могу получить из своего PHP-скрипта?


Обновить: Теперь я написал PHP-класс, который реализует это. Вы можете получить код с моего веб-сайта.

Это было полезно?

Решение

Вы можете получить конвертацию валют в простом формате от Yahoo:

Например, чтобы конвертировать из GBP в EUR: <Код> http://download.finance.yahoo.com/d/quotes.csv?s=GBPEUR=X&f=sl1d1t1ba&e=.csv

Другие советы

Этот ответ ОЧЕНЬ поздно, но в приведенных выше ответах отсутствует ключевая информация.

Если вы хотите показать своим клиентам точные цены, важно понять, как работают курсы обмена валют.

Большинство FX-сервисов указывают только курс спот (на полпути между Bid и Ask) Спот является своего рода сокращением для обменного курса, но никто не получает спот, потому что вы можете продать только по заявке или купить по запросу. Вы обычно просматриваете разницу между ними не менее 1%, поэтому спотовая ставка для ваших клиентов составляет 0,5%.

Но на этом все не заканчивается, ваши клиенты почти наверняка используют кредитную карту, а Visa / Mastercard / Amex взимают плату за обмен валюты. По моему опыту, это нетривиально, по крайней мере 2,5%. Например, Citibank Australia взимает 3,3%. Они варьируются от карты к карте, поэтому у вас нет возможности предсказать окончательную цену, по которой вашим клиентам будет выставлен счет.

Если вы хотите указать " точные " Цены для ваших клиентов основаны на обменном курсе, вам нужно учесть вышеизложенное и предоставить буфер, чтобы вы в итоге не брали больше, чем вы указали.

FWIW, я добавил 4% к тому, что иначе означало бы преобразование F / X.

Было бы неплохо добавить

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

к списку.

Официальные базовые ставки, предоставляемые Европейский Центральный Банк основано на регулярной ежедневной процедуре согласования между центральными банками внутри Европейской системы центральных банков и за ее пределами.

Канал представлен в формате XML и некоторые другие форматы.
Обновление обычно происходит в 2.15.(14:15) По времени ЕЦБ (= франкфуртскому времени).

Недавно я реализовал то же самое, но с использованием API Google. URL запроса выглядит так:

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

Требуется 3 параметра. Первый параметр - это сумма, за которой следуют ISO 4217 код валюты, из которой вы конвертируете, знак равенства и вопрос и код валюты, в которую вы конвертируете. Вы можете найти список кодов, которые Google поддерживает здесь . Ответ на запрос будет выглядеть следующим образом:

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

Это довольно очевидно, поэтому я не буду вдаваться в подробности. Вот как я обработал ответ на запрос:

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;
}

Я уверен, что это далеко не самый элегантный способ сделать это, но я довольно новичок в PHP. Надеюсь, это поможет!

еще одна очень отличная бесплатная ссылка с открытым исходным кодом - это:

https://raw.github.com/currencybot/open-exchange-rates/master/latest.json
(Я нашел об этом здесь: http://josscrowcroft.github.com/open-exchange-rates/)

[Обновление]:
Данные проекта Open Exchange Rates были удалены с GitHub.
Теперь он доступен по адресу: http://openexchangerates.org/
Данные в формате JSON доступны по адресу: http://openexchangerates.org/latest.json

Никакой платы за доступ, никаких ограничений по тарифам, Никакого уродливого XML - просто Бесплатно, ежечасно обновляемые обменные курсы в формате JSON.
Сейчас это не "полностью" бесплатно.В новом лицензировании указано, что разрешено до 1000 просмотров в месяц, а затем вам нужно заплатить.Вам также необходимо заплатить, если вы хотите воспользоваться конвертером единой валюты (базовый функционал).

[ Примечание:Возможно, вы захотите взглянуть на это отвечай также.]

Я добавил таблицу открытых данных в YQL, вы можете использовать ее для получения данных об обменном курсе из yahoo.finance.

Попробуйте в консоли YQL

Формат через запятую предпочтительнее, чем " где пара в ('EURUSD', 'GBPUSD') " но в любом случае вы можете использовать оба и даже смешивать их.

Вот сервис Soap, предлагающий обменный курс

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

На этом сайте есть бесплатный сервис конвертера валют:

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

попробуйте это RESTful (я не уверен, если это действительно ОТДЫХ, так как я получил это изначально с SOAP, я просто попытался получить к нему доступ с помощью HTTP GET)

iGoogle был закрыт 1 ноября 2013 г. Этот API больше не работает.

Чтобы получить обменный курс, вы можете использовать что-то вроде этого:

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];
}

Вы можете добавить туда кеш БД, чтобы убедиться, что вы не ограничены и т. д.

Как было отмечено в других сообщениях / комментариях, вы затем будете использовать эту ставку для расчета своей валюты

XE.com предоставляет информацию об обменных курсах. Не бесплатно, хотя.

Oanda.com выставляет курсы валют в виде XML API, но не бесплатно

У coinnill.com есть своего рода веб-сервис.

  

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

даст вам AUD - > Курс доллара к примеру. Вам просто нужно проанализировать возвращаемый XML.

Я чувствую себя обязанным добавить:

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

Очень простой в использовании с чистым RESTful API и регистрация занимает 5 секунд. Включает примеры кодирования для большинства основных языков, большинство из них длиной 2-3 строки.

Тарифы обновляются ежечасно, так что это подходит для большинства пользователей, и вы можете получать 30000 ежемесячных запросов за 7 долларов в месяц. Мне никогда не нужно было больше, но цены очень высоки для больших объемов.

Это работает для меня.

API курса обмена валют: http://currency-api.appspot.com/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top