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

@ -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";
});