以编程方式访问货币汇率

时间:2008-10-08 09:58:43

标签: php currency finance

我正在建立一个在线订购系统,但我在澳大利亚,对于国际客户,我想用美元或欧元显示价格,这样他们就不必花费精力去兑换澳元

有没有人知道我是否可以通过我可以从我的PHP脚本访问的易于解析的格式从网上获取最新的汇率?


更新:我现在编写了一个实现此功能的PHP类。 You can get the code from my website

15 个答案:

答案 0 :(得分:71)

您可以从yahoo:

以简单格式获得货币转换

例如,要将GBP转换为EUR: http://download.finance.yahoo.com/d/quotes.csv?s=GBPEUR=X&f=sl1d1t1ba&e=.csv

答案 1 :(得分:39)

这个答案非常晚,但上述答案中缺少一些关键信息。

如果您想向客户展示准确的价格,了解外汇汇率的运作方式非常重要。

大多数外汇服务仅报出即期汇率(买卖价中间)。现货是汇率的一种简写,但没有人能够获得现货,因为您只能以买入价卖出或买入卖出。您通常会在它们之间看到至少1%的点差,因此您的客户的即期汇率为0.5%。

但它并不止于此,您的客户几乎肯定会使用信用卡,而Visa / Mastercard / Amex都会收取外汇费用。根据我的经验,这些都是非平凡的,至少2.5%。例如,花旗银行澳大利亚公司收取3.3%的费用。这些因卡而异,因此您无法预测客户需要支付的最终价格。

如果您想根据汇率向客户报出“准确”价格,您需要考虑上述因素并提供缓冲,以便您最终收取的费用不会超过您的报价。

FWIW,我一直在增加4%的F / X转换率。

答案 2 :(得分:26)

可能很高兴添加

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

到列表中。

根据欧洲中央银行体系内外各中央银行之间的日常协调程序,European Central Bank提供官方参考汇率。

Feed采用XML格式some other formats 更新通常在下午2时15分进行。 (14:15)欧洲央行时间(=法兰克福时间)。

答案 3 :(得分:12)

另一个非常好的免费和开源链接是:

https://raw.github.com/currencybot/open-exchange-rates/master/latest.json
(我在这里找到了它:http://josscrowcroft.github.com/open-exchange-rates/

[更新]:
开放汇率项目数据已从GitHub转移。
现在可在:http://openexchangerates.org/获取
JSON格式的数据位于:http://openexchangerates.org/latest.json

没有访问费,没有费率限制,没有丑陋的XML - 只是免费,每小时更新一次JSON格式的汇率。
现在这不是“完全”免费的。新许可证明每月最多可达1000次点击,然后您需要付费。如果您想使用单一货币转换器(基本功能),您还需要付费。

[注意:您也可以查看this答案。 ]

答案 4 :(得分:12)

我最近实现了相同的功能,但使用的是Google的API。查询URL如下所示:

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

需要3个参数。第一个参数是金额,后跟您要转换的ISO 4217货币代码,等号和问号,以及您要转换为的货币代码。您可以找到Google支持的代码列表here。对查询的响应如下所示:

{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很新。希望它有所帮助!

答案 5 :(得分:6)

我将Open Data表添加到YQL,您可以使用它从yahoo.finance中检索汇率数据。

Try it in YQL console

以逗号分隔的格式优于“在'('EURUSD','GBPUSD')中的对位”但是无论如何,你可以使用它们甚至混合它们。

答案 6 :(得分:4)

这是一个提供汇率的肥皂服务

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

答案 7 :(得分:4)

此网站免费提供货币转换服务:

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

答案 8 :(得分:3)

Try this RESTful(我不确定这是否真的是一个REST,因为我最初是从SOAP获得的,我只是尝试使用HTTP GET访问它)

答案 9 :(得分:3)

iGoogle于2013年11月1日停用。此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];
}

您可以在其中添加数据库缓存,以确保不会受到限制等。

正如其他帖子/评论所述,您可以使用此费率计算您的货币

答案 10 :(得分:2)

XE.com为其汇率提供汇票。虽然不是免费的。

答案 11 :(得分:2)

Oanda.com将货币汇率作为XML API公开,但不是免费的

答案 12 :(得分:1)

coinnill.com有一种网络服务。

  

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

会给你AUD - >以美元汇率为例。您只需要解析返回的XML。

答案 13 :(得分:1)

我觉得有必要补充一下:

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

使用简洁的RESTful API并且注册需要5秒钟。包括大多数主要语言的编码示例,大多数是2-3行。

费率每小时更新一次,因此适用于大多数用途,每月只需7美元即可获得30000个月查询。我从来不需要更多的东西,但是对于更高的产量来说,费率是非常合理的。

答案 14 :(得分:1)

这对我有用。

货币汇率API:http://currency-api.appspot.com/