Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ronza

Api para conversão de Moedas

Recommended Posts

Galera, alguém conhece alguma API para conversão de moedas onde eu possa resgatar o valor do dólar com relação ao real?

 

Só encontrei o método em que você pega o código fonte de um site, mas assim é muito arriscado, pois o site pode ser modificado a qualquer momento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A do Google. Ela é retornada em JSON.

http://www.google.com/ig/calculator?hl=en&q=100{moeda1}=?{moeda2}

Há algum tempo eu havia feito uma classe para isso.

Se quiser usar:

abstract class Converter{
	protected $valueWithCurrency;
	protected $toCurrency;
	protected $convertedValue;
		
	public function __construct( $valueWithCurrency, $toCurrency ){
		$this->valueWithCurrency = $valueWithCurrency;
		$this->toCurrency = $toCurrency;
	}
		
	public function getConvertedValue(){
		return $this->convertedValue;
	}
		
	abstract public function convert();
}

class GoogleCurrencyConverter extends Converter{
	private $contents;
	private $jsonResult;
	
	public function convert(){
		$this->getGoogleCurrencyConverterContents();
		$this->convertToValidJson();
		$this->convertedValue = $this->jsonResult->rhs;
	}
		
	private function getGoogleCurrencyConverterContents(){
		$url = sprintf( "http://www.google.com/ig/calculator?hl=en&q=%s=?%s", trim( str_replace( ' ', '', $this->valueWithCurrency ) ), trim( $this->toCurrency ) );
		$this->contents = file_get_contents( $url );
	}
		
	private function convertToValidJson(){
		$str_replace = array(
			'lhs' => '"lhs"',
			'rhs' => '"rhs"',
			'error' => '"error"',
			'icc' => '"icc"'
		);
			
		$newContents = str_replace( array_keys( $str_replace ), array_values( $str_replace ), $this->contents );
		$this->jsonResult = json_decode( $newContents );
	}
}

Exemplo de uso:

$converter = new GoogleCurrencyConverter( '1USD', 'BRL' );
$converter->convert();
$value = $converter->getConvertedValue();

As siglas das moedas você encontra aqui: :seta: https://archive.org/stream/currencies/currencies.txt

Compartilhar este post


Link para o post
Compartilhar em outros sites

O cambio flutua, logo você quer uma função em que você precise setar manualmente o valor atual do real, euro, dolar, etc? Ou você uma API em que você atualiza os valores automaticamente através de um site?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Raoni, eu gostaria de resgatar o valor do real para 1 dólar.

 

Gabriel, muito obrigado pela sua ajuda! Só tive um probleminha com seu código, eu queria que aparecesse somente números, e não escrito Brazil e nem real. Mas isto eu me viro.

 

E outra coisa, eu vi que você utilizou o file_get_contents, não é arriscado? Pois usarei em um comércio eletrônico, que depende dessas informações!

 

Andei pesquisando e encontrei uma API do yahoo que parece ser interessante, é parecido com comandos sql, já ouviram falar? É o Yql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples e funcional:

 

//pegando xml
$xml = simplexml_load_file("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDBRL%22)&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys");

$dolar = $xml->results->rate->Rate;

echo $dolar;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.