PAY Subscriptions Gateway – 072DESIGN
WooCommerce payment gateway for PAY.nl with automatic direct debit and subscription support · by Martijn Benjamin (072DESIGN)
by 072DESIGN · github.com/martijnbenjamin/pay-subscriptions-gateway · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/martijnbenjamin/pay-subscriptions-gateway/archive/refs/heads/main.zipPAY Subscriptions Gateway voor WooCommerce
WooCommerce betaalgateway voor PAY.nl met ondersteuning voor automatische incasso via mandaten, webhooks en abonnementen via WooCommerce Subscriptions.
Ontwikkeld door Martijn Benjamin — webdesigner en WordPress-specialist, eigenaar van 072DESIGN.
Wat doet deze plugin?
Deze plugin integreert PAY.nl als betaalmethode in WooCommerce en voegt ondersteuning toe voor:
- Automatische incasso via betaalmandaten (iDEAL, SEPA Direct Debit)
- Terugkerende betalingen via WooCommerce Subscriptions
- Webhook-verwerking met HMAC-SHA256 verificatie
- Opslaan van betaalmandaten als WooCommerce Payment Tokens
- Terugbetalingen via de PAY.nl API
- Testmodus via de PAY.nl sandbox
De plugin is gebouwd voor eigen gebruik en openbaar gemaakt zodat anderen er gebruik van kunnen maken of op voort kunnen bouwen.
Vereisten
- WordPress 5.6 of hoger
- PHP 7.4 of hoger
- WooCommerce 6.0 of hoger
- WooCommerce Subscriptions (voor terugkerende betalingen)
- Een actief PAY.nl account met Direct Debit ingeschakeld
Installatie
- Download of kloon deze repository
- Upload de map naar
/wp-content/plugins/pay-subscriptions/ - Activeer de plugin via WordPress → Plugins
- Ga naar WooCommerce → Instellingen → Betalingen
- Activeer PAY (Subscriptions) en klik op Instellingen
Configuratie
Vereiste instellingen
| Instelling | Formaat | Waar te vinden |
|---|---|---|
| PAY Token Code | AT-xxxx-xxxx |
PAY.nl dashboard → API tokens |
| PAY API Token | — | PAY.nl dashboard → API tokens |
| PAY Service ID | SL-xxxx-xxxx |
PAY.nl dashboard → Services |
De webhook secret wordt automatisch gegenereerd bij activatie.
API-permissies
Zorg dat je API token de volgende permissies heeft in PAY.nl:
- Transactions: Create, Read
- Mandates: Create, Read, Cancel
- Refunds: Create
- Services: Read
Webhook instellen in PAY.nl
- Ga naar PAY.nl → Services → [jouw service] → Webhooks
- Voeg een nieuwe webhook toe:
- URL:
https://jouwsite.nl/?wc-api=pay_subs_webhook - Events: Transaction status changes, Mandate changes, Refunds
- Secret: kopieer de gegenereerde secret uit WooCommerce
- URL:
Testen
Schakel testmodus in en gebruik de PAY.nl sandbox credentials. Doorloop de volgende stappen:
- Maak een testproduct met een abonnement aan
- Plaats een bestelling in testmodus
- Volg de redirect naar PAY.nl en rond de testbetaling af
- Controleer of de orderstatus bijgewerkt is naar
processingofcomplete - Test webhook events via de PAY.nl webhook tester
- Forceer een abonnementsverlenging via WooCommerce en controleer of het mandaat wordt gebruikt
Logs zijn te vinden via WooCommerce → Status → Logs (filter op pay_subscriptions). Schakel debug logging in bij de gateway-instellingen voor uitgebreide output.
Veelvoorkomende problemen
Betaling mislukt Controleer of de API credentials correct zijn en of de service actief is in PAY.nl. Bekijk de logs voor specifieke API-foutmeldingen.
Webhook werkt niet Verifieer de webhook URL en secret in het PAY.nl dashboard. Test via de PAY.nl webhook tester en controleer of de server geen 401 of 500 teruggeeft.
Abonnementsverlenging faalt Controleer of het mandaat correct is opgeslagen als WooCommerce Payment Token en of Direct Debit is ingeschakeld voor de service.
Bijdragen
Verbeteringen, bugfixes en pull requests zijn welkom. Houd rekening met het volgende:
- De plugin is primair gebouwd voor de eigen setup van 072DESIGN en kan afwijken van jouw configuratie
- Er is geen garantie op ondersteuning of updates
- Gebruik op eigen risico — test altijd grondig in een testomgeving voordat je dit in productie zet
Changelog
v1.7.0
- Abonnementsverlenging werkt nu met iDEAL als initiële betaalmethode
- IBAN-opslag vanuit initiële iDEAL-betaling voor SEPA Direct Debit
- Meervoudige renewal-methode: payment token → SEPA-mandaat → orderreferentie
- API-fallback wanneer webhook-data onvolledig is
v1.6.0
- Stabiele productieversie
- Volledige namespace implementatie (
PAY_Subscriptions) - PAY.nl REST API v1 (connect.payments.nl)
- HMAC-SHA256 webhook verificatie
- Mandate opslag als WooCommerce Payment Tokens
- Uitgebreide logging en foutafhandeling
Licentie
GPLv2 or later — zie LICENSE
Gemaakt door Martijn Benjamin · 072DESIGN · Noord-Holland