API курсів валют з конвертацією валют у PHP
Нещодавно я працював над проектом клієнта, де мені потрібно було збирати платежі від користувачів у всьому світі. Клієнт, який використовує Razorpay для отримання онлайн-платежів. У Razorpay вам потрібно перевести курс іноземної валюти в INR (індійські рупії), а потім стягнути плату. Для виконання цього завдання я хотів отримати API курсів іноземних валют, який я знайшов в API курсів валют.
API курсів валют – це послуга з відкритим кодом для поточних та історичних курсів іноземних валют, опублікована Європейським центральним банком.
У цій статті я покажу вам, як користуватися API курсів валют та отримувати суму іноземної валюти.
Як користуватися API курсів валют
Ця послуга надає кінцеві точки API. Як тільки ми потрапляємо в кінцеві точки разом із параметрами, вони повертають відповідну відповідь.
Для того, щоб дати виклики API та відповісти на обробку, ми можемо вибрати Guzzle (PHP HTTP-клієнт) або cURL. Обидва вони забезпечують простий і надійний спосіб взаємодії з API.
Почнемо спочатку з Guzzle. Встановіть Guzzle через композитор за допомогою наступної команди:
composer require guzzlehttp/guzzle
Після встановлення ви можете здійснити виклик API і отримати відповідь, написавши код нижче.
<?php
require_once 'vendor/autoload.php';
use GuzzleHttpClient;
$client = new Client([
// Base URI is used with relative requests
'base_uri' => 'https://api.exchangeratesapi.io/',
]);
// get all rates
$response = $client->request('GET', 'latest', [
'query' => [
'base' => 'USD',
]
]);
if($response->getStatusCode() == 200) {
$body = $response->getBody();
$arr_body = json_decode($body);
print_r($arr_body);
}
Наведений вище код надає вам курс конвертації доларів США для інших валют. Користувач може встановити інші символи валюти за допомогою клавіші ‘base’.
Таким же чином користувачі отримують коефіцієнт конверсії з однієї валюти. Скажімо, вам потрібна ціна INR у доларах США.
$response = $client->request('GET', 'latest', [
'query' => [
'base' => 'USD',
'symbols' => 'INR',
]
]);
API курсів валют також надає вам історичні дані. У цьому випадку вам потрібно передати значення дати для ключів ‘start_at’ та ‘end_at’.
$response = $client->request('GET', 'history', [
'query' => [
'base' => 'USD',
'symbols' => 'INR',
'start_at' => '2020-01-01',
'end_at' => '2020-01-20'
]
]);
Взаємодійте з API, використовуючи cURL
Я вважав за краще використовувати Guzzle для взаємодії з API. Але якщо хтось хоче використовувати cURL, тоді він може скористатися наведеним нижче кодом. Переконайтеся, що ви увімкнули розширення cURL на своєму сервері.
<?php
$url = "https://api.exchangeratesapi.io/latest?base=USD";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$response = curl_exec($ch);
$arr_result = json_decode($response);
print_r($arr_result);
Вся справа в отриманні курсів іноземних валют у PHP. Сподіваюся, ви це розумієте і можете використовувати його у своїй розробці. Я хотів би почути ваші думки чи пропозиції у розділі коментарів нижче.