我正在建立一个在线订购系统,但我在澳大利亚,对于国际客户,我想用美元或欧元显示价格,这样他们就不必花费精力来兑换澳元.
有谁知道我是否可以通过我可以从我的PHP脚本访问的易于解析的格式从网上获取最新的汇率?
更新:我现在编写了一个实现这个的PHP类.您可以从我的网站获取代码.
您可以从yahoo以简单格式获得货币转换:
例如,要将GBP转换为EUR:
http://download.finance.yahoo.com/d/quotes.csv?s=GBPEUR=X&f=sl1d1t1ba&e=.csv
这个答案很晚,但上面的答案中缺少一些关键信息.
如果您想向客户展示准确的价格,了解外汇汇率的运作方式非常重要.
大多数外汇服务仅报出即期汇率(买卖价中间).现货是汇率的一种简写,但没有人能够获得现货,因为您只能以买入价卖出或买入卖出.您通常会在它们之间看到至少1%的差价,因此您的客户的即期汇率为0.5%.
但它并不止于此,您的客户几乎肯定使用信用卡和Visa/Mastercard/Amex都收取外汇费用.根据我的经验,这些都是非平凡的,至少2.5%.例如,花旗银行澳大利亚公司收取3.3%的费用.这些因卡而异,因此您无法预测客户需要支付的最终价格.
如果您想根据汇率向客户报出"准确"价格,您需要考虑上述因素并提供缓冲,以便您最终收取的费用不会高于您的报价.
FWIW,我一直在增加4%的F/X转换率.
可能很高兴添加
http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
到列表.
欧洲中央银行根据欧洲中央银行体系内外的中央银行定期日常协调程序提供官方参考汇率.
Feed是XML和其他一些格式.
更新通常在欧洲央行时间下午2点15分(14:15)(法兰克福时间)进行.
另一个非常好的免费和开源链接是这样的:
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次点击,然后您需要付费.如果要使用单一货币转换器(基本功能),还需要付费.
[注意:您也可以查看此答案.]
我最近实现了相同的功能,但使用了谷歌的API.查询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很新.希望能帮助到你!
我将Open Data表添加到YQL,您可以使用它从yahoo.finance中检索汇率数据.
在YQL控制台中试用它
以逗号分隔的格式优于"在哪里对('EURUSD','GBPUSD')"但是无论如何,你可以使用它们甚至混合它们.