pedrofurtado / qrcode_pix_ruby

Ruby gem for QRCode generation of Pix (Pagamento Instantâneo Brasileiro - Banco Central do Brasil)
https://rubygems.org/gems/qrcode_pix_ruby
MIT License
43 stars 7 forks source link

Gerar QR Code pelo payload? #20

Closed guicalabria closed 3 years ago

guicalabria commented 3 years ago

Oi, É possível gerar o QRCode pelo payload recebido pelo banco do brasil? Usando a API de cobrança deles o retorno é: [qrCode] => Array ( [url] => qrcodepix-h.bb.com.br/pix/v2/cobv/64622d78-4428-4be7-ae34-b5cfa52908c4 [txId] => BOLETO31285570120059390DATA26102021 [emv] => 00020101021226920014br.gov.bcb.pix2570qrcodepix-h.bb.com.br/pix/v2/cobv/64622d78-4428-4be7-ae34-b5cfa52908c45204000053039865802BR5925EMPRORT AMBIENTAL 6008BRASILIA62070503***6304DDB7 ) Com esses dados eu consigo gerar o QR Code?

pedrofurtado commented 3 years ago

Fala, @guicalabria ! 👋

Tudo jóia? Obrigado por entrar em contato conosco 🍻

Pela sua descrição, a API do Banco do Brasil para Pix já retorna o EMV pronto pra uso, bastando apenas a geração do QRCode.

Nesse sentido, talvez o uso dessa gem não beneficie muito o seu caso de uso nesse momento. A idéia da gem é justamente gerar o EMV e o QRCode respectivo pra vc, que no seu caso já vem pronto da API do BB.

O que acha de tentar algo desse tipo?

# Execute 'gem install rqrcode' antes de prosseguir com o script abaixo

require 'rqrcode'

meu_emv_ja_pronto_da_api_do_bb = '00020101021226920014br.gov.bcb.pix2570qrcodepix-h.bb.com.br/pix/v2/cobv/64622d78-4428-4be7-ae34-b5cfa52908c45204000053039865802BR5925EMPRORT AMBIENTAL 6008BRASILIA62070503***6304DDB7'

# isso retornará pra vc o base64 da imagem, que vc depois pode inserir dentro de uma tag <img> por ex 🤝 
RQRCode::QRCode.new(meu_emv_ja_pronto_da_api_do_bb).as_png(
  bit_depth: 1,
  border_modules: 0,
  color_mode: 0,
  color: 'black',
  file: nil,
  fill: 'white',
  module_px_size: 6,
  resize_exactly_to: false,
  resize_gte_to: false
).to_data_url

Obs: Apesar do QRCode gerado ser válido, talvez não seja possível pagá-lo ou escanea-lo via aplicativo móvel dos bancos, por utilizar o ambiente de homologação do BB.