SWCore
SWCore / Componentes / Cotação de moedas

Cotação de moedas Componentes

Mostra a cotação do dólar, euro, bitcoin e outras moedas em reais, buscada na hora numa API pública gratuita — em cartões ou em tabela, atualizando sozinha se você quiser.

O que é

Serve para o site de uma casa de câmbio, agência de turismo, loja que importa, portal de notícias: "Dólar hoje R$ 5,43 ▲ 0,32%". Você escreve uma <div sw-cotacao>, diz quais pares quer (sw-cotacao-pares="USD-BRL,EUR-BRL") e ele monta os cartões com o valor e a variação do dia (verde subindo, vermelho caindo).

Precisa do JavaScript do SWCore e de internet: o navegador de quem visita busca os valores na AwesomeAPI (economia.awesomeapi.com.br), um serviço público e gratuito que não pede cadastro nem chave. Você não precisa de nada no seu servidor. Sem internet, ou se a API estiver fora, aparece "Cotação indisponível no momento." no lugar (o mesmo vale para par escrito errado). O símbolo segue a moeda de destino do par: USD-BRL mostra "R$", BTC-USD mostra "US$", USD-EUR mostra "€".

Quando usar

  • Mostrar o câmbio do dia num site de turismo, câmbio ou importação: modo cartões.
  • Comparar compra, venda, máxima e mínima de várias moedas: sw-cotacao-mode="table".
  • Não use para calcular preço de venda ou fechar negócio: é informativo, com atraso de mercado.

Comece aqui

  1. 1

    Coloque o SWCore na página.

    <link rel="stylesheet" href="https://swcore.sanweb.com.br/dist/2.1.0/swcore.min.css">
    
    <!-- fim do body -->
    <script src="https://swcore.sanweb.com.br/dist/2.1.0/swcore.min.js"></script>
  2. 2

    Escreva a div com os pares que quer mostrar. Pronto: ao abrir a página, o navegador busca os valores.

    <div sw-cotacao sw-cotacao-pares="USD-BRL,EUR-BRL"></div>
  3. 3

    Para atualizar sozinho, diga de quanto em quanto tempo (em milissegundos: 60000 = 1 minuto).

    <div sw-cotacao sw-cotacao-pares="USD-BRL,EUR-BRL" sw-cotacao-auto="60000"></div>

Todas as variações

Cada quadro abaixo é o componente de verdade, rodando. O código embaixo é exatamente o que está no quadro: copie e cole.

1. Cartões (o padrão)

Estes quadros são retratos: mostram o HTML que o componente monta, com valores de exemplo, para esta página não depender da internet. O código embaixo de cada um é o que você escreve para ter o de verdade, com valores reais. Cada cartão traz o par, se é preço de compra ou de venda, o valor em reais e a variação do dia.

USD / BRL (Compra)R$ 5.43▲ 0.32%
EUR / BRL (Compra)R$ 5.87▼ 0.18%
Padrão — sem sw-cotacao-pares vem USD-BRL e EUR-BRL <div sw-cotacao></div>
USD / BRL (Compra)R$ 5.43▲ 0.32%
EUR / BRL (Compra)R$ 5.87▼ 0.18%
GBP / BRL (Compra)R$ 6.91▲ 0.05%
sw-cotacao-pares — as moedas que você escolher <div sw-cotacao sw-cotacao-pares="USD-BRL,EUR-BRL,GBP-BRL"></div>

2. Compra ou venda

Nos cartões, sw-cotacao-tipo="c" (padrão) mostra o preço de compra; qualquer outro valor, como "v", mostra o de venda. O próprio cartão escreve qual é. (Retratos com valores de exemplo.)

USD / BRL (Compra)R$ 5.43▲ 0.32%
sw-cotacao-tipo="c" — compra (padrão) <div sw-cotacao sw-cotacao-pares="USD-BRL" sw-cotacao-tipo="c"></div>
USD / BRL (Venda)R$ 5.44▲ 0.32%
sw-cotacao-tipo="v" — venda <div sw-cotacao sw-cotacao-pares="USD-BRL" sw-cotacao-tipo="v"></div>

3. Tabela

sw-cotacao-mode="table" mostra, para cada par, compra, venda, variação do dia, máxima e mínima das últimas 24 horas. (Retrato com valores de exemplo.)

ParCompra (Bid)Venda (Ask)VariaçãoMáx 24hMín 24h
USD/BRLR$ 5.43R$ 5.44▲ 0.32%R$ 5.46R$ 5.40
EUR/BRLR$ 5.87R$ 5.88▼ 0.18%R$ 5.91R$ 5.85
BTC/BRLR$ 342150.00R$ 342300.00▲ 1.24%R$ 345000.00R$ 338900.00
sw-cotacao-mode="table" <div sw-cotacao sw-cotacao-pares="USD-BRL,EUR-BRL,BTC-BRL" sw-cotacao-mode="table"></div>

Tabela de opções

PalavraO que fazExemplo
Atributos
sw-cotacaoLiga o componente. Apelido curto: sw-cota.<div sw-cotacao></div>
sw-cotacao-paresPares separados por vírgula, no formato MOEDA-BRL. Padrão: USD-BRL,EUR-BRL.sw-cotacao-pares="USD-BRL,BTC-BRL"
sw-cotacao-modecards (padrão) ou table.sw-cotacao-mode="table"
sw-cotacao-tipoSó nos cartões: c = compra (padrão); outro valor = venda.sw-cotacao-tipo="v"
sw-cotacao-autoBusca de novo a cada N milissegundos. Sem ele, busca uma vez ao abrir a página.sw-cotacao-auto="60000"
Apelidos curtos (funcionam igual)
sw-cota-pares / sw-cota-mode / sw-cota-tipo / sw-cota-autoMesmo efeito dos nomes longos.<div sw-cota sw-cota-pares="USD-BRL"></div>
Pares mais usados (código da AwesomeAPI)
USD-BRLDólar americano.
EUR-BRLEuro.
GBP-BRLLibra esterlina.
ARS-BRLPeso argentino.
BTC-BRLBitcoin.
ETH-BRLEthereum.
Visual (classes que o componente cria — mude no CSS da sua página se quiser)
.sw-cotacao-itCada cartão.
.sw-cotacao-val / .sw-cotacao-subValor e variação; ganham .is-up (verde) ou .is-dwn (vermelho).
.sw-cotacao-tableA tabela do modo table.

Receitas prontas — usos reais

Situações que aparecem em quase todo site. Copie a que servir.

Faixa "câmbio de hoje" no topo de um site de turismo Referência
<section class="p-3">
  <h2 class="t-h5">Câmbio de hoje</h2>
  <div sw-cotacao sw-cotacao-pares="USD-BRL,EUR-BRL,ARS-BRL" sw-cotacao-tipo="v" sw-cotacao-auto="300000"></div>
  <p class="t-pp t-mut">Valores de venda, atualizados a cada 5 minutos. Fonte: AwesomeAPI.</p>
</section>
Tabela de criptomoedas atualizando a cada minuto Referência
<div sw-cotacao
     sw-cotacao-pares="BTC-BRL,ETH-BRL"
     sw-cotacao-mode="table"
     sw-cotacao-auto="60000"></div>

API (JavaScript)

SW.Cotacao.initAll(raiz)
Liga as divs [sw-cotacao] dentro de raiz. Normalmente não precisa: o SWCore liga sozinho. SWCotacao é o mesmo objeto.

Precisa de quê

  • swcore.min.css e swcore.min.js.
  • Internet no navegador de quem visita — os valores vêm da AwesomeAPI (gratuita, sem chave). Nada é preciso no seu servidor.

Cuidados — erros comuns

  • Par escrito errado (USD/BRL, dolar-real): a API não reconhece e aparece "Cotação indisponível no momento.". Use o formato USD-BRL, com hífen e em maiúsculas.
  • sw-cotacao-auto muito baixo (ex.: 1000): a API gratuita limita pedidos e passa a recusar (aparece "Cotação indisponível no momento."). Use 60000 (1 minuto) ou mais.
  • Muitos blocos [sw-cotacao] na mesma página: cada um faz o seu pedido. Junte os pares num bloco só.
  • Testar abrindo o arquivo sem internet: aparece "Cotação indisponível no momento." — não é defeito do seu código.

O que ele não faz

  • Depende de um serviço externo (AwesomeAPI). Se ele sair do ar ou mudar, a cotação some.
  • Valor com ponto decimal (5.43), no formato americano — não usa vírgula.
  • A seta e a cor mostram a variação do dia (desde a abertura), não desde a última atualização da página.
  • Não tem eventos nem função para ler os valores por código.