PHP: Бесплатные API для конвертации валют с примерами
Если вы выполняете конвертацию валют в своем проекте, то очень важно быть в курсе последних курсов валют. Это невозможно сделать, используя только базу данных. Существует множество бесплатных и платных API для конвертации валют.
В этом уроке я покажу вам несколько бесплатных API для конвертации валют, которые вы можете использовать в своем PHP-проекте.
1. Exchangerate.host
- Для использования этого API вам не нужно регистрироваться на сайте, чтобы получить ключ API.
- Курсы конвертации обновляются 1 раз в день.
- Вы можете конвертировать валюту с одного запроса.
- Вы можете узнать больше об этом API здесь.
Запрос
Отправьте запрос на https://exchange-rates.abstractapi.com/v1/convert/. С URL передайте 3 параметра
- base - Символ валюты, которую необходимо конвертировать.
- amount - Сумма конвертации
- symbols - Целевой символ валюты.
Декодируйте ответ JSON и проверьте значение success. Если оно истинно (true), то считаем сумму конвертации.
Пример
<?php
function convertCurrency($from_currency="USD",$to_currency="INR",$amount=1) {
$req_url = 'https://api.exchangerate.host/latest?base='.$from_currency.'&amount='.$amount.'&symbols='.$to_currency;
$response_json = file_get_contents($req_url);
$hasConversion = false;
$converted_amount = 0;
if(false !== $response_json) {
try {
$response = json_decode($response_json);
if($response->success === true) {
// Read conversion rate
$converted_amount = round($response->rates->$to_currency,2);
$hasConversion = true;
}
} catch(Exception $e) {
// Handle JSON parse error...
}
}
$return_arr = array(
"success" => $hasConversion,
"amount" => $amount,
"converted_amount" => $converted_amount
);
return $return_arr;
}
$from_currency = "USD";
$to_currency = "INR";
$amount = 10;
$response = convertCurrency($from_currency,$to_currency,$amount);
echo "<pre>";
print_r($response);
echo "</pre>";
2. Free Currency Converter API
Получить ключ API
- Для использования этого API вам необходимо зарегистрироваться и получить API-ключ.
- Для регистрации перейдите по следующей ссылке.
- Бесплатный API-ключ будет выслан вам по почте в течение 3-5 рабочих дней.
- Вы можете отправлять 100 запросов в час, а курсы валют обновляются в течение 1 часа.
- Срок действия API истекает через 1 месяц. Вы получите письмо с обновлением, когда срок действия вашего API-ключа истечет.
Запрос
Отправьте запрос на https://free.currconv.com/api/v7/convert. Здесь необходимо передать 3 параметра
- q - Передайте символы валют от и до, разделенные знаком подчеркивания (_), например, USD_INR.
- compact - Передать ultra.
- apiKey - Ваш ключ API.
Возвращается ответ в формате JSON, содержащий курс конвертации. Умножьте его на сумму, чтобы получить сумму конвертации.
Пример
<?php
function convertCurrency($from_currency="USD",$to_currency="INR",$amount=1){
$API_KEY = '366fe789becfb4cf42e9';
$from_Currency = urlencode($from_currency);
$to_Currency = urlencode($to_currency);
$query = "{$from_Currency}_{$to_Currency}";
$json = file_get_contents("https://free.currconv.com/api/v7/convert?q={$query}&compact=ultra&apiKey={$API_KEY}");
$obj = json_decode($json, true);
$hasConversion = false;
$converted_amount = 0;
if(isset($obj["$query"])){
$hasConversion = true;
$val = floatval($obj["$query"]);
$total = $val * $amount;
$converted_amount = number_format($total, 2, '.', '');
}
$return_arr = array(
"success" => $hasConversion,
"amount" => $amount,
"converted_amount" => $converted_amount
);
return $return_arr;
}
$from_currency = "USD";
$to_currency = "INR";
$amount = 10;
$response = convertCurrency($from_currency,$to_currency,$amount);
echo "<pre>";
print_r($response);
echo "</pre>";
3. Abstract API
Получить ключ API
- Этот API также требует API-ключа.
- Перейдите по следующей ссылке, чтобы получить ключ API.
- На момент написания статьи этот API допускает 500 вызовов в месяц.
- Он также предоставляет приборную панель, с помощью которой вы можете просмотреть использование запросов.
Запрос
Отправьте запрос на https://exchange-rates.abstractapi.com/v1/convert/. Здесь необходимо передать 4 параметра
- api_key - Ваш ключ API.
- base - Символ валюты, который необходимо конвертировать.
- target - Целевой символ валюты.
- base_amount - Сумма конвертации.
Возвращается ответ в формате JSON. Расшифруйте ответ и прочитайте значения. Вместе с ответом также возвращается курс конвертации.
Пример
<?php
function convertCurrency($from_currency="USD",$to_currency="INR",$amount=1){
$API_KEY = "563eef59fb3c4742bag8c0d9d298487f";
// Initialize cURL.
$ch = curl_init();
// Set the URL that you want to GET by using the CURLOPT_URL option.
curl_setopt($ch, CURLOPT_URL, 'https://exchange-rates.abstractapi.com/v1/convert/?api_key='.$API_KEY.'&base='.$from_currency.'&target='.$to_currency.'&base_amount='.$amount);
// Set CURLOPT_RETURNTRANSFER so that the content is returned as a variable.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Set CURLOPT_FOLLOWLOCATION to true to follow redirects.
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// Execute the request.
$response_json = curl_exec($ch);
$response = json_decode($response_json);
// Close the cURL handle.
curl_close($ch);
$hasConversion = false;
$converted_amount = 0;
$exchange_rate = 0;
if(isset($response->converted_amount)){
$hasConversion = true;
$converted_amount = $response->converted_amount;
$exchange_rate = $response->exchange_rate;
}
$return_arr = array(
"success" => $hasConversion,
"amount" => $amount,
"converted_amount" => $converted_amount,
"exchange_rate" => $exchange_rate
);
return $return_arr;
}
$from_currency = "USD";
$to_currency = "INR";
$amount = 10;
$response = convertCurrency($from_currency,$to_currency,$amount);
echo "<pre>";
print_r($response);
echo "</pre>";
Вывод
Только API Free Currency Converter обновляет курсы валют за меньшее время по сравнению с двумя другими.
Чтобы свести к минимуму ненужные вызовы, используйте Database, COOKIE или SESSION для хранения курсов конвертации валют и обновляйте их значение через регулярные промежутки времени, отправляя API-запрос.
Вы можете перейти на платные тарифные планы, если хотите получать больше API-запросов и получать актуальный курс конвертации за меньшее время.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.