API валютных курсов с конвертацией валют в PHP
Недавно я работал над клиентским проектом, где мне нужно было собирать оплату с пользователей со всего мира. Клиент, использующий Razorpay для приема онлайн-платежей. В Razorpay вам необходимо конвертировать курс иностранной валюты в индийские рупии, а затем произвести оплату. Для выполнения этой задачи я хотел получить API курсов валют, который я нашел в API курсов валют.
API валютных курсов – это сервис с открытым исходным кодом для текущих и исторических курсов валют, публикуемых Европейским центральным банком.
В этой статье я покажу вам, как использовать API курсов валют и узнать сумму в иностранной валюте.
Как использовать API валютных курсов
Эта служба предоставляет конечные точки API. Как только мы достигаем конечных точек вместе с параметрами, они возвращают соответствующий ответ.
Чтобы отправлять вызовы API и обрабатывать ответ, мы можем выбрать либо Guzzle (HTTP-клиент PHP), либо 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);
}
Приведенный выше код дает вам курс конвертации доллара США в другие валюты. Пользователь может установить другие символы валюты на «базовую» клавишу.
Таким же образом пользователи получают курс конвертации из одной валюты. Допустим, вам нужна цена 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. Надеюсь, вы это понимаете и можете использовать в своей разработке. Я хотел бы услышать ваши мысли или предложения в разделе комментариев ниже.