API för valutakurser med valutakonvertering i PHP
Nyligen arbetade jag med ett kundprojekt där jag behövde samla in betalningar från användare över hela världen. Klienten som använder Razorpay för att ta emot onlinebetalningar. I Razorpay måste du konvertera utländsk valutakurs till INR (indiska rupier) och sedan debitera betalningen. För att utföra denna uppgift ville jag få valutakurser API som jag hittade på Exchange rates API.
Växelkurser API är en öppen källkodstjänst för aktuella och historiska valutakurser som publiceras av Europeiska centralbanken.
I den här artikeln visar jag dig hur du använder växelkurs-API och får mängden utländsk valuta.
Hur man använder API för valutakurser
Den här tjänsten tillhandahåller API-slutpunkter. När vi väl har nått slutpunkterna tillsammans med parametrar returnerar de ett lämpligt svar.
För att ge API-samtal och hanteringssvar kan vi välja antingen Guzzle (PHP HTTP-klient) eller cURL. Båda ger ett enkelt och pålitligt sätt att interagera med API: erna.
Låt oss börja med Guzzle först. Installera Guzzle genom kompositören med följande kommando:
composer require guzzlehttp/guzzle
Efter installationen kan du ringa ett API-samtal och ta emot svaret genom att skriva koden nedan.
<?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);
}
Ovanstående kod ger dig en USD-omvandlingskurs för andra valutor. Användaren kan ställa in andra valutasymboler till "bas" -tangenten.
På samma sätt får användare en omvandlingsfrekvens från en enda valuta. Låt oss säga att du vill ha INR-priset på USD dollar.
$response = $client->request('GET', 'latest', [
'query' => [
'base' => 'USD',
'symbols' => 'INR',
]
]);
Exchange Rates API ger dig också historisk data. I så fall måste du skicka datumvärden för ‘start_at’ och ‘end_at’ -tangenterna.
$response = $client->request('GET', 'history', [
'query' => [
'base' => 'USD',
'symbols' => 'INR',
'start_at' => '2020-01-01',
'end_at' => '2020-01-20'
]
]);
Interagera med API med cURL
Jag föredrog att använda en Guzzle för att interagera med API: et. Men om någon vill använda cURL kan de använda koden nedan. Se till att du har aktiverat cURL-tillägget på din server.
<?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);
Det handlar om att få valutakurser i PHP. Jag hoppas att du förstår det och kan använda det i ditt utvecklingsarbete. Jag skulle vilja höra dina tankar eller förslag i kommentarsektionen nedan.