Ondersteuning voor RFC8905 en datum niet vereisen

This commit is contained in:
Chris Josten 2020-12-13 16:42:06 +01:00
parent d76392f99b
commit ff632a59c4
3 changed files with 42 additions and 8 deletions

View file

@ -1,6 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="nl"> <html lang="nl">
<head> <head>
<meta charset="utf-8" />
<title>Betaalverzoekjes via elke chatdienst (en zelfs briefpost!) | <title>Betaalverzoekjes via elke chatdienst (en zelfs briefpost!) |
Netsoj.nl</title> Netsoj.nl</title>
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
@ -64,22 +65,25 @@
<p class="geen-marge">Aan <span id="betaal-ontvanger" data-veld="aan"> <p class="geen-marge">Aan <span id="betaal-ontvanger" data-veld="aan">
</span></p> </span></p>
</header> </header>
<p><span id="betaal-bedrag" data-veld="bedrag"></span></p> <p><span id="betaal-valuta" data-veld="valuta-symbool"></span><span id="betaal-bedrag" data-veld="bedrag"></span></p>
<h3>Betaalmogelijkheden</h3> <h3>Betaalmogelijkheden</h3>
<ol> <ol>
<li> <li>
<h3>Contant</h3> <h3>Contant</h3>
<p>Je geeft het bedrag in contant geld aan <p>Je geeft het bedrag <a id="betaallink-contant">in contant geld aan
<span data-veld="aan"></span>. Spreekt voor zichzelf, <span data-veld="aan"></span></a>. Spreekt voor zichzelf,
toch?</p> toch?</p>
</li> </li>
<li> <li>
<h3>Overmaken</h3> <h3>Overmaken</h3>
<p>Je maakt het bedrag over naar mijn bankrekening, <p>Je maakt het bedrag over naar mijn bankrekening,
met het IBAN <span id="betaal-iban" data-veld="iban"></span> en met als omschrijving <span class="veld" data-veld="betreft"></span>. met het IBAN <a id="betaallink-iban"><span id="betaal-iban" data-veld="iban"></span></a> en met als omschrijving <span class="veld" data-veld="betreft"></span>.
</p> </p>
</li> </li>
</ol> </ol>
<p>Noot: het kan zijn dat de linkjes niet werken. Dit webstekkie maakt gebruik van
baanbrekende technologieën die mogelijk nog niet door de logge banken in gebruik
is genomen. </p>
<details> <details>
<summary>Veiligheidsinformatie</summary> <summary>Veiligheidsinformatie</summary>
<dl> <dl>

View file

@ -35,6 +35,7 @@ let TEKST_FOUT_MISSENDE_PARAMETERS = 1;
let TEKST_FOUT_ONJUISTE_HANDTEKENING = 2; let TEKST_FOUT_ONJUISTE_HANDTEKENING = 2;
let TEKST_FOUT_CORRUPTE_HANDTEKENING = 3; let TEKST_FOUT_CORRUPTE_HANDTEKENING = 3;
let TEKST_FOUT_VERLOPEN = 4; let TEKST_FOUT_VERLOPEN = 4;
let TEKST_FOUT_VEROUDERD = 5;
let teksten = []; let teksten = [];
teksten[TEKST_FOUT_ENGELS] = "Helaas hebben we alleen een Engelse foutmelding voor deze fout. Als u dit aankunt, lees dan de onderstaande tekst:"; teksten[TEKST_FOUT_ENGELS] = "Helaas hebben we alleen een Engelse foutmelding voor deze fout. Als u dit aankunt, lees dan de onderstaande tekst:";
@ -42,6 +43,7 @@ teksten[TEKST_FOUT_MISSENDE_PARAMETERS] = "Ongeldige URL: missende parameters.";
teksten[TEKST_FOUT_ONJUISTE_HANDTEKENING] = "Ongeldige URL: ongeldige handtekening."; teksten[TEKST_FOUT_ONJUISTE_HANDTEKENING] = "Ongeldige URL: ongeldige handtekening.";
teksten[TEKST_FOUT_CORRUPTE_HANDTEKENING] = "Ongeldige URL: handtekening corrupt."; teksten[TEKST_FOUT_CORRUPTE_HANDTEKENING] = "Ongeldige URL: handtekening corrupt.";
teksten[TEKST_FOUT_VERLOPEN] = "Betaalverzoek is verlopen."; teksten[TEKST_FOUT_VERLOPEN] = "Betaalverzoek is verlopen.";
teksten[TEKST_FOUT_VEROUDERD] = "Dit is een verlopen, verouderd betaalverzoek. Vraag de maker om een nieuw betaalverzoek op te sturen.";
let vertaaldeFouten = {}; let vertaaldeFouten = {};
vertaaldeFouten["Error during parsing. This message / key probably does not conform to a valid OpenPGP format."] = TEKST_FOUT_CORRUPTE_HANDTEKENING; vertaaldeFouten["Error during parsing. This message / key probably does not conform to a valid OpenPGP format."] = TEKST_FOUT_CORRUPTE_HANDTEKENING;
@ -72,6 +74,17 @@ function goeieOuweOntkink(object) {
//alert(JSON.stringify(object)); //alert(JSON.stringify(object));
} }
function valutaNaarSymbool(valuta) {
switch (valuta.toUpperCase()) {
case "EUR":
return "€";
case "USD":
return "$";
default:
return valuta.toUpperCase();
}
}
document.addEventListener("DOMContentLoaded", function() { document.addEventListener("DOMContentLoaded", function() {
try { try {
//goeieOuweOntkink("Verkrijgen parameters") //goeieOuweOntkink("Verkrijgen parameters")
@ -81,13 +94,19 @@ document.addEventListener("DOMContentLoaded", function() {
let betreft = aanvraagParameters.get("betreft"); let betreft = aanvraagParameters.get("betreft");
let bedrag = aanvraagParameters.get("bedrag"); let bedrag = aanvraagParameters.get("bedrag");
let iban = aanvraagParameters.get("iban"); let iban = aanvraagParameters.get("iban");
let datum = aanvraagParameters.get("datum");
let handtekening = aanvraagParameters.get("handtekening"); let handtekening = aanvraagParameters.get("handtekening");
let valuta = aanvraagParameters.get("valuta");
// Eerdere betaalverzoeken hadden geen valuta parameter, maar wel een datum.
if (valuta === null && aanvraagParameters.get("datum") != null) {
toonFout(TEKST_FOUT_VEROUDERD);
return;
}
goeieOuweOntkink(aanvraagParameters); goeieOuweOntkink(aanvraagParameters);
//Controleer of ze allemaal zijn ingevuld. //Controleer of ze allemaal zijn ingevuld.
if (aan === null || betreft === null || bedrag === null || iban === null if (aan === null || betreft === null || bedrag === null || iban === null
|| datum === null || handtekening === null) { || handtekening === null || valuta == null) {
toonFout(TEKST_FOUT_MISSENDE_PARAMETERS); toonFout(TEKST_FOUT_MISSENDE_PARAMETERS);
return; return;
} }
@ -98,7 +117,7 @@ document.addEventListener("DOMContentLoaded", function() {
nakijkParameters.append("betreft", betreft); nakijkParameters.append("betreft", betreft);
nakijkParameters.append("bedrag", bedrag); nakijkParameters.append("bedrag", bedrag);
nakijkParameters.append("iban", iban); nakijkParameters.append("iban", iban);
nakijkParameters.append("datum", datum); nakijkParameters.append("valuta", valuta);
handtekening = "-----BEGIN PGP SIGNATURE-----\n\n" + handtekening + "\n-----END PGP SIGNATURE-----"; handtekening = "-----BEGIN PGP SIGNATURE-----\n\n" + handtekening + "\n-----END PGP SIGNATURE-----";
@ -142,6 +161,17 @@ document.addEventListener("DOMContentLoaded", function() {
vulVeldIn("betreft", betreft); vulVeldIn("betreft", betreft);
vulVeldIn("bedrag", bedrag); vulVeldIn("bedrag", bedrag);
vulVeldIn("iban", iban); vulVeldIn("iban", iban);
vulVeldIn("valuta-symbool", valutaNaarSymbool(valuta));
let betaalLinkParameters = new URLSearchParams();
betaalLinkParameters.append("amount", valuta.toUpperCase() + ":" + bedrag.replaceAll(",", "."));
betaalLinkParameters.append("message", betreft);
betaalLinkParameters.append("receiver-name", aan);
document.getElementById("betaallink-iban").href = "payto://iban/" + iban + "/?"
+ betaalLinkParameters.toString();
document.getElementById("betaallink-contant").href = "payto://void/?"
+ betaalLinkParameters.toString();
document.getElementById("betaal-info").style.display = "block"; document.getElementById("betaal-info").style.display = "block";
}); });

View file

@ -95,7 +95,7 @@ pre.onjuist {
font-size: 1.2em; font-size: 1.2em;
} }
#betaal-bedrag { #betaal-bedrag, #betaal-valuta {
font-size: 2em; font-size: 2em;
} }