私はオンライン注文システムをセットアップしていますが、私はオーストラリアにいて、国際的な顧客のために米ドルまたはユーロで価格を表示したいと考えています。
PHPスクリプトからアクセスできる解析しやすい形式で、どこかでネットから最新の為替レートを引き出すことができるかどうか、誰かが知っていますか?
更新:これを実装する PHP クラスを作成しました。コードは私のウェブサイトから取得できます。
私はオンライン注文システムをセットアップしていますが、私はオーストラリアにいて、国際的な顧客のために米ドルまたはユーロで価格を表示したいと考えています。
PHPスクリプトからアクセスできる解析しやすい形式で、どこかでネットから最新の為替レートを引き出すことができるかどうか、誰かが知っていますか?
更新:これを実装する PHP クラスを作成しました。コードは私のウェブサイトから取得できます。
yahoo から簡単な形式で通貨換算を取得できます。
たとえば、GBP から EUR に変換するには:
http://download.finance.yahoo.com/d/quotes.csv?s=GBPEUR=X&f=sl1d1t1ba&e=.csv
この回答は非常に遅れていますが、上記の回答には重要な情報が欠けています。
顧客に正確な価格を表示するには、外国為替レートの仕組みを理解することが重要です。
ほとんどの FX サービスは、スポット レート (ビッドとアスクの中間) のみを引用します。スポットは為替レートの一種の省略形ですが、ビッドで売るかアスクで買うしかできないため、誰もスポットを取得しません。通常、それらの間で少なくとも 1% のスプレッドが見られるため、顧客のスポット レートは 0.5% オフになります。
しかしそれだけではありません。顧客はほぼ間違いなくクレジット カードを使用しており、Visa/Mastercard/Amex はすべて外国為替手数料を請求しています。これらは、少なくとも 2.5% で、私の経験では自明ではありません。たとえば、シティバンク オーストラリアの手数料は 3.3% です。これらはカードごとに異なるため、顧客に請求される最終的な価格を予測する方法はありません.
為替レートに基づいて顧客に「正確な」価格を見積もりたい場合は、上記を考慮してバッファーを提供し、見積もりよりも多く請求しないようにする必要があります。
FWIW、私は F/X 変換が他の方法で示すものに 4% を追加しています。
追加してもいいかもしれません
http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
リストに。
欧州中央銀行が提供する公式参照レートは、欧州中央銀行システム内外の中央銀行間の定期的な毎日の協調手続きに基づいています。
フィードは XML およびその他の形式です。
更新は通常、ECB 時間 (= フランクフルト時間) の午後 2 時 15 分 (14:15) に行われます。
私は最近同じことを実装しましたが、Google の 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 の初心者です。それが役に立てば幸い!
別の非常に優れた無料のオープンソース リンクは次のとおりです。
https://raw.github.com/currencybot/open-exchange-rates/master/latest.json
(ここで見つけました: http://josscrowcroft.github.com/open-exchange-rates/ )
[更新] :
Open Exchange Rates プロジェクト データは GitHub から移動されました。
現在、http: //openexchangerates.org/
で入手できます。JSON 形式のデータは、 http: //openexchangerates.org/latest.jsonで入手できます。
アクセス料金なし、レート制限なし、醜い XML なし - ただ無料で、1 時間ごとに更新される JSON 形式の為替レート。
これは現在「完全に」無料ではありません。新しいライセンスでは、1 か月あたり最大 1000 ヒットが許可され、その後は料金を支払う必要があると記載されています。単一の通貨コンバーター (基本機能) を使用する場合も支払う必要があります。
[ 注:この回答も参照してください。]
YQL に Open Data テーブルを追加しました。これを使用して、yahoo.finance から為替レート データを取得できます。
「where pair in ('EURUSD','GBPUSD')」よりもコンマ区切り形式の方が望ましいですが、いずれにせよ、両方を使用したり、それらを混在させたりすることもできます。
為替レートを提供するソープサービスはこちら
このサイトには、無料の通貨換算サービスがあります。
為替レートを取得するには、次のようなものを使用できます。
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 キャッシュを追加して、スロットリングされないようにすることができます。
他の投稿/コメントで指摘されているように、このレートを使用して通貨を計算します
このRESTfulを試してください(これが本当にRESTかどうかはわかりません.SOAPから取得したため、HTTP GETを使用してアクセスしようとしました)
Oanda.comは通貨レートをXMLAPIとして公開していますが、無料ではありません
XE.comは為替レートのフィードを提供しています。無料ではありませんが。
coinnill.com には一種の Web サービスがあります。
たとえば、AUD --> USD レートが表示されます。返された XML を解析するだけです。
これは私のために働いています。
為替レート API : http://currency-api.appspot.com/
私は追加せざるを得ないと感じています:
http://www.exchangerate-api.com/
クリーンな RESTful API で非常に簡単に使用でき、サインアップは 5 秒で完了します。ほとんどの主要言語のコーディング例が含まれており、ほとんどが 2 ~ 3 行の長さです。
レートは 1 時間ごとに更新されるため、ほとんどの用途には問題なく、月額 7 ドルで 30000 の月間クエリを取得できます。それ以上必要になったことはありませんが、ボリュームが大きい場合の料金は非常に妥当です。