看来谷歌财经货币转换器已经完全停止工作。一周前,我开始从我的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,或者我们是否需要配置不同的服务?
此链接不再有效。
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);
}
}
}
}
它似乎是间歇性的(它显示我是否加载页面 10 次左右,但每 10 次点击才加载一次(。但我个人已经开始配置其他服务。我正在使用银行API(目前是瑞典的API,所以它可能对你没有帮助(。但是请与您的银行核实,他们通常有API。
祝你好运!
显然谷歌不再提供这项服务了。
主要的替代方案似乎是:
- Fixer.io 接口
- 货币层接口
两者都每月免费提供1000个请求(您需要在其主页上创建一个帐户(
来源: https://stackoverflow.com/a/8391430/716435
Google 不再提供货币转换器 API。有几种替代 API 提供货币换算数据。有些已经在帖子中提到过(Fixer,Currencylayer...(
另一种选择是 SWOP 货币汇率 API,这是一个快速、易于使用、可靠和透明的外汇汇率 API,由开发人员为开发人员制作。完全免责声明:我是 SWOP :) 的开发人员之一
- SWOP API 提供 180+ 种货币的当前和历史汇率。它们直接从可信来源(各种中央银行和其他重要银行(收集。
- SWOP API 有两个端点,GraphQL 和 REST/JSON,方便开发人员使用。
- 有一个免费计划,每月允许 1,000 个请求。
问题出在链接上,谷歌最近更新了 api 链接,我发现一次检查现有链接 10 次成功。尝试更改为此链接 https://www.google.com/finance/converter
请参阅此 https://www.techbuy.in/google-finance-api-currency-converter-not-working-updated-link-check-currency-converter/
我上周遇到了同样的问题。但是新的网址解决了我的问题,现在货币转换工作正常。试试这个:https://finance.google.com/bctzjpnsun/converter
Google的财务URL目前似乎不起作用,我已经准备了一个解决方法来使用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。