Interfejs API kursów walut z konwersją walut w PHP
Ostatnio pracowałem nad projektem klienta, w którym musiałem pobierać opłaty od użytkowników z całego świata. Klient korzystający z Razorpay do otrzymywania płatności online. W Razorpay musisz przeliczyć kurs waluty obcej na INR (rupie indyjskie), a następnie pobrać płatność. Aby wykonać to zadanie, chciałem uzyskać API kursów walut, które znalazłem w API kursów walut.
API kursów walut to usługa typu open source dla bieżących i historycznych kursów walut publikowanych przez Europejski Bank Centralny.
W tym artykule pokażę Ci, jak korzystać z API kursów walutowych i uzyskać ilość waluty obcej.
Jak korzystać z interfejsu API kursów walut?
Ta usługa zapewnia punkty końcowe API. Gdy trafimy na punkty końcowe wraz z parametrami, zwracają one odpowiednią odpowiedź.
W celu podania wywołań API i odpowiedzi obsługi możemy wybrać Guzzle (klient PHP HTTP) lub cURL. Oba zapewniają łatwy i niezawodny sposób interakcji z interfejsami API.
Zacznijmy najpierw od Guzzle. Zainstaluj Guzzle przez kompozytora za pomocą następującego polecenia:
composer require guzzlehttp/guzzle
Po instalacji możesz wywołać API i otrzymać odpowiedź, pisząc poniższy kod.
<?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);
}
Powyższy kod podaje kurs wymiany dolara amerykańskiego na inne waluty. Użytkownik może ustawić inne symbole waluty do klucza „podstawowego".
W ten sam sposób użytkownicy uzyskują współczynnik konwersji z jednej waluty. Załóżmy, że chcesz otrzymać cenę INR w dolarach amerykańskich.
$response = $client->request('GET', 'latest', [
'query' => [
'base' => 'USD',
'symbols' => 'INR',
]
]);
API kursów walutowych udostępnia również dane historyczne. W takim przypadku musisz przekazać wartości dat dla kluczy „start_at” i „end_at”.
$response = $client->request('GET', 'history', [
'query' => [
'base' => 'USD',
'symbols' => 'INR',
'start_at' => '2020-01-01',
'end_at' => '2020-01-20'
]
]);
Interakcja z API za pomocą cURL
Wolałem używać Guzzle do interakcji z API. Ale jeśli ktoś chce użyć cURL, może użyć poniższego kodu. Upewnij się, że masz włączone rozszerzenie cURL na swoim serwerze.
<?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);
Chodzi o uzyskanie kursów walut w PHP. Mam nadzieję, że to rozumiesz i potrafisz wykorzystać w swojej pracy programistycznej. Chciałbym usłyszeć Twoje przemyślenia lub sugestie w sekcji komentarzy poniżej.