代码之家  ›  专栏  ›  技术社区  ›  Adam Pierce

以编程方式获取货币汇率[已关闭]

  •  111
  • Adam Pierce  · 技术社区  · 16 年前

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

    有人知道我是否可以从网络上以一种我可以从PHP脚本访问的易于解析的格式提取最新的汇率吗?


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

    15 回复  |  直到 10 年前
        1
  •  71
  •   Seer    10 年前

    您可以从雅虎获得简单格式的货币转换:

    例如,从英镑转换为欧元: http://download.finance.yahoo.com/d/quotes.csv?s=GBPEUR=X&f=sl1d1t1ba&e=.csv

        2
  •  39
  •   philoye    15 年前

    这个答案很晚了,但上面的答案中缺少一些关键信息。

    如果你想向你的客户展示准确的价格,了解汇率是如何工作的很重要。

    大多数外汇服务只报即期汇率(买卖中间价)。现货是一种汇率的简写,但没有人能得到现货,因为你只能在出价时卖出或在要价时买入。你通常会看到他们之间至少有1%的差价,所以对于你的客户,即期汇率是0.5%的折扣。

    但这并没有停止,您的客户几乎肯定使用信用卡,VISA/MasterCard/Amex都要收取外汇费用。这些在我的经验中是不平凡的,至少2.5%。例如,花旗银行澳大利亚分行收取3.3%的费用。每一张卡的价格各不相同,因此您无法预测客户将要支付的最终价格。

    如果你想根据汇率给你的客户报一个“准确”的价格,你需要考虑到上面的因素,并提供一个缓冲区,这样你最终的收费不会超过你所报的价格。

    fwiw,我已经在f/x转换中增加了4%。

        3
  •  25
  •   Jacco    16 年前

    可能是很好的补充

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

    列在名单上。

    官方参考利率由 European Central Bank 基于欧洲中央银行体系内外的中央银行之间的日常协调程序。

    源是XML格式的,并且 some other formats .
    更新通常在下午2:15(14:15)欧洲中央银行时间(=法兰克福时间)进行。

        4
  •  12
  •   Natsukane    12 年前

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

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

    它需要3个参数。第一个参数是金额,后面是 ISO 4217 要转换的货币代码、等号和问号以及要转换的货币代码。你可以找到谷歌支持的代码列表 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
  •  12
  •   Community CDub    8 年前

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

    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 也要回答。]

        6
  •  6
  •   mtelis    14 年前

    我在YQL中添加了开放数据表,您可以使用它从yahoo.finance中检索汇率数据。

    Try it in YQL console

    逗号分隔格式比“where pair in(‘eurrusd’,‘gbps’)”更好,但无论如何,您都可以同时使用,甚至可以混合使用。

        7
  •  4
  •   Ólafur Waage    16 年前

    这是一个提供汇率的SOAP服务

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

        8
  •  4
  •   David Wengier    16 年前

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

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

        9
  •  3
  •   Kevin    13 年前

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

        10
  •  3
  •   oodavid    11 年前

    伊戈格尔于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];
    }
    

    您可以在其中添加一个DB缓存,以确保不会受到限制等。

    如其他帖子/评论中所述,您将使用此汇率计算您的货币。

        11
  •  2
  •   jop    16 年前

    XE.com 为他们的汇率提供饲料。但不是免费的。

        12
  •  2
  •   Eugene Osovetsky    15 年前

    oanda.com将汇率公开为XML API,但不是免费的。

        13
  •  1
  •   jop    16 年前

    coinnill.com有一种Web服务。

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

    例如,将为您提供澳元-美元汇率。您只需要解析返回的XML。

        14
  •  1
  •   Matt H    14 年前

    我觉得有必要补充:

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

    与干净的RESTfulAPI和注册一起使用非常简单,只需5秒钟。包括大多数主要语言的编码示例,大多数是2-3行长。

    费率是每小时更新一次的,所以大多数情况下都可以使用,您可以每月7美元获得30000个查询。我从来都不需要超过这一点,但对于更大的交易量来说,价格是非常合理的。

        15
  •  1
  •   Nirav Ranpara Gene    12 年前

    这对我有用。

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