4

Google Finance Currency Converter 似乎已完全停止工作。一周前,我开始从我的 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,或者我们是否需要配置不同的服务?

4

7 回答 7

4

此链接不再有效。

 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);
        }
    }
}
}
于 2018-05-31T07:55:35.193 回答
1

显然谷歌不再提供这项服务了。

主要的替代方案看起来是:

两者都每月免费提供 1000 个请求(您需要在他们的主页上创建一个帐户)

来源:https ://stackoverflow.com/a/8391430/716435

于 2018-05-02T15:36:06.307 回答
1

它似乎是间歇性的(它显示我是否加载页面 10 次左右,但每 10 次点击只有一次)。但我个人已经开始配置其他服务。我正在使用银行 API(目前是瑞典的 API,因此可能对您没有帮助)。但是请咨询您的银行,他们通常有 API。

祝你好运!

于 2018-03-21T07:22:58.163 回答
0

问题出在链接上,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/

于 2018-03-21T11:55:20.233 回答
0

Google 不再提供货币转换器 API。有几个提供货币转换数据的替代 API。有些已经在帖子中提到过(Fixer、Currencylayer...)

另一种选择是SWOP 货币汇率 API,由开发人员为开发人员制作的快速、易用、可靠、透明的外汇汇率 API。完全免责声明:我是 SWOP 的开发者之一 :)

  • SWOP API 提供 180 多种货币的当前和历史汇率。它们直接从可信来源(各种中央银行和其他重要银行)收集。
  • 为了方便开发人员,SWOP API 有两个端点,GraphQL 和 REST/JSON。
  • 有一个免费计划,每月允许 1,000 个请求。
于 2020-10-05T17:15:48.480 回答
0

我上周面临同样的问题。但是新的网址解决了我的问题,现在货币转换工作正常。试试这个: https ://finance.google.com/bctzjpnsun/converter

于 2018-03-29T05:21:03.430 回答
-1

谷歌的财务 URL 现在似乎不起作用,我准备了一个解决方法来使用 MSN Money(微软)的 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;
}

上述函数接受您当前拥有的货币、目标货币和金额。向 MSN URL 发送 GET 请求并解析 JSON 以获得今天的汇率。最后,它将汇率乘以您的金额以将其转换为目标货币。

我希望这能解决你的需求,代码有很多优化空间我只是给你一个简单的实现例如你可以将汇率保存在你的数据库中并使用该汇率一天这样你只会调用API一天一次。

于 2018-07-29T10:42:02.433 回答