PayPal Checkout Setup - softerfish/fyuhls GitHub Wiki
This guide walks through the current PayPal setup flow in fyuhls.
Go to:
- Admin -> Config Hub -> Monetization
In the Payment Gateways section, PayPal uses:
- Enable PayPal Checkout
- Client ID
- Client Secret
- Webhook ID
- Use PayPal Sandbox
PayPal checkout is only considered ready when:
- Enable PayPal Checkout is turned on
- a Client ID is saved
- a Client Secret is saved
Important:
- Use PayPal Sandbox does not enable PayPal by itself
- it only switches fyuhls between the sandbox API and the live API
Use the PayPal developer dashboard and create an app for:
- sandbox testing first, then
- live when you are ready
From PayPal, copy:
- Client ID
- Client Secret
Paste them into fyuhls:
- Client ID
- Client Secret
If you are still testing, keep this turned on:
- Use PayPal Sandbox
If you are moving to production, turn that off only after:
- you have live PayPal credentials ready
- you have updated the webhook in the live PayPal app too
Turn on:
- Enable PayPal Checkout
Then save Config Hub.
At that point, fyuhls can create PayPal orders if the credentials are valid.
PayPal checkout uses server-side order creation and capture, and the webhook should still be configured for safer event handling.
In the PayPal app for the same environment you are using, create a webhook pointing to:
/payment/callback/paypal
using your site domain, for example:
https://yourdomain.com/payment/callback/paypal
After creating the webhook, copy the webhook ID from PayPal and paste it into:
- Webhook ID
Then save again.
Before going live, test:
- a successful PayPal checkout
- a cancelled PayPal checkout
- return into fyuhls after approval
- package activation on the user account
If you use PPS or affiliate earnings tied to sales, also validate at least one later adverse payment state in your broader process.
Usually caused by one of these:
- Client ID is blank
- Client Secret is blank
- sandbox is enabled but you pasted live credentials
- sandbox is disabled but you pasted sandbox credentials
That happens when the toggle is on but the required credentials are still missing. fyuhls only treats PayPal as ready when the gateway is both:
- enabled, and
- fully configured
Usually caused by:
- wrong webhook URL
- wrong environment
- missing or wrong Webhook ID
- fyuhls creates a pending internal transaction before redirecting the user to PayPal.
- PayPal order approval returns through
/payment/paypal/return. - capture and later webhook handling can still affect transaction state after the initial redirect flow.