온라인 주문 시스템을 설정하고 있지만 호주에 있으며 해외 고객을 위해 가격을 미국 달러 또는 유로로 표시하여 호주 달러에서 전환하기 위해 정신적으로 노력할 필요가 없습니다.
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 %로 사소하지 않습니다. 예를 들어 Citibank Australia는 3.3 %를 청구합니다. 이는 카드마다 다르므로 고객에게 청구되는 최종 가격을 예측할 방법이 없습니다.
환율을 기준으로 고객에게 "정확한"가격을 제시하려면 위의 사항을 고려하여 버퍼를 제공하여 견적 한 것보다 더 많이 청구하지 않도록해야합니다.
FWIW, 저는 F / X 변환이 그렇지 않으면 나타내는 것에 4 %를 추가했습니다.
추가하는 것이 좋을 수 있습니다.
http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
목록에.
유럽 중앙 은행 은 유럽 중앙 은행 시스템 내부와 외부의 중앙 은행 간의 정기적 인 일일 협의 절차를 기반으로 공식 기준 환율을 제공합니다 .
피드는 XML 및 기타 형식입니다. 입니다.
업데이트는 일반적으로 오후 2.15 (14:15) ECB 시간 (= 프랑크푸르트 시간)에 발생합니다.
나는 최근에 같은 것을 구현했지만 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 없음-JSON 형식의 무료 , 매시간 업데이트 된 환율.
이것은 지금 "완전히"무료가 아닙니다. 새 라이선스에 따르면 매월 최대 1,000 건의 조회수가 허용되며 비용을 지불해야합니다. 단일 통화 변환기 (기본 기능)를 사용하려면 비용을 지불해야합니다.
[참고 : 이 답변도 볼 수 있습니다 . ]
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 캐시를 추가하여 스로틀되지 않도록 할 수 있습니다.
다른 게시물 / 댓글에서 언급했듯이이 환율을 사용하여 통화를 계산합니다.
Oanda.com은 환율을 XML API로 공개하지만 무료는 아닙니다.
coinnill.com에는 일종의 웹 서비스가 있습니다.
예를 들어 AUD-> USD 환율을 제공합니다. 돌아 오는 XML을 파싱하기 만하면됩니다.
다음을 추가해야합니다.
http://www.exchangerate-api.com/
깨끗한 RESTful API로 사용하기 쉽고 등록은 5 초가 걸립니다. 대부분의 주요 언어에 대한 코딩 예제가 포함되어 있으며 대부분은 2-3 줄입니다.
요금은 매시간 업데이트되므로 대부분의 사용에 적합하며 한 달에 $ 7에 30000 개의 월별 쿼리를받을 수 있습니다. 나는 그 이상을 필요로하지 않았지만, 더 많은 볼륨에 대해 요금이 매우 합리적입니다.
이것은 나를 위해 일하고 있습니다.
환율 API : http://currency-api.appspot.com/