[CENTER]
Join our Discord for support and the latest updates → <a href="&#039;https://discord.gg/M48jfjrykS&#039;" target="_blank" class="text-[var(--vp-c-brand-1)] hover:underline">discord.gg/M48jfjrykS</a>PayNow Gateway for PaymenterAccept payments through PayNow.gg inside your Paymenter billing panel — fully automatic, no webhook setup needed.⚙️ Requirements[/CENTER]
- Paymenter — <a href="https://paymenter.org" target="_blank" class="text-[var(--vp-c-brand-1)] hover:underline">https://paymenter.org</a> (latest version recommended)
- PayNow.gg account — <a href="https://paynow.gg" target="_blank" class="text-[var(--vp-c-brand-1)] hover:underline">https://paynow.gg</a> (free to create)
- PHP 8.1 or higher
- Your Paymenter instance must be publicly accessible (required for webhook delivery)
[CENTER]
🚀 Installation[/CENTER]
Step 1 — Create your PayNow store
- Go to <a href="https://paynow.gg" target="_blank" class="text-[var(--vp-c-brand-1)] hover:underline">paynow.gg</a> and create a free account
- When creating your store, select Third Party as the store type — this is required for API-based integrations like Paymenter
- Complete the store setup and take note of your Store ID
Step 2 — Upload the filesExtract the downloaded zip and upload the
PayNow folder into your Paymenter installation at:
extensions/Gateways/PayNow/
The folder must contain both
PayNow.php and
routes.php.
Step 3 — Get your PayNow credentials
- Log in to your PayNow dashboard at <a href="https://dashboard.paynow.gg" target="_blank" class="text-[var(--vp-c-brand-1)] hover:underline">dashboard.paynow.gg</a>
- Store ID — found in the URL when you open your store, or under Settings → General
- API Key — go to Integrations → API Keys and create a new key. It will start with pnapi_v1_
Step 4 — Enable the gateway in Paymenter
- Log in to your Paymenter admin panel
- Navigate to Admin → Gateways
- Find PayNow Gateway in the list and click Enable
- Enter your Store ID and API Key in the provided fields
- Leave Webhook Secret completely blank — it is created and saved automatically on the first payment
- Click Save
That's it. The gateway is fully active and ready to accept payments.
[CENTER]
💳 How It Works (Payment Flow)[/CENTER]
From the customer's perspective:
- Customer views an unpaid invoice in Paymenter and clicks Pay Now
- They are redirected to a secure PayNow hosted checkout page
- Customer completes payment on the PayNow checkout
- PayNow sends a webhook to your server confirming the payment
- The invoice in Paymenter is automatically marked as Paid
- Customer is redirected back to the invoice page showing the paid status
Behind the scenes:
- On first payment, a webhook is automatically registered with PayNow — no manual setup required
- A unique PayNow product is created for each invoice at checkout time
- A PayNow customer profile is created or reused for each buyer (matched by email)
- After payment is confirmed, the temporary product is automatically deleted from your PayNow store to keep it clean
- If a customer abandons a checkout and returns, any leftover product from before is cleaned up first
[CENTER]
✅ Features[/CENTER]
Zero-config webhook setupThe gateway automatically registers, configures, and stores the webhook secret on first use. You never touch the PayNow webhook settings manually.
Triple-fallback invoice matchingPayments are matched to invoices using three independent methods in sequence:
- Order metadata (primary)
- Product name prefix parsing (secondary)
- Cache lookup (tertiary)
This ensures every payment is correctly recorded even under unusual webhook conditions.
100% coupon / free order supportIf a coupon reduces the invoice total to $0, the gateway uses the subtotal amount to correctly mark the invoice as paid in Paymenter — no manual intervention needed.
Secure webhook verificationAll incoming webhook requests are verified using
HMAC-SHA256 with Base64 encoding, exactly matching PayNow's signing specification. Any request that fails verification is rejected with a 401 response.
Automatic store cleanupTemporary products created at checkout are deleted after payment completes or after an abandoned session. Your PayNow product catalog stays clean at all times.
[CENTER]
🔧 Troubleshooting[/CENTER]
Webhook not receiving payments?
- Make sure your Paymenter URL is publicly accessible (not localhost or behind a private firewall)
- Check that the webhook was registered: go to PayNow → Integrations → Webhooks — you should see an entry pointing to your Paymenter domain
- If the webhook secret appears blank in Paymenter settings, trigger a test payment to auto-register it
Invoice not being marked as paid?
- Check your Paymenter Laravel log under storage/logs/ for any PayNow log entries
- Ensure your API Key is correct and has not been revoked in PayNow
- Confirm the webhook is subscribed to order completion events
Getting a 500 error after installing?
- Verify both PayNow.php and routes.php are present inside extensions/Gateways/PayNow/
- Run the following from your Paymenter root:
php artisan route:clear && php artisan cache:clear
- Check that your PHP version is 8.1 or higher by running:
php -v
[CENTER]
📋 Configuration Fields Reference[/CENTER]
[TABLE]
[TR]
[TH]Field[/TH]
[TH]Required[/TH]
[TH]Description[/TH]
[/TR]
[TR]
[TD]Store ID[/TD]
[TD]✅ Yes[/TD]
[TD]Your PayNow Store ID — found in the dashboard URL or under Settings → General[/TD]
[/TR]
[TR]
[TD]API Key[/TD]
[TD]✅ Yes[/TD]
[TD]Your PayNow API Key starting with pnapi_v1_ — create under Integrations → API Keys[/TD]
[/TR]
[TR]
[TD]Webhook Secret[/TD]
[TD]❌ Leave blank[/TD]
[TD]Auto-generated and saved on first payment. Never fill this in manually.[/TD]
[/TR]
[/TABLE]
[CENTER][SIZE=4]
Need help? Join our Discord!discord.gg/M48jfjrykS[/SIZE]
<span style="color:gray">Compatible with Paymenter latest · Powered by PayNow.gg · Built by CrownPlugins</span>[/CENTER]