Nein, nicht in Pixel, in Euro.
Nein, nicht mit Kreditkarte.
Ja mit Telefon.
Wenn Sie Produkte oder Dienstleistungen verkaufen, ist die Bezahlung eine selbstverständliche Voraussetzung.
Heutzutage ist die Kreditkarte das A und O, jedenfalls online.
Sie verfügen über zahlreiche Zahlungsgateways, die Kreditkarten, Google oder Apple Pay für Sie abwickeln.
Natürlich gegen Gebühr.
In einem physischen Geschäft würden Sie ein Kreditkartenterminal bekommen.
Einige Banken können Ihnen eine viel günstigere Android-App verkaufen, die Ihr Telefon in ein CC-Terminal verwandelt.
Dies ist eine Überlegung wert, insbesondere wenn Sie nur wenige Zahlungen pro Tag abwickeln.
Diese Optionen decken fast alle Situationen in typischen Verbraucherszenarien ab.
Wenn eine Person online oder in ein Ladengeschäft geht und eine Reihe von Produkten kauft oder sich die Haare schneiden lässt.
Aber es gibt noch viel mehr.
In all diesen Fällen lautet die Antwort in der Europäischen Union SEPA.
Genauer gesagt: SEPA-Überweisung.
Oder sein jüngerer, aber viel schnellerer Bruder SEPA Instant Credit Transfer.
Wenn Ihnen der Name nicht bekannt ist, machen Sie sich keine Sorgen, es handelt sich um die gleiche alte Überweisung.
Z.B. Sie weisen Ihre Bank an, Geld von Ihrem Konto abzuheben und an jemand anderen weiterzugeben.
Was früher ein Papierformular zum Ausfüllen war, sind heutzutage ein paar Klicks in Ihrer Mobile-Banking-App.
Aber wir haben jetzt standardisierte internationale Bankkontonummern – IBANs.
Damit ist es ganz einfach, Geld überall in der EU oder sogar weltweit zu senden.
Und mit SEPA Instant kommt Ihr Geld in Sekundenschnelle an.
Aber, aber die IBANs sind so lang, dass sie fast gruselig sind.
Und die Leute sind notorisch schlecht darin, Dinge einzugeben. Sie können also froh sein, wenn Sie die richtige Menge erhalten, und vergessen Sie zusätzliche Notizen.
All diese Probleme lassen sich leicht mit QR-Codes lösen.
Ihre Kunden können sie mit ihrem Telefon scannen, den Betrag überprüfen und in ihrer Banking-App auf „Bezahlen“ klicken.
Da die Liste der Banken, die am SEPA-Sofortüberweisungssystem teilnehmen, immer größer wird, stehen die Chancen gut, dass Ihr Geld im Handumdrehen ankommt.
In einem zukünftigen Blog werden wir einen Blick darauf werfen, wie Sie auf Zahlungseingänge auf Ihrem Bankkonto achten können.
Um beispielsweise die Rechnungserstellung und den Rechnungsversand zu automatisieren.
Ich zeige Ihnen, wie Sie QR-Codes für die Slowakei und die Tschechische Republik generieren.
Ich möchte diese Liste verlängern. Wenn Sie also wissen, wie QR-Codes in Ihrem Land erstellt werden, lassen Sie es mich bitte wissen.
Slowakische Banken haben sich auf einen gemeinsamen Standard namens Pay by Square geeinigt.
Es gibt sogar ein URL-Schema, das in Online-Szenarien verwendet werden kann.
Z.B. Der Benutzer klickt auf einen Link und seine Banking-App wird mit allen ausgefüllten Zahlungsinformationen gestartet.
Leider sind diese nicht interoperabel (im Jahr 2024).
Lassen Sie mich Ihnen zeigen, wie Sie den QR-Code in NodeJS generieren.
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); } });
Die Methode „generate“ stammt aus der bysquare-Bibliothek.
Sie können es wie gewohnt mit npm installieren, npm i bysquare
Um ein PNG-Bild zu erhalten, das wir im Browser oder in einem Rechnungsdokument verwenden können, rufen wir die Methode wie folgt auf.
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 }
Es ist oft sehr hilfreich, der Zahlung eine beschreibende Nachricht hinzuzufügen.
Hier ist ein einfacher Code, der Clientnamen normalisiert.
Dadurch werden diakritische Zeichen entfernt und aus Ján Kováč wird Jan Kovac.
Sollte immer noch perfekt lesbar sein und sicherstellen, dass die Banksysteme es nicht vermasseln.
const paymentMessage = customerName?.normalize("NFKD").replace(/[\u0300-\u036f]/g, "").substring(0, 100) || "";
Auch wenn sich die Tschechische Republik oder Tschechien bisher (2024) gegen den Euro gewehrt haben, verfügen auch sie über ein QR-Code-System.
Und sie haben sogar einen lizenzfreien Codegenerator, den wir verwenden können.
Aus Sicherheitsgründen möchten Sie es jetzt vielleicht trotzdem selbst generieren.
const czQrLink = "https://api.paylibo.com/paylibo/generator/image?iban=" iban "&amount=" czkPrice "¤cy=CZK&vs=" vsym "&message=" message; const CzQrImage = (czQrLink: string) => { return }
Leider gibt es noch keinen internationalen oder europäischen QR-Standard.
Sie müssen also den richtigen QR-Code basierend auf dem Land Ihres Benutzers anzeigen.
Wenn Sie Zahlungen aus der Tschechischen Republik erwarten, beachten Sie, dass die tschechischen QR-Codes nur in tschechischen Kronen (tschechische Währung CZK) funktionieren.
Oder wenn Sie in der Tschechischen Republik ansässig sind und Zahlungen aus der Slowakei erwarten, funktioniert der QR nur in Euro.
Der folgende Code kann Ihnen bei der Berechnung des richtigen Währungsbetrags helfen.
Zunächst erhalten wir den aktuellen Referenzwechselkurs von der Zentralbank.
Anschließend berechnen wir die Euro- und CZK-Preise, abhängig vom Produktpreis und der Währung.
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);
Der Versuch, schlecht gedruckte IBANs aus Rechnungen abzulesen oder gar die furchtbar langen IBANs einzutippen, ist super nervig.
Dass man sehr vorsichtig sein und dreimal nachschauen muss, weil es um Geld geht, macht es noch schlimmer.
Wir entwickeln Software, um unser Leben einfacher zu machen, und QR-Codes für Zahlungen passen gut zu diesem Ziel.
Ich hoffe, Sie fanden die Informationen nützlich, und wenn Sie Hinweise zu Ihren nationalen QR-Code-Systemen haben, schicken Sie sie mir bitte zu.
Viel Spaß beim Hacken!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3