درباره نویسنده
Leonardo Losoviz یک توسعه دهنده و نویسنده مستقل است ، و تلاش مستمر برای ادغام پارادایم های نوآورانه (PHP بدون سرور ، اجزای سمت سرور ، GraphQL)
اطلاعات بیشتر در مورد لئوناردو
به طور فزاینده ای به محصولات و خدمات بصورت آنلاین دسترسی پیدا می شود. همانطور که در یک دهکده جهانی زندگی می کنیم ، اگر یک فروشگاه اینترنتی داشته باشیم ، به احتمال زیاد بسیاری از بازدیدکنندگان ما کشور متفاوتی از کشور خودمان خواهند داشت و از ارز متفاوتی از کشور خود استفاده می کنند.
اگر می خواهیم یک تجربه کاربری عالی برای آنها فراهم کنیم تا شانس خرید محصول ما و بازگشت آنها به سایت را افزایش دهیم ، کار بسیار ساده ای وجود دارد که می توانیم انجام دهیم: نمایش قیمت کالاهای خرید به ارز خودشان. برای دستیابی به آن ، می توانیم قیمت کالا را از ارز پایه (مثلاً EUR) به ارز بازدید کننده (مثلاً CNY) با استفاده از نرخ ارز بین دو ارز در آن زمان خاص تبدیل کنیم.
نرخ ارز به طور مداوم ، به صورت ساعتی (و حتی سریعتر) تغییر می کند. این بدان معناست که ما نمی توانیم لیستی از پیش تعریف شده از نرخ ارز ذخیره شده در برنامه خود داشته باشیم. اینها باید در زمان واقعی جمع شوند. با این حال ، این امروزه مشکلی ایجاد نمی کند. با تشکر از API ها که داده های مبادله ارز را ارائه می دهند ، می توانیم مبدل ارز را بدون دردسر به فروشگاه های آنلاین خود اضافه کنیم.
در این مقاله به معرفی شما می پردازیم ExchangeRatesApi.io، یک راه حل محبوب API که داده هایی را برای نرخ ارز فعلی و تاریخی 168 ارز ارائه می دهد.
آنچه می خواهیم بدست آوریم
به زبان ساده ، ما می خواهیم همان کاری را انجام دهیم که آمازون انجام می دهد: در فروشگاه آنلاین ما به کاربر این گزینه را بدهید که قیمت ها را به ارز انتخابی خود نمایش دهد.
هنگام بازدید از یک صفحه محصول در amazon.co.uk، قیمت را به پوند انگلیس ارائه می دهیم:

اما اگر بخواهیم می توانیم قیمت آن را با ارز دیگری ببینیم. در تنظیمات کشور / منطقه ، گزینه تغییر ارز وجود دارد:

پس از کلیک بر روی “تغییر” ، ورودی انتخابی به ما ارائه می شود که شامل چندین ارز از پیش تعریف شده است. از میان آنها ، یورو را انتخاب کرده ام:

سرانجام ، به صفحه محصول ، قیمت به یورو نمایش داده می شود:

با دسترسی به داده های نرخ ارز از طریق API ، می توانیم همین عملکرد را برای فروشگاه های آنلاین خودمان نیز پیاده سازی کنیم.
چطوری انجامش میدیم
ExchangeRatesApi.io با ارائه آخرین داده های فارکس برای 168 ارز ، RI API را ارائه می دهد. این اطلاعات همیشه به روز بوده و اطلاعات را از پایگاه گسترده ای از منابع تجاری و بانک های سراسر جهان جمع آوری می کند.
بعد از ثبت نام در خدمات خود (نکته: آنها یک ردیف رایگان) ، یک کلید دسترسی API به ما اختصاص داده می شود:

ما کلید دسترسی API خود را می گیریم ، و آن را به نقطه انتهایی اضافه کنید:
https://api.exchangeratesapi.io/v1/latest
?access_key=YOUR_API_KEY
برای تجسم پاسخ ، نقطه پایانی را در مرورگر خود کپی / جای گذاری کنید:

همانطور که احتمالاً در تصویر بالا قابل درک است ، داده های مربوط به همه 168 ارز بازیابی شده است. برای اینکه نتایج را فقط به چند مورد محدود کنیم ، ما هستیم رمز ارزها را از طریق param نشان دهید symbols
.
به عنوان مثال ، برای بازیابی اطلاعات دلار ، پوند انگلیس ، دلار استرالیا ، ین ژاپن و یوان چین (در مقایسه با یورو ، که به عنوان پیش فرض ارز پایه است) ، این نقطه پایانی را اجرا می کنیم:
https://api.exchangeratesapi.io/v1/latest
?access_key=YOUR_API_KEY
&symbols=USD,GBP,AUD,JPY,CNY
پاسخ به شرح زیر است:
{
"success": true,
"timestamp": 1620904263,
"base": "EUR",
"date": "2021-05-13",
"rates": {
"USD": 1.207197,
"GBP": 0.860689,
"AUD": 1.568196,
"JPY": 132.334216,
"CNY": 7.793428
}
}
چه داده هایی را می توان بازیابی کرد
ExchangeRatesApi.io برای بدست آوردن مجموعه های مختلف داده ، چندین نقطه پایان REST را فراهم می کند. بسته به برنامه مشترک ، ممکن است نقاط نهایی در دسترس نباشند (ممکن است) صفحه قیمت گذاری توضیح می دهد که چه ویژگی هایی توسط هر لایه پوشش داده می شود).
نقاط پایانی نشان داده شده در زیر باید به آنها پیوست شود https://api.exchangeratesapi.io/v1/
(به عنوان مثال: latest
تبدیل می شود https://api.exchangeratesapi.io/v1/latest
) ، و اضافه شده است access_key
با کلید دسترسی API خود پارامتر کنید.
آخرین نرخ ها
latest
نقطه پایان داده های نرخ ارز را برای همه ارزهای موجود یا برای یک مجموعه خاص در زمان واقعی برمی گرداند.
تبدیل ارز
convert
نقطه پایان تبدیل مبلغی را از هر ارز به ارز دیگری در 168 ارز پشتیبانی شده فعال می کند.
نرخ های تاریخی
این نقطه پایان شکل دارد YYYY-MM-DD
(مانند 2021-03-20
) ، مربوط به تاریخی است که می خواهیم اطلاعات نرخ ارز تاریخی را برای آن بازیابی کنیم.
داده های سری زمانی
timeseries
نقطه پایان داده های تاریخی روزانه را برای نرخ ارز بین دو تاریخ مشخص برای حداکثر بازه زمانی 365 روز برمی گرداند.
داده های نوسان
fluctuation
نقطه پایان داده های نوسان بین تاریخ های مشخص شده را برای حداکثر بازه زمانی 365 روز برمی گرداند.
واکشی داده ها از API
برای اجرای مبدل ارز ، می توانیم از convert
نقطه پایانی (که برای آن باید در لایه Basic مشترک شویم):
https://api.exchangeratesapi.io/v1/convert
?access_key=YOUR_API_KEY
&from=GBP
&to=JPY
&amount=25
پاسخی که خواهیم گرفت به این شکل است:
{
"success": true,
"query": {
"from": "GBP",
"to": "JPY",
"amount": 25
},
"info": {
"timestamp": 1620904845,
"rate": 154.245331
},
"historical": "",
"date": "2021-05-14",
"result": 3856.079212
}
از آنجا که داده ها از طریق REST API در معرض دید قرار می گیرند ، بدون نیاز به نصب کتابخانه اضافی ، می توانیم آنها را برای هر برنامه ای بر اساس هر پشته ، چه در سمت کلاینت و چه در سمت سرور اجرا شود ، بازیابی کنیم.
مشتری سمت
کد جاوا اسکریپت زیر به API متصل می شود و مقدار تبدیل شده و نرخ ارز را در کنسول چاپ می کند:
// Set endpoint and your access key
const access_key = 'YOUR_API_KEY';
const from = 'GPB';
const to = 'JPY';
const amount = 25;
const url = `https://api.exchangeratesapi.io/v1/convert?access_key=${ access_key }&from=${ from }&to=${ to }&amount=${ amount }`;
// Get the most recent exchange rates via the "latest" endpoint:
fetch(url)
.then(response => response.json())
.then(data => {
// If our tier does not support the requested endpoint, we will get an error
if (data.error) {
console.log('Error:', data.error);
return;
}
// We got the data
console.log('Success:', data);
console.log('Converted amount: ' + data.result);
console.log('(Exchange rate: ' + data.info.rate + ')');
})
.catch((error) => {
console.error('Error:', error);
});
سمت سرور
کد زیر نحوه اتصال به REST API و چاپ نتیجه تبدیل شده را نشان می دهد ، درون یک برنامه PHP.
همین روش را می توان برای سایر زبانها نیز اجرا کرد:
- URL نقطه پایانی را مشخص کنید ، کلید دسترسی API خود را ضمیمه کنید.
- به نقطه پایان متصل شوید ، پاسخ آن را در قالب JSON بازیابی کنید.
- داده های JSON را به یک شی / آرایه رمزگشایی کنید.
- مقدار تبدیل شده را از زیر دریافت کنید
result
ویژگی.
// Set endpoint and your access key
$access_key = 'YOUR_API_KEY';
$from = 'GBP';
$to = 'JPY';
$amount = 25;
// Initialize CURL:
$ch = curl_init("https://api.exchangeratesapi.io/v1/convert?access_key=${access_key}&from=${from}&to=${to}&amount=${amount}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Get the JSON data:
$json = curl_exec($ch);
curl_close($ch);
// Decode JSON response:
$conversionResult = json_decode($json, true);
// Access the converted amount
echo $conversionResult['result'];
نتیجه
ExchangeRatesApi.io به عنوان یک متولد شد پروژه منبع باز، با هدف تهیه نرخ ارزهای فعلی و تاریخی منتشر شده توسط بانک مرکزی اروپا و نوشته شده در پایتون.
اگر می خواهید برای خرید آنلاین فروشگاه خود از تبدیل ارز استفاده کنید ، از آمازون تقلید کرده و تجربه کاربری جذابی را برای بازدیدکنندگان خود فراهم کنید ، می توانید پروژه منبع باز را بارگیری و نصب کنید.
و همچنین می توانید این کار را بسیار ساده تر کنید: اگر می خواهید مبدل ارز خود را در هیچ زمانی کار نکنید ، برای هر زبان برنامه نویسی ، دسترسی به داده های همیشه به روز که شامل مجموعه گسترده ای از منابع تجاری و -API سریع با زمان تقریبی 100٪ (99.9٪ در 12 ماه گذشته) ، سپس بررسی کنید ExchangeRatesApi.io.
