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>
<html lang="nl">
<head>
<meta charset="utf-8" />
<title>Betaalverzoekjes via elke chatdienst (en zelfs briefpost!) |
Netsoj.nl</title>
<meta name="viewport" content="width=device-width" />
@ -64,22 +65,25 @@
<p class="geen-marge">Aan <span id="betaal-ontvanger" data-veld="aan">
</span></p>
</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>
<ol>
<li>
<h3>Contant</h3>
<p>Je geeft het bedrag in contant geld aan
<span data-veld="aan"></span>. Spreekt voor zichzelf,
<p>Je geeft het bedrag <a id="betaallink-contant">in contant geld aan
<span data-veld="aan"></span></a>. Spreekt voor zichzelf,
toch?</p>
</li>
<li>
<h3>Overmaken</h3>
<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>
</li>
</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>
<summary>Veiligheidsinformatie</summary>
<dl>

View file

@ -35,6 +35,7 @@ let TEKST_FOUT_MISSENDE_PARAMETERS = 1;
let TEKST_FOUT_ONJUISTE_HANDTEKENING = 2;
let TEKST_FOUT_CORRUPTE_HANDTEKENING = 3;
let TEKST_FOUT_VERLOPEN = 4;
let TEKST_FOUT_VEROUDERD = 5;
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:";
@ -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_CORRUPTE_HANDTEKENING] = "Ongeldige URL: handtekening corrupt.";
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 = {};
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));
}
function valutaNaarSymbool(valuta) {
switch (valuta.toUpperCase()) {
case "EUR":
return "€";
case "USD":
return "$";
default:
return valuta.toUpperCase();
}
}
document.addEventListener("DOMContentLoaded", function() {
try {
//goeieOuweOntkink("Verkrijgen parameters")
@ -81,13 +94,19 @@ document.addEventListener("DOMContentLoaded", function() {
let betreft = aanvraagParameters.get("betreft");
let bedrag = aanvraagParameters.get("bedrag");
let iban = aanvraagParameters.get("iban");
let datum = aanvraagParameters.get("datum");
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);
//Controleer of ze allemaal zijn ingevuld.
if (aan === null || betreft === null || bedrag === null || iban === null
|| datum === null || handtekening === null) {
|| handtekening === null || valuta == null) {
toonFout(TEKST_FOUT_MISSENDE_PARAMETERS);
return;
}
@ -98,7 +117,7 @@ document.addEventListener("DOMContentLoaded", function() {
nakijkParameters.append("betreft", betreft);
nakijkParameters.append("bedrag", bedrag);
nakijkParameters.append("iban", iban);
nakijkParameters.append("datum", datum);
nakijkParameters.append("valuta", valuta);
handtekening = "-----BEGIN PGP SIGNATURE-----\n\n" + handtekening + "\n-----END PGP SIGNATURE-----";
@ -142,6 +161,17 @@ document.addEventListener("DOMContentLoaded", function() {
vulVeldIn("betreft", betreft);
vulVeldIn("bedrag", bedrag);
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";
});

View file

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