Não, não em pixels, em euros.
Não, não com cartão de crédito.
Sim com telefone.
Se você vende produtos ou serviços, receber pagamento é um requisito óbvio.
Hoje em dia o cartão de crédito é o rei, pelo menos online.
Você tem uma abundância de gateways de pagamento, que lidarão com cartões de crédito, Google ou Apple Pay para você.
Por uma taxa, é claro.
Em uma loja física, você obteria um terminal de cartão de crédito.
Alguns bancos podem vender um aplicativo Android muito mais barato que transforma seu telefone em um terminal CC.
Vale a pena considerar, especialmente se você processa apenas alguns pagamentos por dia.
Essas opções cobrem quase todas as situações em cenários típicos de consumo.
Onde uma pessoa entra na Internet ou em uma loja física e compra um monte de produtos ou corta o cabelo.
Mas há muito mais.
Em todos estes casos a resposta, na União Europeia, é SEPA.
Mais especificamente, Transferência de Crédito SEPA.
Ou seu irmão mais novo, mas muito mais rápido, Transferência Instantânea de Crédito SEPA.
Se você não está familiarizado com o nome, não se preocupe, é a mesma velha transferência eletrônica.
Por exemplo. você diz ao seu banco para retirar dinheiro da sua conta e colocá-lo em outra pessoa.
O que historicamente era um formulário em papel para preencher, hoje em dia são necessários alguns cliques em seu aplicativo de banco móvel.
Mas agora temos números de contas bancárias internacionais padronizados - IBANs.
Tornando muito fácil enviar dinheiro para qualquer lugar da UE ou até mesmo do mundo inteiro.
E com o SEPA Instant, seu dinheiro chega em segundos.
Mas, mas os IBANs são tão longos que são quase assustadores.
E as pessoas são notoriamente ruins em inserir coisas, então você pode ficar feliz se conseguir a quantia certa, esqueça as notas adicionais.
Todos esses problemas são facilmente resolvidos com códigos QR.
Seus clientes podem digitalizá-los com seus telefones, verificar o valor e clicar em pagar em seu aplicativo bancário.
Com a lista crescente de bancos no esquema de Transferência Instantânea de Crédito SEPA, as chances são altas de que seu dinheiro chegue em um piscar de olhos.
Em um blog futuro, veremos como monitorar pagamentos recebidos em sua conta bancária.
Para automatizar a geração e envio de faturas, por exemplo.
Deixe-me mostrar como gerar códigos QR para a Eslováquia e a República Tcheca.
Quero tornar esta lista mais longa, então se você souber como os códigos QR são feitos em seu país, por favor me avise.
Os bancos eslovacos concordaram com um padrão comum chamado Pay by Square.
Existe até um esquema de URL que pode ser usado em cenários online.
Por exemplo. o usuário clica em um link e seu aplicativo bancário é iniciado com todas as informações de pagamento preenchidas.
Infelizmente, estes não são interoperáveis (em 2024).
Deixe-me mostrar como gerar o código QR em NodeJS.
app.get("/api/paybysquare", mustAuth, async (req, res, next) => { try { const body = req.query.content as string; const model = JSON.parse(body); const content = await generate(model); const qrStream = new PassThrough(); const result = await toFileStream(qrStream, content, { type: 'png', width: 200, errorCorrectionLevel: 'H' } ); qrStream.pipe(res); } catch (ex) { next(ex); } });
O método generate vem da biblioteca bysquare.
Você pode instalá-lo com npm como de costume npm i bysquare
Para obter uma imagem PNG que possamos usar no navegador ou em um documento de fatura, chamamos o método assim.
interface IBySquareModel { IBAN: string; Amount: number; CurrencyCode: string; // must be "EUR", VariableSymbol: string; Payments: number; // must be 1, PaymentOptions: number; // must be 1, BankAccounts: number; // must be 1, PaymentNote?: string; // optional note } const BySquareQR = (payModel: IBySquareModel) => { return }
Muitas vezes é muito útil adicionar uma mensagem descritiva ao pagamento.
Aqui está um código simples que normalizará os nomes dos clientes.
Isso removerá os diacríticos, transformando Ján Kováč em Jan Kovac.
Deve ainda estar perfeitamente legível e garantir que os sistemas bancários não baguncem tudo.
const paymentMessage = customerName?.normalize("NFKD").replace(/[\u0300-\u036f]/g, "").substring(0, 100) || "";
Embora a República Tcheca ou a Tcheca tenham resistido até agora (2024) ao euro, eles também têm um esquema de código QR.
E eles ainda têm um gerador de código isento de royalties que podemos usar.
Agora, por motivos de segurança, você ainda pode querer gerá-lo você mesmo.
const czQrLink = "https://api.paylibo.com/paylibo/generator/image?iban=" iban "&amount=" czkPrice "¤cy=CZK&vs=" vsym "&message=" message; const CzQrImage = (czQrLink: string) => { return }
Infelizmente, ainda não existe um padrão QR internacional ou europeu.
Então você terá que mostrar o código QR correto com base no país do seu usuário.
Se você espera pagamentos da República Tcheca, lembre-se de que os códigos QR tchecos só funcionam em coroas tchecas (moeda tcheca CZK).
Ou se você mora na República Tcheca e espera pagamentos da Eslováquia, o QR só funciona em euros.
O código abaixo pode ajudá-lo a calcular o valor correto da moeda.
Primeiro, obtemos a taxa de câmbio de referência atual do banco central.
Em seguida, calculamos os preços em euros e czk, dependendo do preço do produto e da moeda.
const getExchangeRate = async () => { const now = new Date(); const dt = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1).toISOString().substring(0, 10); const url = "https://nbs.sk/export/sk/exchange-rate/" dt "/xml"; const dat = { url: url } const opts = { headers: { 'Content-Type': 'application/json' }, method: "POST", body: JSON.stringify(dat) } const resp = await fetch("/api/httpfetch", opts); const xml = await resp.text(); const parser = new DOMParser(); const xmlDoc = parser.parseFromString(xml, "text/xml"); const node = xmlDoc.querySelector("Cube [currency='CZK']"); if (node) { const attr = node.getAttribute("rate"); if (attr) { const num = attr.replace(/\s/, "").replace(",", "."); return num; } } return undefined; } // basePrice is the amount to be paid, for the products or services // currencyCode is the currency the products or services are sold in. const czkRate = await getExchangeRate(); const eurPrice = currencyCode === "EUR" ? basePrice : (Math.ceil(basePrice / czkRate * 100) / 100).toFixed(2); const czkPrice = currencyCode === "CZK" ? basePrice : (Math.ceil(basePrice * czkRate * 100) / 100).toFixed(2);
Tentar ler IBANs mal impressos em faturas ou até mesmo digitar IBANs horrivelmente longos é muito chato.
Que você tem que ter muito cuidado e conferir três vezes, porque é dinheiro, torna ainda mais.
Criamos software para facilitar nossas vidas, e os códigos QR para pagamentos atendem perfeitamente a esse objetivo.
Espero que você tenha achado as informações úteis e, se tiver algumas dicas sobre seus esquemas nacionais de códigos QR, envie-as para mim.
Feliz hacking!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3