3
respostas

Geração de QRCode, exportação para .png, e exportação para File.

Tenho um método, criado em ASP,NET C#, que gera um QRCode e salva em formato .png.

Gostaria de uma dica, de como posso criar um método que recebe o bitmap do QRCode, e retorna um IFormFile, ou Form, ou Stream, para poder reaproveitar em outros métodos, e passar em formato de uma url.

Já procurei em vários sites, e ainda não sei bem como fazer.

3 respostas

Olá, ciamalura. Tudo bom com você?

Vou te acompanhar com essa dúvida. Você conseguiu algo nesses 6 dias?

Para mim não ficou muito claro como sua aplicação deve funcionar. Você quer mapear URL -> QR Code? Você poderia dar um exemplo do formato da url para o qr code?

Abs, fico no aguardo para continuarmos :)

Bom, a minha aplicação é de cadastro de instituições e suas campanhas. Para cada campanha, um QRCode, sendo que o mesmo irá mostrar os detalhes da campanha, podendo levar o usuário à view de doações.

Eu consegui gerar o QRCode, mas estou com duvida em relação à URL que terei que associar, uma vez que, para cada campanha, este QRCode deve redirecionar para uma view.

Exemplo de URL: www.instituiçãox.com/idCampanha, porém, não tenho muita certeza.

Teria alguma aplicação, que eu possa tomar como exemplo?

Entendi, ciamalura.

Uma estratégia que eu gosto é a utilizada por encurtadores de url.

Você armazena o ID e a url de redirecionamento. Por exemplo:

+------+------------------------------+
|  ID  |     URL_ORIGINAL             |
+------+------------------------------+
| 123  | https://www.example.com      |
+------+------------------------------+
| xpto | https://www.superexample.com |
+------+------------------------------+

Na sua aplicação web, você vai criar uma rota no formato https://www.ciamalura.com/redir/{ID} e a action executada nesta url será a responsável por buscar o URL_ORIGINAL a partir do {ID} e devolver ao navegador do usuário a resposta 302 (redirecionamento temporário), por exemplo, com o redirecionando para a url correta.

Com este formato é possível coletar dados dos usuários como a quantidade de cliques que cada lin recebeu, se o domínio da sua aplicação possuir autenticação será possível saber qual usuário usou qual link, é possível adicionar à URL de redirecionamento parâmetros de campanhas (utm_source, etc.).

No AspNet Core, sua implementação será +/- assim, como este rascunho:

[HttpGet("/redir/{id:required}")]
public IActionResult RedirectTo(string id)
{
    if (id == null) 
    {
        return NotFound();
    }

    var shortUrl = _urlRepository.Get(id);
    if (shortUrl == null) 
    {
        return NotFound();
    }

    return Redirect(shortUrl.OriginalUrl);
}

O que você acha?

Abs.