Truy cập theo chương trình tỷ giá hối đoái [đã đóng]


112

Tôi đang thiết lập hệ thống đặt hàng trực tuyến nhưng tôi đang ở Úc và đối với khách hàng quốc tế, tôi muốn hiển thị giá bằng đô la Mỹ hoặc Euro để họ không phải nỗ lực tinh thần để chuyển đổi từ đô la Úc.

Có ai biết liệu tôi có thể cập nhật tỷ giá hối đoái trên mạng ở đâu đó ở định dạng dễ phân tích cú pháp mà tôi có thể truy cập từ tập lệnh PHP của mình không?


CẬP NHẬT: Bây giờ tôi đã viết một lớp PHP thực thi điều này. Bạn có thể lấy mã từ trang web của tôi .


1
@Kelly: Đề xuất rất hay, bởi vì Google miễn phí và có nhiều cơ hội vẫn tồn tại trong tương lai gần: Tôi muốn đề nghị bạn gửi nó như một câu trả lời.
Eric O Lebigot

1
Dường như không thể chỉnh sửa nhận xét. Đây là liên kết mới jarloo.com/exchange-rate-api
Kelly

1
cảm ơn vì đã chia sẻ @Adam Pierce! Có cách nào để nhận được tỷ lệ lịch sử không?
Aris

Bạn cũng có thể sử dụng liên kết này. Miễn phí. Chỉ cần đăng ký và nhận API KEY. jsonrates.com/docs
Gajendra K Chauhan

Sử dụng currencylayer.com - họ cung cấp tỷ giá theo thời gian thực & lịch sử ở định dạng JSON, cùng với một vài ví dụ PHP ( currencylayer.com/documentation )
Frank

Câu trả lời:


71

Bạn có thể nhận chuyển đổi tiền tệ ở một định dạng đơn giản từ yahoo:

Ví dụ: để chuyển đổi từ GBP sang EUR: http://download.finance.yahoo.com/d/quotes.csv?s=GBPEUR=X&f=sl1d1t1ba&e=.csv


Nó được cập nhật và dễ dàng phân tích cú pháp. Đây là những gì tôi đang theo đuổi.
Adam Pierce

4
Tôi cũng quan tâm đến điều này, có bất kỳ thông tin về những gì các thông số đại diện cho? Cụ thể là tham số "f". Tôi không thể tìm thấy bất kỳ thông tin nào ở bất cứ đâu.
Bánh cá

9
Có hợp pháp để đọc dữ liệu này không nếu bạn có một trang web thương mại?
Junior Mayhé

4
Thử nghiệm thêm cho thấy bạn có thể yêu cầu nhiều tỷ lệ chuyển đổi cùng một lúc bằng cách dấu phẩy phân tách các ký hiệu trong tham số 's' như sau: download.finance.yahoo.com/d/…
Myster 21/02/10

3
Có cách nào để chỉ định ngày không?
Maxim Egorushkin

40

Câu trả lời này RẤT muộn, nhưng có một chút thông tin quan trọng còn thiếu trong các câu trả lời trên.

Nếu bạn muốn hiển thị giá chính xác cho khách hàng của mình, điều quan trọng là phải hiểu cách hoạt động của tỷ giá hối đoái.

Hầu hết các dịch vụ ngoại hối chỉ báo giá tỷ giá giao ngay (giữa Giá và Bán). Giao ngay là một loại viết tắt của tỷ giá hối đoái, nhưng không ai có được giao ngay vì bạn chỉ có thể bán khi đặt mua hoặc mua theo yêu cầu. Bạn thường tìm kiếm chênh lệch ít nhất 1% giữa chúng, vì vậy tỷ giá giao ngay giảm 0,5% cho khách hàng của bạn.

Nhưng không dừng lại ở đó, khách hàng của bạn gần như chắc chắn đang sử dụng thẻ tín dụng và Visa / Mastercard / Amex đều tính phí chuyển đổi ngoại tệ. Theo kinh nghiệm của tôi, đây là những điều không nhỏ, ÍT NHẤT 2,5%. Ví dụ, Citibank Australia tính phí 3,3%. Những điều này khác nhau giữa các thẻ, vì vậy không có cách nào để bạn dự đoán mức giá cuối cùng mà khách hàng của bạn sẽ được thanh toán.

Nếu bạn muốn báo giá "chính xác" cho khách hàng của mình dựa trên tỷ giá hối đoái, bạn cần phải tính đến các yếu tố trên và cung cấp bộ đệm để cuối cùng bạn không bị tính phí nhiều hơn những gì bạn đã báo giá.

FWIW, tôi đã thêm 4% vào những gì chuyển đổi F / X sẽ chỉ ra.


Ngoài ra, tỷ giá ngoại hối thay đổi liên tục và các ngân hàng chỉ có thể tính đến tỷ giá vào lúc nửa đêm, giờ địa phương. Với mức biến động ~ 2% hàng ngày, có sự bất thường .
Alexandre C.

1
Đó là một điểm tuyệt vời. Chắc chắn củng cố nhu cầu về một bộ đệm nào đó nếu bạn đang hiển thị một loại tiền tệ nhưng lại tính phí một loại tiền khác. Đối với những gì nó đáng giá, với 4% padding của tôi, tôi chưa bao giờ có ai thực hiện khoản bồi hoàn.
philoye

Không phải tất cả các ngân hàng đều tính phí như vậy. Ví dụ: thẻ tín dụng và thẻ ghi nợ từ Mexico sẽ chỉ chuyển đổi tiền tệ theo giá mà họ có vào ngày hôm đó để bán tiền tệ và không có gì hơn.
Francisco Zarabozo

26

Có thể được tốt để thêm

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

vào danh sách.

Tỷ giá tham chiếu chính thức do Ngân hàng Trung ương Châu Âu cung cấp dựa trên quy trình phối hợp thường xuyên hàng ngày giữa các ngân hàng trung ương trong và ngoài Hệ thống Ngân hàng Trung ương Châu Âu.

Nguồn cấp dữ liệu ở dạng XML và một số định dạng khác .
Việc cập nhật thường diễn ra vào lúc 2 giờ 15 chiều (14 giờ 15) theo giờ ECB (= giờ Frankfurt).


4
Chỉ cần kiểm tra (20 phút sau khi nhận xét của bạn) và nó có sẵn cho tôi.
Jacco

Tôi vừa cố gắng sử dụng nó, nhưng VB.NET từ chối XPath nó đúng cách. Điều này có phải vì các URL xác định không gian tên đều là 404ing không?
Rikki

liên kết này luôn hiển thị tỷ lệ của ngày hôm qua, không phải của ngày hôm nay.
erkanyildiz

12

Gần đây tôi đã triển khai điều tương tự, nhưng sử dụng API của Google. URL truy vấn trông giống như sau:

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

Nó có 3 tham số. Tham số đầu tiên là số tiền, tiếp theo là đơn vị tiền tệ ISO 4217 mà bạn đang chuyển đổi, dấu bằng và dấu chấm hỏi, và mã đơn vị tiền tệ bạn đang chuyển đổi. Bạn có thể tìm thấy danh sách các mã mà Google hỗ trợ tại đây . Phản hồi cho truy vấn sẽ giống như sau:

{lhs: "1 British pound",rhs: "1.6132 U.S. dollars",error: "",icc: true}

Điều này khá dễ hiểu, vì vậy tôi sẽ không đi vào chi tiết ở đây. Đây là cách tôi xử lý phản hồi truy vấn:

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;
}

Tôi chắc rằng nó không phải là cách thanh lịch nhất để làm điều này, nhưng tôi còn khá mới đối với PHP. Hy vọng nó giúp!


2
Bạn có thể sử dụng json_decode thay vì phát nổ nếu bạn muốn nó đáng tin cậy hơn.
diolemo

có những hạn chế với dịch vụ này?
trang web

Đây là quá dễ dàng để cụm từ và sử dụng ... Cảm ơn bạn
IWIH

5
"iGoogle đã nghỉ hưu trên 01 Tháng 11 2013", ứng dụng của bạn không hoạt động nữa
yegor256

Tôi đã sử dụng mã tương tự đã được thay đổi để sử dụng phương pháp Yahoo quote.csv với chỉ hai dòng thay đổi trong mã.
Marcus

12

một liên kết nguồn mở và miễn phí rất tuyệt vời khác là:

https://raw.github.com/currencybot/open-exchange-rates/master/latest.json
(Tôi tìm thấy về nó ở đây: http://josscrowcroft.github.com/open-exchange-rates/ )

[Cập nhật] :
Dữ liệu dự án Open Exchange Rates đã được chuyển khỏi GitHub.
Nó hiện có sẵn tại: http://openexchangerates.org/
Dữ liệu ở định dạng JSON có sẵn tại: http://openexchangerates.org/latest.json

Không có phí truy cập, không có giới hạn tỷ giá , Không có XML xấu - chỉ miễn phí , tỷ giá hối đoái được cập nhật hàng giờ ở định dạng JSON.
Đây không phải là "hoàn toàn" miễn phí bây giờ. Giấy phép mới quy định rằng cho phép tối đa 1000 lượt truy cập mỗi tháng và sau đó bạn cần phải trả tiền. Bạn cũng cần phải trả tiền nếu muốn sử dụng công cụ chuyển đổi tiền tệ duy nhất (chức năng cơ bản).

[Lưu ý: Bạn cũng có thể muốn xem câu trả lời này . ]


1
Có lẽ nó không làm việc nữa
shasi kanth

1
Cảm ơn @dskanth đã nhắc nhở. Liên kết và thông tin được cập nhật. :)
zeFree

1
Một kế hoạch OpenExchangeRates miễn phí có sẵn ở đây với 1000 yêu cầu một tháng .. một liên kết nhỏ của nó, do đó bạn sẽ không phát hiện ra nó trong hầu hết các trường hợp .. openexchangerates.org/signup/free
TheFlash

6

Tôi đã thêm bảng Dữ liệu Mở vào YQL, bạn có thể sử dụng bảng này để lấy dữ liệu tỷ giá hối đoái từ yahoo.finance.

Hãy thử nó trong bảng điều khiển YQL

Định dạng được phân tách bằng dấu phẩy được ưu tiên hơn so với "where pair in ('EURUSD', 'GBPUSD')" nhưng dù sao, bạn có thể sử dụng cả hai và thậm chí trộn chúng.


Cảm ơn anh bạn. Điều này kết hợp với tài liệu YQL trên PHP đã giúp tôi rất nhiều thời gian!
miCRoSCoPiC_eaRthLinG

xin chào, chúng ta có thể thêm tham số ngày, ví dụ tôi muốn lấy tỷ giá hối đoái lịch sử.
Elisa

4

Đây là một dịch vụ Xà phòng cung cấp tỷ giá hối đoái

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


4
Thật xấu hổ vì nó SOAP chứ không phải REST. Ngoài ra, đó là một cơ sở hữu ích
David Arno

Cái này có miễn phí và ổn định không? Tôi có thể gửi phần mềm dựa vào điều này không?

4
rõ ràng là họ đã ngừng làm việc này @ 31.12.2008
Sevki


3

Hãy thử RESTful này (Tôi không chắc đây có thực sự là REST hay không, vì tôi lấy nó ban đầu từ SOAP, tôi chỉ cố gắng truy cập nó bằng HTTP GET)


Tôi không thấy nơi bạn cung cấp "số tiền" để chuyển đổi, nhưng bạn nhận lại một số số ... bạn có thể vui lòng giải thích điều này?
SpokaneDude

1
Nó không chấp nhận một số tiền. Điều này sẽ chỉ chuyển đổi từ Tiền tệ sang Tiền tệ trong đó số tiền của Từ Tiền tệ luôn là một (1). Sau đó, nó thuộc vào bạn để thực hiện thuật toán của bạn chuyển đổi số tiền của bạn
Kevin

Cảm ơn bạn ... điều đó có ý nghĩa. bây giờ ...
SpokaneDude

3

iGoogle đã ngừng hoạt động vào ngày 1 tháng 11 năm 2013. API này không còn hoạt động nữa.

Để nhận được tỷ giá hối đoái, bạn có thể sử dụng một cái gì đó như sau:

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];
}

Bạn có thể thêm một bộ nhớ cache DB vào đó để đảm bảo rằng bạn không bị tắc nghẽn, v.v.

Như đã được lưu ý trên các bài đăng / nhận xét khác, sau đó bạn sẽ sử dụng tỷ giá này để tính toán đơn vị tiền tệ của mình


2

XE.com cung cấp nguồn cấp dữ liệu cho tỷ giá hối đoái của họ. Không miễn phí mặc dù.


2

Oanda.com hiển thị tỷ giá tiền tệ dưới dạng API XML, nhưng không miễn phí


1

coinnill.com có ​​một loại dịch vụ web.

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

sẽ cung cấp cho bạn tỷ giá AUD -> USD chẳng hạn. Bạn chỉ cần phân tích cú pháp XML quay lại.


Dữ liệu đó dường như đã lỗi thời. Nó nói AUD là 0,77 nhưng tôi biết hôm nay là 0,69.
Adam Pierce

Ngoài ra, phần dữ liệu hữu ích (tỷ giá hối đoái) là bit duy nhất không được mã hóa bằng XML! Nó chỉ là văn bản rõ ràng trong một CDATA ...
Rikki

1

Tôi cảm thấy bắt buộc phải thêm:

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

Sử dụng đơn giản với API RESTful sạch và quá trình đăng ký mất 5 giây. Bao gồm các ví dụ mã hóa cho hầu hết các ngôn ngữ chính, hầu hết dài 2-3 dòng.

Tỷ giá được cập nhật hàng giờ, vì vậy nó phù hợp với hầu hết các mục đích sử dụng và bạn có thể nhận được 30000 truy vấn hàng tháng với $ 7 một tháng. Tôi chưa bao giờ cần nhiều hơn thế, nhưng tỷ lệ rất hợp lý cho các khối lượng cao hơn.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.