Het is mogelijk de gebruiker te vragen om na het indienen van een formulier een bepaald bedrag te betalen.
Hiervoor werken we samen met de Betaalmodule.
Je moet een Client ID verkrijgen via het team van de betaalmodule alvorens hier gebruik van te kunnen maken. Je Client ID moet ook gemarkeerd worden als Orafin als je Orafin wil gebruiken. In het geval van Orafin, moet je Client ID ook toegang krijgen tot een IPDC code.
Als dit allemaal in orde is, kan je verdergaan met de instructies op deze pagina om de betaalmodule te activeren op een formulier.
Configureren van de betaalmodule op een formulier
Na het opzetten van een nieuw formulier staan de betalingen standaard uit.
...
Om de betaling in te schakelen:
Selecteer een formulier waarop je de betaling will activeren
Ga naar de Eigenschappen van het formulier
Open de “Betalingen” tab
Kies voor:
Betaling aan
betaling aan (Orafin integratie)
Vul de waarden correct in
Configureer ook de confirmatie pagina (zie verder)
Verschil tussen Orafin & Niet-Orafin
| Orafin | Niet-Orafin |
---|---|---|
Communicatie | Mag worden meegegeven, maar wordt genegeerd. | Communicatie is verplicht |
Product Code | IPDC code: verplicht en moet correct zijn: moet bij de Betaalmodule gekoppeld zijn aan de client ID. | Product Code: waarde wordt niet gecontroleerd. |
Customer Type | KBO (ondernemingen) of KSZ (particulier) verplicht mee geven. In geven van KBO ook KBO nummer mee te geven, in geval van KSZ ook INSZ mee te geven. KBO Nummer en INSZ nummer worden enkel op lengte gevalideerd. | Customer Type niet meegeven |
Toepasbaar op type formulier | Dit is enkel toegestaan op “Secure” formulier die ontsloten zijn achter ACM/IDM. Dit is nodig om het INSZ te hebben. | Zowel op “Secure” en “Niet-Secure” formulieren. |
Formulier aanbevelingen en restricties
Momenteel ondersteunen we enkel een vast bedrag per formulier. Het is nog niet mogelijk om een bedrag te laten afwijken aan de hand van een gekozen waarde in het formulier.
Er is ook nog geen component op het formulier om de prijs aan te geven. Hiervoor kan je zelf een tekst op het formulier renderen, waarin de prijs staat.
Configuratie op de confirmatie pagina
Creëer een confirmatie pagina naast het formulier
Sleep de “Betaling” component op de confirmatie pagina en configureer deze
Open het formulier opnieuw en verwijs naar deze confirmatie pagina via de eigenschappen van de form container:
De “Betaling” component kent enkele statussen:
Initialised: Bij het openen van de confirmatie pagina en er kon een betaal link worden opgebouwd, zal de component in deze modus renderen. De gebruiker krijgt dan de betaal knop te zien. Door op de betaalknop te klikken, zal de component naar de “polling” status overgaan. Het betaalscherm zal openen in een nieuwe tab.
Initialize failure: Bij het openen van de confirmatie pagina en er kon GEEN betaal link worden opgebouwd, zal de component in deze modus renderen. De gebruiker kan naar geen enkele andere status meer en blijft deze tekst zien.
Polling: De component zal pollen naar de betaalmodule (local storage & API) om te kijken of de betaling in de andere tab al is afgerond.
Succes: Na polling kom je in deze status terecht als de gebruiker de betaling succesvol heeft afgerond.
Failure: Na polling kom je in deze status terecht als de gebruiker de betaling niet succesvol heeft afgerond. De betaalknop zal opnieuw renderen om de gebruiker opnieuw te laten proberen.
Voor elk van deze statussen kan een andere tekst worden beheerd om de gebruiker te informeren.
Testen & valideren van betaalmodule op een formulier
Enkele belangrijke velden:
Account / Client ID: als deze niet gekend is bij de betaalmodule, zal er een fout optreden bij het opbouwen van de betaallink
De account kan herbruikt worden in andere formulieren zolang de organisatie én IBAN dezelfde blijft.
IPDC code (enkel Orafin): als de Client ID geen toegang heeft tot deze IPDC code, zal er een fout optreden bij het opbouwen van de betaallink
Om dit te testen:
Zet alles op op de beheer omgeving (formulier en confirmatie pagina)
Vul het formulier zelf in en klik op verzenden
Als je ook de confirmatie pagina dit ziet, weet je of de betaling geslaagd is of niet:
Je ziet de knop “Betaalvenster openen” op de confirmatie pagina: betaallink kon worden opgevraagd
Klik op deze link om het betaal scherm te zien: Alles lijkt goed geconfigureerd te zijn
Je ziet een betaling foutmelding op de confirmatie pagina: betaallink kon NIET worden opgevraagd, kijk de configuratie na
Betaalgegevens in de JSON ontvangen op het endpoint
Als een betaling aanstaat op een formulier, kan je ook 3 velden ontvangen in de JSON bij je endpoint waar ook de andere formulier data naartoe wordt gestuurd.
Deze 3 velden zijn:
PDP Payment ID
Betaal Link
Gestructureerde mededeling
Deze meta data velden kan je deel laten uitmaken door de metadata component op je formulier te slepen, en 1 van deze “Betaling” metadata velden te kiezen:
Daarna moet je deze ook nog mappen om deel te laten uitmaken via het JSON Schema.
...
Opvolging betaling
Er bestaat ook een kans dat de gebruiker helemaal niks betaald.
In dit geval ontvangt de entiteit dus wel een JSON, maar ze kunnen er nooit vanuit gaan dat de betaling gebeurt is. Elke entiteit moet dus zelf gaan controleren op de betaling gebeurt is, dit kan aan de hand van de transactie id. Deze kan ook als Meta data in de output JSON terecht komen.
De transaction ID is de ID om de status van de betaling om te vragen. De entiteit is daarna zelf verantwoordelijk om de betaallink opnieuw bij de gebruiker te bezorgen.