{"id":27781,"date":"2021-05-15T15:52:00","date_gmt":"2021-05-15T12:52:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27781"},"modified":"2021-10-18T03:46:54","modified_gmt":"2021-10-18T00:46:54","slug":"interfejs-api-kursow-walut-z-konwersja-walut-w-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/interfejs-api-kursow-walut-z-konwersja-walut-w-php\/","title":{"rendered":"Interfejs API kurs\u00f3w walut z konwersj\u0105 walut w PHP"},"content":{"rendered":"<p>Ostatnio pracowa\u0142em nad projektem klienta, w kt\u00f3rym musia\u0142em pobiera\u0107 op\u0142aty od u\u017cytkownik\u00f3w z ca\u0142ego \u015bwiata. Klient korzystaj\u0105cy z Razorpay do otrzymywania p\u0142atno\u015bci online. W Razorpay musisz przeliczy\u0107 kurs waluty obcej na INR (rupie indyjskie), a nast\u0119pnie pobra\u0107 p\u0142atno\u015b\u0107. Aby wykona\u0107 to zadanie, chcia\u0142em uzyska\u0107 API kurs\u00f3w walut, kt\u00f3re znalaz\u0142em w <a href=\"http:\/\/exchangeratesapi.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">API kurs\u00f3w walut<\/a>.<\/p>\n<p>API kurs\u00f3w walut to us\u0142uga typu open source dla bie\u017c\u0105cych i historycznych kurs\u00f3w walut publikowanych przez <a href=\"https:\/\/www.ecb.europa.eu\/stats\/policy_and_exchange_rates\/euro_reference_exchange_rates\/html\/index.en.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Europejski Bank Centralny<\/a>.<\/p>\n<p>W tym artykule poka\u017c\u0119 Ci, jak korzysta\u0107 z API kurs\u00f3w walutowych i uzyska\u0107 ilo\u015b\u0107 waluty obcej.<\/p>\n<h3>Jak korzysta\u0107 z interfejsu API kurs\u00f3w walut?<\/h3>\n<p>Ta us\u0142uga zapewnia punkty ko\u0144cowe API. Gdy trafimy na punkty ko\u0144cowe wraz z parametrami, zwracaj\u0105 one odpowiedni\u0105 odpowied\u017a.<\/p>\n<p>W celu podania wywo\u0142a\u0144 API i odpowiedzi obs\u0142ugi mo\u017cemy wybra\u0107 Guzzle (klient PHP HTTP) lub cURL. Oba zapewniaj\u0105 \u0142atwy i niezawodny spos\u00f3b interakcji z interfejsami API.<\/p>\n<p>Zacznijmy najpierw od Guzzle. Zainstaluj Guzzle przez kompozytora za pomoc\u0105 nast\u0119puj\u0105cego polecenia:<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Po instalacji mo\u017cesz wywo\u0142a\u0107 API i otrzyma\u0107 odpowied\u017a, pisz\u0105c poni\u017cszy kod.<\/p>\n<pre><code>&lt;?php\nrequire_once 'vendor\/autoload.php';\n\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/api.exchangeratesapi.io\/',\n]);\n\u00a0\n\/\/ get all rates\n$response = $client-&gt;request('GET', 'latest', [\n\u00a0\u00a0\u00a0\u00a0'query' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'base' =&gt; 'USD',\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\nif($response-&gt;getStatusCode() == 200) {\n\u00a0\u00a0\u00a0\u00a0$body = $response-&gt;getBody();\n\u00a0\u00a0\u00a0\u00a0$arr_body = json_decode($body);\n\u00a0\u00a0\u00a0\u00a0print_r($arr_body);\n}<\/code><\/pre>\n<p>Powy\u017cszy kod podaje kurs wymiany dolara ameryka\u0144skiego na inne waluty. U\u017cytkownik mo\u017ce ustawi\u0107 inne symbole waluty do klucza \u201epodstawowego&quot;.<\/p>\n<p>W ten sam spos\u00f3b u\u017cytkownicy uzyskuj\u0105 wsp\u00f3\u0142czynnik konwersji z jednej waluty. Za\u0142\u00f3\u017cmy, \u017ce chcesz otrzyma\u0107 cen\u0119 INR w dolarach ameryka\u0144skich.<\/p>\n<pre><code>$response = $client-&gt;request('GET', 'latest', [\n\u00a0\u00a0\u00a0\u00a0'query' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'base' =&gt; 'USD',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'symbols' =&gt; 'INR',\n\u00a0\u00a0\u00a0\u00a0]\n]);<\/code><\/pre>\n<p>API kurs\u00f3w walutowych udost\u0119pnia r\u00f3wnie\u017c dane historyczne. W takim przypadku musisz przekaza\u0107 warto\u015bci dat dla kluczy \u201estart_at&#8221; i \u201eend_at&#8221;.<\/p>\n<pre><code>$response = $client-&gt;request('GET', 'history', [\n\u00a0\u00a0\u00a0\u00a0'query' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'base' =&gt; 'USD',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'symbols' =&gt; 'INR',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'start_at' =&gt; '2020-01-01',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'end_at' =&gt; '2020-01-20'\n\u00a0\u00a0\u00a0\u00a0]\n]);<\/code><\/pre>\n<h4>Interakcja z API za pomoc\u0105 cURL<\/h4>\n<p>Wola\u0142em u\u017cywa\u0107 Guzzle do interakcji z API. Ale je\u015bli kto\u015b chce u\u017cy\u0107 cURL, mo\u017ce u\u017cy\u0107 poni\u017cszego kodu. Upewnij si\u0119, \u017ce masz w\u0142\u0105czone rozszerzenie cURL na swoim serwerze.<\/p>\n<pre><code>&lt;?php\n$url = \"https:\/\/api.exchangeratesapi.io\/latest?base=USD\";\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);\ncurl_setopt($ch, CURLOPT_URL, $url);\n$response = curl_exec($ch);\n$arr_result = json_decode($response);\nprint_r($arr_result);<\/code><\/pre>\n<p>Chodzi o uzyskanie kurs\u00f3w walut w PHP. Mam nadziej\u0119, \u017ce to rozumiesz i potrafisz wykorzysta\u0107 w swojej pracy programistycznej. Chcia\u0142bym us\u0142ysze\u0107 Twoje przemy\u015blenia lub sugestie w sekcji komentarzy poni\u017cej.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/znajdz-geolokalizacje-za-pomoca-adresu-ip-za-darmo-w-php\/\" title=\"Znajd\u017a geolokalizacj\u0119 za pomoc\u0105 adresu IP za darmo w PHP\">Znajd\u017a geolokalizacj\u0119 za pomoc\u0105 adresu IP za darmo w PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-czytac-tekst-z-obrazu-w-php\/\" title=\"Jak czyta\u0107 tekst z obrazu w PHP\">Jak czyta\u0107 tekst z obrazu w PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym artykule dowiemy si\u0119, jak uzyska\u0107 kursy wymiany walut obcych w PHP. U\u017cyjemy us\u0142ugi open source, kt\u00f3ra zapewnia punkty ko\u0144cowe, aby je uzyska\u0107<\/p>\n","protected":false},"author":1,"featured_media":22212,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[277],"tags":[847],"class_list":["post-27781","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27781","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=27781"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27781\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/22212"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=27781"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=27781"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=27781"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}