Конвертер валют Google больше не работает

Похоже, что Конвертер валют Google Finance вообще перестал работать. Неделю назад я начал получать уведомления по электронной почте от моего магазина Magento 1.9.2:

Предупреждения об обновлении валюты: ПРЕДУПРЕЖДЕНИЕ. Невозможно получить курс из https://finance.google.com/finance/converter?a=1&from=GBP&to=EUR. ПРЕДУПРЕЖДЕНИЕ. Невозможно получить оценку с https://finance.google.com/finance/converter?a=1&from=GBP&to=USD.

Эти URL действительно больше не действительны. Кто-нибудь знает, есть ли новые URL, которые мы можем использовать, или нам нужно настроить другой сервис?

6 ответов

Эта ссылка больше не работает.

 protected $_url = 'https://finance.google.com/finance/converter?a=1&from={{CURRENCY_FROM}}&to={{CURRENCY_TO}}';

Я исследовал и нашел эти коды.

Найдите этот файл:

app/code/local/Payserv/GoogleFinance/Model/Google.php

Замените коды этим:

class Payserv_GoogleFinance_Model_Google extends Mage_Directory_Model_Currency_Import_Abstract {

protected $_url = 'http://free.currencyconverterapi.com/api/v3/convert?q={{CURRENCY_FROM}}_{{CURRENCY_TO}}';

protected $_messages = array();

protected function _convert($currencyFrom, $currencyTo, $retry=0) {
    $url = str_replace('{{CURRENCY_FROM}}', $currencyFrom, $this->_url);
    $url = str_replace('{{CURRENCY_TO}}', $currencyTo, $url);
    try {
         $resultKey = $currencyFrom.'_'.$currencyTo;
         $response = file_get_contents($url);
         $data = Mage::helper('core')->jsonDecode($response);
         $results = $data['results'][$resultKey];
         $queryCount = $data['query']['count'];
         if( !$queryCount &&  !isset($results)) {
            $this->_messages[] = Mage::helper('directory')->__('Cannot retrieve rate from %s.', $url);
            return null;
        }
       return (float)$results['val'];
    } catch (Exception $e) {
        if ($retry == 0) {
            $this->_convert($currencyFrom, $currencyTo, 1);
        } else {
            $this->_messages[] = Mage::helper('directory')->__('Cannot retrieve rate from %s', $url);
        }
    }
}
}

Google больше не предоставляет API конвертера валют. Есть несколько альтернативных API, предлагающих данные о конвертации валют. Некоторые из них уже упоминались в сообщениях (Fixer, Currencylayer...)

Другой вариант - API обменного курса валюты SWOP, быстрый, простой в использовании, надежный и прозрачный API обменного курса, созданный разработчиками для разработчиков. Полный отказ от ответственности: я один из разработчиков SWOP:)

  • SWOP API предлагает текущие и исторические курсы для 180+ валют. Они собираются непосредственно из надежных источников (различных центральных банков и других важных банков).
  • SWOP API имеет две конечные точки: GraphQL и REST/JSON для удобства разработчика.
  • Есть бесплатный план, разрешающий 1000 запросов в месяц.

Это кажется прерывистым (показывает, загружаю ли я страницу примерно 10 раз, но только один раз каждые 10 кликов). Но я лично начал настраивать другие сервисы. Я использую банковские API (в настоящее время это шведский, так что он может вам не помочь). Но посоветуйтесь с вашим банком, у них обычно есть API.

Удачи!

По-видимому, Google больше не предлагает эту услугу.

Основная альтернатива выглядит так:

Оба предлагают 1000 запросов бесплатно в месяц (необходимо создать аккаунт на их домашней странице)

Источник: /questions/14720386/kak-poluchit-kursyi-obmena-valyut-cherez-api-naprimer-google-finance/14720388#14720388

Я столкнулся с той же проблемой с прошлой недели. Но новый URL решил мою проблему, и теперь конвертация валюты работает нормально. попробуйте это: https://finance.google.com/bctzjpnsun/converter

Проблема со ссылкой, Google недавно обновил API-ссылку, и я однажды добился успеха при 10-й проверке существующей ссылки. Попробуйте перейти по этой ссылке https://www.google.com/finance/converter

см. этот https://www.techbuy.in/google-finance-api-currency-converter-not-working-updated-link-check-currency-converter/

Финансовый URL Google пока не работает, я подготовил обходной путь для использования MSN Money (Microsoft) API. Он возвращает JSON, так что вы можете использовать его на любом языке программирования, я поместил пример с использованием PHP:

    function msn($from, $to, $amount) {

    $url = 'https://finance.services.appex.bing.com/Market.svc/ChartDataV5?symbols=245.20.'.strtoupper($from).strtoupper($to).'LITE&chartType=1y';
    $request = curl_init();
    $timeOut = 0;

    curl_setopt($request, CURLOPT_URL, $url);
    curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($request, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)');
    curl_setopt($request, CURLOPT_CONNECTTIMEOUT, $timeOut);
    $response = json_decode(curl_exec($request));
    curl_close($request);

    $rate = array_last($response[0]->Series)->P;

    return $rate * $amount;
}

Вышеупомянутая функция принимает валюту, которая у вас есть, целевую валюту и сумму. Отправьте запрос GET на MSN URL и проанализируйте JSON, чтобы получить текущий курс обмена. Наконец, он умножает ставку на вашу сумму, чтобы конвертировать ее в целевую валюту.

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

Другие вопросы по тегам