{"id":27404,"date":"2021-05-15T15:25:00","date_gmt":"2021-05-15T12:25:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27404"},"modified":"2021-10-18T04:14:11","modified_gmt":"2021-10-18T01:14:11","slug":"api-de-taxas-de-cambio-com-conversao-de-moeda-em-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/api-de-taxas-de-cambio-com-conversao-de-moeda-em-php\/","title":{"rendered":"API de taxas de c\u00e2mbio com convers\u00e3o de moeda em PHP"},"content":{"rendered":"<p>Recentemente, estava trabalhando em um projeto de cliente em que precisava receber pagamentos de usu\u00e1rios de todo o mundo. O cliente que usa Razorpay para receber pagamentos online. No Razorpay, voc\u00ea precisa converter a taxa de moeda estrangeira em INR (R\u00fapias indianas) e, em seguida, cobrar o pagamento. Para realizar esta tarefa, eu queria obter a API de taxas de c\u00e2mbio estrangeira que encontrei na <a href=\"http:\/\/exchangeratesapi.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">API de taxas de c\u00e2mbio<\/a>.<\/p>\n<p>A API de taxas de c\u00e2mbio \u00e9 um servi\u00e7o de c\u00f3digo aberto para as taxas de c\u00e2mbio atuais e hist\u00f3ricas publicadas pelo <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\">Banco Central Europeu<\/a>.<\/p>\n<p>Neste artigo, mostrarei como usar a API de taxas de c\u00e2mbio e obter a quantidade de moeda estrangeira.<\/p>\n<h3>Como usar a API de taxas de c\u00e2mbio<\/h3>\n<p>Este servi\u00e7o fornece endpoints de API. Assim que atingirmos os endpoints junto com os par\u00e2metros, eles retornar\u00e3o uma resposta apropriada.<\/p>\n<p>A fim de fornecer chamadas de API e resposta de tratamento, podemos escolher Guzzle (cliente PHP HTTP) ou cURL. Ambos fornecem uma maneira f\u00e1cil e confi\u00e1vel de interagir com as APIs.<\/p>\n<p>Vamos come\u00e7ar com o Guzzle primeiro. Instale o Guzzle por meio do composer pelo seguinte comando:<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Ap\u00f3s a instala\u00e7\u00e3o, voc\u00ea pode fazer uma chamada de API e receber a resposta escrevendo o c\u00f3digo abaixo.<\/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>O c\u00f3digo acima fornece uma taxa de convers\u00e3o em d\u00f3lares americanos para outras moedas. O usu\u00e1rio pode definir outros s\u00edmbolos de moeda para a chave &#8216;base&#8217;.<\/p>\n<p>Da mesma forma, os usu\u00e1rios obt\u00eam uma taxa de convers\u00e3o de uma \u00fanica moeda. Digamos que voc\u00ea queira o pre\u00e7o INR do d\u00f3lar americano.<\/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>A API de taxas de c\u00e2mbio tamb\u00e9m fornece dados hist\u00f3ricos. Nesse caso, voc\u00ea precisa passar valores de data para as chaves &#8216;start_at&#8217; e &#8216;end_at&#8217;.<\/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>Interaja com a API usando cURL<\/h4>\n<p>Eu preferi usar um Guzzle para interagir com a API. Mas se algu\u00e9m quiser usar cURL, pode usar o c\u00f3digo abaixo. Certifique-se de ter habilitado a extens\u00e3o cURL em seu servidor.<\/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>\u00c9 tudo sobre como obter taxas de c\u00e2mbio em PHP. Espero que voc\u00ea entenda e possa us\u00e1-lo em seu trabalho de desenvolvimento. Eu gostaria de ouvir suas opini\u00f5es ou sugest\u00f5es na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/encontre-geolocalizacao-usando-endereco-ip-gratuitamente-em-php\/\" title=\"Encontre geolocaliza\u00e7\u00e3o usando endere\u00e7o IP gratuitamente em PHP\">Encontre geolocaliza\u00e7\u00e3o usando endere\u00e7o IP gratuitamente em PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-ler-texto-de-imagem-em-php\/\" title=\"Como ler texto de imagem em PHP\">Como ler texto de imagem em PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo, estudamos como obter taxas de c\u00e2mbio para moedas estrangeiras em PHP. Usaremos um servi\u00e7o de c\u00f3digo aberto que fornece endpoints para obter esses<\/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":[278],"tags":[848],"class_list":["post-27404","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27404","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=27404"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27404\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/22212"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}